除非你像我一樣學程序語言只是為了到處獻寶,否則你在學一套程序語言前,應該先仔細評估到底要學哪一套。每個程序語言的用途都有很大的差異,走了冤枉路可能會耽誤到計畫實作的進程。
我大致上把程序語言分成五類,分述如下:
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 著手,等到程序基礎觀念建立得差不多了,再往下學習直譯式語言,然后再學習混合式語言 ...,以此類推。
希望這篇文章能解決讀者們選擇程序語言的困擾
看完這篇文章,我覺得自己的學習經歷真的很搞笑,上大學最先學的是C++,接著學了一年的C#,后來接觸了Javascript,現在又在學Java。弄了半天我是越學越簡單了,哈哈~~~~~~~