新聞來源:InfoWorld,編譯:大愛資料
從Node.js到C++,看他們的發明者是如何評價他們的語言的未來。
Ryan Dahl:Node.js
問:它的主要優勢是什麼?
Dahl:Node與其他的語言有一點明顯的區別,就是處理I/O。所以它永遠不允許使用者鎖上程式。它要求使用者不斷的處理新事物,因此它很適用於網路程式設計。在你的伺服器上要與很多人打交道,你必須處理連結。Node鼓勵人們用非阻塞的模式。由於這個特性,你會發現Node在開發伺服器上比傳統程式語言更加方便。
Guido van Rossum:Python
問: 為什麼有人批評Python太慢?
Van Rossum:有些時候,你要完成的系統某一小部分,而這一部分卻花費你幾乎所有的時間。如果你寫的只是一個簡單的排序,用Python來完成的話,那這會成為系統的瓶頸。這裡最好要用高效的語言來取代之,比如C和C++。
問:你的語言不斷髮展的目標是什麼?
Matsumoto:我的目標就是讓程式設計師更開心。目前Web程式設計師已經很開心了,但不夠,我希望可以幫助更多的程式設計師。如嵌入式的,還有高效能程式的程式設計師。我目前正在開發Ruby語言的子集,主要應用於移動裝置,打算明年年初將它公開。
問:我們為什麼要用Kotlin,我們已經有Groovy或者JRuby
Jemerov:Grooby和JRuby是動態型別語言,如果你在開發中小型web程式,這2者確實是很不錯的選擇。但如果你要開發更復雜,更高性,高頻率互動的程式的時候,Kotlin這個靜態型別語言會更適合你。
問:你當初發明Scala的目的是什麼?
Odersky:我很好奇,是否可以將函式式和麵向物件程式設計結合成一個包,給開發人員提供一個強大的語言,讓人感覺他有很強的互補性。函數語言程式設計感覺非常清爽,而且實用,它可以輕易構造簡單的元素。而物件導向對於大型系統來說有很好的故事背景。總之我覺得把這2者相結合,是Scala的成功原因之一。
Bjarne Stroustrup:C++
問:什麼時候一個程式設計師應該選擇本地化語言,什麼時候選擇基於虛擬機器的語言?
Stroustrup:C++在基礎架構方面有無與倫比的優勢。換句話說,在效能,可靠性,資源,複雜性方面都有嚴格的要求。例如,你不會用javascript寫javascript引擎,你也不會用C++去寫簡單的web應用。你會用C++構造谷歌,亞馬遜,Facebook的基礎,但不是頂層。C++在伺服器市場和移動裝置上有很強的優勢。
Lars Bak:Dart
問: 據我所知,Dart實際上是編譯為JavaScript,那為什麼不直接用JavaScript呢?
Bak:因為我們有….Dart虛擬機器,可以更快的執行和啟動。JavaScript給我的印象是大的應用中需要很長的時間來啟動。如果你擁有了Dart虛擬機器,那你可以將程式啟動提速10倍。如今我們看到Web應用變得越來越大,越來越廣泛,啟動的速度是很重要的。
Stefan Karpinski:Julia
問:你發明Julia的目的是什麼?
Karpinski:在09的時候,當我們談論到技術開發過程中遇到的挫折的時候,主要提到了不同的事情需要不同的語言來做。發明Julia的想法就是為了高效。它是一種動態語言,非常簡單的程式設計模型。但它有極高的效率。對於Matlab,R和NumPy,有時候你得轉換為C語言才能獲得高效的效能。但如果你使用Julia,你完全不必轉換。
Rich Hickey :Clojure
問:你發明Clojure的目的是什麼?
Hickey:我的目的是為JVM發明一種動態的,函數語言程式設計語言。我以前都用C#和Java來開發大型系統,但在那些語言當中函數語言程式設計很不適用。我想有一種地道的函數語言程式設計的語言,那就是Clojure。他們可以快速的編寫小型程式,這對那些創業型企業來說是再合適不過了。