橫行的前端(下)
上接前文 橫行的前端(上)
大前端概念的出現以及火爆也都說明了只是前端沒什麼搞頭,至少與其他方向結合起來更有搞頭。所以一班人跟做客戶端的人一拍即合——前端要有活干,客戶端的人受夠了 ObjectiveC Swift JAVA Kotlin 什麼的一坨,當然也有可能是因為客戶端的人不想再乾重復的事了於是把簡單的丟給了前端,反正 ReactNative Weex 之類的在挺多情況下性能挺好的而且看起來比 WebView 上流多了。而另一班人則跑去 Server 端了——我不知道那些被搶飯碗的人怎麼看待這些寫 NodeJS 的人們的,但好像他們也不需要怎麼看待這幫人,反正這幫人也搞不出什麼大動靜——頁面的需求永遠比後端多,而且前端永遠比後端難招,所以這班寫 Node 的人很快就又會回去寫頁面了,不會影響到原本後端人們的金飯碗。說來好像寫客戶端的和寫 Server 的前端現在有了一個歸屬地叫做大前端,看來這個詞取得還行,還挺上流的。
原本的前端真的沒有搞頭么?其實也不見得,其實大前端在客戶端搞的那些依然是原來前端的這一套,類似 DOM 的盒模型、 Flexbox 布局方式、幾乎全都可以用的 style 屬性、甚至 CSS / SCSS 之類的都能直接用;連 router 都長得越來越像,狀態管理也還是 Web 上之前玩的那一套(這種狀態管理估計原生開發的人看到了都有點懵逼)。只不過原生上會遇到挺多各種奇葩問題,這對於老司機來說也不是事兒,還能比 IE6 磨人么?(哦,現在估計已經沒剩多少老司機還在繼續一線做前端了。)這時候我們前端會說,不用技術上的太多學習成本,就可以做客戶端開發,而且還**比他們做得要快**,雖然性能上可能差了點、但還是比 Mobile Web 好了很多的呀!然後,趕緊給我的團隊擴招,反正哪端缺人我就能補到哪端去,不會出現客戶端做完了團隊幾個月沒活乾的問題。iOS 開發那邊也只能咬破牙和血吞,其實最主要的問題在於 iOS 的整個市場都已經被培訓機構玩爛了,雖然前端也有這個趨勢,但起碼沒他們那麼狠;而且同樣是培訓機構幾個月出來的,客戶端那邊的肯定不如前端這邊的能打,在進一步的團隊培訓成本上也能進一步拉開差距: iOS / Android 里複雜概念多得去了,不像前端複雜的基本都藏起來了。幾乎是重演了此前靜態語言垃圾收集機制之爭;並且,Swift 和 Kotlin 顯然還沒穩定,一部分人勇敢地沖了上去欲生欲死,剩下的大多都在觀望,也導致了他們的割裂和混亂,也是我們的機會。總的說來,客戶端這個方向是個必爭之地,因為這符合團隊擴張、更多的管理崗位、出任 CEO 贏取白富美的剛需。
至於 Server 端,可能有點困難,除非我們能把客戶端的活都幹完了,否則 BOSS 不會讓你染指 Server 端的活,畢竟 BOSS 很可能就是 Server 端出身,至少有點概念的 Leader 都知道 Server 端很重要,並且不會輕易相信前端能做 Server,他們寧可事後才看到後端欺上瞞下把密碼明文存儲(雖然前端也可能這麼做)。但阿里以及餓了么那樣嘗試著把接入層攬過來做其實是個不錯的做法,因為其實挺多後端程序員們不思進取,對於 HTTP 以及 HTML 等字元串的了解可能還不如前端深入,還沉迷在性能才是一切的海市蜃樓上。可惜,現在機器和性能不像以前那麼值錢了。看到後端各種二進位流盛行而且逐漸喪失字元串能力,UNIX 愛好者們可能哭暈在廁所,但這的確是我們的機會。你們就繼續糾結在性能以及 C++ 之上吧,我們前端可以藉此繼續擴張一輪。
我們的確不太可能把Web / 客戶端的活都幹完。因為我們編碼的速度永遠比不上產品經理嘴炮的速度。而不管是炮灰還是 leader ,跟後端吵吵架可能還行,但跟產品經理硬剛都是不合適的,他們**挾天子以令諸侯**,牛逼大發了,這沒法整——除非我們變成產品經理。就算挺多前端都有著不錯的產品 sense,想染指產品經理崗位這個難度依然很大,畢竟他們才更接近管理層,至少在物理上更經常與管理層接觸。除非前端能夠熬出頭成為產品經理的頂頭上司,那時下面的前端們就可以盡情笑出聲了。儘管難度很大,風險很高,但的確剷平經理是個非常值得努力的方向,值得我們拋頭顱灑熱血。
我個人也挺喜歡黑客文化的,之前也寫了不少關於黑客的看法,《黑客與畫家》似乎也挺多人喜歡,看來君子所見略同。黑客大概跟其他的程序員有個很本質的區別在於,他們對於技術的敏感度與直覺非常牛逼的同時還愛折騰。所以我多少有點自卑,雖然我自認對於技術有一定的敏感度,但現在真的不太愛折騰了(可能是老了),所以不會像黑客那樣拿著台裝著各種自己整出來的 Linux 系統隨身帶著機械鍵盤(別人拿到他們的電腦一定一臉懵逼),而是轉向使用全陣營蘋果。BTW,Android 的可玩性比 iOS 也高多了。話說回來,黑客其實也不太算一個方向,如果你有天賦並且手裡有電腦,互聯網那麼發達的環境自然而然地你就會成為黑客,犯不著去追——追也追不上;而如果真的有這方面的天賦,自然而然地你就會受到技術和信息的感召,喜歡上命令行、純文本、各種各樣的腳本、以及看不完的磚頭書,然後以旁人無法想像的速度汲取知識以及實踐。如果真想成為黑客,先嘗試以受虐狂一樣的態度喜歡上技術吧。但另一方面,黑客基本上多少都會跨界到前端,因為前端的代碼太容易分發了,而且有個瀏覽器就能跑,而且這個年代有挺多問題上有界面還是比純命令行要好的。鑒別黑客倒似乎挺容易的,問問他怎麼看待命令行——黑客一般能命令解決的問題就無需界面。這似乎與前端有一定的衝突,畢竟前端就是寫頁面的;但另一方面而言,前端作為黑客是很有可能寫出更像命令行的 WEB 界面的,而且其實對於解決問題說不定更加高效而專業,畢竟很多時候真的無需那麼漂亮的精美的界面的,語言永遠比界面更加可擴展。
不知道從什麼時候開始,技術圈也有了傳教士這樣的角色。其實也合乎常理,技術其實也是個社會,並不是那麼死板,反而有著很多宗教信仰——比如 Python 顯然有著信仰,從他用 import this 可以出來 The Zen of Python 就可看出。就算同一門語言里也可能為不同的框架或者庫吵得不可開交。但有一點可以確認,技術和人都是很需要營銷的,而有些人很擅長這個,前端也不少。我剛入行的時候就感覺,互聯網上前端寫的 Blog 似乎比其他語言的都多,可能因為做的就是界面,所以更有表達欲吧。但可惜,有深入思考的文字就比較少了,至少不如其他語言的,也可能是職業病——前端總要寫出能照顧新手的界面。但這也不妨礙挺多人就算寫些不是那麼深入的東西也依然可以獲得成就,畢竟現在是個做了什麼都得靠嘴說或者手寫的年代,這類人似乎也都過得挺滋潤的,混得好的還能成為精神領袖到處演講。我自認為還是有深入思考的,但好像我還是有些吹毛求疵,比如這篇文章之前已經有四個月沒寫專欄了,其實也寫了不少東西,但半成品我就不太願意拿出手,而且寫東西還容易離題,可惜還是比較難糾正過來。所以,這活也不是誰都做得來的,如果想嘗試,可以試試從每周寫篇東西開始,郵件、PPT 還是博客都無所謂,如果能堅持下去多少還是會有成效的, 君不見我這三天打魚兩天篩網的專欄不也有了一千多的關注。
還有個很危險的信號是,關於前端基礎以及基石的討論和嘗試似乎一直很少,至少不像前幾年 HTML5 爆發時期說得那麼多了。比如 DOM 的基礎討論變少了,大概是因為 VDOM 盛行;WebAssembly 好像並沒有看到有太扎眼的表現,希望大牛們還在醞釀;傳統的、無需 webpack 的 HTML / CSS / JS 也越來越少人嘗試,可能因為覺得不用下框架和打包器以後可能都不好找工作了,但其實很多人壓根都不知道為什麼要用哪些,同時還導致了 seajs / requirejs / systemjs 等模塊載入器的式微。其實整個環境與前幾年已經有很大區別了,HTTP2 / ES6 新特性不是吃素的,瀏覽器支持情況也已經完全不一樣了,其實早該 rethink 和做些實驗了,可惜也沒太多人關注。
可能最後得再把話題拉扯回來,因為這種口吻雖然我寫得是過癮但好像很多人會認為這是在到處亂噴,甚至有人認為我是在以其他身份去噴前端。天可憐見,是不是真的大多數程序員都沒什麼幽默感和自嘲精神?然而評論里好像也看不到大家究竟對什麼內容比較認同或者敏感,這也是專欄作家的痛苦之一。
總的來說!總的來說!很多行業現在都得想辦法橫著走出去尋找突破,雖然跨界這個問題是老生常談。
但我認為前端比其他行業更需要橫行出去。原因在於什麼呢,大概在於前端本身就和太多其他東西牽扯過深。也可能在於,幾乎所有行業都能容納 T 字人才,但有些行業 1 字型人才卻很難生存。但話說回來這可能也只是我的錯覺,可能每個行業都在尋思著同樣的問題,1 字人才不管怎樣從大環境來說肯定都是稀缺,但不得不說 1 字人才要找到一個合適的土壤紮根生長,太難,大多數浮躁的人都能過得比他們好。
橫行的前端,橫行到哪裡去?只要跟前端有牽扯的都能去,產品、設計、後端、測試、運維、運營、分析……甚至連跨兩個界到商務、金融,甚至醫學、文學、飲食、演講什麼的都行,反正得想辦法連接起來。若說前端有什麼捷徑,這就是條捷徑。我們該怎麼看待捷徑?那就是另一個問題了。
推薦閱讀:
※VuePress 快速踩坑
※奇舞周刊第 249 期:優雅的 Git Commit Message
※淺學Ajax
※React源碼分析 - 組件初次渲染
※【aux】使用油猴腳本改進sketch measure
TAG:前端開發 |