為什麼我喜歡富於表達性的程式語言

發表於2011-08-17

注:本文轉載自外刊IT評論

我的程式設計之旅從少年時代就開始了,那時學的是GW-BASIC。很快,我學習了C語言,之後是C++。C++裡提供的物件導向的語法結構讓我印象深刻,但是,對於有些像定義範圍控制的概念我還是覺得有些複雜。接著開始學習Java。我立即被它從C++提煉出的更優秀、更簡練的語法所吸引。

那時我還在上學,所以,膚淺的學習(準確的說是試圖學習)一些程式語言是一項有趣的事情。我翻看了一些PHP和Javascript資料。我又開始跟C#接觸。這種語言還在發展進化。網上盛傳C#是微軟的Java。這讓我更讓我想學C#和深入的瞭解.NET框架。這時LINQ(語言整合查詢)出現了,這個東西很不錯。我很高興它能被簡潔的引入到C#中。C#3.0中增加的各種對LINQ的支援,包括lambda表示式,隱式型別變數,匿名型別,查詢表示式等等,使LINQ架構更加完美。到我畢業時,我已經是一名經驗豐富的物件導向開發人員了。

最近,我考慮學習一些語法更加晦澀的語言,就像Jquery的“write less, do more”的口號(儘管Jquery並不是一種語言)。我研究過Python和Ruby,但沒有發現什麼令人興奮的。我偶然發現了Scala語言,決定下一個任務就是學它。

通常在學習一門新的程式語言時,我很少去注意這些語言的句法結構(for,if,function/class定義等)。經過了很長一段時間後,我越來越注意一種語言這方面的特點。所以看書時,關於這些結構方面的章節不再輕易跳過。

我正在閱讀《Scala程式設計》,作者是Martin Odersky,他是這門語言的締造者。到目前為止,Google Books裡已經有很多關於學習Scala的教材。如果你已經學過Scala,你現在應該能理解我為什麼說這種語言神奇了。

使用富表達性語言的原因

  • 程式碼的陳述很自然。少了那些討厭的語法結構,讓你更集中精力關注邏輯問題。
  • 讓程式設計師開發時更有效率,更容易修改程式碼。
  • 除錯起來超級簡單。
  • 個人認為,開發人員更容易利用這些語言編碼方式來優化他們的程式。

當實現某個任務時,唯一能讓我拒絕使用富表達性語言的理由是,也許你也猜到了,是效能問題。你拿LINQ和通過迴圈收集資料進行比較,迴圈會更快些。你需要根據自己的情況來判斷,除非有很高效能要求,其它的問題可以忽略不計。

 

相關文章