您的位置:首頁 > 網絡編程 > 編程綜合

C/C++是程序員必須掌握的語言嗎?

日期:2006-04-24 00:00:00 點擊: 來自: 作者:

  滾滾長江東逝水,浪花淘盡英雄。雖說是個人英雄的時代已經成為過去,但我們仍然不能對這樣的榜樣們有所忘懷,他們是WPS求伯君、CCDOS嚴援朝、2.13吳曉軍、四通利方王志東、CCED朱崇君、UCDOS鮑岳橋等。因為他們不僅是成名的優秀程序員,也不僅是在寫文章時所必須想到的人物,更主要的是他們激蕩了很多批程序員的編程熱情,堅定了學會匯編和C就能走天下的決心和勇氣,他們代表著以往中國軟件業的輝煌。

  多年來,我們一直就這樣追隨著,也不曾懷疑過有什么不對的地方。即使在DOS已成為過去,Windows和Internet獨霸天下的今天,我們也不曾懷疑過。

  我們能懷疑嗎?我們眼見的實例太多了。我們不是看到Linux等操作系統和許多應用程序的內核都是用C來編制的嗎?即使在高校的計算機或非計算機專業中,C/C++程序設計課程的廣泛開設不也是一個極好的證明嗎?Norton Utility 首席設計師Enrique Salem不是也認為"每個人都應當使用C++"嗎?
   
  難道還有什么懷疑嗎?

  誠然,我們不能否認C/C++語言的超凡魅力。然而我們不禁要設問,在Windows流行的今天,用Windows C編制出界面獨特、功能強大的應用程序,你能嗎?即使能,你需要多少時間?

  在有許多程序開發工具可供選擇的今天,強調"C/C++是程序程序員所必須掌握的語言"難道就沒有人真的敢站出來提出質疑嗎?

  其實,在網絡一統天下的今天,任何應用程序都必須經過網絡的驗證。誰的軟件好用,誰就會被認可。為了能達到這樣的目標,許多Windows程序員都選擇了簡單易學、能快速有效地開發的Visual Basic、Dephi等工具。E_book電子閱讀器就是其中一例,它是李曉東用VB設計的。


  如果這顯得太過蒼白無力的話,那么讓我們先來看看C語言從過去到現在的發展歷程,看看它為什么這么發展。

  眾所周知,C語言是在70年代發展的語言,由于當時人們設想一種集低級語言和高級語言優點于一身的語言,于是C語言就誕生。基于它的簡結、緊湊、方便和靈活,它很快就成為國際上廣泛流行的語言。

  然而,C語言終究是面向過程的語言,數據和處理數據的程序是分離的。當對某段程序進行了修改或刪除時,整個程序中所有與其相關的部分都要進行相應的修改,從而程序代碼的維護比較困難。為了避免這種情況的發生,在C的基礎上中引用了面向對象的設計方法。它是將數據及處理數據的相應函數"封裝"到一個類中,而使用類數據變量則稱為對象。在一個對象內,只有屬于該對象的函數才可以存取該對象的數據。這樣,其他函數就不會無意中破壞它的內容,從而達到保護和隱藏數據的效果。這就是C++。當然,面向對象的C++還支持多重繼承、模板、操作符重載、內聯函數定義、預處理、宏、全局靜態類變量、嵌套類定義等等。

  C++太復雜了,任何一個使用C++開發者的企業必將付出更多的成本,因為優秀的C++程序員是少而又少。基于軟件企業化的需要,人們很自然地需要一種簡單易用、面向對象、安全靈活的"新一代Windows服務"(Next Generation Windows Services,簡寫為NGWS)應用程序的語言,于是C#出現了。它全方位簡化了C++的功能,使其具有C++所沒有的簡單易學的優勢。它既沒有C++"悲劇性"的指針概念,也沒有類似"::"、"."和"->"的"愚蠢"操作。
   
  因此我們也可以說,C#才是程序員們所必須掌握的語言。但是,我們不能忽視這一點,語言總歸是程序員的工具,誰具有簡單易用、支持最新技術并能快速有效地進行軟件開發,誰就是程序員的工具。

  如果上述的結論還不能接受的話,那么讓我們看看現在C++程序員的窘境吧!

  就目前而言,選擇C++就意味著選擇Visual C++,而不C++ Builder。這是C++程序員第一件讓人頭痛的事。因為VC與Windows 98/NT同出一爐,相同功能的Visual C++應用程序編譯后,其大小要比C++ Builder小得多。不僅如此,其穩定性和完善程序要比C++ Builder要強得多。

  但是"Visual C++"這個名字曾誤導了很多人,他們認為自己買了一套完全可視的編程系統,類似于Visual Basic,并在剛開始的幾天總這樣幻想。然而不久,人們認識到他們必須實際編寫和閱讀C++代碼。雖然Visual C++向導可以節約時間和提高正確性,但程序員必須理解向導所產生的代碼,最主要的,還必須理解Microsoft Foundation Class(MFC) Library的結構和Windows操作系統的內部工作方式。許多C/C++的DOS平臺的程序員把這種工作方式評價為"枯燥且艱深晦澀"的過程。盡管新版本的Visual C++6.0提供了控制臺應用程序類型,使DOS程序員能方便地進入MFC應用程序的開發,但仍然不能從根本上改變上述弊端。

  選擇了Visual C++,就必然選擇MFC,一種程序結構,一種編程風格。但由于MFC是OWL同時代的產物,已經落后于VCL一個時代了。從開發出基于ATL的WTL可以反襯出MFC的不足。這恐怕是Visual C++程序員最窘的地方。

  但我們暫且不提MFC過時的尷尬,單是稍稍地改變一下應用程序的外觀,Visual C++已是力不從心了。例如,想要改變控件的字體和背景,你得重新生成一個類,而VB只需更改一下屬性。從Visual C++界面設計的網站的火爆可見一斑。

  不僅如此,Visual C++程序員也時常感到另外一種尷尬,一個小小的BMP、JPG圖片顯示,在Visual Basic中輕而易舉的事件,到了VC居然需要那么多的代碼,而且在數據庫應用程序的開發中還常發生許多一些細微的錯誤,令程序員們大為惱火。更為甚者,如果有人還想用Visual C++編寫Internet/Intranet程序的話,那簡直就是自尋煩惱。

  雖然,一個優秀Visual C++程序的薪水要比其他程序員高。但是,他所花費的精力不是其他程序員能比擬的,他不僅需要承擔高昂的培訓費,而且還要承擔90%不成功的概率。這恐怕是想成為Visual C++程序員的人最苦惱的事

  當然,我們不是勸你放棄使用C/C++語言,相反還十分支持。因為使用C/C++編寫的程序結構和算法能被更多人接受,畢竟C影響了整整20個年頭。但是時過今天,我們還能靠它來"謀生"嗎?

  相信你已經有了自己的答案。當然,我們之所以跳出來,是希望程序員們不單是在這個方面去思考,更主要的是:在我們國家軟件發展浪潮到來的今天,我們不能再盲從,我們應該關注軟件產業、關注互聯網產業、關注信息產業。我們也應該有自己的歸宿,難道印度軟件大國給我們的啟示還不夠多嗎?
 

More..素材圖片 Picture Navigation
相關鏈接 Correlation Link
編程綜合熱門 Class Hot
編程綜合推薦 Class Commend
版權所有:中國網站資源 2005- 未經授權禁止復制或建立鏡像 This Site Tech:XHTML+DIV+CSS+Javascript
CopyRight ® 2005- www.21ftd.com online services. all rights reserved. ICP06016627
Optimized to 1024x768 to Firefox,Netscape,Opera,MS-IE6+.
ope电竞