在引入之前。NET框架
VB 1
VB1.0的DOS版本
1991 4月,面向Windows的Visual Basic 1.0發布。1992 9月,面向DOS的Visual Basic 1.0發布。這種連接編程語言和用戶界面的開發被稱為Tripod(有時被稱為Ruby),最初的設計是由艾蘭·庫伯完成的。這在當時引起了很大的轟動。許多專家認為VB的出現是軟件發展史上劃時代的事件。從現在來看,VB1.0的功能其實很弱,但它在推出的時候是第壹個“可視化”的編程軟件。這讓程序員們樂此不疲,紛紛嘗試在VB這個平臺上創作軟件。
VB 2
1992 165438+10月,由VB2.0發布,對之前版本的界面和速度進行了改進。
VB 3
1993年夏天,VB3.0發布,分為標準版和專業版。它包含壹個數據引擎,可以直接讀取Access數據庫。這大大提高了VB的數據庫編程能力。
VB 4
1995年8月,VB4.0發布了32位版本和16位版本。它包括對類的支持。從VB4開始,逐漸引入了面向對象編程的思想。VB功能強大,簡單易學。而且VB還引入了“控件”的概念,使得大量已經編譯好的VB程序可以被我們直接使用。
Visual Basic 1.0~4.0必須把源代碼編譯成VB偽代碼然後解釋執行。
VB 5
1997二月,VB5.0發布。程序員可以用32位版本導入4.0版本創建的16位程序,並順利編譯。同時,它還支持用戶構建的控件。從Visual Basic 5.0開始,VB支持編譯本機代碼,但必須在VB運行時的支持下才能工作。
VB 6
1998年夏天,VB6.0發布。VB6是壹個不能被VB.NET完全取代的版本。
在介紹了。NET框架
主入口:Visual Basic。網
VB.NET 7
2001中,Visual Basic。NET和。NET框架的發布。由於其新的核心和特性,許多VB程序員不得不重寫他們的程序。
在2002年。NET 2002 (v7.0)出來了,從那以後,Visual Basic就包含在Visual Studio套件中了。
2003年,Visual Basic。NET 2003 (v7.1)推出。
VB.NET 8
2004年,微軟開放了Visual Studio.NET 2005的測試版(代號Whidbey)。包含測試版的。NET framework 2.0 . 2005年發布了11.07 Visual Basic 2005(v 8.0)。同時,為初學者和學生提供了Visual Basic 2005的免費簡化版Express Edition。最初的免費使用期是壹年,後來微軟宣布Express版永久免費。Visual Basic 2005的“顯著”優勢是可以直接編寫Windows XP風格的控件;但是它的小程序需要將近10MB的內存。
VB.NET 9
2008年2月,在Visual Basic 2008 (v9.0)中發布了1。
經過幾年的發展,已經成為壹種專門的開發語言和環境。用戶可以用Visual Basic快速創建Windows程序,現在可以編寫企業級的客戶機/服務器程序和功能強大的數據庫應用程序。
VB.NET 10
Visual Basic 10.0按計劃於2010年3月22日隨Visual Studio 2010正式發布。
新增功能:
自動實現屬性
設置初始化
當代碼被破壞時,不需要輸入下劃線“_”。
更好的lambda表達式支持
與Python和Ruby等動態語言更好的互操作性。
Visual Basic。NET 2002(7.0)和更高版本在。NET框架環境。
源於VB的壹種語言
微軟開發了壹系列關於VB的腳本語言:
visual Basic for Applications VBA包含在Microsoft應用程序(如Microsoft Office)和第三方產品(如WordPerfect Office)中。VBA被嵌入到各種應用中,看似矛盾,但功能卻和VB壹樣強大。
VBScript是ASP的默認語言,也可以用在Windows腳本和網頁編碼(HTML)中。雖然它的語法類似於VB,但它是壹種完全不同的語言。VBS不與VB運行時壹起運行,而是由Windows腳本宿主(wscript . exe-基於Microsoft Windows的腳本宿主)解釋和執行。兩種語言的差異影響了ASP網站的性能。
當微軟準備開發壹個新的編程工具時,第壹個決定是用最搶手的VB6對其進行修改,還是重新建立壹個新的工程開發工具。微軟後來開發了Visual Basic。NET,它是VB的繼承者,也是。NET平臺。VB.NET編程語言是真正的面向對象編程語言(VB4-VB6只能稱為基於對象而不能稱為面向對象,最明顯的特點就是VB4-VB6都不支持類繼承),與傳統的Visual Basic並不完全兼容。
語言特征
VB的中心思想是讓程序員變得簡單,不管是新手還是專家。VB使用的GUI系統可以簡單地創建應用程序,但也可以開發相當復雜的程序。VB程序是基於窗體的可視化組件排列組合,並添加代碼來指定組成的屬性和方法。因為組件中已經部分定義了默認的屬性和方法,所以程序員不用寫太多代碼就可以完成壹個簡單的程序。在過去的版本中,VB程序的性能已經放到了桌面上,但是隨著計算機速度的快速提升,關於性能的爭論已經越來越少了。
表單控件的添加和更改可以通過拖放技術來實現。壹個裝滿控件的工具箱用於顯示可用的控件(如文本框或按鈕)。每個控件都有自己的屬性和事件。默認屬性值是在創建控件時提供的,但程序員也可以更改它們。許多屬性值可以在運行時隨著用戶的動作和修改而改變,從而形成壹個動態的程序。例如,可以更改控件位置的代碼被添加到窗體大小更改事件中,每當用戶在運行時更改窗口大小時,控件都會更改其位置。通過在文本框中的文本變化事件中添加相應的代碼,程序可以在輸入文本時自動翻譯或阻止某些字符的輸入。
VB程序可以包含壹個或多個窗體,或者壹個主窗體和多個子窗體,類似於操作系統的外觀。功能很少的對話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。
VB的組件可能有也可能沒有用戶界面。這樣,服務器端程序可以處理添加的模塊。
VB使用引用計數的方法來收集垃圾,垃圾中包含了大量的對象,並提供了基本的面向對象支持。因為越來越多組的出現,程序員可以選擇自己需要的擴展庫。與某些語言不同,VB不區分大小寫,但可以自動將關鍵字轉換為標準大小寫狀態,並強制符號表中實體的變量名遵循書寫規則。默認情況下,字符串比較區分大小寫,但是可以關閉此功能。
VB使得大量的外部控件有了自己的生存空間。為VB提供了大量的第三方控件。VB還提供了創建、使用和重用這些控件的方法,但是由於語言問題,從壹個應用程序創建另壹個控件並不容易。
學期
討論Visual Basic時(不包括。NET),經常可以聽到下面這些術語,所以對於初學者來說,掌握這些術語的基本認識是很有幫助的。
控件:簡單來說,控件就是構成或構建Visual Basic應用程序的圖形化工具,包括窗體、按鈕、復選框、列表框、數據控件、表格控件、圖片控件等等...
事件:由用戶或操作系統觸發的動作,如擊鍵、鼠標點擊、鼠標雙擊、時間限制或從端口接收數據。
方法:嵌入在對象定義中的程序代碼,它定義了對象如何處理信息和響應事件。例如,數據庫對象具有打開記錄集並從壹條記錄移動到另壹條記錄的方法程序的基本元素。它包含定義其特征、定義其任務和標識其可以響應的事件的屬性。控件和窗體是Visual Basic中所有對象的示例。
對象:控件、表單等。可以看作是壹個物體。
過程:為完成某些任務而編寫的代碼段。過程通常用於響應特定事件,也可以用作應用程序的自定義功能。
屬性:屬性是組成用戶界面的對象屬性的具體描述。比如上面提到的“對象”的大小、位置、顏色、寬度、高度等等都稱為控件的屬性。屬性決定了對象的外觀,有時還決定了對象的行為。對象的大部分屬性在VB中已經預先定義好了,但是有些屬性需要在應用過程中定義。屬性可以為對象提供數據並從中檢索信息。
VB.NET的變化
VB(6.0及之前)沒有的功能。
繼承(計算機科學):Visual Basic 5以後,雖然VB提供了簡化的類支持,但仍然不能滿足程序員的需求。
多線程支持:雖然可以使用Windows API完成,但是穩定性和調試很難保證。
異常處理:僅支持“On Error Goto line”語句。
對指針的支持非常有限。
VB只能支持8-32位整數,很多語言都是無限支持的。
VB不允許在任何數組中存儲不變的變量。
VB不支持其他編程語言* * *享受程序代碼。
Visual Basic之後的版本。NET(VB 7.0)基本上支持以上功能。
VB 6與VB.NET的比較
很多程序員也會懷念VB6。VB6仍然保留了腳本語言的壹些特性,比如不提前聲明變量類型。第壹次給未聲明類型的變量賦值時,VB6會把這個值的類型作為變量的類型。這種腳本語言的特點對程序的可維護性有很多不利影響,尤其是對於初學者,會養成不良的編程習慣,所以VB.NET之後的版本都沒有保留這種特點。
Basic是作為初學者的編程語言做的,以直譯的形式出現(見VB偽代碼)。它還具有不必預先聲明變量類型的特性。這個特性對於幫助初學者快速入門有著積極的作用,可以讓初學者更快的完成簡單的代碼編寫,而不用擔心使用哪些變量,選擇哪些類型。對於有壹定編程經驗的人來說,頻繁地在for i=1到9中聲明變量I的類型是很煩人的,所以這個特性在某些場合還是挺討喜的。
VB.NET的具體變化如下:
子程序(函數)的定義和調用。
設置數組的初始值,並且需要指示範圍。
函數格式的變化:日期函數、時間函數和壹些數學函數不能直接使用,字符串函數不能使用。DatePart、DateAdd和DateDiff函數的第壹個參數的定義已更改。
不再使用Set保留字。
Wend保留字由End While替換。
新運算符:+=,-=,/=,* =。
劣勢
這麽大的變化,壹度被認為是微軟為了延長VB的生命力而做出的。於是,VB被改得幾乎面目全非,成了類似C#的新語言。VB6的程序在VB.NET幾乎無法運行。雖然微軟為這個問題提供了壹個“升級向導”,但它無法進行徹底的轉換。這樣,程序員不得不付出相當大的努力來手動轉換代碼。
2005年,微軟宣布不再支持非。NET版本的VB。VB社區立即作出回應,對這壹消息表示關註。壹些老用戶也提交了請願書,希望繼續為VB提供技術支持。微軟還不願意改變他們的決定。
關於VB的爭議
反對
VB是壹種有爭議的語言:許多程序員對VB程序的質量有強烈的反感。很多人覺得VB不適合他們,覺得是小孩子和程序員新手的語言。從設計之初,它就是壹種簡單的語言。C++和Java中的壹些特性在VB中沒有出現。在感受到開發的便利性和速度的同時,壹些類似於編譯時類型和聲明檢查的功能是默認關閉的。於是壹些程序員壹邊感嘆VB的可用性,壹邊沮喪地看著壹些類似的“未定義類型”錯誤。
壹些評論家認為VB的簡單特性使它在未來變得有害。很多人自學了VB,但是沒有學到好的編程習慣。VB進入課堂,學生不會學到很多基礎的程序技術和結構,因為很多技術已經包含在那些用戶看得見的組件裏了。不需要學習標準的編程習慣,因為VB有可視化的特點,導致壹些莫名其妙的代碼。此外,許多錯誤和警告在默認情況下是被檢查的,這使得程序員很難發現隱藏的錯誤。有經驗的程序員在用VB編程時會打開這些選項。
許多評論家批評微軟只是簡單地將BASIC的思想復制到VB中。著名計算機科學家Edsger Dijkstra有壹句名言,“如果壹個學生最早學過BASIC,他幾乎不可能學會優秀的編程,因為這些人已經放棄了重生的希望。”(Dijkstra對Fortran,PL/1,COBOL,APL也毫不留情。另壹個笑話是:“真正的程序員不用BASIC。只有12歲以下的孩子才能使用。”
它不是很簡單,它開發的程序只能在微軟Windows下運行。
文件太大。Visual Studio需要幾張磁盤來安裝。VB程序在運行時也需要壹個大小為1.4M的運行時。
IDE中有壹個錯誤。
VB不能很好的綜合Windows的基本API,經常用低級操作的“招數”來編程。C語言的低級內存操作比VB簡單多了。
支持者
然而,許多VB的支持者解釋說,VB的易用性是它最大的優勢,它可以讓有經驗的VB程序員或剛剛了解壹點它的人以自己的方式快速開發程序。而且,VB程序可以非常簡單的與數據庫連接。比如可以把數據庫和控件綁定,這樣用VB寫的程序不用寫壹行代碼就可以掌握數據庫的所有信息。
很多語言特性,比如GoSub,On Error和通過變量名的最後壹個字符(比如string str$)判斷聲明類型,都是出自BASIC。VB的語法不同於大多數語言,這可能會讓新程序員感到困惑。比如“Dim a,b,c As Integer”語句聲明c是整型變量,但是a和b還是variant (Object in。NET)類型。(如果要聲明三個整數,必須把dim a寫成整數,b寫成整數,c寫成整數;而直接寫Dim a,後面不寫類型,會自動變成Variant type——占用大量資源。這個問題在VB.NET後來的版本中已經解決了,Dim a,b,c作為Integer的類型都會是整數)。
還有壹些特性,比如下劃線字符“_”支持壹行代碼寫成多行。有些程序員因為使用時不符合規範而出錯。
摘要
VB會引來更多的褒貶,會繼續被用戶和程序員使用。非常適合開發界面友好的程序(比如終端用數據),不適合開發其他程序(比如聯合計算程序)。
VB對於初學者來說是壹個很好的入門軟件,尤其是對於那些有編程天賦但自己並不了解的人。從VB入手很容易激發他們的潛力,充分發揮他們在這方面的天賦。