最近看到不少文章,作者去比較兩種或者多種語言以試圖證明他喜愛的語言更棒。我仔細觀察過,通常而言,這些文章會側重在其他語言(指非作者喜愛的語言)的弱點上;有時候,會舉例來證明其他語言的冗長,得出結論說自己的語言代碼更少、更簡捷。
在我看來,雖然是針對其他語言的“弱點”,但作者寫這樣的文章也無可厚非,畢竟這樣的文章多依事實說話,起碼你可以知道一門語言的優點和另外一門語言的弱點,而且會引起其他“語言人”的關注和爭論,無論怎樣這對你如何選擇編程語言都是有借鑒意義的。以下為編程語言的三大定理,會客觀地幫助你。
編程語言基本定理
為了分析編程語言,你首先要知道它們為什么存在。由此引申出我的編程語言基本定理:編程語言的存在是為了讓人們明白計算機操作。
編程語言的出現是為了克服人類認知的局限。現代計算機運行的是二進制指令,我們很難面對著“1”與“0”去寫程序,我們無法號令機器,所以我們發明了編程語言,借以理解和向計算機傳達我們所要的操作。
所以比較任何語言,都應當權衡它們對我們理解計算機操作所帶來的方便。
第二定理
如果程序員對一段代碼不解,他會棄用或者重寫。
比你可以多快地寫代碼更重要的是,你寫的代碼可以讓后來看到的人多快地理解。
舉個例子:parm=10
既然沒有聲明變量,我怎么斷定這行代碼是對是錯?編譯器又沒用,因為這完全可以執行,所以我只能通過后面的代碼才能明白這段代碼是什么意思。所以你也不難理解,為什么在查找錯誤代碼是你會費那么大勁了,即使你知道出錯的部分。
第三定理
沒有任何一門語言適用于所有編程任務。這條定理很清楚,我不多做解釋。
所以在選擇編程語言時以下事情應當考慮:
l 常規特性:性能、兼容性、操作……
l 團隊大小
l 代碼多少
l 代碼的壽命
l 應用領域
l 工具:選擇語言考慮的最后一個問題是工具的支持。一個合適的編輯器對于你編程所起的作用不亞于語言本身的語法