當前位置:
首頁 > 知識 > Visual Basic 終於要衰落了嗎?

Visual Basic 終於要衰落了嗎?

Visual Basic 終於要衰落了嗎?

28年過去了,世界上最流行的語言之一Visual Basic終於要衰落了嗎?

Visual Basic 終於要衰落了嗎?

作者 | Matthew MacDonald

譯者 | 譚開朗,責編 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下為譯文:

我要坦白一件事:在我成為一名使用C#、Java、以及JavaScript等現代編程語言的受人尊敬的開發者之前,我曾是大受歡迎又有些不合時宜的Visual Basic的忠實粉絲。

坦白說來,我對Visual Basic的痴迷是這樣開始的:在我的孩童時期,我就學會了使用BASIC語言編程。我是從Microsoft那個古董級的DOS操作系統上,通過極具創新性的QuickBASIC環境開始的。直至今日,我仍記得在櫻桃藍的背景下用白色文本來編寫代碼的場景。

Visual Basic 終於要衰落了嗎?

在1988年,QuickBASIC是一種不可思議的編程語言。你可以編寫不帶笨拙行號的代碼,在鍵入代碼時能實時捕獲語法錯誤,並支持直接從開發環境中啟動程序,而無需通過命令行的方式來啟動。當你完成代碼編寫後,你還可以通過這些軟盤把程序分享給好友:

Visual Basic 終於要衰落了嗎?

現如今,QuickBASIC僅僅是對遙遠過去探索的另一種存在。真的是這樣嗎?一個名為QB64的創新項目創造了現代的QuickBASIC的復刻版。它無需模擬器就可以在Windows、MacOS和Linux系統上運行。當你用QB64運行一個程序時,它有一個很巧妙的方法——先將BASIC代碼編譯成C++再進行下一步編譯。

Visual Basic 終於要衰落了嗎?

經典VB和可視化時代

對於傳統基於文本的計算機系統來說,QuickBASIC是一項令人難忘的壯舉。但當Microsoft發布Windows,將PC用戶引領到一個由按鍵和點擊組成的圖形世界時,遊戲規則發生了改變。在Microsoft發布Window 3.0——真正成功的第一版本——與此同時,他們也發布了Visual Basic 1.0。

這是個全新的事物。你可以通過在窗口界面繪製按鈕來為程序創建按鈕,就像某種藝術畫布一樣。要讓按鈕執行某些操作,你要做的就是在設計環境中進行編碼,然後雙擊這個按鈕即可。你沒有使用複雜的C++代碼,也沒有使用成堆的類、複雜的內存管理以及沒有對晦澀難懂的Windows API的調用。與之相反的,你就像是一個文明人,編寫了一目了然的VB代碼。

Visual Basic 終於要衰落了嗎?

所有的這些圖形化固然極具吸引力,但VB成功的真正秘訣在於它的實用性。開發人員找不到像VB這樣能繪製出一個完整的用戶界面並實現快速編碼的工具。儘管歷史學家們喜歡高談闊論Visual Basic的可視化,但它的「招牌」能力卻與圖形化無關。相反,VB因一個傳奇的特性「編輯並繼續」而出名,它支持開發人員運行程序、發現並解決問題以及繼續使用最新代碼。這與眾所周知的、幾乎所有的其他編程環境截然不同,這些環境需要開發人員重新編譯,並在每次更改後重新開始。

Visual Basic蓬勃發展了近十年。從一開始的適用於初學者的開發環境,後來發展成給程序員使用的專業工具。隨著VB 6的發布(這是經典Visual Basic的最後一個版本),據估計,用VB編寫的代碼量是C++的十倍。Visual Basic通過ASP(Active Server Pages,動態伺服器頁面)進入公司的辦公室甚至連到網路,這是另一種非常流行的技術。現在,你可以創建與VB組件交互的Web網頁,稱之為資料庫,並可以動態編寫HTML。

所有的這些幾乎都是在沒有結構的基礎上發生的,除非你自己創建一個結構。這是Visual Basic的一個不成文主題,它讓你此刻自由,但往後你可能會後悔的。

Visual Basic 終於要衰落了嗎?

經典VB的問題

VB在很多領域裡聲名狼藉。

對於面向對象,VB不支持繼承。這是一個令人匪夷所思的爭議,因為對於初級開發者來說,使用繼承常常是搬起石頭砸自己的腳,而這正是VB所不需要的功能。實際上,經典VB並非完全不支持面向對象。在完成其生命周期時,它已經支持眾多的介面、多態性和類庫,所有這些都是從COM借鑒來的,COM是組件技術的核心,它在Windows的任一版本中都是必不可少的。

經典VB的真正問題在於它太過成功。它極為有效地降低了初級程序員的學習難度,使得幾乎所有人都可以通過VB來進行編程。粗心大意的新手、一成不變的公司職員和暑期學生都紛紛加入進來,解決了在其他任何平台上更為困難的問題,到處都是機械式的代碼。

換言之,即使你不是一名訓練有素的程序員也可以輕易上手VB,因為VB太好用了,所以都是新手在用。而VB也從來沒有採取措施來鼓勵程序員糾正不良的開發習慣。

Visual Basic 終於要衰落了嗎?

VB.Fred與.Net解決方案

我們快進到2002年,此時的Microsoft正在做它最擅長的事——顛覆自己的開發生態系統,引入全新的工作模式。

這一次,這個項目是對COM的大規模重構,而組件技術是支撐Windows(間接的經典VB)的基礎。對於一家已經下過幾次賭注的軟體巨頭來說,這是孤注一擲的時刻。

Visual Basic 終於要衰落了嗎?

Microsoft之所以將重新啟動命名為.NET是因為一些不確定因素,其中包括互聯網技術仍然是令人耳目一新的,以及.NET包含了 Microsoft一心要推廣的Web服務功能。它深受Java的影響,並且包含了許多用於與資料庫通信、構建網站、編寫多線程程序、通過套接字建立連接的工具——而這些幾乎是所有業務開發人員能想像到的用例。

唯一的問題是,為了獲得這些新特性,Microsoft不得不放棄幾乎所有的經典VB。

Visual Basic 終於要衰落了嗎?

如果你仔細觀察的話,就會發覺新版本的VB.NET看起來還是老樣子,但它還是有許多大大小小的突破性變化。從大的方面來說:舊的VB程序受困於老舊的編程世界中,而一個極其糟糕的遷移嚮導幾乎不能改變這一點。從小的方面來說:經典VB的程序員必須改變他們計算數組元素的方式。他們再也不能像常規那樣從1開始計數,現在他們必須從0開始,就像正規的程序員一樣。

還有一個大的方面:「編輯並繼續」的特性已不復存在。

開發人員喜歡吐槽已不是新鮮事了,而VB開發人員尤甚。不久後,一群有影響力的VB開發人員將Microsoft的新編程環境命名為 VB.Fred,並強調無論它是什麼,這種新語言都不是Visual Basic。

Visual Basic 終於要衰落了嗎?

是什麼宣判了Visual Basic的命運?

你可能會認為,是.NET的變化打破了VB的基礎,並讓VB不可避免地走向衰落。但事實並非如此。

事實上,儘管VB.NET朝著一個新的方向發展並作出了一些突破性的改變,這使得優秀的經典VB代碼成為無人能識的代碼,但它卻變得非常受歡迎。那是因為VB.NET提供了VB開發人員以前從未有過的東西——尊重。

在.NET世界中,VB和C#處於平等的地位。每一行VB代碼都可以轉換成等效的C#代碼行,反之亦然。兩種語言都具有相同的功能,使用相同的組件,並編譯為完全相同的形式(稱其為中間語言)。VB終於擺脫了「醜小鴨綜合症」。

但是,作為另一種受人尊敬的編程語言也存在一個問題。人們對VB的熱情消失了,它不再是大家的首選語言了。這不是因為VB變了,而是因為C#變了。

正如VB獲得了與C#相同的功能一樣,C#也與Visual Basic一樣易於上手。例如,.NET的類型安全和內存管理功能意味著C#開發人員永遠無須擔心內存泄漏問題,這和VB開發人員一樣。

換句話說,C#現在有了保護業餘愛好者、學生和初級程序員的「護欄」,而又不放棄它的功能。突然之間,VB不再是什麼特別的稀罕物了,它只不過是程序員工具包中的又一個工具罷了。

Visual Basic 終於要衰落了嗎?

Visual Basic 當前的現狀

如今,Visual Basic正處於一個尷尬的境地。在專業開發人員中,幾乎沒有人使用Visual Basic,它甚至都沒有出現在專業開發人員調查中的清單,也沒有出現在GitHub存儲庫中。然而,Visual Basic仍然存在,它將Office的宏連接在一起,給舊的Access資料庫和古老的ASP網頁提供支持,並吸引著.NET新手。「TIOBE 索引」試圖通過查看搜索引擎的結果來衡量語言的流行程度,發現VB仍然排在最受關注的五大編程語言之列。

但這種勢頭似乎已經發生了最後一次轉變。2017 年,Microsoft宣布,它將開始為C#添加新的語言功能,而這些功能可能永遠不會出現在Visual Basic中。這一變化並沒有使VB回到醜小鴨狀態,但它確實消除了VB的一些.NET狀態。

事實上,將VB邊緣化的趨勢已經沿存多年了。專業的開發人員都知道.NET的關鍵部分是用C#編寫的,他們知道C#是演示文稿、書籍、課程和開發者研討會的首選語言。如果你想使用VB,它並不會影響你構建的應用程序,但它可能會妨礙你和其他開發人員進行交流。

Visual Basic本應在教育市場有一個天然的契合點。但即便如此,它仍然是個「敗家子」,像C#和Python這樣的現代語言已經足夠簡單、安全,完全可以作為他們的第一門語言來學習。如果你需要教給小孩更簡單的東西,市場上到處都是像Scratch等圖形化的編程工具。像C#、C、JavaScript這樣的大括弧編程語言也有另一種吸引力,因為它們之間存在著相通的語法。因此,學過一種編程語言的人很快就能熟練掌握另一種語言。

隨著Web開發的發展,Microsoft正眼睜睜地看著機會流失。這樣的VB版本:和VB6一樣容易使用,可以編譯成JavaScript並與HTML表單進行設計器配對,誰能不被它所吸引呢?是的,它並不是構建下一個Google Maps的最適合工具,但它可以重新喚起Visual Basic的吸引力,讓商業開發人員、學生和愛好者創建簡單的在線應用程序,而不必像JavaScript那樣笨拙。相反,Microsoft創造了一個基於VB的產品,叫做LightSwitch,但它隨著Silverlight瀏覽器插件的消失而消失。如果Microsoft開發出另一款面向大眾的編碼產品,它更有可能是一種低代碼模板驅動的工具,比如PowerApps。

Visual Basic以前也不是沒受到過威脅,但這一次感覺不一樣了。作為世界上曾經最流行的編程語言之一,Visual Basic似乎終於要落幕了。即使這是真的,Visual Basic在近幾十年內也不會消失。相反,它將會成為另一種遺留產品,一個被忽視的沒有激情也沒有未來的工具。不管我們失去了什麼特別的事物——或者最終就像幫一條苟延殘喘的老狗擺脫痛苦一樣——這一切都由你來決定。

原文:https://medium.com/young-coder/the-rise-and-fall-of-visual-basic-f422252349a6

作者:Matthew MacDonald,技術作家、教師、程序員。著有幾十本圖書,現在從事編程和科學教育。

本文為 CSDN 翻譯,轉載請註明來源出處。

熱 文推 薦

?蘋果或推中國特色版 iPhone;小米回應萌拍抄襲蘋果事件;微軟停止審核發布 Windows Phone 8.x | 極客頭條

?如何向父母解釋什麼是爬蟲?

?滴滴章文嵩:不僅軟體開源,還向學界開放數據

?小米崔寶秋:小米 AIoT 深度擁抱開源

?獨家 | Vitalik Buterin:以太坊2.0之跨分片交易

?如何在標準的機器學習流程上玩出新花樣?

?面試官:你簡歷中寫用過docker,能說說容器和鏡像的區別嗎?

?C++、Python、Rust、Scala構建編譯器的差異性究竟有多大?

?馬雲曾經偶像,終於把阿里留下的1400億敗光了!

Visual Basic 終於要衰落了嗎?

點擊閱讀原文,輸入關鍵詞,即可搜索您想要的 CSDN 文章。

Visual Basic 終於要衰落了嗎?

你點的每個「在看」,我都認真當成了喜歡

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

Python 3.8 新功能大揭秘
Python還能走多遠?

TAG:CSDN |