Jeremy England 的生物起源論

Stromatolites.jpg

Stromatolites from Wikipedia Commons.

大約年初有一波新聞介紹 MIT 生物物理學家 Jeremy England 關於生物起源的研究。新聞被轉載又被翻譯之後不小心變成了某種「下一個達爾文」之類的標題 … Orz

但剛剛真的(終於)聽完他接受 7th Avenue Project 的廣播專訪,才大略了解他的論點是

  • 「生命現象」是人工的定義,「無生命」的結構與系統也有可能有朝向有序結構發展的趨向。
  • 這不違反熱力學第二定律,因為生物起源環境是開放的複雜系統。
  • 從無序產生有序的「生物起源」活動可能是個宇宙中無論時地隨時發生的自然現象,甚至發生在現在的生活環境中,但在現在的地球可能是因為被 RNA/DNA-world 的「生物」主宰所以被壓抑,也有可能是發生在我們觀察不到的尺度(或面向)。

他說他的理論可能可以補足現在生物起源論中,人們聽起來漏洞很大的假說(而不是取代進化論等):原始地球會產生生命是因為有宇宙中獨一無二的環境「剛好」讓一堆無機的胺基酸與核酸碰撞在一起然後「剛好」成功開始複製自己的結構,然後「剛好」和其他結構產生天擇競爭。他希望能實作出數學模型與模擬,來解釋這些「剛好」只是模型可預測的自然現象,不是不可知的「超自然」謎團。

另外一個有趣的事是這位學者是成年之後才歸依猶太教正統派的教徒,廣播當中也有討論到他對於信仰與他的研究的關係的見解。

可以先讀一下維基百科的生物起源論條目,回顧一下高中生物課或是自然科學博物館介紹的主流見解。

The Web We Have to Save

The rich, diverse, free web that I loved — and spent years in an Iranian jail for — is dying.
Why is nobody stopping it?

The Web We Have to Save by Hossein Derakhshan

就像進入了時光機,這位作者因為他的部落格被伊朗政府監禁了 7 年。這是他被釋放之後第一篇英文部落格,詳述了他所看到的 Web 的變化。這篇文章和 Anil Dash 之前那篇「The Web We Lost」有著相似的觀點,只是這次,描述的筆觸多了無盡的個人感懷,畢竟這位作者失去了因而坐牢的那些事物。

Just like being pulled into a time machine, the author of this post was jailed by Iranian government for 7 years because of his blog posts. This is his first blog post in English after his release, detailing the changes of the Web he have seen. The post shared a similar view with the post “The Web We Lost” by Anil Dash — but this time, the descriptions come with an immersive personal touch, since what have changed was the things that the author have went to jail for.

前端開發領域的終結(與重生)

數年前 awoo 給了一篇重要的演講,試圖定義網路前端開發這個領域的獨立的職能,還有其作為基石,不可或缺的角色。從那邊出發,想要寫一下這幾年的觀察與心得。

先大膽的下標:網路前端開發(Web front-end development)即將終結。

就如當年的演講所定義的一樣,網路前端開發一都是跨領域的拉扯與協調。專業的能力必須同時展現在使用者體驗(UX)、專案管理(Project Management)、產品管理(Product Management),以及為了產品選擇最適合的技術的軟體工程(Software Engineering)能力,還有為了產品開發特殊技術的電腦科學(Computer Science)能力。有些團隊的前端開發還會兼視覺設計(Visual Design)。講到這裡,大家有沒有發現其實這邊已經把一個 client application 團隊的所有職能列完了(笑)?前端最大的危機,或是最大的潛能,就是可以成為以下所列的任一職務之一,或是被這些職能吸收:

  • 視覺設計師(Visual Designer)
  • 使用者體驗設計師(User Experience Designer)
  • 產品經理(Product Manager)
  • 專案經理(Project Manager)
  • 軟體工程師(Software Engineer)
  • 電腦科學家(Computer Scientist)

為何要說網路前端開發即將終結呢?首先的問題是專案的大型化與專業化;大部分的網站已經不是單純的資訊載體了,而是堅實的線上服務。一個優秀的線上服務需要專業的分工去設計與實作最好的呈現以及產品規劃,一人或許能兼任多個職能,但是必須要在這多個職能上都足夠優秀。另外一個觀察是市場現實:Web 或是 Mobile Web 還是很重要,但是它一個產品/服務中只會是其中一種呈現,而不會是唯一的呈現。這樣的產品會仰賴堅實的軟體工程規劃去細緻的拆分前後端的功能與實作,而瀏覽器所顯示的「網頁」會越來越像另一個跟 iOS/Android app 並立的 client-side software。這就呼應到最後一點了:在 Web is the Platform 的遠景之下,瀏覽器再也不只是呈現你最獨特又漂亮的版面的佈局引擎,而是和 Windows/OS X/iOS/Android 一樣的應用程式平台與虛擬機。瀏覽器的廠商們也在朝向這個未來努力,累積這個平台提供給應用程式的功能。

我預期前端開發在工程面向的職能會越來越像一般應用程式開發的軟體工程,只是用不同的技術組合,例如寫 iOS 要懂 Swift 跟 AutoLayout,但寫 Web 要知道 JavaScript 跟 CSS。像是這樣的對應會越來越明顯,對軟體工程專業的要求也會越來越高。Web 作為一個獨特的平台,並不代表他的技術組合必須永遠是獨特的。即便是不同的語言(JavaScript),軟體工程模式還是可以交換且通用的經驗。重新發明其他平台累積過的輪子,或是一年換一個 ecosystem 最熱門的工具,並不是真正的經驗累積。更何況技術組合也確實在聚合中:WebAssembly 會開始讓 Web 成為支援多個語言的開發平台,也會有更多的技術被移植到 Web 上,藉由 <canvas> 繞過 DOM,而且實用化(還記得 Flipboard 怎麼在 Web 實作 60fps 效能的版面嗎?)。

我希望這樣的終結是這個領域的轉機。「前端開發(Web front-end development)」的工程面專業化成為「軟體工程(Software Engineering)」的過程是漸進的,只要有正確的心態,一定能和整個領域一起轉換。若有足夠的基礎知識,還可以進一步精進電腦科學的技術。即便不把自己的角色定位為軟體工程師,若有正確的機會,前述的其他職能也不會難以觸及。這是一個在職涯過程中一定會面對的選擇。

畢竟如果不羽化的話,就無法飛行了。


註:之前 UX Mag 也有文章立論「網頁設計(Web Design)」即將終結,而他們的職能會被視覺設計以及使用者體驗設計給吸收。這個狀況對前端開發來說也是相似的。