VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 王国荣对“Visual Basic宣告死亡”的回复
发表评论(0)作者:白东摘, 平台:VB6.0+Win98, 阅读:14835, 日期:2001-03-28
Visual Basic宣告死亡

剛過完農曆新年,很抱歉大過年的就在標題放上這個字眼。但是事實就是
如此,使用人口眾多,簡單容易上手的微軟開發工具Visual Basic,即將
面臨宣告死亡的命運。

或許您會說這是我這個反微軟基本教義派在造謠,現在VB的版本是VB 6.0
,再來不是有VB 7.0,就是所謂的Visual Basic.NET嗎?可是等大家拿到
這個新版的VB.NET,或是去要一份Beta版來看看,現在熟悉VB的人,可以
發現自己根本無從下手,因為從基本語法開始已經全都和以前不一樣了。
目前只熟VB的朋友必須重新學起,反倒是會Java/C++的朋友會發現新的VB
似曾相識,因為VB已經改頭換面成為物件導向語言,原來那個比爾蓋茲的
最愛,從 DOS時代就伴隨微軟使用者成長的BASIC語言已經不復存在。

先不論這個改變對既有使用者的影響,這應該是一個好的改變。原有的VB
優點是初學者容易上手,很簡單就可以拼拼湊湊兜出一個可以執行的小程
式,對於入門者或是功能簡單的應用程式來說,實在是個好工具。但是面
對目前網路時代這些企業級的系統開發,舊有的VB實在不勝負荷。很多人
會寫VB程式,但是如果沒有嚴謹的專案管理和好的寫程式習慣,很容易大
家寫出一堆很難維護的VB程式碼。反觀Java或C+ +,由於規定嚴謹,雖然
因此造成入門學習障礙比 VB高,但是一旦領進門,按照物件導向分析/設
計的腳步一路走來,就會寫出漂亮而且易讀、易管理的程式。所以微軟這
次趁推出.NET的機會,將舊有的VB一次大翻修,正式跨入物件導向的領域
,在技術成長上面來看應該是正確的方向。

只不過微軟每次有新版本,總是不顧舊版使用者的需求。現在VB 6.0到VB
.NET全面大翻修,在微軟網站上宣稱要推出〝VB.NET Upgrade Tool〞用
來幫助升級VB 6.0的舊程式,不過從上面的功能介紹看來它只做了五件事


1. 變數到物件的型別轉換2. 長短整數型態的轉換3. 移除參數預設的性
質 4. 增加陣列範圍定義限制5. 將VB 6.0 Form轉換成新的Windows Form

但是將舊的VB 6.0程式全盤轉為VB.NET,哪光是這五件事就可以做好的。
於是微軟又有另一份長達26頁的文件〝Preparing Your Visual Basic 6.
0 Applications for the Upgrade to Visual Basic.NET〞,洋洋灑灑列
出一串在寫VB 6.0程式時的注意事項,只有這一串條件都符合了,才有可
能用上述的升級工具來作轉換。面對目前成千上萬行VB程式,各位VB程式
設計師,請大家自求多福。重新改寫也許是一種活路,但是如果要重新改
寫,為什麼不乾脆用Java?反正VB.NET也會是物件導向語言,微軟另一個
神奇寶貝 C#則是根本抄襲自Java和C++,在VB.NET尚未正式上市之前,我
倒是建議大家來學Java。J2EE會是比.NET更完備,而且是目前已經成熟的
企業運算架構。如果到時候.NET全部正式推出,您還是喜歡被微軟擁抱的
感覺,先會了Java再接觸C#或是VB.NET,您會覺得得心應手、遊刃有餘。

總之,舊的Visual Basic宣告死亡。對於微軟號稱全世界共有七百萬以上
個 VB程式設計師們,請不要把希望放在這個〝VB.NET Upgrade Tool〞上
面,此舉無異是坐以待斃。與其枯等新版的VB.NET,不如現在開始學Java
。看看正統的物件導向程式要怎麼寫,了解微軟為什麼要全面翻修見賢思
齊,將來不管是寫Java或是VB.NET程式都沒有問題,保證學習所花的工夫
不會白費。
----------------------------------------------------------
以下是:王国荣的回答。
----------------------------------------------------------
過去的謠傳
~~~~~~~~~~

在網際網路最熱的時候,筆者曾經多次聽到這樣的傳言:「微軟將會以 Java 取代 VB」,筆者
總是置之不理或回答:「慘了,那麼我快沒飯吃了」(註:筆者寫了 4 本 VB6 的書籍),筆者深
信以 BASIC 起家的微軟絕對不會放棄 VB,另一方面,微軟有太多產品支援 VB(如 Office 系列
產品支援 VBA、ASP 支援 VB Script),若放棄 VB,相關產品必須大幅改版,消耗的成本太大了。

筆者的看法
~~~~~~~~~~

不可否認的,VB7 引進了 Java 在物件導向方面的優點,這一點讓 Java 的支持者十分得意,甚至
有人說 VB7 是抄襲自 Java。以下是筆者的看法:

物件導向一開始是一種程式設計的觀念,後來慢慢地被程式語言所接納,而發展出物件導向程式語
言,從最早的 SmallTalk 濫觴,後來有美國國防部的 Ada 軟體工程程式語言,到了C++ 集大成,
而 Java 以 C++ 為基礎適時加入網際網路的功能,使其雄霸網際網路程式語言多年。

VB 的發展從 BASIC 語言開始,到了 VB7 具備完整的物件導向功能,期間經歷了兩次主要的蛻變,
當 DOS 演變到 Windows 時,BASIC 蛻變成 VB,今天為了加入完整的物件導向功能,又蛻變 VB7
(或者稱為VB.NET),這讓筆者想到以前看的布袋戲時的一個角色,他的名字叫做「網中人」,網中
人第一次在戲中出現時,武功已經非常厲害,但中原武林之中亦有不少能人,網中人難免要遭逢敵
手而落敗,這時候他會消失一陣子,將自己困在網中蛻變再生,等到他下次出現時,周圍金光閃閃,
一陣如雷貫耳的聲音出現:「第二代,第二代的網中人再生了!哈哈哈!」,當然這回要比上回厲害
多了,但強中自有強中手,網中人的命運最後又難逃再度落敗的下場,不過沒關係,主演者又會在
適當的時機讓他重現江湖,「第三代,第三代的網中人再生了!哈哈哈!」,不管怎麼樣,他總會
再生,而每次再生總引來觀眾的一陣騷動,這回他不知道什麼時候才會再遭逢敵手。

但話說回來,所謂「黑貓白貓都是貓,能抓老鼠的就是好貓」,管他怎麼蛻變,評斷 VB7 要看他的
新功能是否符合我們的需要,筆者將會秉持著過去的風格,將 VB7 的新功能(特別是物件導向)介紹
給大家,屆時請您一起來評斷。

VB7 的現況
~~~~~~~~~~

過去我們撰寫 VB 程式一定要使用 VB(軟體),最後也是利用 VB 這套軟體將 VB 程式編譯成執行檔,
在 .NET Framework相關軟體中,除了 VB.NET(VB 6.0的下一版)是一套完整的 VB 開發環境之外,
.NET Framework SDK 也附有 VB7 編譯器可幫我們將 VB7 程式編譯成執行檔。

目前 VB.NET 跟過去的 VB6 一樣,提供完整的 VB 開發環境,操作介面也與 VB6 類似,能夠使用
VB.NET 開發 VB7 程式可以說是最方便不過的了,不過目前 VB.NET Beta 1 只提供給 MSDN
Universal 訂戶下載,且程式尚不穩定,至於 .NET Framework SDK 所提供的 VB7 編譯器則相當
穩定,筆者都是拿它來撰寫 VB7 程式的。

王國榮 2001/02/05