動態語言曾是「陪太子讀書」的腳本語言。Larry Wall 妙喻:「腳本給演員看,程式給觀眾看」——腳本服務程式員,程式服務用戶。Shell 腳本(批次檔)裹著核心與用戶互動,早期用於系統調度,後發展為粘合語言。Perl 融合 Shell、AWK、sed、C 與 Lisp 特性,成為流行腳本語言。JavaScript 從瀏覽器邊緣,因 AJAX/Web 2.0 進入程式員視野。PHP 專為動態網頁設計,Ruby 憑 Rails 框架風行。
動態語言優化「人的時間」而非「機器時間」,犧牲部分效能換取生產力。語法特徵:動態/弱類型、天然支援泛型、`eval` 動態執行代碼、支援高階函數與閉包、多支援物件導向。Python、Ruby 甚至支援切面式編程。Prolog 等邏輯語言也具動態特徵。八大範式幾無漏網。
靜態語言「披掛戴甲、備馬揚槍」;動態語言「衣袂飄飄、長劍出手」。長期作戰靜態有優勢,但動態語言在大型應用非無能為力:代碼量少或許 Bug 少;IDE 強大降低出錯成本;JIT 編譯提升效能;介面變更無需重新編譯鏈接(類本來就可動態改變)。
冒號:「程式員本就是雙重人格。」Java/.NET 平台鋪設動態語言跑道,自身也融入動態特性。靜態語言的融合性、安全性、高效性決定其不可被取代。如矯健蒼鷹與彩蝶共舞,程式員需「靜如處子,動如脫兔」,游走於梅花樁上無跌落之虞。