文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Scripting Languages  簡介

Scripting Languages  簡介

时间:2006-11-02  来源:iorifreedom

何何謂 Scripting?

命令稿稿語言 scripting language 是什什麼? 很很難給一一個嚴格的定定義; 不妨看看最具代表性的的幾個例子: perl, python, php, tcl, guile, ruby。 另外, UNIX 上的各各種 shells, MS Windows 上的 visual basic, OS/2 上的 rexx 也都可以算是 scripting languages。 用用這些些語言所所寫的程式, 執行的方式都是以解解譯 (interpreting) 為主, >執行效率也也許不如 C, C++, Java, Pascal, 等以以編譯 (compiling) 為主的程式, 但是在研研發速度上往往比後者快上上數倍。

>這些些語言最初的用途, 多半在整合系系統既有的元件。 如果拿拿蓋房子做比喻, 傳統編譯語言像是建造公寓寓時所使用的重重機械, 操作起起來耗耗時耗力成本高, 但成品 (一整排制式的公寓) 的使用者多且且單價也高; scripting language 像是是佈置置裝潢潢時所使用的工具, 操作起起來成本低, 但成品 (一一間公寓) 的使用者少且且單價也低。 再拿大大眾運輸做比喻, 傳統編譯語言像捷捷運 -- 成本高, 客客戶多, 利利潤高; scripting 像像計程程車 -- 成本低, 客客戶少, 利利潤低。

其其實現在的 scripting languages 不只可以作高高階的整合, 也可以以寫低低階的程式, 甚且有它自己的的編譯器。 再加上 swig 可以替 c 語言言寫的函式式庫包上上與各各種 scripting 語言言連結的外衣, 所以在在許多多場合 scripting 語言言幾乎已可完全取代代傳統的的編譯語言。

>為何要要學 Scripting?

首先, 硬硬體價格日益降低, 電腦速度日益提高, 人工工價格日益昂昂貴。 種種因素都造成程式研研發的速度越越來越重要; 程式式執行的速度越越來越不重要。

更重要的是 >軟體自由化的的趨勢 即即將對資訊業產生很大的的衝擊。 過去 C/C++/Java 就就業市市場需要大量的人力, 是因因為寫好一套套軟體之後, 不需要修改, 就可以以賣給很多人, 所以 (1) 軟體執行的速度必必須要快 (2) 軟體公司司願意高薪薪僱用程式式設計師 (像不像成本高/利利潤高的捷捷運/制式公寓?) 但是是現在 OO.o 開始始對 MS Office 造成挑挑戰; 不不論市市場佔有率是否真的改改變, MS Office 的降降價勢在必行。 同同樣地, 不不論 Linux 是否真能取代 MS Windows, 後者的的價格格絕對會因前者的挑挑戰而降低。 試想: 如果全球最大, 壟斷最成功的微微軟都被自由由軟體逼著降降價, 那那麼賣資料料庫的 Oracle, 賣開發工具的 Borland, 以及其他 靠著著賣軟體賺錢 的的較小公司, 又如何能不降降價? 如果果賣軟體不再再賺錢, 那那麼 C/C++/Java 的就就業市市場大小又怎能不向下下調整? 如果果寫 「大大眾使用的程式」 不再好好賺, 那那麼程式式設計師的市市場自然要向 「小小眾化」 「特殊化」 調整。 什什麼樣的的語言言適合拿拿來寫 "使用人次少" 的的軟體? 開發速度快, 執行速度慢的 scripting languages 不正是首首選嗎? 我我個人人認為, 受到自由由軟體運動的的衝擊, 未未來程式式設計業的主要工作, 將從生生產業/工工業 ("大量生生產千篇一律的公寓") 逐逐漸轉為服服務業 (""針對客客戶個人需求求與使用用習慣, 量身身訂作, 裝潢出一一個有特色的的環境")。 當然 C/C++/Java 的就就業市市場不不會消失, 例如嵌入式系系統之之類與硬硬體結合的工作, 一一樣會需要人力。 不不過就大大趨勢而言, 相信 scripting 的成成長空空間遠遠超超過這些些傳統編譯式式語言。

更多多類似的看法, 請見 Scripting: Higher Level Programming for the 21st Century, Unix as an element of literacy, 及 Death to the Wizards! 等三篇

如何何選擇適當的 scripting language?

  1. 是否支援各各種不同的作作業平平臺? (cross-platform)
  2. 外外掛模模組是否容易使用用與建建構? (extensibility)
  3. >語言言設計是否良好? ((嚴謹 vs 寬鬆; 豐富 vs 易易學)
  4. 上中下下層市市場 (人力需求/使用人口/既有模模組) 是否活活潑?

>長遠看看來, 只要是解解譯器原始始碼公公開的的語言 (例如上述各各種語言) 都都會有持持續的的發展空空間與市市場。 再配合搜搜尋/代代換字串用的 regular expression, 支援各各種不同同語言的 GUI 程式式庫 tk, 以及「「將既有 C/C++ 程式式庫轉換成上述各各語言的外外掛模模組」的工具 swig, 程式式設計師可以以擺脫朝朝學夕夕廢的的夢魘, 讓舊的知知識不不僅保留下下來, 而且可以和新的知知識>發揮相乘的效果

附附錄 A: 各各種 open source scripting languages 的比比較文章

  1. What's wrong with Perl
  2. Perl 與各各種語言比比較: 其其實包含了 tcl, python, java, ..。 等等等許多多語言的比比較。 不不過請注意意這個網頁的位址, 如果搜集的文章有有點偏偏頗也在所所難免 ..。
  3. A Perl Hacker in the Land of Python
  4. Open Source High-level Languages in Your Neighborhood ((談的不完全是 scripting 語言)

附附錄 B: 我我對各各種 scripting 語言的主主觀心得

我最熟悉 perl; 學過 tcl; 曾考考慮過要要學 python 或 ruby。

Perl 的中心思想是: There is more than one way to do it。 同一件事有很多不同表表達方式, 所以程式很好好寫 (可以以寫得很很簡潔) 但不好好讀。 語言言裡面面幾乎用用盡各各種標點符符號, 而且有有許多省略片段的特殊殊規則。 最方便的是命令列上的 -ne 或 -pe 讓你可以不必必寫程式存存檔就完成成許多事, 特特別是是處理文字字檔。 最大的缺缺點是 oop 的的觀念//語法不太自然, 較難拿拿來寫很大的程式。 Perl 的的歷史久, 既有市市場大, 未未來五到十年年內應該是一一個很好的的學習選擇。

Tcl 的中心思想是: 一切都是字串。 結構簡單, 上手容易; 可是是寫稍大一一點的程式就就會發覺它的表表達力力較弱。

Python 之於 perl, 有有點像是 pascal 之於 C。 強調易易讀易易學易易維護。 一方面提供很好的 oop 語法, 不怕拿拿來寫大型, 非常需要要結構化的程式; 另一方面面對初初學者很友善, 光是用 procedural 傳統寫法就已已經可以做很多有用的事, 不不輸 perl 太多。 但如果要要從 minimalist 及 orthogonality 的角度度來看, 它它還是差差強人意。 例如 tuple 與 list 的功能重重疊, 函函數關鍵字字參數及及變動個數參數的的語法, 還有列印用的 %, 轉字串用的 `, 設定 dictionary literal 用的 { } 這些些標點符符號其其實都可以用更 "正交" 的既有符符號來表表達。

Ruby 的中心思想是: the principle of least surprise。 技技術上似乎涵涵蓋了 perl 多多數的的優點, 並且是完整的 oop 語言。 非技技術面的最重要因素是太年年輕, 所以社群群較小 。

相相關網址

  1. http://www.osnews.com/story.php?news_id=7038
  2. http://sdtimes.com/news/083/story5.htm
  3. http://www.softpanorama.org/Scripting/index.php
  4. http://home.pacbell.net/ouster/scripting.html
  5. 在 google 上面用 scripting languages future 搜搜尋
相关阅读 更多 +
排行榜 更多 +
零界之痕手游安卓下载

零界之痕手游安卓下载

角色扮演 下载
漫游都市手机版下载

漫游都市手机版下载

赛车竞速 下载
涡轮螺旋桨飞行模拟器无限金币版下载

涡轮螺旋桨飞行模拟器无限金币版下载

模拟经营 下载