• <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>

            huaxiazhihuo

             

            一點反省

                好久沒有上博客了,再次看看之前的文章了,覺得很難受,除了批評MFC的那篇有點意義之外,其他都是在放屁,如果誤人子弟了,在下很不安,并且里面還有很情緒化的傾向,本來應該刪除,免得繼續禍害初學者。但是,應該勇于面對自己曾經犯過的錯誤,就讓它留著吧,只是祈求后來者,不要再看了。
                有一種錯誤的認識,說什么編程語言不重要,編程思想才重要,這種認識很沒有意義,何為編程思想,只怕說這句話的人也不是很清楚,至于編程思想包含了哪些內容,那更加是她沒法想象得到的廣闊天地。當然,思想很重要,但是,無論多么高妙的思想,終究還得靠語言來表達。而且,有些語言表達某些思想,就是要比其他語言要直接,要直白,并且所謂的思想的有些理念本身就是語言的重要組成部分,這種語言還要求學習者要經歷語言的洗禮,從而盡快的掌握所謂的編程思想,以便能初步使用它。然后,又有些語言天生殘疾,無論如何整頓,就是沒法表達某種編程思想,好比JAVA。總之,語言的選擇,應該是很嚴肅的問題,不可等閑視之,至于思想,那也是通過具體的語言才能領悟。
                不管對于C++有多么深厚的感情,但是,確實沒必要讓自己吊死在一個樹上。走出了那片天地,開闊視野之后,再回來,可以更好更快的處理原來領域上的問題。所以對于有志于CPPER,就是不要再C++各種語言細節上死鉆牛角尖,必須多學習幾種語言,吸收他們的優點,然后回來擬補C++本身的很多不足,學習其他語言,其實也是在學習C++,并且是更好地學習之法,因為這樣,才能了解到C++的不足,才知道為了擬補其先天的不足,是怎樣的努力,才設計出那些逆天的語言復雜性。
                個人感覺,C語言弱智(將太多的事情交給程序員來做,美其名曰信任程序員,搞得碼農一天到晚死鉆細節,又由于語言的抽象能力嚴重缺乏,所以很多事情就是吃力不討好。當然也要承認,人寫出來的代碼,始終要比編譯器出來的要好要可控,起碼某種形式上,但是有必要嗎)。至于C++,的確強大,自由,但是,她真的是丑陋無比,由于本身的野心過大,導致其語言核心無比的模糊,想要很好的使用,必須深刻系統的學習其靜態類型系統和各種類型演算,因此,模板元編程必須基礎十分扎實,不是為了用MPL寫代碼,而是學了之后,才能更深刻的感受到C++的類型系統(某些人十分反感template,不知所謂,殊不知,沒有了template,C++的威力將降低一大半,還有,C++的各種奇技淫巧和宏,也在template這里大放驚人異彩。學了C#和java的泛型之后,才驚詫C++的template的功能如此的變態厲害,所謂的圖靈完備,原來是這么回事)。此外,還要知道C++的種種不足,比如GC,比如嚴重殘缺的動態類型信息,比如……(好吧,想不出來了),但是,這些都不是問題,C++非常神奇,對于語言上的種種不足,通過有些人種種奇技淫巧,歷經千辛萬苦,終于可以實現了,但是,最后出來的東西,始終還是沒有語言層面上直接支持的來的好,并且有些還不免很丑陋,這是必須的,不過,C++11出來之后,語言的各種不足,都有不同程度的改善,造輪子時可用的材料也多了,最后,得益于C++11的新特性,輪子的外觀也可以更好看。
                C++的學習教條,當然,重中之重,是,懇請不要學習C++,現實的很多很多問題,都可以不必C++來搞,那些嵌入式的東西,與硬件緊密相關的,C其實很能夠勝任了,其實,C還是很好地。
                1、忌將精力都放在C++上,多學習學習其他語言;2、忌學MFC,這個東西,碰都不要碰;3、不要用C++解決所有的問題,很多問題用其他語言來解決效果會更好,無論開發效率還是運行效率;4、眼界很重要,……。作為C++的死忠,說這些實在有悖于對C++的感情,其實也不是,只是曲線救國之法,因為,要駕馭C++的種種奇怪的復雜,的確需要C++以外的視野。C++的確不是人人都能使用,合格的C++猿不但要擁抱奇技淫巧,還要能發明出更好的奇技淫巧,沒有最好的奇技淫巧,只有更好的奇技淫巧,C++就是用來創造奇技淫巧的。
                竊以為,對于語言學習者來說,特別是C++猿,以下幾種,C#的實用,scheme的優雅,haskell的嚴謹簡潔,都有必要的學習學習。對了,還有smalltalk,但是考慮到面向對象本身的問題,就不推薦了。至于其他語言,在下接觸不深,就不敢多嘴了。對了,還有設計模式,這東西還是很好的,特別是在面向對象的時候。至于以前說到的消息發送,純屬無稽之談,這東西反人類,那是由于C本身的抽象能力不足,才搞出來的一個怪胎,無奈之舉。對于比C更高級的語言,完全沒必要再模仿了。設計模式的一大特點在于把模式的實現完全固守在靜態類對象上,這樣理解起來確實方便,但是,帶來的問題,就誤導了某些無知的讀者,以為必須一定要用靜態的面向對象的語言(在這一點上,JAVA是最徹底的實踐者)來實現模式,以至于,為了實現模式,要寫很多很多不必要的狗屎般的代碼。其實,設計模式只是思想,書中的實現只是示范而已,大伙兒不必死盤硬套。對了,對于C++沉思錄那道著名的例題,用設計模式做出來的效果,始終感覺很別扭,較好的思路是組合運算子。
                互聯網上的有害信息真多,很不幸的是,之前寫了那么幾篇狗屁不通的文章,實在慚愧。

            posted on 2013-04-28 22:55 華夏之火 閱讀(509) 評論(2)  編輯 收藏 引用

            評論

            # re: 一點反省 2013-06-17 14:59 panovr

            推薦再了解一下Objective-C語言  回復  更多評論   

            # re: 一點反省 2014-09-27 08:12 渡世白玉

            學習了、、、
              回復  更多評論   

            導航

            統計

            常用鏈接

            留言簿(6)

            隨筆分類

            隨筆檔案

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            成人a毛片久久免费播放| 热re99久久6国产精品免费| 91秦先生久久久久久久| 亚洲国产二区三区久久| 亚洲国产精品成人久久蜜臀| 伊人色综合久久天天人手人婷| 日本欧美久久久久免费播放网| 一本大道久久a久久精品综合| 亚洲国产成人精品女人久久久 | 久久久网中文字幕| 狠狠色噜噜色狠狠狠综合久久| 久久久久久九九99精品| 人妻精品久久久久中文字幕| 亚洲国产精品高清久久久| 国产精品亚洲美女久久久| 无码国内精品久久综合88| a级毛片无码兔费真人久久| 2021最新久久久视精品爱| 91麻豆精品国产91久久久久久| 久久久久av无码免费网| 精品国产热久久久福利| 国内精品伊人久久久久AV影院| 伊人久久国产免费观看视频| 亚洲国产精品久久66| 777米奇久久最新地址| 2021最新久久久视精品爱 | 久久午夜伦鲁片免费无码| 久久夜色精品国产www| 日韩欧美亚洲综合久久影院d3| 午夜不卡久久精品无码免费| 亚洲精品WWW久久久久久| 很黄很污的网站久久mimi色| 国产成人综合久久综合| 久久亚洲私人国产精品| 久久久无码精品亚洲日韩按摩| 久久婷婷午色综合夜啪| 亚洲国产精品成人AV无码久久综合影院| 日本免费一区二区久久人人澡| 国内精品久久久久影院免费 | 国产亚洲美女精品久久久| 久久综合丁香激情久久|