您的位置:首頁>正文

充滿了爭議的Visual Basic語言

Visual Basic(VB)是由微軟公司開發的包含環境的事件驅動程式設計語言。 它源自於BASIC程式設計語言。 VB擁有圖形化使用者介面(GUI)和快速應用程式開發(RAD)系統, 可以輕易的使用DAO、RDO、ADO連接資料庫, 或者輕鬆的創建ActiveX控制項。 程式師可以輕鬆地使用VB提供的元件快速創建一個應用程式。

VB的中心思想就是要便於程式師使用, 無論是新手或者專家。 VB使用了可以簡單創建應用程式的GUI系統, 但是又可以開發相當複雜的程式。 VB的程式是一種基於表單的視覺化元件安排的聯合, 並且增加代碼來指定組建的屬性和方法。 因為預設的屬性和方法已經有一部分定義在了元件內,

所以程式師不用寫多少代碼就可以完成一個簡單的程式。 過去的版本裡面VB程式的性能問題一直被放在了桌面上, 但是隨著電腦速度的飛速增加, 關於性能的爭論已經越來越少。

表單控制項的增加和改變可以用拖放技術實現。

一個排列滿控制項的工具箱用來顯示可用控制項(比如文字方塊或者按鈕)。 每個控制項都有自己的屬性和事件。 預設的屬性值會在控制項創建的時候提供, 但是程式師也可以進行更改。 很多的屬性值可以在運行時候隨著用戶的動作和修改進行改動, 這樣就形成了一個動態的程式。 舉個例子來說:表單的大小改變事件中加入了可以改變控制項位置的代碼, 在運行時候每當使用者更改視窗大小, 控制項也會隨之改變位置。 在文字方塊中的文字改變事件中加入相應的代碼, 程式就能夠在文字輸入的時候自動翻譯或者阻止某些字元的輸入。

VB的程式可以包含一個或多個表單, 或者是一個主表單和多個子表單,

類似於作業系統的樣子。 有很少功能的對話方塊視窗(比如沒有最大化和最小化按鈕的表單)可以用來提供彈出功能。

VB的元件既可以擁有使用者介面, 也可以沒有。 這樣一來伺服器端程式就可以處理增加的模組。

VB使用引用計數的方法來進行垃圾收集,

這個方法中包含有大量的物件, 提供基本的物件導向支援。 因為越來越多組建的出現, 程式師可以選用自己需要的擴展庫。 和有些語言不一樣, VB對大小寫不敏感, 但是能自動轉換關鍵字到標準的大小寫狀態, 以及強制使得符號表入口的實體的變數名稱遵循書寫規則。 預設情況下字串的比較是對大小寫敏感的, 但是可以關閉這個功能。

VB使得大量的外界控制項有了自己的生存空間。 大量的協力廠商控制項針對VB提供。 VB也提供了創建、使用和重用這些控制項的方法, 但是由於語言問題, 從一個應用程式創建另外一個並不簡單。

關於VB的爭議

VB是一種充滿了爭議的語言:很多程式師對VB程式的品質有強烈的反感。

很多人認為VB不配他們使用, 認為它是一種給兒童和菜鳥程式師的語言。 它自從設計開始就是一種簡單的語言。 一些C++和Java中的特性在VB中並沒有出現。 在感受開發的方便和快速的同時, 一些類似于編譯時進行類型和聲明檢查的功能在預設情況下是關閉的。 這樣一些程式師一邊感歎VB的易用性, 一邊沮喪地看著一些類似于“未定義類型”錯誤的發生。

一些批評家認為VB的簡單特性使得其在未來具有傷害性。 很多人自學了VB, 但是並沒有學到好的程式設計習慣。 當VB進入課堂的時候, 學生們不會學到很多基礎的程式技術和結構, 因為很多技術已經包含在那些對使用者可見的元件裡面了。 不用學習標準的程式設計習慣, 因為VB具有視覺化的特性,所以導致了一些莫名其妙的代碼的產生。而且很多錯誤和警告的檢查預設情況下都是關閉的,程式師很難找到隱藏的錯誤。有經驗的程式師在用VB程式設計的時候都會把這些選項打開。

很多批評家批評微軟簡單地拷貝了BASIC的思想到VB中。著名的電腦科學家艾茲格·迪科斯徹說過一句名言:“如果一個學生最早學過BASIC,那麼幾乎不可能讓他學會優秀的程式設計:因為這些人已經放棄了重生的希望。[2]”(Dijkstra對待Fortran、PL/1、COBOL和APL同樣也毫不留情。)另外一個笑話是:“真正的程式師不用BASIC。12歲以下的孩子才用。”

因為VB具有視覺化的特性,所以導致了一些莫名其妙的代碼的產生。而且很多錯誤和警告的檢查預設情況下都是關閉的,程式師很難找到隱藏的錯誤。有經驗的程式師在用VB程式設計的時候都會把這些選項打開。

很多批評家批評微軟簡單地拷貝了BASIC的思想到VB中。著名的電腦科學家艾茲格·迪科斯徹說過一句名言:“如果一個學生最早學過BASIC,那麼幾乎不可能讓他學會優秀的程式設計:因為這些人已經放棄了重生的希望。[2]”(Dijkstra對待Fortran、PL/1、COBOL和APL同樣也毫不留情。)另外一個笑話是:“真正的程式師不用BASIC。12歲以下的孩子才用。”

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示