首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

冒號與學生們(連載3):語言選擇——稱手的兵器才是最好的

     編輯:Java 相關知識

尺有所短,寸有所長。——《楚辭》

流行度不是唯一標準

問號追問:「這麼多語言,僅憑流行度就能分主次優劣?」

冒號回答:「流行度當然不是唯一指標。語言優劣因人而異,答案在你們自己身上。唯一的老師是你自己。」期待的目光黯淡下去。

冒號續道:「評書裡名師授藝,常叫徒弟自己挑稱手兵器。威武的刀、靈活的槍、飄逸的劍、渾厚的棍……評判語言優劣,如同爭論兵器高下,若撇開使用主體與對象,皆屬空談。」

句號若有所悟:「所以好的語言,就是適合編程者與解決對象的語言。」冒號贊許:「非常正確!這就是問號要的答案。」

十八般兵器,樣樣精通?

引號不滿足:「評書裡常說高手十八般兵器樣樣精通。」

冒號一笑:「兵器雖多,其理相通,高手精通多種何足為奇?但若讓趙雲使錘、李元霸使槍,武力恐怕大打折扣。」

逗號困惑:「我們如何判斷語言是否適合自己、適合解決對象?」

冒號不緊不慢:「要想選擇,自然先得了解。現在進入正題,我們先回顧計算機語言發展史。」大伙心裡想:總算要搔到癢處了。

五代語言演進史

冒號在黑板寫下:

  • 第一代(1GL):機器語言
  • 第二代(2GL):匯編語言——IA-32 Assembly、SPARC Assembly 等
  • 第三代(3GL):高級語言——Fortran、Pascal、C、Java、VB 等
  • 第四代(4GL):面向問題語言——SQL、SAS、SPSS 等
  • 第五代(5GL):人工智能語言——Prolog、Mercury、OPS5 等

冒號補充:「前兩代統稱低級語言,其餘為高級語言。從低到高,離機器語言更遠,離人類語言更近,故更易讀寫、調試、維護,安全性、通用性、可移植性更強,開發效率更高,更抽象宏觀;但運行速度與效率下降,用法功能局限性更大。若拿兵器比喻,高級語言似長兵器,威力強大卻難免滯重,長於大型應用,『一寸長,一寸強』;低級語言似短兵器,輕便靈活卻險,長於底層應用,『一寸短,一寸險』。」

低級語言並不「低級」

歎號說:「我看還是高級語言好,現在誰還學低級語言?」

冒號糾正:「低級語言並不低級,只是隨著硬件性能提升漸漸邊緣化。雖幾乎無人用機器語言編程,匯編語言仍有用武之地:嵌入式系統開發、操作系統、編譯器、驅動程序、無線通訊、DSP、PDA、GPS 等;對資源、性能、速度極敏感的軟件開發;逆向工程(信息安全、軟件維護與破解)。即使不從事系統開發,掌握匯編也有助於深入了解計算機內部機制、調試軟件、改進關鍵算法。」

C 語言:劍中之王

引號提到:「有些書把 C 語言稱為中級語言。」

冒號解釋:「因為 C 兼具高低級特徵。一方面提供高層抽象與可移植性,讓程序員專注問題邏輯;另一方面提供指針、位字段等底層工具,甚至可內嵌匯編。C 語言簡潔靈活又高效強大,是迄今最具影響力的語言。幾乎所有操作系統和多數高級語言都用它實現,C 家族佔據主流半壁江山。若比兵器,C 是一把劍,輕靈飄逸、銳利快捷。武將無論擅用何兵器,往往腰懸寶劍。不會 C 的程序員,如不會使劍的武將,終是缺憾。相比之下,匯編似小刀匕首,機器語言近乎赤手空拳。」

句號靈光一閃:「我明白了——西門吹雪的西來一劍是 C 語言;李尋歡的小李飛刀是匯編;陸小鳳的靈犀一指是機器語言。」大家會心大笑。

引號冷不防冒出:「我會跆拳道哦!」句號一樂:「等你打贏陸小鳳,就封你為機器語言。」冒號也笑言:「這位是古龍粉絲吧?武俠俠客多輕功高絕、單打獨鬥,故用輕短兵器;歷史小說戰將多騎馬大規模作戰,除佩劍外用重長兵器。這就是前面說的,中低級語言適合中小型或底層應用,高級語言適合大型應用。」眾人議論紛紛,冒號暗想:通俗小說到底比編程吸引人啊。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved