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

數年前 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)」即將終結,而他們的職能會被視覺設計以及使用者體驗設計給吸收。這個狀況對前端開發來說也是相似的。

One thought on “前端開發領域的終結(與重生)

  1. 剛好最近有感於公司對於網頁前端的漠視與不了解有感而發
    如果你指的是 Web front-end development 那我想這確實是一個過程
    但你的標題是 ” 前端開發領域的終結 ” 我想這實在不能苟同

    確實 web的領域指的早就不僅此於網路 , 技術與應用不斷的在加強與改變
    ex javascript server side : node.js 出現, 與硬體結合webduino的出現,
    很多很多的改變都代表著過往僅屬於web前端領域的東西已不再僅此
    如果照您所說在更進步的未來,前端工程師們勢必擇一方向專業化,那麼我想webapp也不會出現
    許多公司們也不會有使用javascript與產品結合的工程師
    (ex: 建騰創達 的職缺 PD2412 NVR Internet 程式設計師 Software Engineer For NVR (Network Video Recorder)
    工作內容: 自行開發自有的 NVR(Network Video Recorder) 網頁前端 Web Client. 諸如此類工作如雨後春筍般出現)

    以前沒有將網頁分得那麼清楚, 未來呢? 如果他將消失,那又為什麼出現? 這一切我無法下斷定,也不知道
    不過我想技術自己會找到出口(引用最近很夯的侏羅紀),而我們這些專職於網頁的前端工程師在培養了相關的能力後
    在您說的那個時候發生時,也自然會自己找到出口(也許變成熟悉且清楚前端世界的後端工程師,也許全端,也許喜歡寫app跑去寫webapp,也許未來的未來,網頁更進步依舊不可或缺,前端網頁工程師所需的技能也更專業化而專精不可或缺)

    總之,一切的根源我想都是您那驚悚的標題”前端開發領域的終結(與重生)” 讓人覺得困惑,如果您想表達的僅此於網頁,建議可以確實更改標題

Leave a Reply

Your email address will not be published. Required fields are marked *