C語言開發基礎軟件理解

         轉孟巖老師的話:  

        基礎軟件開發崇尚的是自由、直接、透明、簡單、高效,要像匕首一樣鋒利,像戰士一樣勇猛,像農夫一樣樸實,反對繁瑣華麗的設計,反對架牀迭屋的層層抽象,反對複雜的結構和不必要的靈活性。而Java社羣多年來形成的設計風格與此格格不入,甚至可以說是對立的。Java在意識形態上是要面向企業應用軟件的開發,所以特別強調架構,強調設計模式,強調標準,強調規規矩矩,強調高姿態,強調一種華貴的宮廷氣質。在C中,你吃飯就是吃飯,捧起碗來喝酒,放下筷子罵娘,甩開膀子抓肉,擼起袖子抹油。而在Java中,你經常爲了要幹某件事,先new一個對象,然後以這個對象爲參數new另一個對象,如此這般重複n遍,得到真正需要的對象,最後就是爲了調用那個對象的一個方法,就好比吃飯時焚香洗面,漱口淨手,戰戰兢兢,畢恭畢敬。在C中,遇到問題要像亡命徒,像流氓版程咬金,管你三七二十一,衝上去就是三板斧,還怕劈不死你丫的。在Java裏,遇到問題要像宋襄公,要張榜檄文,要名正言順,要禮儀之邦,要把架子拉開了,把譜兒擺足了。Java的口號是,不管劈不劈的死,先把你小子感動了再說。 這套繁瑣的東西,對於基礎軟件開發來說,既不必要,也很難習慣。需要說明的是,這不是Java語言的問題,其實Java本身不必如此複雜、如此巴洛克。從語言本身來看,Java也可以是輕快直接的,也可是酣暢淋漓的。只不過十多年來幾乎沒有人這樣用過,所以大家已經不知道:如果不來個一步三叩首,那麼該怎麼用Java寫程序?

       做系統軟件開發的時候,重要的是理解系統的運作方式,那些漂亮的抽象手法和高級特性是次要的。

      孟巖老師的話貌似很正確啊,畢竟系統軟件開發大部分採用C語言,而C和C++主要用於支持其他語言的開發的,這種開發模式跟企業級開發是不一樣的。企業級開發是追求變化的,跟隨客戶不斷變化的需求,而基礎軟件開發,是做成API,供上層應用軟件(如JAVA調用)調用的,所以自己的PCC和PETA軟件是以靈活多變爲主開發還是以追求性能,簡單直接爲主開發爲主的呢?想想就知道了,基礎軟件開發模式和上層企業級用戶有點不同吧。
   所以了,C語言是易開發不易變化的,基礎的,供上層調用的軟件。而JAVA是適合開發上層的,跟得上企業級用戶靈活多變的需求的。
   所以我覺得拿C語言開發時,還是拿利用它的簡單直接特性開發,不要讓C語言做面向對象開發,那是沒用武之地的,C語言應該發揮它的與硬件緊密結合的長處。
   感覺C語言是工業級語言,適合結合着具體的硬件平臺,搞工業級底層開發。而那些ruby,lisp之類的動態語言反而適合數學演算,適合教學,是門學術性語言。
   所以大學教授在教學生學C語言時,永遠沒外面的企業工程師教授C語言專業。工程師比科學家更能帶給學生C語言的最深切直觀的體驗。
   各種語言都能找到自己合適的應用之地。

    

 

發佈了31 篇原創文章 · 獲贊 11 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章