以文本方式查看主題 - 曙海教育集團(tuán)論壇 (http://www.xinguifushi.cn/bbs/index.asp) -- C++語(yǔ)言開(kāi)發(fā) (http://www.xinguifushi.cn/bbs/list.asp?boardid=63) ---- 編程語(yǔ)言之兵器譜(六) (http://www.xinguifushi.cn/bbs/dispbbs.asp?boardid=63&id=2445) |
-- 作者:wangxinxin -- 發(fā)布時(shí)間:2010-12-10 15:29:28 -- 編程語(yǔ)言之兵器譜(六) 微機(jī)史上最強(qiáng)的編程語(yǔ)言是C/C++。C最大的特色就是指針,指哪兒打哪兒,如果把指針做到應(yīng)用自如,那就是無(wú)往而不勝了, C/C++對(duì)應(yīng)兵器譜上第3位小李飛刀,刀無(wú)虛發(fā),畢竟現(xiàn)在的Web時(shí)代,后來(lái)居上的JAVA和.Net成為主流的開(kāi)發(fā)語(yǔ)言,所以只能把它屈居第三位了。
但就其語(yǔ)言本身來(lái)看,JAVA和.Net更多的象是在C++之上減減增增。我感覺(jué)C/C++能夠稱的上編程語(yǔ)言史上最有影響力的語(yǔ)言,而它的成功完全是在其自身的優(yōu)秀特證所決定的,后面的JAVA和C#的成功是完全在C/C++的基礎(chǔ)上,它們站在了C/C++這個(gè)巨人的肩膀上。
C是Combined的縮寫(xiě),產(chǎn)生于1972年,C在DOS時(shí)代以其語(yǔ)句簡(jiǎn)潔,代碼執(zhí)行速度快,既可編寫(xiě)底層代碼,又可輕松實(shí)現(xiàn)GUI的繪制,脫穎而出,成為最適合于系統(tǒng)底層程序和游戲開(kāi)發(fā)的語(yǔ)言,被譽(yù)為中級(jí)語(yǔ)言,是表示它兼有高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的特證。C的出現(xiàn)讓人們看到了一種新的語(yǔ)言風(fēng)格,感覺(jué)C語(yǔ)法最大的特點(diǎn)是簡(jiǎn)潔,靈活,比如分號(hào)代表語(yǔ)句的結(jié)束,可以讓程序的一條語(yǔ)句不拘于寫(xiě)在一行中,這比BASIC和Fortran好,用大括號(hào)來(lái)代替Begin和End要比Pascal在書(shū)寫(xiě)上省下很多。同樣一段程序,用C可以做到代碼比別的語(yǔ)言短,而運(yùn)行速度通常要比別的語(yǔ)言快。C語(yǔ)言中更可以調(diào)用一些DOS系統(tǒng)中斷功能,Bios中斷功能,直接訪問(wèn)硬件,讀寫(xiě)端口,Dos時(shí)代的C是無(wú)所不能的,比如把Dos系統(tǒng)中斷改了,讓Dos在處理例行事務(wù)時(shí),作些程序指定的操作,那是挺容易的,所以Dos下面病毒很多,不過(guò)那個(gè)時(shí)代寫(xiě)底層代碼時(shí)的限制少,Windows下很多直接對(duì)硬件的訪問(wèn)都限制了,Web時(shí)代更是以虛擬機(jī)和跨平臺(tái)為榮了。C/C++傾向于系統(tǒng)開(kāi)發(fā),還有游戲設(shè)計(jì),只要這兩個(gè)領(lǐng)域還在,它就是永遠(yuǎn)的日不落帝國(guó)。
DOS時(shí)代最流行的開(kāi)發(fā)工具是Turbo C,Borland公司的優(yōu)秀產(chǎn)品,Turbo C是DOS時(shí)代C開(kāi)發(fā)工具的霸主,我個(gè)人上是非常喜歡Turbo C,至今電腦上還裝著Turbo C2.0,也就2M左右,有時(shí)懷念起當(dāng)年在大學(xué)機(jī)房里用Turbo C運(yùn)行代碼的時(shí)光,還可以打開(kāi)看下那熟悉的藍(lán)色界面,相信很多朋友都用過(guò)它。微軟推出的是Quick C(Windows 3.x上還有個(gè)Quick C For windows,其實(shí)也真挺好用的),但總還是比Turbo C用起來(lái)感覺(jué)差一些。從Simula,Smalltalk等面向?qū)ο蟮恼Z(yǔ)言的成功中吸取了經(jīng)驗(yàn),加入了面向?qū)ο蟮脑睾螅珻++面世了。
C++工具的早期的主流是Borland C/C++和Microsoft C/C++,在開(kāi)發(fā)平臺(tái)從DOS平臺(tái)轉(zhuǎn)換到Window平臺(tái)的背景下,各大C/C++開(kāi)發(fā)工具廠商紛紛推出Windows應(yīng)用的開(kāi)發(fā)工具,出現(xiàn)了兩大類庫(kù)OWL和MFC,把面向?qū)ο蠹夹g(shù)在Windows應(yīng)用開(kāi)發(fā)中充分利用,正是面向?qū)ο蠹夹g(shù)簡(jiǎn)化了Windows應(yīng)用的開(kāi)發(fā),在Windows應(yīng)用開(kāi)發(fā)過(guò)程中展現(xiàn)了面向?qū)ο蠹夹g(shù)的威力后,面向?qū)ο蠹夹g(shù)也得以更加的流行和推廣,編程領(lǐng)域進(jìn)入OO和Windows的時(shí)代。這時(shí)的開(kāi)發(fā)工具更是相當(dāng)?shù)呢S富的,Borland C/C++3.0版可以開(kāi)發(fā)DOS和windows兩個(gè)平臺(tái)的程序,因?yàn)槭褂肳in API寫(xiě)Windows程序很麻煩,Borland推出了OWL(object windows library),用類庫(kù)封裝了windows API,與其相似的是微軟推出的MFC(Microsoft Function class)。
編程平臺(tái)開(kāi)始向Windows平臺(tái)轉(zhuǎn)移的時(shí)候,想成為Windows平臺(tái)上C/C++開(kāi)發(fā)工具的霸主的卻不只Borland和微軟兩家,李維的《Borland 傳奇》中描述了一場(chǎng)壯觀的開(kāi)發(fā)工具的“圣戰(zhàn)”(也可以稱為四國(guó)大戰(zhàn)),它們是Borland C/C++, Microsoft Visual C/C++, Watcom C/C++(是否記得DOS 4GW 保護(hù)模式嗎,其實(shí)DOS時(shí)代很多游戲都是Watcom C/C++開(kāi)發(fā)的,而它的運(yùn)行必須要在DOS 4GW 保護(hù)模式下,這樣解決了DOS系統(tǒng)中直接訪問(wèn)的內(nèi)存不同超過(guò)1M的問(wèn)題,當(dāng)年幾乎所有的DOS版的游戲都是它開(kāi)發(fā)的,比如古墓麗影,仙劍奇?zhèn)b傳等), Symantec C/C++(著名的殺毒軟件諾頓的公司Symantec啊,其實(shí)它也是一家資深編程工具開(kāi)發(fā)公司呢,后來(lái)的JAVA開(kāi)發(fā)工具中Symantec也不甘寂寞的)四大工具閃亮登場(chǎng),而最終勝出的是Borland C++ 3.1,在Window早期,Borland C++ 3.x是最好的windows應(yīng)用的開(kāi)發(fā)工具了,Borland C++ 開(kāi)發(fā)出的Windows應(yīng)用是很有特色的,因?yàn)榘粹o和圖標(biāo)都有點(diǎn)和microsoft的風(fēng)格不太一樣的,當(dāng)年用Borland C++開(kāi)發(fā)的應(yīng)用,現(xiàn)在一看仍能分辨出來(lái),不過(guò)現(xiàn)在已經(jīng)難見(jiàn)到這種應(yīng)用程序了。Visual C++的統(tǒng)治開(kāi)始了,當(dāng)微軟在這個(gè)領(lǐng)域異軍突起時(shí),Borland趕緊推出Borland C++4.0時(shí),已經(jīng)無(wú)法改變形勢(shì)了,后來(lái)的Borland C++5.0仍是優(yōu)秀的作品(記不得4.0,4.5還是5.0的Borland C++了,安裝它時(shí),屏幕上卻是開(kāi)賽車時(shí)的第一視角的情景,用戶看到車內(nèi)的行程指示計(jì)指示從0%升到100%后安裝就結(jié)束了,挺有創(chuàng)意的,不過(guò)那象是一條下坡路了)。
Visual C++是后來(lái)的王者,現(xiàn)在能見(jiàn)到的Visual C++都是5.0而6.0的,喜歡Visual C++的Wizard,點(diǎn)幾下鼠標(biāo)一個(gè)Windows Application就產(chǎn)生了,Microsoft提供各種SDK,為用戶服務(wù),其中最喜歡的SDK當(dāng)然是Direct X,夢(mèng)想用C++開(kāi)發(fā)個(gè)SuperMario出來(lái),至少也要俄羅斯方塊什么的,不過(guò)入IT行業(yè)工作后,整天項(xiàng)目做的累夠嗆,沒(méi)有時(shí)間去實(shí)現(xiàn)夢(mèng)想了,入行IT后沒(méi)有機(jī)會(huì)參加C/C++項(xiàng)目,很大的遺憾了。當(dāng)年在機(jī)械行業(yè),最美好的回憶是02年為公司的閥門(mén)為一個(gè)控制系統(tǒng),兩米多高的閥門(mén),研究生畢業(yè)的胡老師組織好硬件線路,我用一臺(tái)奔II來(lái)控制閥門(mén)的開(kāi)啟和運(yùn)作,程序上由我一人開(kāi)發(fā),主界面上點(diǎn)擊按鈕來(lái)讓閥門(mén)運(yùn)動(dòng)(也可在自動(dòng)模式自動(dòng)運(yùn)行),屏幕中間的最大區(qū)域是閥門(mén)當(dāng)前的狀態(tài)圖。當(dāng)系統(tǒng)接好,我第一個(gè)上來(lái)操作,一點(diǎn)鼠標(biāo)看到那么巨大的機(jī)械被我的程序控制運(yùn)作,真是很有成就感呢。我是用Win API+Direct X技術(shù)做的,DOS下全屏幕的800x600的分辨率,背景圖、按鈕、狀態(tài)圖都是我用Corel PhotoPaint , AutoCAD等工具制作的,剛啟動(dòng)時(shí)閥門(mén)的照片以一個(gè)向下縱伸展開(kāi)的動(dòng)畫(huà)方式出現(xiàn)的創(chuàng)意還真有點(diǎn)意思,當(dāng)時(shí)伊拉克客戶看閥門(mén)時(shí),把我的程序(不與硬件連接的演示版)考了一份回去了,我感覺(jué)是我的程序出國(guó)了。
C/C++的魅力在于它的長(zhǎng)盛不衰,除了Visual C++,Borland的C++ Builder是和VB,Delphi一樣的好用的屬于C++的RAD工具,Microsoft的.Net中Visual C++.Net是其不可缺少的一部分,Linux、Unix的Shell中C Shell是重要的一個(gè),Mainframe應(yīng)用開(kāi)發(fā)中C應(yīng)用廣泛。相信C/C++做為IT編程領(lǐng)域永遠(yuǎn)的傳奇會(huì)繼續(xù)展現(xiàn)它的魅力的。
下篇介紹當(dāng)今Web應(yīng)用開(kāi)發(fā)的主流----Java。雖然JAVA最早不是為Web開(kāi)發(fā)而產(chǎn)生的,但它在語(yǔ)言方面的特色,與Web時(shí)代的驅(qū)勢(shì)不謀而合了,于是成就了一個(gè)屬于JAVA的時(shí)代。Java對(duì)應(yīng)排行第二的上官金虹的子母龍鳳環(huán),雖說(shuō)Java就一種語(yǔ)言,可如今的Java 1.5(tiger版),1.6(mustang版),語(yǔ)言上已經(jīng)和原來(lái)的Java 1.2~1.4不一樣了,它添加了對(duì)泛型,枚舉,元數(shù)據(jù)等的支持,流行很久的1.2版為基礎(chǔ)的Java2(母環(huán))和吸取了C#.Net的一些優(yōu)點(diǎn)后產(chǎn)生的Java5(子環(huán))構(gòu)成了Java的雙環(huán)。
|