發展歷史
1991年,微軟推出了Visual Basic 1.0版本。這在當時引起了很大的轟動。這種連接編程語言和用戶界面的開發被稱為Tripod(有時被稱為Ruby),最初的設計是由艾蘭·庫伯完成的。許多專家認為VB的出現是軟件發展史上劃時代的事件。其實從我們目前來看,VB1.0的功能真的太弱了;(但是最近VB 6.0,VB。NET的功能還是挺大的!)。但在當時,它是第壹個“可視化”編程軟件。這讓程序員們樂此不疲,紛紛嘗試在VB這個平臺上創作軟件。微軟也不失時機地在四年內推出了VB2.0、VB3.0、VB 4.0三個版本。而從VB3開始,微軟將ACCESS的數據庫驅動集成到VB中,大大提高了VB的數據庫編程能力。從VB4開始,VB也引入了面向對象編程的思想。VB功能強大,簡單易學。而且VB還引入了“控件”的概念,使得大量已經編譯好的VB程序可以被我們直接使用。VB1.0的DOS版本發布於1991。這種連接編程語言和用戶界面的開發被稱為Tripod(有時被稱為Ruby),最初的設計是由艾蘭·庫伯完成的。
在2002年。NET 2002 (v7.0)出來了,2003年,Visual Basic。NET 2003 (v7.1),2005年,Visual Basic 2005 (v8.0)問世。同時針對Visual Basic的初學者和學生推出了免費的Visual Basic 2005簡化版Visual Basic 2005速成版。
VB 2005的顯著優點是可以直接編寫XP風格的按鈕和其他控件。但是它寫的小程序占用了將近10MB的內存。
經過幾年的發展,已經成為壹種專門的開發語言和環境。用戶可以用Visual Basic快速創建Windows程序,現在可以編寫企業級的客戶機/服務器程序和功能強大的數據庫應用程序。
VB會引來更多的褒貶,會繼續被用戶和程序員使用。非常適合開發界面友好的程序(比如終端用數據),不適合開發其他程序(比如聯合計算程序)。
語言特征
壹個典型的VB進程VB的中心思想就是讓程序員,不管是新手還是專家,都能輕松使用。VB使用的GUI系統可以簡單地構建應用程序,但也可以開發相當復雜的程序。VB程序是基於窗體的可視化組件排列組合,並添加代碼來指定組成的屬性和方法。因為組件中已經部分定義了默認的屬性和方法,所以程序員不用寫太多代碼就可以完成壹個簡單的程序。在過去的版本中,VB程序的性能已經放到了桌面上,但是隨著計算機速度的快速提升,關於性能的爭論已經越來越少了。
表單控件的添加和更改可以通過拖放技術來實現。壹個裝滿控件的工具箱用於顯示可用的控件(如文本框或按鈕)。每個控件都有自己的屬性和事件。默認屬性值是在創建控件時提供的,但程序員也可以更改它們。許多屬性值可以在運行時隨著用戶的動作和修改而改變,從而形成壹個動態的程序。例如,可以更改控件位置的代碼被添加到窗體大小更改事件中,每當用戶在運行時更改窗口大小時,控件都會更改其位置。通過在文本框中的文本變化事件中添加相應的代碼,程序可以在輸入文本時自動翻譯或阻止某些字符的輸入。
VB程序可以包含壹個或多個窗體,或者壹個主窗體和多個子窗體,類似於操作系統的外觀。功能很少的對話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。
VB的組件可能有也可能沒有用戶界面。這樣,服務器端程序可以處理添加的模塊。
VB使用參數計算的方法來收集垃圾,垃圾中包含了大量的對象,並提供了基本的面向對象支持。因為越來越多組的出現,程序員可以選擇自己需要的擴展庫。與某些語言不同,VB不區分大小寫,但可以自動將關鍵字轉換為標準大小寫狀態,並強制符號表中實體的變量名遵循書寫規則。默認情況下,字符串比較區分大小寫,但是可以關閉此功能。
VB使得大量的外部控件有了自己的生存空間。為VB提供了大量的第三方控件。VB還提供了構建、使用和重用這些控件的方法,但是由於語言問題,從壹個應用程序創建另壹個並不容易。
學期
在討論Visual Basic時,您經常會聽到以下術語,因此對這些術語有壹個基本的了解非常有幫助。
控件——簡單來說,控件就是壹個圖形化的工具,用來形成或構建壹個Visual Basic應用程序,包括表單、按鈕、復選框、列表框、數據控件、表格控件、圖片控件等等。
事件-由用戶或操作系統觸發的操作。事件的例子有擊鍵、鼠標點擊、雙擊鼠標、時間限制或從端口接收數據。
方法——嵌入在對象定義中的程序代碼,它定義了對象如何處理信息和響應事件。例如,數據庫對象具有打開記錄集並從壹條記錄移動到另壹條記錄的方法程序的基本元素。它包含定義其特征、定義其任務和標識其可以響應的事件的屬性。控件和窗體是Visual Basic中所有對象的示例。
對象-控件、窗體等。可以看作是壹個物體。
過程-為完成特定任務而編寫的代碼段。過程通常用於響應特定事件,也可以用作應用程序的自定義功能。
屬性-屬性是組成用戶界面的對象屬性的具體描述。比如上面提到的“對象”的大小、位置、顏色、寬度、高度等等都稱為控件的屬性。屬性決定了對象的外觀,有時還決定了對象的行為。對象的大部分屬性在VB中已經預先定義好了,但是有些屬性需要在應用過程中定義。屬性可以為對象提供數據並從中檢索信息。
VB的局限性
繼承。VB5和VB6都是面向對象的編程語言,但是它們不包含繼承特性。VB提供了特殊的類函數,但還是滿足不了程序員的需求。VB.net包含了所有面向對象的特性。
多線程支持(VB.Net 2002及以後的版本,都支持多線程技術。)
異常處理。Try-Catch-Finally在VB.net中用於處理異常。在VB中,只有“出錯時轉到行”語句。
對指針的支持非常有限。
VB只能支持8-32位整形,很多語言無限支持。
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簡單多了。