Visual Basic 終於要衰落了嗎?

2021-02-15 CSDN

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

作者 | Matthew MacDonald

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

出品 | CSDN(ID:CSDNnews)

以下為譯文:

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

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

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

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

經典VB和可視化時代

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

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

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

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

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

經典VB的問題

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

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

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

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

VB.Fred與.Net解決方案

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

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

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

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

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

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

開發人員喜歡吐槽已不是新鮮事了,而VB開發人員尤甚。不久後,一群有影響力的VB開發人員將Microsoft的新編程環境命名為 VB.Fred,並強調無論它是什麼,這種新語言都不是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,它甚至都沒有出現在專業開發人員調查中的清單,也沒有出現在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億敗光了!

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

相關焦點

  • 超好用的Visual Studio編程軟體,你在用嗎?
    visual studio不僅可以編寫C,C++,還可以編寫python,還可寫網頁等等語言,功能很強大。再次記錄下來,以便查看。1.搜索「visual studio」打開官網,點擊下載,我選擇的是community版本2.
  • 臺灣音樂衰落了嗎?
    並不是我有意要「掛羊頭賣狗肉」,只是因為我暫時想不到和張雨生關聯特別強的內容。但是我現在想到的這些內容,也是我覺得有交流的價值和必要。所以,招待不周之處,也請寶友們理解和見諒了。我記得很久之前還有寶友給我留言呢,想讓我說說臺灣音樂為什麼會衰落。似乎在我們大多數人的眼裡,臺灣音樂的衰落已經是不爭的事實。
  • 最基礎的Basic大有文章 開言英語告訴你它還有這些用法
    Basic這個單詞相信大家都知道它含有基本、基礎的意思,但僅僅是這樣嗎?國內領先的在線英語教育品牌開言英語告訴你,Basic大有文章,一起來看看它的用法吧。01.Adam 告訴大家一個竅門,如果你看到了 basic 後面出現了加 -s 的情況,這個詞一定是可以當名詞使用的。形容詞的用法我們稍後再為大家介紹。
  • 核心詞彙 visual feast 視覺盛宴
    The play is also a visual feast .這齣戲也是一場視覺盛宴。盛宴【詞組搭配】1. wedding feasts 婚宴, 婚筵2. midnight feast 午夜盛宴3. a visual feast 一場視覺盛宴4. the feast of Christmas 聖誕佳節5. a feast of colors 五彩繽紛6. feast day 節日;齋日;
  • 《衰落與瓦解》摩天輪的苦澀哲學
    瑪格麗特終於前來探望他,卻告訴保羅自己將要嫁給內政大臣。究竟是誰害得保羅蒙受不白之冤?而如今,一句不合適就將過往的情誼一筆勾銷,仿佛什麼都不曾發生。現在我明白了,自己完全屬於靜態型的人。只知讀書,於人無害的保羅就這樣接受著命運的無情戲弄,仿若一隻小白鼠,被推進人生的實驗場,靜待擺布,無能無力。衰落與瓦解,什麼在瓦解,什麼在衰落。
  • | Shadow - Golden Horse Award Best Visual Effects
    Thank you for all the efforts made in the past year and a half, to present the awesome 244 visual effects shots to the big screen.這也是Pixo繼2017年《擺渡人》之後參與影片,第二次獲得金馬獎最佳視覺效果。
  • Visual Studio Code 8 月 Python 擴展更新
    要查看自己是否參與了內測,可以檢查 Python 擴展輸出欄中的第一行,如果希望退出 A/B 測試,可以在 Visual Studio Code 中禁用遙測。詳情查看:https://devblogs.microsoft.com/python/python-in-visual-studio-code-august-2019-release
  • 小行星撞擊地球之前恐龍就衰落了嗎?尋找恐龍滅絕元兇
    要找到它,才能證明這個假說。很快,科學家就開始著手在全世界尋找環狀構造,也就是疑似撞擊坑的地方。剛開始的時候,科學家有點盲目,甚至有點悲觀。因為這次撞擊事件距今已經6500萬年了,從那時起,地表的面貌發生了巨大的變化,大約有20%的地表形態(包括海洋和陸地)在各種地質過程中已經永久消失了。如果這次撞擊恰好發生在消失的地方,那麼人們將永遠找不到撞擊坑了。但是,他們並沒有放棄。
  • mememe:乳搖搖出的雄性衰落
    今天要給大家推薦的,是一部六分鐘的動畫作品《mememe》。老衲以為這部動畫已經在全網封殺了,沒想到在騰訊視頻上竟然有漏網之魚。還記得老衲推薦的《雄性衰落》一書嗎?整部動畫最核心的點在於,不論是那些令人動心的肉體還是刺激的戰鬥場面都無法讓男孩忘記自己女友的眼淚這與雄性衰落中所強調的不謀而合少年們在AV和遊戲中稱王稱霸,到頭來最不願面對的是正常的男女關係因為和人的交往才是最難的
  • 曾數次被央視邀請的「金牌主持」,如今卻漸漸衰落,他真的輸了嗎
    曾數次被央視邀請的「金牌主持」,如今卻漸漸衰落,他真的輸了嗎估計很多人都看過非誠勿擾這檔節目吧,這檔節目播出後讓兩位主持人頓時火冒三丈,他們分別是樂嘉和孟非,我們都知道,樂嘉離開這個節目後,由於性格上的缺陷,便從一線主持人淪落為
  • 南非曾是經濟強國,曼德拉上臺後開始衰落,曼德拉該負責嗎?
    因此人們產生了這樣的疑問,南非的衰落是否該由曼德拉負責呢?有人說曼德拉致力於種族平等,黑人的地位提高,引起了白人的不滿,白人撤資,而黑人又懶素質又低,一些先進的機器無法駕馭,造成了經濟衰落。說南非衰落曼德拉難辭其咎。對於這個問題要「一分為二」的看待,南非經濟衰退是各種原因造成的,並非曼德拉所為,但是他也脫不了干係。
  • 香港電影因何衰落,身在其中的王晶分析的這麼透徹
    然而如今香港電影的繁榮早已不在,香港電影的概念也已成為了過去時,香港電影是怎麼衰落的?為什麼會衰落?不同的人有著不同見解,而經歷了香港電影從繁榮到衰落的導演王晶也有著自己的見解。在王晶看來,臺灣市場的崩潰是香港電影崩潰的一大導火索。自九零年開始,香港電影在臺灣華人社會獲得了廣泛的認同,最瘋狂的時曾達到過香港同時開五條院線供應臺灣電影市場。
  • 中國動作電影正在衰落?
    更令人揪心的是,在《弓》(韓國出品)、《拳霸》(泰國出品)等亞洲動作片風靡世界時,中國動作片卻罕有佳作,顯得異常冷清。如今,我們許多電影可能都會有一點拳腳展示,卻很難找出一部純粹的動作片。這是值得我們關注的話題:中國動作電影真的衰落了嗎?它為什麼會衰落?為此,《北京晨報》專訪了作家、電影工作者張海。
  • 《奇異博士》爛番茄100%新鮮度,漫威這是要搞死DC嗎?
    天朝的觀眾們有福了,終於不用再苦巴巴的求資源或是等著了。先甩個預告片~總是演高智商人才的卷福這次演了個超級英雄,而且聽說奇異博士還會加入復聯3哦!有沒有超期待!——USA TodayCasts a few impressive spells of its own, not the least of which is the redemption of the visual-effects extravaganza.
  • 王晶:港片已經衰落了,要拍純港片投資不能超過600萬
    王晶表示,如今你要拍所謂有「港味」的純港片,放棄內地市場,那意味著成本不能超過600萬,稍微請個有點名氣的影星都不夠。想來也可以理解,當年香港電影的繁榮是建立在整個大陸電影產業落後的基礎上,隨著大陸市場開放,港片的衰落是必然的。
  • 神問答|香港電影為什麼衰落了?
    導語:香港電影為什麼衰落了?關於「香港電影為什麼衰落了?」這個問題,小編整理了多個來源的用戶回答,供大家更全面的了解。對於ID為「迷妹看電影」網友的精彩回答,大家紛紛點讚支持,他是這麼回答的:經濟危機,盜版,好萊塢電影的興起,韓國電影搶佔市場,sars,本土電影票房劇降都是造成香港電影衰落的原因。
  • 我國南方強勢崛起,北方城市能擺脫急劇衰落的命運嗎
    所有的數據都顯示,中國北方正在快速衰落。據近日統計局公布的數據,2019年工業增加值位居前十的省份是廣東、江蘇、山東、浙江、河南、福建、湖北、四川、湖南和河北。北方省份只佔3個,且北方經濟最發達的第一大省山東,幾乎被南方的浙江趕上。
  • 聯想的衰落,核心原因是柳傳志的「觀點」
    聯想的衰落,核心原因是柳傳志的「觀點」在21世紀初期的時候,每當人們說起聯想,都會不自覺地豎起大拇指,更是會引以為傲,將其視為中國科技未來發展的希望。要知道,20萬元在當時雖然也算得上是一筆巨款,但對於科研型企業來說的話,還是捉襟見肘的。但即使如此,這群人每天都激情盎然,為自己的理想而不斷奮鬥。在他們中間,年長的柳傳志和倪光南成為了主心骨。其中因為柳傳志更有商業天賦,所以主要事情也交給了他,柳傳志在當時也成為了聯想最辛苦的一個人。