掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
今天選了下學(xué)期要學(xué)的一門課,叫做編程語言。據(jù)說是兩周學(xué)習(xí)一門新的語言,很有挑戰(zhàn)性。以及這門課的課本是MIT出的《Concepts, Techniques, and Models of Computer Programming》(一下簡稱《CTMOCP》),今天看了一部分它的前言部分,聯(lián)系我以前讀過的《黑客與畫家》里面有兩章對編程語言的討論,發(fā)現(xiàn)學(xué)習(xí)不同的編程語言還是相當有必要的。

成都創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、曲靖網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、商城網(wǎng)站制作、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為曲靖等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
***,學(xué)習(xí)多門編程語言可以避免自己的思維被一種語言所限制。
《黑客與畫家》:如果你長期使用某種語言,你就會慢慢按照這種語言思維。
在《CTMOCP》一書也有一個例子:學(xué)習(xí)Java的人認為concurrency很難操作,并且很消耗計算機資源,于是會盡量避免使用concurrency;但實際上,如果語言本身能夠很好的處理concurrency,就可以把它變成一個很好的工具——比如Unix的“管道”就是一種很好用的concurrency形式。
這和生活中實際用著的語言很類似——不同文化語言的差異,會限制這個文化中的人想問題的方式(這里有很多例子:http://beyondidea.cn/index.php/archives/501)。更激烈的一個例子,是在小說《1984》里面,當局通過限制人們的用詞來限制人們的思維——所以大家都被強迫講“新語”。
第二,學(xué)習(xí)多門編程語言可以找到更加適合解決問題的那一種語言
在《CTMOCP》一書中,對于一個編程語言中一個新概念出現(xiàn)的原因,做了很好的說明:
a new concept is added when programs become complicated for technical reasons unrelated to the problem being solved(在編程語言中一個新概念的出現(xiàn),通常是因為在要解決的問題中,出現(xiàn)了一些 和問題本身無關(guān)的 需要用復(fù)雜的技術(shù)手段解決 的問題)。我想,這種“新概念”,在淺層次可以是一些人們常用的API,在深一點的層次,可以是一種大的編程概念,比如面向?qū)ο?,遞歸,解釋性編程。通過合適地利用這些新概念、API,可以更加容易的解決一個現(xiàn)有問題。
第三,一門良好的語言能更清晰的描述問題,從而加快編碼和溝通的速度。
在《黑客與畫家》里面,這句話寫得很好:一個操作所需的代碼越多,就越難避免bug,也越難發(fā)現(xiàn)他們。對于我的一些低級應(yīng)用來說,在用慣了Java的高級庫函數(shù)之后,如果去用C做一些ACM題目,是一件很困難的事情(同時也是因為自己對于C++不夠了解)——算法可以想出來,但對于基本的數(shù)據(jù)結(jié)構(gòu),比如哈希表、樹、棧 等等,都需要自己來實現(xiàn)——隨便一個小錯誤都會導(dǎo)致bug,無疑增加了debug的難度。
語言是一種抽象形式。理想狀態(tài)下高級語言的抽象,可以清楚地展示解決問題的思路本身。
***,展望一下理想的狀態(tài)。
編程實際上是在創(chuàng)造一個工具去解決用戶的問題。面對一個要解決的問題,對于將要使用的編程語言的分析,應(yīng)該像算法分析一樣,知道一個語言的優(yōu)勢、劣勢;使用這個語言能夠帶來的好處,以及產(chǎn)生的副作用。而要實現(xiàn)這些分析,需要對不同類型的編程語言有充分的了解,才能事半功倍。
總之,沒有***的語言,對于一個特定的問題,只有最合適解決問題的編程語言;而了解這些不同的解決問題的工具,是相當必要的——在合適的時候,一個好的語言可以節(jié)省下一個程序員無數(shù)的時間。
原文:http://flyfy1.iteye.com/blog/1141398
【編輯推薦】

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流