除非你像我一樣學(xué)程序語言只是為了到處獻(xiàn)寶,否則你在學(xué)一套程序語言前,應(yīng)該先仔細(xì)評(píng)估到底要學(xué)哪一套。每個(gè)程序語言的用途都有很大的差異,走了冤枉路可能會(huì)耽誤到計(jì)畫實(shí)作的進(jìn)程。
我大致上把程序語言分成五類,分述如下:
Web Page Script Languages
用來做網(wǎng)頁的語言,可以對(duì)網(wǎng)頁做控制。如果你希望設(shè)計(jì)出很炫的網(wǎng)頁,光靠 HTML 是不夠的,你還得學(xué)一套 Web Page Script Language,比方說 javascript(ECMAScript)和微軟的 JScript。不過兩者都是系出同門,所以差不多。WML Script(WAP 手機(jī)的 script)也是襲自
javascript。
許多人知道我不會(huì) javascript 之后,都會(huì)大吃一驚地反問:「可是你不是會(huì) Java,怎么不順便學(xué) javascript,兩個(gè)語言不是差不多」。如果依照此推理,我看我差不多每個(gè)語言都要學(xué)了,因?yàn)槌?REBOL 和匯編語言比較特殊之外,我覺得其它語言的語法都差不多(但用途差很多)。
不過我最近的確是有打算開始學(xué) javascript,因?yàn)槲野l(fā)現(xiàn)用到它的機(jī)會(huì)還不少。除了網(wǎng)頁會(huì)用到之外,我最近所接觸的 SVG(Scalable Vector Graphics)就使用 javascript 來達(dá)到動(dòng)畫效果。
Interpreted Languages(直譯式語言)
這類直譯式的語言包括了 Perl、Python、REBOL、Ruby... 等,也常被稱為 script 語言,通常是用來取代批次檔和 shell script 以便和底下的操作系統(tǒng)溝通。基本上,每個(gè)人至少都應(yīng)該要會(huì)一套這類的語言,當(dāng)你需要做某件簡(jiǎn)單的工作,你可以透過直譯式的語言來輕易地辦到,這么一來,你就可以不必大張旗鼓地使用 Java 和 C++ 等工具了。
直譯式的語言通常比較高階,程序比較好寫,往往簡(jiǎn)短地幾行程序就抵得過 Java 或 C++ 的一堆程序代碼。因?yàn)椴挥镁幾g而且高階,所以這類語言的程序效率通常很差,又因?yàn)樵汲绦虼a暴露在外,所以拿它來寫寫工具程序自己用可以,但是拿來開發(fā)軟件產(chǎn)品比較不恰當(dāng)(除非你不在乎原始碼外流)。目前這類語言最常被用來開發(fā)網(wǎng)頁服務(wù)器端的程序,或者是設(shè)計(jì)軟件的 prototype。
Python 有一些不錯(cuò)的語言特性,目前在國外算是滿熱門的;Ruby 是日本一位教授設(shè)計(jì)的,但是這語言太新了,目前好象只有 Addison Wesley 的一本英文書和 O'Reilly 的一本日文書可供參考;REBOL 則是我近期最喜歡的程序語言,非常特別,REBOL 語言的思維和別的語言差異非常大,許多時(shí)候很接近英文句子。至于 Perl,我就沒有研究了,臺(tái)灣歐萊禮公司已經(jīng)有 Perl 的專家了,如果我現(xiàn)在去學(xué) Perl 的話,短期內(nèi)是不可能超越他的,所以我看算了 :(
Hybrid Languages(混合式語言)
Java,C# 都是混合式語言,介于直譯式語言和編譯式語言之間(不管是在執(zhí)行效能上或程序簡(jiǎn)單性上)。
C# 的語言有許多奇怪的特色,但也有一些不錯(cuò)的特色。C# 的學(xué)習(xí)使用上的難度介于 Java 和 C/C++ 之間。C# 是 Microsoft .NET 平臺(tái)上最重要的語言,值得我們持續(xù)觀察其后續(xù)發(fā)展。至于 Java 我就不用多說了,相信 Sleepless in Java 的讀者們應(yīng)該都知道 Java 是怎么一回事。
至于 Visual Basic,在 .NET 平臺(tái)主推 C# 語言,而 VisualBasic .NET 的語言又比以前復(fù)雜許多的情況下, Visual Basic 的前途似乎很不看好。
Compiling Languages(編譯式語言)
C/C++,Delphi(Object Pascal)都是編譯式語言。這幾年來,C++ 已經(jīng)變得越來越龐大了,大多數(shù)的 C++ 程序員只用到(也只懂)C++ 功能的一小部份。想成為 C++ 語言真正的高手,沒有耗上三五年是不可能的。雖然 C++ 很復(fù)雜,但是真正想成為程序高手的人應(yīng)該都要懂 C/C++,重要的 API 都會(huì)有 C/C++ 的版本,由此可見 C/C++ 的重要性。至于 Delphi,在 Microsoft .NET 推出之后會(huì)對(duì) Delphi 造成一些打擊(Microsoft .NET 的語言名單中連 Scheme、Eiffel 和 Mercury 這種少用的語言都出現(xiàn)了,獨(dú)缺 Delphi),但是 Delphi 能透過 Kylix 來跨越 Windows 和 Linux,又是一個(gè)很大的吸引力,如果你想要跨 Linux 和 Windows 平臺(tái)的 RAD 工具(語言),目前 Delphi 似乎是最好的選擇。
Assembly Languages(匯編語言)
使用匯編語言,你將嘗試到一磚一瓦堆砌出程序的樂趣(或痛苦)。匯編語言可以說是最接近硬件的語言,學(xué)會(huì)匯編語言,就可以對(duì)計(jì)算機(jī)的運(yùn)作有相當(dāng)程度的了解。不過,目前連開發(fā)驅(qū)動(dòng)程序都不太需要用到匯編語言了。恐怕只有做 DSP 和 OS 等極少部份的人需要用到匯編語言。我也好久沒寫匯編程序了,以前 DOS 時(shí)代,我還用匯編語言寫過一個(gè) PE 2。
程序語言學(xué)習(xí)順序的建議
通常 Web Script 最簡(jiǎn)單,直譯式語言其次,接著是混合式語言,和編譯式語言,最麻煩的是匯編語言。如果你完全沒有程序經(jīng)驗(yàn),想開始學(xué)程序設(shè)計(jì)的話,你可以從 javascript 著手,等到程序基礎(chǔ)觀念建立得差不多了,再往下學(xué)習(xí)直譯式語言,然后再學(xué)習(xí)混合式語言 ...,以此類推。
希望這篇文章能解決讀者們選擇程序語言的困擾
看完這篇文章,我覺得自己的學(xué)習(xí)經(jīng)歷真的很搞笑,上大學(xué)最先學(xué)的是C++,接著學(xué)了一年的C#,后來接觸了Javascript,現(xiàn)在又在學(xué)Java。弄了半天我是越學(xué)越簡(jiǎn)單了,哈哈~~~~~~~