除非你像我一样学程序语言只是为了到处献宝,否则你在学一套程序语言前,应该先仔细评估到底要学哪一套。每个程序语言的用途都有很大的差异,走了冤枉路可能会耽误到计画实作的进程。
我大致上把程序语言分成五类,分述如下:
Web Page Script Languages
用来做网页的语言,可以对网页做控制。如果你希望设计出很炫的网页,光靠 HTML 是不够的,你还得学一套 Web Page Script Language,比方说 JavaScript(ECMAScript)和微软的 JScript。不过两者都是系出同门,所以差不多。WML Script(WAP 手机的 script)也是袭自 JavaScript。
许多人知道我不会 JavaScript 之后,都会大吃一惊地反问:「可是你不是会 Java,怎么不顺便学 JavaScript,两个语言不是差不多」。如果依照此推理,我看我差不多每个语言都要学了,因为除了 REBOL 和汇编语言比较特殊之外,我觉得其它语言的语法都差不多(但用途差很多)。
不过我最近的确是有打算开始学 JavaScript,因为我发现用到它的机会还不少。除了网页会用到之外,我最近所接触的 SVG(Scalable Vector Graphics)就使用 JavaScript 来达到动画效果。
Interpreted Languages(直译式语言)
这类直译式的语言包括了 Perl、Python、REBOL、Ruby... 等,也常被称为 script 语言,通常是用来取代批次档和 shell script 以便和底下的操作系统沟通。基本上,每个人至少都应该要会一套这类的语言,当你需要做某件简单的工作,你可以透过直译式的语言来轻易地办到,这么一来,你就可以不必大张旗鼓地使用 Java 和 C++ 等工具了。
直译式的语言通常比较高阶,程序比较好写,往往简短地几行程序就抵得过 Java 或 C++ 的一堆程序代码。因为不用编译而且高阶,所以这类语言的程序效率通常很差,又因为原始程序代码暴露在外,所以拿它来写写工具程序自己用可以,但是拿来开发软件产品比较不恰当(除非你不在乎原始码外流)。目前这类语言最常被用来开发网页服务器端的程序,或者是设计软件的 prototype。
Python 有一些不错的语言特性,目前在国外算是满热门的;Ruby 是日本一位教授设计的,但是这语言太新了,目前好象只有 Addison Wesley 的一本英文书和 O'Reilly 的一本日文书可供参考;REBOL 则是我近期最喜欢的程序语言,非常特别,REBOL 语言的思维和别的语言差异非常大,许多时候很接近英文句子。至于 Perl,我就没有研究了,台湾欧莱礼公司已经有 Perl 的专家了,如果我现在去学 Perl 的话,短期内是不可能超越他的,所以我看算了 :(
Hybrid Languages(混合式语言)
Java,C# 都是混合式语言,介于直译式语言和编译式语言之间(不管是在执行效能上或程序简单性上)。
C# 的语言有许多奇怪的特色,但也有一些不错的特色。C# 的学习使用上的难度介于 Java 和 C/C++ 之间。C# 是 Microsoft .NET 平台上最重要的语言,值得我们持续观察其后续发展。至于 Java 我就不用多说了,相信 Sleepless in Java 的读者们应该都知道 Java 是怎么一回事。
至于 Visual Basic,在 .NET 平台主推 C# 语言,而 VisualBasic .NET 的语言又比以前复杂许多的情况下, Visual Basic 的前途似乎很不看好。