自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么我們不再發(fā)明編程語言了?

開發(fā) 前端
角為什么突然不長了?西紅柿為什么不好吃?園丁可能會換換土壤,可能會調(diào)整一下作物之間的距離,也有可能把豆角轉(zhuǎn)移到陽光充足的地方,或者少用些肥料?成功了!它們又開始茁壯成長了!

上個世紀(jì),數(shù)百種編程語言被發(fā)明出來,但是進(jìn)入21世紀(jì),當(dāng)我們都進(jìn)入互聯(lián)網(wǎng)時代時,只剩那么寥寥幾個了。 

如果你翻一下TIOBE得編程語言排行榜,就會發(fā)現(xiàn)20年來,上躥下跳的就是那幾張老面孔:C , Java, Python ,C++ , C#, JavaScript......

圖片

80年代后期,平均每個月就會出現(xiàn)一種新語言,現(xiàn)在,平均每年出現(xiàn)一個就不錯了。 

我有點好奇,就去扒了扒其他編程語言的出現(xiàn)時間,把他們分成了分為中生代、新生代和 老年代。 

先看中生代的家伙們,20多歲,30出頭,正是編程的中堅力量。

  • Python : 1991
  • Visual Basic :  1991
  • PHP : 1995
  • Ruby : 1995
  • Java : 1995
  • JavaScript : 1995
  • C# : 2000

(1995年還真是神奇的一年啊,幾位大佬同時誕生。)

再看這些老前輩,尤其是C語言,老而彌堅,屹立50年不倒,把系統(tǒng)級編程吃得死死的。

  • Lisp : 1958
  • Pascal : 1970
  • C : 1972
  • Objective-C : 1984
  • C++ :1985
  • Object Pascal : 1986

新生代則活力無限, 鋒芒畢露,對老家伙們虎視眈眈。

  • Go : 2009
  • Rust : 2010
  • Kotlin : 2011
  • Elixir : 2011
  • Julia : 2012
  • TypeScript : 2012
  • Swift : 2014

新生代只是它們想挑戰(zhàn)中生代的地位,搶班奪權(quán),希望渺茫。 

主要有這么幾個原因:

1.  編程范型沒有變化

還是老三樣:面向過程,面向?qū)ο螅?函數(shù)式。 

在馮諾依曼架構(gòu)下,恐怕也不會出現(xiàn)什么新的范型了吧。 

現(xiàn)在TIOBE排行前十的中生代語言完美涵蓋了這些范型,例如Java,剛誕生的時候支持面向?qū)ο螅呛髞硌a上了函數(shù)式這一課。

像Python、JavaScript一開始就支持面向?qū)ο蠛秃瘮?shù)式編程。

2. 開發(fā)領(lǐng)域

開發(fā)領(lǐng)域有桌面開發(fā)、Web開發(fā)、系統(tǒng)級軟件開發(fā)、后端開發(fā),數(shù)據(jù)分析,人工智能等。 

中生代的編程語言不但這些領(lǐng)域看得死死的,還互相擴(kuò)展,侵入對方的領(lǐng)地。 

其中最典型的就是JavaScript這個屌絲的逆襲,一開始不過是寄居在瀏覽器中的一個小語言,后來通過V8, Node.js竟然進(jìn)入了后端,還用Electron蠶食桌面開發(fā)!

Python也是,本來用它寫點兒小工具,開發(fā)點兒小網(wǎng)站,后來竟然傍上了人工智能這個大款,從此發(fā)達(dá)了。

3. 生態(tài)系統(tǒng)

Java , Python, JavaScript,C , C#等經(jīng)過這么些年的發(fā)展,哪個不是積累了海量的類庫,哪一個沒有龐大的生態(tài)系統(tǒng)?想動它們,沒有一場革命是絕對不行的。

新語言即使很好,但是看看那么多現(xiàn)有的代碼,誰敢輕易切換?

4. 時代的紅利

Java遇到了互聯(lián)網(wǎng),Python遇到了大數(shù)據(jù)和AI, JavaScript遇到了前端開發(fā), 時代的機(jī)遇讓它們爆炸式發(fā)展。 

Go的運氣不錯,遇到了云計算,強勢崛起。其他幾位想要出頭,那是相當(dāng)難了。

我曾經(jīng)悲觀地認(rèn)為:主流的編程語言已經(jīng)都被發(fā)明出來了! 

以后新出現(xiàn)的語言都是改進(jìn),改良,沒法鬧革命翻身了。 

舉個不恰當(dāng)?shù)谋扔鳎?C, Java, Python, JavaScript,C# , C++, PHP 就像現(xiàn)在的西方七國集團(tuán),牢牢占據(jù)著最大的市場,然后只要有新人冒出來,就會受到無情的打擊。就像現(xiàn)在中國想技術(shù)突破,被美國和西方不擇手段地打壓一樣。 

圖片圖片

但是也并不絕對,就像中國一定要向上突破一樣,我看到在系統(tǒng)編程領(lǐng)域,也有一個新星冉冉升起:Rust。

圖片圖片

Rust雖然沒有發(fā)明新東西,但是卻融合了多種語言的特性和多種編程泛型,它不但包含了上面說的三大編程范式,還集結(jié)了泛型、底層內(nèi)存管理、所有權(quán)等特性,可以說是一個集大成者(這也恰恰是它學(xué)習(xí)曲線陡峭的原因)。

Rust是一門同時追求安全、并發(fā)和性能的現(xiàn)代系統(tǒng)級編程語言,有望挑戰(zhàn)C語言的地位。

當(dāng)然,編程語言少,對程序員來說是好事,程序員可以少學(xué)一點東西,少掉幾根頭發(fā)。

最后再聊聊人工智能時代的編程問題,我在《天才程序員》中看到一個有趣的比喻,說普通的編程就像循規(guī)蹈矩的機(jī)械裝置,機(jī)器會一板一眼地去執(zhí)行,程序員在邏輯的宮殿中穿行,沿著頭腦中的路線行走,一切都有章可循。

但是訓(xùn)練神經(jīng)網(wǎng)絡(luò)就完全不同,程序員和程序之間更像園丁與田園的關(guān)系。

圖片圖片

豆角為什么突然不長了?西紅柿為什么不好吃?園丁可能會換換土壤,可能會調(diào)整一下作物之間的距離,也有可能把豆角轉(zhuǎn)移到陽光充足的地方,或者少用些肥料?成功了!它們又開始茁壯成長了!

園藝技能的長進(jìn)有賴于數(shù)之不盡的實驗和來之不易的經(jīng)驗。很多新手園丁栽種的第一批作物要么長不好,要么就死了。但最終,經(jīng)過不斷試錯(和借鑒同行的經(jīng)驗),園丁們會積累更多知識,形成難以言傳的直覺,比如什么有效,什么無效。此時,如果你帶他們?nèi)バ碌奶飯@,即便那里的土壤和光照條件完全不同,他們也可以很快弄清楚哪些作物更適合在此處栽種。

看到了吧,雖然編程技能必不可少,但是重點變成了收集數(shù)據(jù),不斷訓(xùn)練,不斷調(diào)整,然后“祈禱”程序奏效。

不知道這是程序員的幸運呢,還是不幸?

如需轉(zhuǎn)載,請通過作者微信公眾號coderising獲取授權(quán)。

責(zé)任編輯:武曉燕 來源: 碼農(nóng)翻身
相關(guān)推薦

2022-12-12 07:30:59

編程語言架構(gòu)

2016-09-27 21:25:08

Go語言Ken Thompso

2018-05-30 14:49:51

編程語言API語法

2021-12-27 14:19:44

殺毒軟件病毒電腦安全

2014-04-09 10:08:06

FacebookHack

2012-04-11 09:19:08

Haskell編程

2020-06-10 09:06:48

MongoDB架構(gòu)高可用

2023-12-05 09:03:05

多核分布式

2010-11-03 09:22:00

C語言

2021-03-25 16:01:11

編程語言CPU機(jī)器語言

2021-03-26 06:00:37

編程語言CPU

2021-04-09 09:55:55

DockerGoLinux

2016-09-21 20:28:55

阿里巴巴IOE

2017-03-07 15:43:28

編程語言函數(shù)數(shù)據(jù)結(jié)構(gòu)

2014-11-19 10:05:26

編程

2014-07-02 09:56:33

2015-04-08 10:46:11

2021-08-02 15:30:07

編程語言Java自然語言

2012-08-29 14:00:23

2017-02-07 09:37:46

點贊
收藏

51CTO技術(shù)棧公眾號