rosial

          lost memory
          數(shù)據(jù)加載中……

          《爪哇夜未眠》- 程序設(shè)計(jì)學(xué)習(xí)篇 - 你該學(xué)什么程序語(yǔ)言?

          除非你像我一樣學(xué)程序語(yǔ)言只是為了到處獻(xiàn)寶,否則你在學(xué)一套程序語(yǔ)言前,應(yīng)該先仔細(xì)評(píng)估到底要學(xué)哪一套。每個(gè)程序語(yǔ)言的用途都有很大的差異,走了冤枉路可能會(huì)耽誤到計(jì)畫(huà)實(shí)作的進(jìn)程。

          我大致上把程序語(yǔ)言分成五類(lèi),分述如下:

          Web Page Script Languages

          用來(lái)做網(wǎng)頁(yè)的語(yǔ)言,可以對(duì)網(wǎng)頁(yè)做控制。如果你希望設(shè)計(jì)出很炫的網(wǎng)頁(yè),光靠 HTML 是不夠的,你還得學(xué)一套 Web Page Script Language,比方說(shuō) JavaScript(ECMAScript)和微軟的 JScript。不過(guò)兩者都是系出同門(mén),所以差不多。WML Script(WAP 手機(jī)的 script)也是襲自 JavaScript。

          許多人知道我不會(huì) JavaScript 之后,都會(huì)大吃一驚地反問(wèn):「可是你不是會(huì) Java,怎么不順便學(xué) JavaScript,兩個(gè)語(yǔ)言不是差不多」。如果依照此推理,我看我差不多每個(gè)語(yǔ)言都要學(xué)了,因?yàn)槌?REBOL 和匯編語(yǔ)言比較特殊之外,我覺(jué)得其它語(yǔ)言的語(yǔ)法都差不多(但用途差很多)。

          不過(guò)我最近的確是有打算開(kāi)始學(xué) JavaScript,因?yàn)槲野l(fā)現(xiàn)用到它的機(jī)會(huì)還不少。除了網(wǎng)頁(yè)會(huì)用到之外,我最近所接觸的 SVG(Scalable Vector Graphics)就使用 JavaScript 來(lái)達(dá)到動(dòng)畫(huà)效果。

          Interpreted Languages(直譯式語(yǔ)言)

          這類(lèi)直譯式的語(yǔ)言包括了 Perl、Python、REBOL、Ruby... 等,也常被稱為 script 語(yǔ)言,通常是用來(lái)取代批次檔和 shell script 以便和底下的操作系統(tǒng)溝通?;旧?,每個(gè)人至少都應(yīng)該要會(huì)一套這類(lèi)的語(yǔ)言,當(dāng)你需要做某件簡(jiǎn)單的工作,你可以透過(guò)直譯式的語(yǔ)言來(lái)輕易地辦到,這么一來(lái),你就可以不必大張旗鼓地使用 Java 和 C++ 等工具了。

          直譯式的語(yǔ)言通常比較高階,程序比較好寫(xiě),往往簡(jiǎn)短地幾行程序就抵得過(guò) Java 或 C++ 的一堆程序代碼。因?yàn)椴挥镁幾g而且高階,所以這類(lèi)語(yǔ)言的程序效率通常很差,又因?yàn)樵汲绦虼a暴露在外,所以拿它來(lái)寫(xiě)寫(xiě)工具程序自己用可以,但是拿來(lái)開(kāi)發(fā)軟件產(chǎn)品比較不恰當(dāng)(除非你不在乎原始碼外流)。目前這類(lèi)語(yǔ)言最常被用來(lái)開(kāi)發(fā)網(wǎng)頁(yè)服務(wù)器端的程序,或者是設(shè)計(jì)軟件的 prototype。

          Python 有一些不錯(cuò)的語(yǔ)言特性,目前在國(guó)外算是滿熱門(mén)的;Ruby 是日本一位教授設(shè)計(jì)的,但是這語(yǔ)言太新了,目前好象只有 Addison Wesley 的一本英文書(shū)和 O'Reilly 的一本日文書(shū)可供參考;REBOL 則是我近期最喜歡的程序語(yǔ)言,非常特別,REBOL 語(yǔ)言的思維和別的語(yǔ)言差異非常大,許多時(shí)候很接近英文句子。至于 Perl,我就沒(méi)有研究了,臺(tái)灣歐萊禮公司已經(jīng)有 Perl 的專(zhuān)家了,如果我現(xiàn)在去學(xué) Perl 的話,短期內(nèi)是不可能超越他的,所以我看算了 :(


          Hybrid Languages(混合式語(yǔ)言)

          Java,C# 都是混合式語(yǔ)言,介于直譯式語(yǔ)言和編譯式語(yǔ)言之間(不管是在執(zhí)行效能上或程序簡(jiǎn)單性上)。

          C# 的語(yǔ)言有許多奇怪的特色,但也有一些不錯(cuò)的特色。C# 的學(xué)習(xí)使用上的難度介于 Java 和 C/C++ 之間。C# 是 Microsoft .NET 平臺(tái)上最重要的語(yǔ)言,值得我們持續(xù)觀察其后續(xù)發(fā)展。至于 Java 我就不用多說(shuō)了,相信 Sleepless in Java 的讀者們應(yīng)該都知道 Java 是怎么一回事。

          至于 Visual Basic,在 .NET 平臺(tái)主推 C# 語(yǔ)言,而 VisualBasic .NET 的語(yǔ)言又比以前復(fù)雜許多的情況下, Visual Basic 的前途似乎很不看好。

          Compiling Languages(編譯式語(yǔ)言)

          C/C++,Delphi(Object Pascal)都是編譯式語(yǔ)言。這幾年來(lái),C++ 已經(jīng)變得越來(lái)越龐大了,大多數(shù)的 C++ 程序員只用到(也只懂)C++ 功能的一小部份。想成為 C++ 語(yǔ)言真正的高手,沒(méi)有耗上三五年是不可能的。雖然 C++ 很復(fù)雜,但是真正想成為程序高手的人應(yīng)該都要懂 C/C++,重要的 API 都會(huì)有 C/C++ 的版本,由此可見(jiàn) C/C++ 的重要性。至于 Delphi,在 Microsoft .NET 推出之后會(huì)對(duì) Delphi 造成一些打擊(Microsoft .NET 的語(yǔ)言名單中連 Scheme、Eiffel 和 Mercury 這種少用的語(yǔ)言都出現(xiàn)了,獨(dú)缺 Delphi),但是 Delphi 能透過(guò) Kylix 來(lái)跨越 Windows 和 Linux,又是一個(gè)很大的吸引力,如果你想要跨 Linux 和 Windows 平臺(tái)的 RAD 工具(語(yǔ)言),目前 Delphi 似乎是最好的選擇。

          Assembly Languages(匯編語(yǔ)言)

          使用匯編語(yǔ)言,你將嘗試到一磚一瓦堆砌出程序的樂(lè)趣(或痛苦)。匯編語(yǔ)言可以說(shuō)是最接近硬件的語(yǔ)言,學(xué)會(huì)匯編語(yǔ)言,就可以對(duì)計(jì)算機(jī)的運(yùn)作有相當(dāng)程度的了解。不過(guò),目前連開(kāi)發(fā)驅(qū)動(dòng)程序都不太需要用到匯編語(yǔ)言了??峙轮挥凶?DSP 和 OS 等極少部份的人需要用到匯編語(yǔ)言。我也好久沒(méi)寫(xiě)匯編程序了,以前 DOS 時(shí)代,我還用匯編語(yǔ)言寫(xiě)過(guò)一個(gè) PE 2。

          程序語(yǔ)言學(xué)習(xí)順序的建議

          通常 Web Script 最簡(jiǎn)單,直譯式語(yǔ)言其次,接著是混合式語(yǔ)言,和編譯式語(yǔ)言,最麻煩的是匯編語(yǔ)言。如果你完全沒(méi)有程序經(jīng)驗(yàn),想開(kāi)始學(xué)程序設(shè)計(jì)的話,你可以從 JavaScript 著手,等到程序基礎(chǔ)觀念建立得差不多了,再往下學(xué)習(xí)直譯式語(yǔ)言,然后再學(xué)習(xí)混合式語(yǔ)言 ...,以此類(lèi)推。

          希望這篇文章能解決讀者們選擇程序語(yǔ)言的困擾。

          posted on 2006-07-03 14:37 rosial 閱讀(231) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 蔡學(xué)鏞

          主站蜘蛛池模板: 龙里县| 永和县| 青州市| 丹棱县| 桂东县| 博湖县| 永定县| 韩城市| 天镇县| 辉南县| 长乐市| 呼伦贝尔市| 定襄县| 曲周县| 苏州市| 淳安县| 扶余县| 铁岭县| 体育| 涿鹿县| 临湘市| 乌兰浩特市| 井冈山市| 饶平县| 安顺市| 九江县| 乌兰察布市| 抚松县| 台江县| 云霄县| 天津市| 建始县| 特克斯县| 长宁县| 南开区| 扎赉特旗| 确山县| 田林县| 皋兰县| 基隆市| 牡丹江市|