上周,微軟宣布了他們改變Visual Basic語(yǔ)言未來(lái)發(fā)展計(jì)劃的想法。這次公布給Visual Basic開發(fā)人員留下了很多不確定性,但Visual Basic語(yǔ)言的設(shè)計(jì)者Anthony D.Green說(shuō)明了這個(gè)新策略的一些細(xì)節(jié)。
Green首先列出了當(dāng)時(shí)使用VB進(jìn)行開發(fā)的四個(gè)基礎(chǔ)指導(dǎo)原則:
VB和C#共享的通用IDE和平臺(tái)構(gòu)建塊。 共享的“多范式、面向?qū)ο蟆⒚钍健?qiáng)類型等”語(yǔ)言特性。 在API的邊界需要強(qiáng)大的跨語(yǔ)言互操作性和豐富的語(yǔ)言創(chuàng)新機(jī)會(huì)(如泛型、LINQ、異步)。 客戶對(duì)語(yǔ)言工具奇偶校驗(yàn)的反饋。現(xiàn)在微軟認(rèn)為VB非常適合那些以Windows平臺(tái)作為目標(biāo)開發(fā)平臺(tái)的開發(fā)者或者編程新手(至少,編程不是他們主要的職業(yè))。
另一方面,非Windows平臺(tái)的崛起給C#帶來(lái)了一定的影響但不會(huì)影響到VB。在Green看來(lái),VB不太適合游戲開發(fā)或者基于Mac OS X的開發(fā)。VB對(duì)于非Windows平臺(tái)適應(yīng)性的缺乏造成了困境,F(xiàn)#的開源以及C#對(duì)開源工具日益增長(zhǎng)的支持,使得這兩種語(yǔ)言在吸引和保留開發(fā)人員方面優(yōu)于VB。越來(lái)越多的C#開發(fā)人員進(jìn)入了良性循環(huán),他們可以帶來(lái)更多的進(jìn)步,從而吸引更多的開發(fā)人員。
最后,Green提出了一種情況,如果保持C#與VB的開發(fā)進(jìn)度和功能特性齊頭并進(jìn),這對(duì)于有限的資源會(huì)產(chǎn)生壓力。微軟希望專注于C#,因?yàn)樗宰羁斓姆绞教峁┳顝V泛的反饋。一旦這種反饋產(chǎn)生了對(duì)VB開發(fā)人員有價(jià)值的想法,微軟會(huì)考慮從C#移植到VB。
這對(duì)于那些想知道他們?cè)赩B語(yǔ)言的投入能得到什么回報(bào)的開發(fā)者來(lái)說(shuō)意味著什么?之前列出的四個(gè)原則已經(jīng)被以下目標(biāo)替代:工具、平臺(tái)和語(yǔ)言。
Green說(shuō),VB的質(zhì)量工具仍然是重點(diǎn),并提到Visual Studio 2017中的動(dòng)態(tài)單元測(cè)試如何支持VB。在平臺(tái)的基礎(chǔ)上,VB仍然會(huì)被維護(hù)以便支持.NET Core的.NET標(biāo)準(zhǔn)。VB語(yǔ)言本身也會(huì)增加新的功能和關(guān)鍵字,但前提是它們對(duì)VB是有意義的,而不僅僅是因?yàn)镃#中增加了這些特性。Green舉例說(shuō)像UTF-8字符串就不會(huì)添加到VB中。
VB開發(fā)人員的反應(yīng)非常激烈,許多人期待VB可以支持多平臺(tái),包括像HoloLens這樣的微軟技術(shù)。Reed Kimble寫到:“這是一個(gè)雞和蛋的問(wèn)題。微軟不提供某個(gè)功能是因?yàn)樗麄儧](méi)有聽(tīng)到人們的要求。人們沒(méi)有要求某個(gè)功能是因?yàn)槲④涍€沒(méi)有提供該功能,所以這必定意味著人們無(wú)法獲得這些功能。
查看英文原文:Visual Basic: The Road Ahead