看看9種編程語(yǔ)言的發(fā)明者是怎么說(shuō)的選擇就不要放棄!
從Node.js到C++,看他們的發(fā)明者是如何評(píng)價(jià)他們的語(yǔ)言的未來(lái)。
Ryan Dahl:Node.js
問(wèn):它的主要優(yōu)勢(shì)是什么?
Dahl:Node與其他的語(yǔ)言有一點(diǎn)明顯的區(qū)別,就是處理I/O。所以它永遠(yuǎn)不允許用戶鎖上程序。它要求用戶不斷的處理新事物,因此它很適用于網(wǎng) 絡(luò)編程。在你的服務(wù)器上要與很多人打交道,你必須處理鏈接。Node鼓勵(lì)人們用非阻塞的模式。由于這個(gè)特性,你會(huì)發(fā)現(xiàn)Node在開(kāi)發(fā)服務(wù)器上比傳統(tǒng)編程語(yǔ) 言更加方便。
Guido van Rossum:Python
問(wèn): 為什么有人批評(píng)Python太慢?
Van Rossum:有些時(shí)候,你要完成的系統(tǒng)某一小部分,而這一部分卻花費(fèi)你幾乎所有的時(shí)間。如果你寫(xiě)的只是一個(gè)簡(jiǎn)單的排序,用Python來(lái)完成的話,那這會(huì)成為系統(tǒng)的瓶頸。這里最好要用高效的語(yǔ)言來(lái)取代之,比如C和C++。
Yukihiro Matsumoto :Ruby
問(wèn):你的語(yǔ)言不斷發(fā)展的目標(biāo)是什么?
Matsumoto:我的目標(biāo)就是讓程序員更開(kāi)心。目前Web程序員已經(jīng)很開(kāi)心了,但不夠,我希望可以幫助更多的程序員。如嵌入式的,還有高性能程序的程序員。我目前正在開(kāi)發(fā)Ruby語(yǔ)言的子集,主要應(yīng)用于移動(dòng)設(shè)備,打算明年年初將它公開(kāi)。
Dmitry Jemerov:Kotlin
問(wèn):我們?yōu)槭裁匆肒otlin,我們已經(jīng)有Groovy或者JRuby
Jemerov:Grooby和JRuby是動(dòng)態(tài)類型語(yǔ)言,如果你在開(kāi)發(fā)中小型web程序,這2者確實(shí)是很不錯(cuò)的選擇。但如果你要開(kāi)發(fā)更復(fù)雜,更高性,高頻率交互的程序的時(shí)候,Kotlin這個(gè)靜態(tài)類型語(yǔ)言會(huì)更適合你。
Martin Odersky:Scala
問(wèn):你當(dāng)初發(fā)明Scala的目的是什么?
Odersky:我很好奇,是否可以將函數(shù)式和面向?qū)ο缶幊探Y(jié)合成一個(gè)包,給開(kāi)發(fā)人員提供一個(gè)強(qiáng)大的語(yǔ)言,讓人感覺(jué)他有很強(qiáng)的互補(bǔ)性。函數(shù)式編程感 覺(jué)非常清爽,而且實(shí)用,它可以輕易構(gòu)造簡(jiǎn)單的元素。而面向?qū)ο髮?duì)于大型系統(tǒng)來(lái)說(shuō)有很好的故事背景。總之我覺(jué)得把這2者相結(jié)合,是Scala的成功原因之 一。
Bjarne Stroustrup:C++
問(wèn):什么時(shí)候一個(gè)程序員應(yīng)該選擇本地化語(yǔ)言,什么時(shí)候選擇基于虛擬機(jī)的語(yǔ)言?
Stroustrup:C++在基礎(chǔ)架構(gòu)方面有無(wú)與倫比的優(yōu)勢(shì)。換句話說(shuō),在性能,可靠性,資源,復(fù)雜性方面都有嚴(yán)格的要求。例如,你不會(huì)用 java寫(xiě)java引擎,你也不會(huì)用C++去寫(xiě)簡(jiǎn)單的web應(yīng)用。你會(huì)用C++構(gòu)造谷歌,亞馬遜,F(xiàn)acebook的基礎(chǔ),但不 是頂層。C++在服務(wù)器市場(chǎng)和移動(dòng)設(shè)備上有很強(qiáng)的優(yōu)勢(shì)。
Lars Bak:Dart
問(wèn): 據(jù)我所知,Dart實(shí)際上是編譯為Java,那為什么不直接用Java呢?
Bak:因?yàn)槲覀冇?hellip;.Dart虛擬機(jī),可以更快的運(yùn)行和啟動(dòng)。Java給我的印象是大的應(yīng)用中需要很長(zhǎng)的時(shí)間來(lái)啟動(dòng)。如果你擁有了Dart虛擬機(jī),那你可以將程序啟動(dòng)提速10倍。如今我們看到Web應(yīng)用變得越來(lái)越大,越來(lái)越廣泛,啟動(dòng)的速度是很重要的。
Stefan Karpinski:Julia
問(wèn):你發(fā)明Julia的目的是什么?
Karpinski:在09的時(shí)候,當(dāng)我們談?wù)摰郊夹g(shù)開(kāi)發(fā)過(guò)程中遇到的挫折的時(shí)候,主要提到了不同的事情需要不同的語(yǔ)言來(lái)做。發(fā)明Julia的想法 就是為了高效。它是一種動(dòng)態(tài)語(yǔ)言,非常簡(jiǎn)單的編程模型。但它有極高的效率。對(duì)于Matlab,R和NumPy,有時(shí)候你得轉(zhuǎn)換為C語(yǔ)言才能獲得高效的性 能。但如果你使用Julia,你完全不必轉(zhuǎn)換。
Rich Hickey :Clojure
問(wèn):你發(fā)明Clojure的目的是什么?
Hickey:我的目的是為JVM發(fā)明一種動(dòng)態(tài)的,函數(shù)式編程語(yǔ)言。我以前都用C#和Java來(lái)開(kāi)發(fā)大型系統(tǒng),但在那些語(yǔ)言當(dāng)中函數(shù)式編程很不適 用。我想有一種地道的函數(shù)式編程的語(yǔ)言,那就是Clojure。他們可以快速的編寫(xiě)小型程序,這對(duì)那些創(chuàng)業(yè)型企業(yè)來(lái)說(shuō)是再合適不過(guò)了。