我對技術潮流的一點看法

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/d4/d4af20bce2f407f24e8b2effb03726fc.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"最近跟一位朋友交流關於技術的發展,這不禁促進我對技術潮流的思考。以下只是我的個人觀點,有不同意見歡迎交流和探討。","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"未來不會出現全棧逆襲","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"經常會聽到 javascript 要統一前後端,全棧會再次出現,針對這個觀點我個人是持否定態度的,因爲全棧再次出現是不符合市場規律:正是因爲社會的發展需求才會帶來精細化分工協作,分工的本質也是爲了提高生產效率,關於這點在亞當斯密的《國富論》中第1篇反覆提到過的理論,我就不重複了,不僅僅全棧不會逆襲,前端,後端還會衍生出更多的精細化分工崗位的出現,例如 算法崗,大數據,SRE,DevOps,DBA,App,小程序開發等等細節技術崗位","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"主流技術很少會變化","attrs":{}}]},{"type":"horizontalrule","attrs":{}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我對技術和工具的看法是這樣的,","attrs":{}},{"type":"text","marks":[{"type":"strong","attrs":{}}],"text":"主流技術很少會變化","attrs":{}},{"type":"text","text":",","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"每年關注 TIOBE 的排行榜發現一個有趣的現象,頭部的幾個主流的技術棧基本是恆古不變的,是會有一些細微的競爭,但是不會有大的變化,例如:C/C++/Java但是底部的其他語言變化是比較大的,經常有其他語言加入進來,也有其他語言排名下降出局。例如:C#/.Net/PHP/Groovy/Dart 等等…","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"其實技術的潮流,就非常類似我們看到的世界 500強的排名,頭部的公司永遠是那幾家,例如:微軟、蘋果、亞馬遜、谷歌,Facebook 等,反倒是排名越靠後的變化越大。其實編程語言也遵循經濟市場的運行規則,就是 ","attrs":{}},{"type":"text","marks":[{"type":"strong","attrs":{}}],"text":"馬太效應,強者恆強","attrs":{}},{"type":"text","text":"。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲什麼這麼說 ?","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"因爲越是流行的編程語言,會吸引開發者的使用,那麼就有更多的開發者爲他貢獻工具庫、文檔、插件、開發工具等,豐富它的生態,因爲生態的豐富,帶來使用的方便,從而會吸引更多的新人,包括學校也會選擇它作爲教學語言,爲它源源不斷的貢獻開發者的,這就是爲什麼說技術潮流是馬太效應,強者恆強的本質。因爲它的生態建立起來後是很難被替換的。","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"什麼情況下會發生變化 ?","attrs":{}}]},{"type":"horizontalrule","attrs":{}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果只是在同緯度競爭,那麼主流的技術不太會出現很大的變化,例如:現在出了一個新的後端編程語言,性能比 Java 快,你覺得大家會換技術嗎?很多人是不會換的,爲什麼 ?因爲僅僅是一些性能的優化,語法的優化,也很難讓大家放棄現有的生態環境,例如 Go 現在就面臨這種情況,性能很好,語法也很好,但是不可能替代 Java,因爲它的生態是沒辦法超越 Java,他們只能在不同維度存在,避開競爭關係。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"就是說如果你想要相同賽道去競爭超過巨頭,基本是不可能,就算你能做出更好的搜索引擎,你也不可能替代 Google,你能做出更好用的手機,你也不可能替代蘋果,類似案例,不勝枚舉。。除非新的競爭者是從其他維度過來,進行的降維打擊,例如特斯拉(新能源,航空領域),這就是爲什麼Go 爲什麼只能在 PaaS 層發揮自己的作用了。在相同賽道上應用層是很難和 Java 競爭的。想想當年的 Plan9 想要通過實現一個更好的操作系統來替換 UNIX 最終失敗就是一個很好的例子。","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"就是現在有一家公司推出一臺新手機,價格更便宜,性能比 iPhone 更快,但是因爲它是新的系統,沒有 App Store,所有軟件需要重寫和遷移,那麼我相信只有小部分的人才敢於去使用,而且不會作爲主力機(生產環境)來使用。但是你會說給他一些時間,他的生態會慢慢建立起來,例如 Go,但是不同的是,那些主流的技術他們不會等待,他們也在完善自己的生態,只有很低的概率會被超越。","attrs":{}}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"技術迭代的三個必要條件","attrs":{}}]},{"type":"horizontalrule","attrs":{}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"新的技術必須是要從三個維度全面的碾壓,纔有可能替代現在的流行技術方案:","attrs":{}}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"numberedlist","attrs":{"start":1,"normalizeStart":1},"content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"近乎碾壓的性能和效率, 例如蘋果 M1 芯片的效率和功耗比,近乎碾壓英特爾的芯片","attrs":{}}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"差不多的生態:光有性能,幾乎不可能讓大家去遷移,在新的技術上必須要有幾乎相同生態環境和工具使用,這也是爲什麼蘋果花那麼大力氣開發 rosetta 2 的原因,就是爲了把英特爾的生態遷移過來","attrs":{}}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":3,"align":null,"origin":null},"content":[{"type":"text","text":"大公司的長期的資金支持和信用背書,這個就不多說了。例如 Go 語言背靠 Google ,M1 背靠蘋果,Java 背靠 Oracle 等等,很多技術理念很先進,但是因爲缺乏大公司的支持而失敗的不勝枚舉","attrs":{}}]}]}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"最後總結","attrs":{}}]},{"type":"horizontalrule","attrs":{}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"所以基於以上的結論,我認爲起碼未來10年內不會出現全棧逆襲,主流技術也不會發生大的變化。人們總是說技術是多變的,但是變化的都是那些不成熟的技術,主流成熟的技術是很少變化的,例如:C/C++/Java/Javascript,從目前的行業趨勢來看(TY,Java,Go,Rust),我願意相信未來會是強類型,靜態編譯型的天下,性能什麼的還好,代碼的可讀性對於團隊協作真的太重要了。所以我的結論是,儘量選擇主流的技術棧和遵循行業的選擇,這樣風險更小,而且在生態的加持在也會讓你的應用更加的健壯。隨意不要盲目去追尋新潮和炫酷的新技術,用好成熟和主流的技術棧纔是一個工程師對產品和系統質量負責的態度。","attrs":{}}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章