發(fā)展歷史 1991年,微軟公司推出了Visual Basic 1.0版。這在當(dāng)時(shí)引起了很大的轟動(dòng)。這個(gè)連接編程語(yǔ)言和用戶(hù)界面的進(jìn)步被稱(chēng)為Tripod(有些時(shí)候叫做Ruby),最初的設(shè)計(jì)是由阿蘭·庫(kù)珀(Alan Cooper)完成的。許多專(zhuān)家把VB的出現(xiàn)當(dāng)做是軟件開(kāi)發(fā)史上的一個(gè)具有劃時(shí)代意義的事件。其實(shí),以我們現(xiàn)在的目光來(lái)看,VB1.0的功能實(shí)在是太弱了;(不過(guò)最近VB6.0, VB.NET的功能相當(dāng)大!)。但在當(dāng)時(shí),它是第一個(gè)“可視”的編程軟件。這使得程序員欣喜之極,都嘗試在VB的平臺(tái)上進(jìn)行軟件創(chuàng)作。微軟也不失時(shí)機(jī)地在四年內(nèi)接連推出VB2.0,VB3.0,4.0三個(gè)版本。并且從VB3開(kāi)始,微軟將ACCESS的數(shù)據(jù)庫(kù)驅(qū)動(dòng)集成到了VB中,這使得VB的數(shù)據(jù)庫(kù)編程能力大大提高。從VB4開(kāi)始,VB也引入了面向?qū)ο?/font>的程序設(shè)計(jì)思想。VB功能強(qiáng)大,學(xué)習(xí)簡(jiǎn)單。而且,VB還引入了“控件”的概念,使得大量已經(jīng)編好的VB程序可以被我們直接拿來(lái)使用。VB1.0的DOS版本VB1.0于1991年發(fā)布。 2002年Visual Basic .NET 2002 (v7.0)問(wèn)世,2003年Visual Basic .NET 2003 (v7.1)問(wèn)世,2005年11月7日Visual Basic 2005 (v8.0)問(wèn)世,同時(shí)間推出Visual Basic 2005的免費(fèi)簡(jiǎn)化版本Visual Basic 2005 Express Edition給Visual Basic初學(xué)者及學(xué)生使用。 VB 2005的“顯著”優(yōu)點(diǎn)是,可以直接編寫(xiě)出XP風(fēng)格的按鈕,以及其他的控件。但是其編寫(xiě)的小程序占用近10MB的內(nèi)存。 通過(guò)幾年的發(fā)展,它已成為一種專(zhuān)業(yè)化的開(kāi)發(fā)語(yǔ)言和環(huán)境。用戶(hù)可用Visual Basic快速創(chuàng)建Windows程序,現(xiàn)在還可以編寫(xiě)企業(yè)水平的客戶(hù)端/服務(wù)器程序及強(qiáng)大的數(shù)據(jù)庫(kù)應(yīng)用程序。 VB會(huì)吸引更多的贊譽(yù)和批評(píng),也會(huì)繼續(xù)為廣大的用戶(hù)和程序員使用。它非常適合用來(lái)開(kāi)發(fā)擁有友好界面的程序(比如針對(duì)終端的數(shù)據(jù)),但是不適合開(kāi)發(fā)其它程序(比如聯(lián)合計(jì)算程序)。 語(yǔ)言特性 一個(gè)典型的VB進(jìn)程VB的中心思想就是要便于程序員使用,無(wú)論是新手或者專(zhuān)家。VB使用了可以簡(jiǎn)單建立應(yīng)用程序的GUI系統(tǒng),但是又可以開(kāi)發(fā)相當(dāng)復(fù)雜的程序。VB的程序是一種基于窗體的可視化組件安排的聯(lián)合,并且增加代碼來(lái)指定組建的屬性和方法。因?yàn)槟J(rèn)的屬性和方法已經(jīng)有一部分定義在了組件內(nèi),所以程序員不用寫(xiě)多少代碼就可以完成一個(gè)簡(jiǎn)單的程序。過(guò)去的版本里面VB程序的性能問(wèn)題一直被放在了桌面上,但是隨著計(jì)算機(jī)速度的飛速增加,關(guān)于性能的爭(zhēng)論已經(jīng)越來(lái)越少。 窗體控件的增加和改變可以用拖放技術(shù)實(shí)現(xiàn)。一個(gè)排列滿(mǎn)控件的工具箱用來(lái)顯示可用控件(比如文本框或者按鈕]]。每個(gè)控件都有自己的屬性和事件。默認(rèn)的屬性值會(huì)在控件創(chuàng)建的時(shí)候提供,但是程序員也可以進(jìn)行更改。很多的屬性值可以在運(yùn)行時(shí)候隨著用戶(hù)的動(dòng)作和修改進(jìn)行改動(dòng),這樣就形成了一個(gè)動(dòng)態(tài)的程序。舉個(gè)例子來(lái)說(shuō):窗體的大小改變事件中加入了可以改變控件位置的代碼,在運(yùn)行時(shí)候每當(dāng)用戶(hù)更改窗口大小,控件也會(huì)隨之改變位置。在文本框中的文字改變事件中加入相應(yīng)的代碼,程序就能夠在文字輸入的時(shí)候自動(dòng)翻譯或者阻止某些字符的輸入。 VB的程序可以包含一個(gè)或多個(gè)窗體,或者是一個(gè)主窗體和多個(gè)子窗體,類(lèi)似于操作系統(tǒng)的樣子。有很少功能的對(duì)話(huà)框窗口(比如沒(méi)有最大化和最小化按鈕的窗體)可以用來(lái)提供彈出功能。 VB的組件既可以擁有用戶(hù)界面,也可以沒(méi)有。這樣一來(lái)服務(wù)器端程序就可以處理增加的模塊。 VB使用參數(shù)計(jì)算的方法來(lái)進(jìn)行垃圾收集,這個(gè)方法中包含有大量的對(duì)象,提供基本的面向?qū)ο笾С?。因?yàn)樵絹?lái)越多組建的出現(xiàn),程序員可以選用自己需要的擴(kuò)展庫(kù)。和有些語(yǔ)言不一樣,VB對(duì)大小寫(xiě)不敏感,但是能自動(dòng)轉(zhuǎn)換關(guān)鍵詞到標(biāo)準(zhǔn)的大小寫(xiě)狀態(tài),以及強(qiáng)制使得符號(hào)表入口的實(shí)體的變量名稱(chēng)遵循書(shū)寫(xiě)規(guī)則。默認(rèn)情況下字符串的比較是對(duì)大小寫(xiě)敏感的,但是可以關(guān)閉這個(gè)功能。 VB使得大量的外界控件有了自己的生存空間。大量的第三方控件針對(duì)VB提供。VB也提供了建立、使用和重用這些控件的方法,但是由于語(yǔ)言問(wèn)題,從一個(gè)應(yīng)用程序創(chuàng)建另外一個(gè)并不簡(jiǎn)單。 術(shù)語(yǔ) 在討論Visual Basic時(shí),經(jīng)常可以聽(tīng)到以下這些術(shù)語(yǔ),因此對(duì)這些術(shù)語(yǔ)的基本理解十分有幫助。 控件——簡(jiǎn)單的說(shuō),控件就是構(gòu)成或者說(shuō)建造Visual Basic應(yīng)用程序的圖形化工具,包括窗體、按鈕、復(fù)選框、列表框、數(shù)據(jù)控件、表格控件和圖片控件等等...。 VB的局限性 VB5和VB6都是面向?qū)ο蟮木幊陶Z(yǔ)言,但是不包含繼承特性。VB中提供了特殊的類(lèi)的功能,但是還是不能滿(mǎn)足程序員的需求。VB.net 包含了所有面向?qū)ο蟮奶匦浴? 爭(zhēng)議 反對(duì)觀點(diǎn): VB是一種充滿(mǎn)了爭(zhēng)議的語(yǔ)言:很多程序員對(duì)VB程序的質(zhì)量有強(qiáng)烈的感受。很多人認(rèn)為VB不配他們使用,認(rèn)為它是一種給兒童和菜鳥(niǎo)程序員的語(yǔ)言。它自從設(shè)計(jì)開(kāi)始就是一種簡(jiǎn)單的語(yǔ)言。一些C++和Java中的特性在VB中并沒(méi)有出現(xiàn)。在感受開(kāi)發(fā)的方便和快速的同時(shí),一些類(lèi)似于編譯時(shí)進(jìn)行類(lèi)型和聲明檢查的功能在默認(rèn)情況下是關(guān)閉的。這樣一些程序員一邊感嘆VB的易用性,一般沮喪地地看著一些類(lèi)似于“未定義類(lèi)型”錯(cuò)誤的發(fā)生。 一些批評(píng)家認(rèn)為VB的簡(jiǎn)單特性使得其在未來(lái)具有傷害性。很多人自學(xué)了VB,但是并沒(méi)有學(xué)到好的編程習(xí)慣。當(dāng)VB進(jìn)入課堂的時(shí)候,學(xué)生們不會(huì)學(xué)到很多基礎(chǔ)的程序技術(shù)和結(jié)構(gòu),因?yàn)楹芏嗉夹g(shù)已經(jīng)包含在那些對(duì)用戶(hù)可見(jiàn)的組件里面了。不用學(xué)習(xí)標(biāo)準(zhǔn)的編程習(xí)慣,因?yàn)閂B具有可視化的特性,所以導(dǎo)致了一些莫名其妙的代碼的產(chǎn)生。而且很多錯(cuò)誤和警告的檢查默認(rèn)情況下都是關(guān)閉的,程序員很難找到隱藏的錯(cuò)誤。有經(jīng)驗(yàn)的程序員在用VB編程的時(shí)候都會(huì)把這些選項(xiàng)打開(kāi)。 很多批評(píng)家批評(píng)微軟簡(jiǎn)單地拷貝了BASIC的思想到VB中。著名的計(jì)算機(jī)科學(xué)家Edsger Dijkstra說(shuō)過(guò)一句名言:“如果一個(gè)學(xué)生最早學(xué)過(guò)BASIC,那么幾乎不可能讓他學(xué)會(huì)優(yōu)秀的編程:因?yàn)檫@些人已經(jīng)放棄了涅磐的希望。”(Dijkstra對(duì)待Fortran、PL/1、COBOL和APL同樣也毫不留情。) 另外一個(gè)笑話(huà)是:“真正的程序員不用BASIC。12歲以下的孩子才用。” 并不是非常簡(jiǎn)便,它開(kāi)發(fā)的程序只能運(yùn)行在Microsoft Windows中。 個(gè)頭太大了。Visual Studio要用好幾張盤(pán)才能裝下。VB程序在運(yùn)行時(shí)候還需要一個(gè)1.4M大小的運(yùn)行庫(kù)。 IDE中有錯(cuò)誤。 VB不能很好的綜合Windows的基礎(chǔ)API,很多時(shí)候要使用低級(jí)運(yùn)算的“小伎倆”來(lái)進(jìn)行編程。而C語(yǔ)言的低級(jí)內(nèi)存運(yùn)算比VB的要簡(jiǎn)單得多。 支持觀點(diǎn): 但是很多VB的支持者解釋說(shuō)VB的易用性就是它最大的優(yōu)勢(shì),可以讓經(jīng)驗(yàn)豐富的VB程序員或是剛剛懂得皮毛的人都能用自己的方式快速開(kāi)發(fā)程序。而且VB的程序可以非常簡(jiǎn)單的和數(shù)據(jù)庫(kù)連接。比如利用控件可以綁定數(shù)據(jù)庫(kù),這樣一來(lái)用VB寫(xiě)出的程序就可以掌握數(shù)據(jù)庫(kù)的所有信息而不用寫(xiě)一行代碼。 很多語(yǔ)言的特性比如GoSub、On Error和用變量名字的最后一個(gè)字符判斷聲明類(lèi)型(比如字符串型str a,b,c As Integer”聲明了c為整形變量,但是a、b都是Variant類(lèi)型的。 {這兒我說(shuō)明一下,如果想申明3個(gè)Integer,必須寫(xiě) Dim a as Integer, b As Integer, c as Integer;而直接寫(xiě)Dim a,后面不寫(xiě)類(lèi)型,則自動(dòng)變成Variant類(lèi)型——占用大量資源。} 還有一些特性,比如下劃線(xiàn)字符“_”用于一行代碼分多行寫(xiě)時(shí)候。一些程序員在使用的時(shí)候由于不規(guī)范使得便引起報(bào)錯(cuò)。 發(fā)展時(shí)間線(xiàn) 1991年4月,Visual Basic 1.0 Windows版本發(fā)布 由VB派生的語(yǔ)言 微軟開(kāi)發(fā)了一系列有關(guān)VB的腳本語(yǔ)言: Visual Basic for Applications,即VBA,包含在微軟的應(yīng)用程序中(比如Microsoft Office),以及類(lèi)似WordPerfect Office這樣第三方的產(chǎn)品里面。VBA這樣嵌入在各種應(yīng)用程序中看起來(lái)有些矛盾,但是它的功能和VB一樣強(qiáng)大。 VBScript是默認(rèn)的ASP語(yǔ)言,還可以用在Windows腳本編寫(xiě)和網(wǎng)頁(yè)編碼中。盡管它的語(yǔ)法類(lèi)似于VB,但是它卻是一種完全不同的語(yǔ)言。VBS不使用VB運(yùn)行庫(kù)運(yùn)行,而是由Windows腳本主機(jī)解釋執(zhí)行。這兩種語(yǔ)言之中的不同點(diǎn)影響ASP網(wǎng)站的表現(xiàn)。 當(dāng)微軟準(zhǔn)備開(kāi)發(fā)一種新的編程工具的時(shí)候,第一決定就是利用最搶手的VB6來(lái)進(jìn)行舊改,或者就是重新組建工程開(kāi)發(fā)新工具。微軟后來(lái)開(kāi)發(fā)了VB的繼任者Visual Basic .NET,同時(shí)也是.NET平臺(tái)的一部分。VB.net編程語(yǔ)言是一種真正的面向?qū)ο缶幊陶Z(yǔ)言,和VB并不完全兼容。 關(guān)于VB.NET Visual Studio.net 2005已經(jīng)在2005年11月7日發(fā)布。 |
|
來(lái)自: 木秀-- > 《電腦知識(shí)》