这是一个小练习,我希望你们所有做编程的都试一下。首先,依据你的专业技术(你对语言的掌握程度,不一定是你使用最久的),列出你最拿手的5种程序设计语言。我的是:
Synergy/DE
C/C++
Ruby
C#
PHP
接着,依据你过去使用的时间多少,列出前5种程序设计语言。我的是:
C/C++
Synergy/DE
PHP
Delphi
C#
最后,列出你最想使用的5种程序设计语言。我的是:
Ruby
ECMA
ScriptLisp (any flavor)
Haskell
Synergy/DE (version 9)
如你所见,在我使用时间最多的语言和我最想使用的语言之间有点脱节。我想这反映了行业的逐步转变。我们正处在后Java时代,此时代假设任何2进制语言将至少提供了一些对对象,自动资源回收,并安全地封装的指针的支持。这个时代的领导语言是多方面的典范:他们使面向对象的问题实用甚于正统,他们使功能编程风格起了作用。最佳处也是促进动态编程-这,简而言之,意味着运算等价。
因为是老家伙,我可以记起前Java时代(事实上它占了我的职业生涯的大部分!),我将称之为后Pascal时代。在那个时候,任何像样的编程语言提供了结构化编程工具。面向对象仍主要是理论家的特区,而不是应用程序开发人员。BEGIN-END 和 CASE 语句风靡一时,更遑论好的循环结构。外部函数被精简用作实用例程。虽然很多程序员意识到过多的使用函数可能使编程,可用内存,栈空间发生巨变,或者单纯旧体制滞后通常阻止这些观念付诸实现。
我禁不住想知道下一个是什么。Lisp当然已经展示功能编程的持久力,但今后有可能存在不止一个甚至更多的优秀范例吗?只有时间会告诉我们。