四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

學習不同編程語言的重要性

  引子

  今天選了下學期要學的一門課,叫做編程語言。據說是兩周學習一門新的語言,很有挑戰性。以及這門課的課本是MIT出的《Concepts, Techniques, and Models of Computer Programming》(一下簡稱《CTMOCP》),今天看了一部分它的前言部分,聯系我以前讀過的《黑客與畫家》里面有兩章對編程語言的討論,發現學習不同的編程語言還是相當有必要的。

  第一,學習多門編程語言可以避免自己的思維被一種語言所限制

  《黑客與畫家》:如果你長期使用某種語言,你就會慢慢按照這種語言思維。

  在《CTMOCP》一書也有一個例子:學習Java的人認為concurrency很難操作,并且很消耗計算機資源,于是會盡量避免使用concurrency;但實際上,如果語言本身能夠很好的處理concurrency,就可以把它變成一個很好的工具——比如Unix的“管道”就是一種很好用的concurrency形式。

  這和生活中實際用著的語言很類似——不同文化語言的差異,會限制這個文化中的人想問題的方式(這里有很多例子:http://beyondidea.cn/index.php/archives/501)。更激烈的一個例子,是在小說《1984》里面,當局通過限制人們的用詞來限制人們的思維——所以大家都被強迫講“新語”。

  第二、學習多門編程語言可以找到更加適合解決問題的那一種語言

  在《CTMOCP》一書中,對于一個編程語言中一個新概念出現的原因,做了很好的說明:
a new concept is added when programs become complicated for technical reasons unrelated to the problem being solved(在編程語言中一個新概念的出現,通常是因為在要解決的問題中,出現了一些 和問題本身無關的 需要用復雜的技術手段解決的問題)。我想,這種“新概念”,在淺層次可以是一些人們常用的API,在深一點的層次,可以是一種大的編程概念,比如面向對象,遞歸,解釋性編程。通過合適地利用這些新概念、API,可以更加容易的解決一個現有問題。

  第三,一門良好的語言能更清晰的描述問題,從而加快編碼和溝通的速度。

  在《黑客與畫家》里面,這句話寫得很好:“一個操作所需的代碼越多,就越難避免bug,也越難發現它們”。對于我的一些低級應用來說,在用慣了Java的高級庫函數之后,如果去用C做一些ACM題目,是一件很困難的事情(同時也是因為自己對于C++不夠了解)——算法可以想出來,但對于基本的數據結構,比如哈希表、樹、棧 等等,都需要自己來實現——隨便一個小錯誤都會導致bug,無疑增加了debug的難度。

  語言是一種抽象形式。理想狀態下高級語言的抽象,可以清楚地展示解決問題的思路本身。

  最后,展望一下理想的狀態。

  編程實際上是在創造一個工具去解決用戶的問題。面對一個要解決的問題,對于將要使用的編程語言的分析,應該像算法分析一樣,知道一個語言的優勢、劣勢;使用這個語言能夠帶來的好處,以及產生的副作用。而要實現這些分析,需要對不同類型的編程語言有充分的了解,才能事半功倍。

  總之,沒有最好的語言,對于一個特定的問題,只有最合適解決問題的編程語言;而了解這些不同的解決問題的工具,是相當必要的——在合適的時候,一個好的語言可以節省下一個程序員無數的時間。

it知識庫學習不同編程語言的重要性,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 四年级上册麻雀的课堂笔记| 净三业真言| 一路狂奔| 闪电11人| 车震电影| 美国伦理片禁忌| 日本电影怪物| 金针菇尽量少吃最好不吃什么| 江苏诗歌网| 黑帮大佬365日| 三年电影免费高清完整版| 电影《一闪一闪亮星星》| 杨采钰电影| 麻花影业| 血色残阳剧情简介| 黄海冰主演电视剧大全| 小矮人的一级毛片| 说木叶原文| 密桃成孰时| 霹雳俏娇娃| 孔丽娜个人资料简介| 赫伯曼电影免费观看| 郑柔美个人简介| 我爱五指山我爱万泉河| 红灯区| 脸庞村庄| 春心荡漾在线观看| 淮剧赵五娘| 电影《神童》| 超越演员表| 罗云熙《尸语者》| 杂牌摄像头软件通用app| 老版《桃太郎》| 江南好简谱| 变性手术男变女能怀孕吗| 向东海| bb88| 疖子一般几天能熟出脓| 人民的名义演员名单表| 徐情| 江湖大风暴|