编程语言

从 Node.js 到C++,看他们的发明者是如何评价他们的语言的未来。

Guido van Rossum:Python

问: 为什么有人批评 Python 太慢?

Van Rossum:有些时候,你要完成的系统某一小部分,而这一部分却花费你几乎所有的时间。如果你写的只是一个简单的排序,用 Python 来完成的话,那这会成为系统的瓶颈。这里最好要用高效的语言来取代之,比如C和C++。

Yukihiro Matsumoto :Ruby

问:你的语言不断发展的目标是什么?

Matsumoto:我的目标就是让程序员更开心。目前 Web 程序员已经很开心了,但不够,我希望可以帮助更多的程序员。如嵌入式的,还有高性能程序的程序员。我目前正在开发 Ruby 语言的子集,主要应用于移动设备,打算明年年初将它公开。

Dmitry Jemerov:Kotlin

问:我们为什么要用 Kotlin,我们已经有 Groovy 或者 JRuby

Jemerov:Grooby 和 JRuby 是动态类型语言,如果你在开发中小型 web 程序,这 2 者确实是很不错的选择。但如果你要开发更复杂,更高性,高频率交互的程序的时候,Kotlin 这个静态类型语言会更适合你。

Martin Odersky:Scala

问:你当初发明 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。他们可以快速的编写小型程序,这对那些创业型企业来说是再合适不过了。 

Ryan Dahl:Node.js

问:它的主要优势是什么?

Dahl:Node 与其他的语言有一点明显的区别,就是处理I/O。所以它永远不允许用户锁上程序。它要求用户不断的处理新事物,因此它很适用于网络编程。在你的服务器上要与很多人打交道,你必须处理链接。Node 鼓励人们用非阻塞的模式。由于这个特性,你会发现 Node 在开发服务器上比传统编程语言更加方便。