青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天行健 君子當自強而不息

【ZT】我的編程語言觀


作者:leezy_2000

            關于編程語言的爭論雖然此伏彼起,但事實上很少有人真的在做編程語言的比較,同時許多無價值或錯誤的觀點卻在真實的誤導著許多程序員的認識,為此我決定寫這篇文章。

一、前提

本文后述觀點是基于這樣一種前提:只關注語言特性,而忽略標準庫和其他各種商業(yè)框架(雖然這些更大程度上決定著人們對語言的選擇)。這必將使這篇文章的觀點更具有理論意義,而非現實意義。但語言特性是編程語言的根本,無論是做語言比較,還是評論語言,都應該以此為出發(fā)點,否則將導致討論范圍的無限增大,進而導致討論的無結果。為避免有人找碴,必須預先聲明的一點是,由標準庫實現的語言特性將被看作語言特性,進而列入考慮的范圍。同時這里說的編程語言是指一些通用目的的高級編程語言,比如C/C++,Java,Python,Perl等。

二、80% 與 20%

我學習不同的編程語言時,更多的時候是感覺到其間的共性。于是我對此進行思考,發(fā)現這種共性的存在具有必然性。

軟件的根本特性是復雜性,對此Dijkstra告訴我們,“掌握復雜性的技巧早在古代就有了:divide et impera(分解和規(guī)則)”。當我們具體進行分解和設定規(guī)則時,我們要用到一些分析和設計方法。當代兩大主流分析和設計方法是結構化和OO。結構化設計方法的三種基本結構是順序,分支和選擇。OO的三大基本特性是封裝,繼承和多態(tài)。各種設計語言通常都支持這兩種分析和設計方法,其基本語言特性也必然涵蓋上述六個要素。所以從這個角度看不同編程語言必然具有相當多的共性。

可為佐證的首先是《The Art of Computer Programming》這本書。這本書中的算法用低級語言描述的,但其內涵被大多掌握不同編程語言的開發(fā)人員所分享。有人評論說,當今軟件開發(fā)人員所掌握的絕大多數計算機程序設計的知識都來源于此,這意味著相當多程序設計知識可以具體實現在各種編程語言中。

另一個是《設計模式》,你很難說那個設計模式是專屬于那種語言的,大多的設計模式可以用各種編程語言來實現的。雖然具體的實現上會因為語言特性而做相當的調整。應該可以說不同的編程語言在某個確定的設計模式面前,體現的也是共性。

把上面的內容總結一下就是:很多的場合下,不同的語言是可以互換的。互換的基礎是不同種語言間的共性,而存在這些共性的基本原因是不同的編程語言要支持的根本思想中大部分是相同的。

故老相傳,學到高處,語言間切換是很容易的,很多人的經歷也驗證了這句話。上面說的正是這句話的所以由來。

這里沒有把各種語言等同起來的意思,但編程語言的個性同共性相比反倒是較小的部分。它們往往成為關注的焦點,同時也是存在這么多編程語言的一個主要原因。

大多數人對此的體驗大概來自基本語法,事實上這是讓人非常懊惱的一個方面。基本語法的不同起源于什么無從考證,但根本事實是這種不同在浪費學習者的時間。我們來做個類比大家就知道這種浪費有多么不值得,UML出現前,OO表示法主流上有三種,他們表達意思差不太多,但他們不一樣。學習的人,工作的人要為同一件事花近三倍的力氣(要不然別人用另外的表示法寫的文檔你怎么看的懂),現在這些人得到了解放。但在編程語言領域這種糟糕的事仍然在繼續(xù),差不多每個人都要記住好多種if語句,雖然事實上它們可以統(tǒng)一。

拋卻基本語法不談,其它的方面是真的不多。即使把C++和Python這兩種差別非常巨大的語言放在一起進行類比。一時間能想起的主要差別也只有:①Python內置了list及tuple等一些數據結構作為內置類型(當然還有與此相關的操作)。而C++中要用基本類型對此進行定義。②Python支持函數生成器和函數嵌套定義。而C++不支持。③Python是動態(tài)類型語言,先天具有范型能力。而C++要通過模板的概念支持范型。這不是一個完整的列表,如果愿意,這個列表確實可以變長,但另外一張反映共性的標通常會更長。

(注:我沒有參考相應的書籍把兩者的語言特性一一羅列,并徹底的比較其異同,僅是把平常使用時經常用到的語言特性想了一下,寫了上面的東西。如果那位使用過兩種以上的語言,我也建議能用這種方式來確定兩種不同語言的常用部分有多大的重疊度。)

這也正是題目所說的80%和20%的根本含義。不同的語言雖然看起來差別很大,但共性要大于個性。至于是不是4:1的關系,老天知道,那位感興趣,可以統(tǒng)計出一份數據來。

三、結論

(事先聲明,這里是從學習的角度來下這個結論,而非混飯的角度)

好多年前就有這句話:編程語言并不重要,設計思想才重要。這幾年在托鼠標即是編程的大潮中,這句話逐漸被遺忘了。

在這篇文章的結尾,我想對這句話進行一些詮釋。編程語言不是不重要,光有想法,基本語法都搞不清楚的人肯定什么都做不出來。但而后呢?不停的學習新的語言,接觸新的語法么?從上面的分析看,如果你這樣做,那意味著你在做重復勞動,并且沒有實際的進步。真的程序員不該如此墮落,總要學些思想性的東西吧。總不能去研究怎么才能把一個鈕拖到另一個地方的路徑縮到最短吧?

學習編程語言,熟悉基本語法后,一定要關注某些語言特性背后所承載的東西。但

單知道這兩樣仍然是不夠的,還要知道什么時候這些被承載的東西適合使用。這是遠比前兩者更難的東西。

為避免結論過于抽象,舉個例子來描述這三重境界:比如說學習模板的時候,第一步是要把基本語法搞清楚,要能夠確保寫出來的模板類、模板函數沒有語法錯誤,能夠通過編譯。第二步要去理解范型這種思想,去思考范型存在的根本目的是什么?第三步是能夠在碰到具體問題時,來正確的取舍是否需要使用這種特性,用的話又怎么去用。

四、尾聲

程序員作為一個籠統(tǒng)的稱呼,其真正的含義正在分化。Bjarne Stroustrup自稱:“是的,我是一個程序員”。而一個只會拖拖鼠標,完成指定功能的新手,通常我們也稱之為程序員。但事實上這同一個稱呼,其內在含義是不一樣的。

可視化編程和RAD的快速發(fā)展所產生的一個明顯后果就是,所謂的軟件藍領離我們是如此之近。并且越來越多的人以閃電般的速度切入這個隊伍。這又是怎么樣一場絢麗卻虛假的繁華。于是許多妖言應勢而生,最為讓人哭笑不得的莫過一句“程序員是吃青春飯的”。這未免太小覷程序員這個職業(yè)了,這句話成立的前提是做程序員沒什么難度,不需要什么積累,主要是力氣活。誠然如果程序員只是一個拖鼠標的職業(yè),那么年富力強者具有先天的優(yōu)勢。但很不幸大多時候他不是,或者說不應該是。

在這里我姑且漠視許多公司對軟件藍領的呼喚,單從個人發(fā)展的角度提醒一句,實踐實用主義的同時,莫要忘了什么是編程的根本,莫要忘了提升自己的境界。


posted on 2007-09-12 15:02 lovedday 閱讀(498) 評論(0)  編輯 收藏 引用 所屬分類: ▲ Software Program

公告

導航

統(tǒng)計

常用鏈接

隨筆分類(178)

3D游戲編程相關鏈接

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人激情视频| 亚洲高清成人| 欧美一级成年大片在线观看| 欧美高清视频免费观看| 久久婷婷人人澡人人喊人人爽| 亚洲午夜伦理| 午夜精品一区二区三区在线视| 亚洲午夜精品久久久久久app| 亚洲国产电影| 亚洲激情网址| 国产精品亚洲综合一区在线观看 | 极品少妇一区二区三区| 亚洲品质自拍| 欧美一级片一区| 欧美电影专区| 亚洲在线观看免费| 欧美人在线观看| 韩国v欧美v日本v亚洲v| 亚洲第一福利在线观看| 99精品国产热久久91蜜凸| 欧美伊人久久久久久久久影院| 久久综合图片| 亚洲午夜在线| 欧美成人在线免费观看| 国产综合色精品一区二区三区| 日韩一级网站| 欧美成人激情在线| 欧美一级视频一区二区| 欧美三级午夜理伦三级中文幕 | 久久精品国语| 欧美性猛交一区二区三区精品| 在线日韩欧美视频| 久久精品国产一区二区三| 一级成人国产| 国产精品美女久久久久aⅴ国产馆| 亚洲国产天堂久久综合网| 久久久久久久999| 香蕉免费一区二区三区在线观看 | 国产精品久久久久久久7电影 | 亚洲大胆女人| 久久人体大胆视频| 国产亚洲人成a一在线v站| 欧美淫片网站| 另类天堂视频在线观看| 亚洲毛片av| 亚洲一区在线免费观看| 国产亚洲精品福利| 欧美国产高清| 欧美日韩一区二区三区四区在线观看| 一本一道久久综合狠狠老精东影业 | 欧美国产成人在线| 午夜久久福利| 欧美成人dvd在线视频| 亚洲欧美韩国| 男女精品视频| 亚洲欧美另类在线观看| 亚洲一二三区精品| aa国产精品| 久久久久久一区| 欧美一区二区三区在线| 欧美日韩一区二区欧美激情| 久久久成人网| 国产日韩在线看片| 亚洲一区二区三区在线| 在线中文字幕日韩| 欧美岛国在线观看| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美日韩国产成人高清视频| 欧美激情性爽国产精品17p| 欧美一区二区三区免费看| 亚洲国产精品久久久久久女王| 亚洲小说春色综合另类电影| 欧美大片网址| 亚洲深夜福利| 亚洲影视九九影院在线观看| 欧美精品三区| 亚洲人体一区| 久久精品女人的天堂av| 国产精品国产自产拍高清av| 亚洲一区免费观看| 亚洲综合色丁香婷婷六月图片| 欧美日韩一区在线观看| 久久九九免费| 在线观看日韩欧美| 欧美精品九九99久久| 一区二区激情| 久久久999精品免费| 伊人男人综合视频网| 久久久久久久国产| 亚洲最新合集| 久久国产视频网站| 最近中文字幕日韩精品| 国产精品成人一区二区| 性色av一区二区三区在线观看| 久久综合色播五月| 午夜精彩国产免费不卡不顿大片| 国产一区二区三区最好精华液| 欧美成年视频| 久久精品国产第一区二区三区最新章节 | 久久久久久久久久久成人| 亚洲第一在线| 国产真实久久| 欧美日韩一级大片网址| 久久精品国产综合精品| 亚洲一区视频在线| 亚洲黄色视屏| 亚洲黄一区二区| 亚洲第一精品久久忘忧草社区| 国产精品国产三级国产a| 欧美日韩大片一区二区三区| 久久在线免费观看| 久久亚洲影院| 你懂的视频一区二区| 欧美一级艳片视频免费观看| 日韩小视频在线观看| 夜夜嗨av色一区二区不卡| 亚洲国产欧美不卡在线观看| 蜜桃av噜噜一区| 亚洲第一黄色| 亚洲免费视频观看| 久久精品人人爽| 鲁大师影院一区二区三区| 免费高清在线一区| 欧美日韩亚洲一区| 国产色产综合产在线视频| 一色屋精品视频在线看| 亚洲激情在线观看| 一本久久a久久免费精品不卡| 亚洲综合日韩在线| 久久精品官网| 91久久在线观看| 性做久久久久久| 欧美激情中文字幕一区二区| 欧美日韩天天操| 亚洲成色最大综合在线| 亚洲自拍高清| 亚洲国产精品成人精品| 亚洲免费婷婷| 欧美日韩视频在线一区二区观看视频| 国产精品私拍pans大尺度在线 | 欧美一级免费视频| 久久国产一区二区| 国产精品久久久久久av福利软件 | 午夜免费日韩视频| 亚洲国产精品精华液2区45| 一本色道久久| 欧美区日韩区| 日韩视频精品| 亚洲高清激情| 欧美岛国在线观看| 亚洲激情欧美| 女同一区二区| 乱人伦精品视频在线观看| 国产一区二区三区久久悠悠色av| 午夜久久久久久久久久一区二区| 亚洲日本精品国产第一区| 久久婷婷麻豆| 精品成人在线视频| 欧美成人亚洲| 欧美香蕉大胸在线视频观看| 亚洲性感激情| 香蕉免费一区二区三区在线观看| 欧美午夜不卡在线观看免费| 亚洲视频1区2区| 久久av一区二区| 日韩亚洲一区在线播放| 一区二区三区视频在线看| 国产日韩欧美二区| 最新热久久免费视频| 国产精品a久久久久| 久久精品国产在热久久| 欧美福利一区二区三区| 亚洲五月六月| 久久免费偷拍视频| 亚洲私人黄色宅男| 欧美电影免费观看网站| 午夜日韩激情| 欧美日韩在线不卡一区| 狂野欧美性猛交xxxx巴西| 欧美日韩免费| 亚洲精品资源| 亚洲韩国日本中文字幕| 久久久九九九九| 午夜激情亚洲| 欧美日韩一区在线| 亚洲国产日韩在线一区模特| 亚洲第一福利社区| 日韩视频在线观看免费| 国产精品久久久久久妇女6080| 亚洲午夜激情网页| 欧美日本中文字幕| 亚洲国产老妈| 亚洲国产高清在线观看视频| 午夜一区二区三区不卡视频| 在线视频欧美精品| 欧美日韩免费一区二区三区视频| 欧美激情精品久久久久久蜜臀 | 免费在线观看一区二区| 国产精品亚洲а∨天堂免在线| 亚洲免费成人av|