程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C/C++是程序員必須掌握的語言嗎?

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

編輯:C++入門知識

滾滾長江東逝水,浪花淘盡英雄。雖說是個人英雄的時代已經成為過去,但我們仍然不能對這樣的榜樣們有所忘懷,他們是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個年頭。但是時過今天,我們還能靠它來"謀生"嗎?

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved