VB快淘汰了嗎?
VB沒落的標志性事件就是微軟在.NET出來以后直接打斷了向后兼容而且停掉了老VB工具鏈的全部開發(fā)更新,一直到現(xiàn)在也沒有開源。既然親爹直接斷了生路又不讓外人抱養(yǎng),那不沒落也根本就不可能吧。
至于為什么要這樣做,有很多戰(zhàn)略上的原因,但其中有個原因就是所謂的“沉默的大多數(shù)”理論,也就是說在一個開發(fā)者社區(qū)里面,可能只有代表3%人群的聲音可以被廠商聽到,而在02年以前的VB社區(qū)里,那3%的活躍用戶和剩下的97%是撕裂的,這導致了微軟對形勢的誤判。
要知道,那個時候Windows下面趁手的應用開發(fā)工具并不多,VB的用戶群體,起碼在微軟從用戶反饋的角度看來,要比今天還在搞VB的那批人要硬核的多。那些人整天抱怨的,是VB里名存實亡的面向?qū)ο螅愀獾拇a實踐,和惡劣的多線程支持(實際上微軟在后來在.NET里迭代了很多次才整出一點現(xiàn)代異步編程的樣子,還搞出來一大堆歷史包袱,90年代末的時候是個啥樣子可想而知)。微軟當初的想法應該是,既然你們要真面向?qū)ο螅蔷退餍詠韨€徹底進化,把VB弄成支持動態(tài)類型編程的C#好了,結(jié)果那3%一看還不如直接拿C#寫起來更爽啊立馬就轉(zhuǎn)投了頭也沒回……
而被微軟忽略的那97%的用戶,也就是題主所說的非科班程序員,在那個時候是很少發(fā)出自己的聲音的。這類用戶典型的畫像,大概就是半路出家的行業(yè)軟件作者,什么工具好上手出活快用什么,對程序健壯度代碼美感完全不在意(所以有On Error Resume Next),沒有多線程運算的時候界面卡住了那就Hack一下好了(DoEvent),程序跑起來就和客戶吹逼去了,上開發(fā)論壇也是找現(xiàn)成解決方案,哪有空還分享發(fā)表一下自己對這個語言的看法。加上那時候的行業(yè)軟件,很多都是跑在和互聯(lián)網(wǎng)隔離的環(huán)境里面,恐怕微軟也很難搞清到底有多少程序是用VB寫的,更不知道那些程序開發(fā)者的痛點到底是什么。結(jié)果VB7一出來這批用戶直接傻了,我沒說要改啊你干嘛要改?什么怎么改出來的還連爹都不認識了?
結(jié)果現(xiàn)狀就是,VB6死而不僵,死忠用戶抱著石器時代的工具跟VB6死磕(沒辦法時間拖越久重寫成本越高),快2020年了微軟還得維護VB6的runtime讓老程序不至于掛掉,搞不好直接奔COBOL去了都不是沒有可能。而之后的版本的VB則由于過于接近C#被完全籠罩在陰影下,以至于差不多變成了雞肋,不管是3%還是97%都不愛用,里外不是人。
相比之下,Python這種天然就對編程實踐有一定要求的語言,本身具備開源社區(qū)的基因,又趕上了互聯(lián)網(wǎng)這波風口,和VB的遭遇完全是不可同日而語的。