电脑技术学习

你该学什么程序语言?

dn001
内容: 除非你像我一样学程序语言只是为了到处献宝,否则你在学一套程序语言前,应该先仔细评估到底要学哪一套。每个程序语言的用途都有很大的差异,走了冤枉路可能会耽误到计画实作的进程。
我大致上把程序语言分成五类,分述如下:

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 的前途似乎很不看好。

Compiling Languages(编译式语言)
C/C++,Delphi(Object Pascal)都是编译式语言。这几年来,C++ 已经变得越来越庞大了,大多数的 C++ 程序员只用到(也只懂)C++ 功能的一小部份。想成为 C++ 语言真正的高手,没有耗上三五年是不可能的。虽然 C++ 很复杂,但是真正想成为程序高手的人应该都要懂 C/C++,重要的 API 都会有 C/C++ 的版本,由此可见 C/C++ 的重要性。至于 Delphi,在 Microsoft .NET 推出之后会对 Delphi 造成一些打击(Microsoft .NET 的语言名单中连 Scheme、Eiffel 和 Mercury 这种少用的语言都出现了,独缺 Delphi),但是 Delphi 能透过 Kylix 来跨越 Windows 和 Linux,又是一个很大的吸引力,如果你想要跨 Linux 和 Windows 平台的 RAD 工具(语言),目前 Delphi 似乎是最好的选择。

Assembly Languages(汇编语言)
使用汇编语言,你将尝试到一砖一瓦堆砌出程序的乐趣(或痛苦)。汇编语言可以说是最接近硬件的语言,学会汇编语言,就可以对计算机的运作有相当程度的了解。不过,目前连开发驱动程序都不太需要用到汇编语言了。恐怕只有做 DSP 和 OS 等极少部份的人需要用到汇编语言。我也好久没写汇编程序了,以前 DOS 时代,我还用汇编语言写过一个 PE 2。

程序语言学习顺序的建议
通常 Web Script 最简单,直译式语言其次,接着是混合式语言,和编译式语言,最麻烦的是汇编语言。如果你完全没有程序经验,想开始学程序设计的话,你可以从 javascript 着手,等到程序基础观念建立得差不多了,再往下学习直译式语言,然后再学习混合式语言 ...,以此类推。
希望这篇文章能解决读者们选择程序语言的困扰 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd 除非你像我一样学程序语言只是为了到处献宝,否则你在学一套程序语言前,应该先仔细评估到底要学哪一套。每个程序语言的用途都有很大的差异,走

标签: