- 論壇徽章:
- 0
|
一統(tǒng)天下的運行時
.Net降臨了。這是一個浩大的工程;一個企圖徹底根除所有混亂局面的工程。它自然有內(nèi)存管理。它不僅有Visual Basic,還有一門新的語言。這語言繼承了Visual Basic的精神,但卻有著C風格的語法-大括號跟引號。最妙的是這門糅合了VB跟C的新語言叫C#,也就是說你再也不用跟別人說你是一個“Basic”基本程序員了。那些恐怖的拖泥帶水的Window函數(shù)、鉤子、向后兼容的Bug還有無從解釋的字符串返回語法都被掃除了;取而代之的是一個嶄新只有一種字符串并面向?qū)ο蟮慕涌。一統(tǒng)天下的運行時。這很美,在技術得贊下微軟。.Net是一個超贊的程序開發(fā)環(huán)境,它可以幫你管理內(nèi)存,擁有豐富、完整并統(tǒng)一的操作系統(tǒng)接口;而且還有豐富、超級完整還很優(yōu)雅供基本操作的對象庫。
但是,程序員不用.Net做太多開發(fā)。
當然,也有用.Net的人。
但,使用一個全新徹底革新的程序開發(fā)環(huán)境來統(tǒng)一VB跟Windows API開發(fā)并存造成的混亂是愚蠢的,F(xiàn)在,我們不是有一種或者是兩種開發(fā)語言,而是有三種開發(fā)語言(還是四種?)!就跟對兩個在吵架的小孩大喊:“你們都別吵了!”一樣愚蠢。在電視里面,這樣子大喊也許會有效;但在現(xiàn)實生活中這樣搞法的必然結果就是你跟兩個小孩三個人一起吵得更加大聲。
(順便說一下,那些有關注神秘但被政治所改變的網(wǎng)志聚合格式世界的朋友,你們可以發(fā)現(xiàn)同樣的事情也發(fā)生了。RSS被分裂成為了幾個版本-不準確的規(guī)則跟一堆政治性質(zhì)的斗爭。而企圖解決這一切的做法竟然是定義一個新的叫ATOM的聚合格式。結果便是不同版本的RSS現(xiàn)在多了一個ATOM來攪局-不準確的規(guī)則跟一堆政治性質(zhì)的斗爭。當你企圖引入第三方來解決對立的兩方時,結果便是三足鼎立。你什么也沒有統(tǒng)一而且你也沒有解決任何事情。)
所以,.Net現(xiàn)在并沒有統(tǒng)一并簡化世界,我們現(xiàn)在反倒陷入了更大的混亂。所有的人都在猶豫他們的開發(fā)策略,究竟有沒有足夠能力把現(xiàn)有程序轉(zhuǎn)到.Net上呢?
無論微軟的市場信息是多么的統(tǒng)一(“用.Net吧!相信我們!”),它的大部分用戶還是在使用C,C++,VB 6.0跟傳統(tǒng)的ASP做開發(fā)。更不用說其它公司提供的開發(fā)工具了。然后,僅剩的使用.Net做開發(fā)的公司做的是ASP.Net!ASP.Net需要跑在Windows服務器上,但,它需要一個Windows做客戶端。這就是我談到Web時要強調(diào)的重點。
現(xiàn)在微軟有了太多的開發(fā)人員搞得它重新發(fā)明一次整套Windows API還覺得不夠爽,它竟然重新發(fā)明了兩次!在去年(應該是03年,Wuvist注。)的PDC上,微軟宣布了它們的下一代操作系統(tǒng),代號長角。長角不僅有上述的東西,還有一套全新的用戶界面API,代號Avalon。Avalon再次把一起推倒從來以利用現(xiàn)在電腦高速的顯卡跟實時三維渲染的優(yōu)勢。所以,如果你現(xiàn)在正在開發(fā)Windows界面程序,并且使用了微軟現(xiàn)在“官方”宣稱的最先進的開發(fā)環(huán)境:WinForms;那么兩年后你得重新開始以支持長角跟Avalon。這解釋了為什么WinForms在誕生之時便死翹翹了。但愿你還沒有在WinForms上投入太多。Jon Udell從微軟那找到了一個題為:“我如何在Windows Forms與Avalon間做選擇?”的幻燈片,并且問了這么個問題。這是個好問題,并且沒有人可以很好的回答它。
所以,我們有了Windows API,有VB,現(xiàn)在還有了帶若干種不同語言供選擇的.Net;但,我們不能在這些環(huán)境下浸淫太久。因為,微軟正在開發(fā)Avalon呢!注意到?jīng)]?Avalon可只能在微軟最新的操作系統(tǒng)上跑,但是,它得等很久很久以后才能開跑。對我個人來說,我沒有時間很深入的學習.Net,并且,我們也沒有把Fog Creek的兩個應用程序從傳統(tǒng)的ASP跟VB 6.0轉(zhuǎn)到.Net上。因為投入做這么件事情對我們沒有回饋。一點都沒有。在我關心的范圍里,它純粹是一件“開火并動作”的事情:微軟會愛死我們停止給Bug跟蹤軟件跟CMS開發(fā)新的功能,并浪費幾個月的時間轉(zhuǎn)移到新的開發(fā)環(huán)境里。這無法使我的任何一個客戶獲利,也沒法讓我多賣一套軟件。但這對微軟來說很妙,因為微軟也有它自己的CMS跟Bug跟蹤軟件。對微軟來說,再也沒有比使我為追時髦而浪費時間重新繞著.Net轉(zhuǎn),并且一兩年后在為Avalon浪費一次時間的事情讓它感到更的爽了。在我忙著轉(zhuǎn)的時候,它卻在給它的軟件加新功能,懂了沒?
沒有一個有日常工作的程序員可以有時間可以去追趕所有從雷德蒙出來的新開發(fā)工具。因為,微軟有太多該死的員工在研發(fā)新的開發(fā)工具!
現(xiàn)在不是1990年
微軟是在八十年代成長起來的,那正式個人電腦高速發(fā)展的年代:新出廠的電腦比現(xiàn)有的還多。這意味著如果你的產(chǎn)品只能夠在新電腦上跑的話,過不了一兩年它也可以占領市場,既便沒有人刻意“轉(zhuǎn)用”你的產(chǎn)品。這是Word跟Excel能如此徹底取代WordPerct跟Lotus的原因之一。微軟只需要等待下一波硬件升級的浪潮,然后把Windows,Word跟Excel一塊賣給企業(yè)用戶(有些企業(yè)還是第一次買電腦)。所以,從很多方面來說,微軟從來沒有學習如何促使用戶從產(chǎn)品的N版升級到N+1版的必要。當用戶買了新電腦,他們會很高興在新電腦上使用微軟的各種最新產(chǎn)品,經(jīng)管他們不太可能純粹的做軟件升級。這也無所謂,個人電腦市場當時在瘋狂的增長。但是,現(xiàn)在的世界,個人電腦市場已經(jīng)飽和了,并且現(xiàn)有的電腦都跑得不錯。謝謝,微軟突然意識到它花長時間等待最新的產(chǎn)品進入市場了。當它企圖“終結”Windows 98的時候,現(xiàn)實是有太多的人還在使用著Windows 98,而微軟得打破自己的諾言,無奈的繼續(xù)給這老爺系統(tǒng)做多幾年支持。
不幸的是,當所有人都用著98年產(chǎn)的電腦用得很開心的時候,像.Net、長角跟Avalon這些美麗的新技術鎖定用戶的企圖便變得不容易實現(xiàn)了。即使長角真的在2006年如此發(fā)布(我此刻其實也并不相信這點),它也得花上幾年的時間以獲得足夠的人認同它是新的開發(fā)平臺。開發(fā)者,開發(fā)者,開發(fā)者跟開發(fā)者在開發(fā)軟件的時候,并不賣微軟那“人格分裂”開發(fā)建議的帳。
走進網(wǎng)絡
我不能理解我說了這么多卻沒有提到網(wǎng)絡。所有的開發(fā)者機會做新軟件的時候都有一個選擇:做網(wǎng)站或者做“胖客戶端”在PC上跑的軟件。兩者的利弊很簡單:網(wǎng)站更加容易配置(deploy),而胖客戶端軟件則能提供更快的反應時間以提供更有趣的用戶界面。
網(wǎng)站更容易配置,因為它不需要安裝。對用戶來說,“安裝”一個網(wǎng)絡應用程序等于在瀏覽器地址欄里輸入一個網(wǎng)址。我今天剛裝了Google的新Email程序:按Alt+D,輸入gmail,再按Ctrl+Enter。網(wǎng)絡應用程序有著相當少的兼容性問題或者跟其它軟件沖突的機會。所有使用你產(chǎn)品的用戶都使用著你最新的版本,你不必為各種舊版本提供支持。你可以使用任何你喜歡的開發(fā)環(huán)境,只要你能夠讓程序在你自己的服務器上跑就好。你的程序?qū)嵸|(zhì)上也能自動為所有地球上的電腦服務。而且,你用戶的數(shù)據(jù)在實質(zhì)上也能自動供地球上所有的電腦使用。
但,這些需要犧牲流暢的用戶界面做代價。這邊有一些網(wǎng)站無法做得很好的事情的例子:
1.建立快速畫圖的程序
2.實時帶紅色下劃線的拼寫檢查
3.警告用戶說他們點瀏覽器的關閉按鈕時會丟失手頭的資料
4.根據(jù)用戶的操作更新部分顯示內(nèi)容而不訪問服務器
5.建立一個鍵盤按鍵驅(qū)動而不需要鼠標的程序
6.讓用戶在斷開網(wǎng)絡的情況下繼續(xù)操作。
這些也并不是多大不了的事情。而且有些會很快被聰明的Javascript程序員搞定。Gmail跟Oddpost這兩個新的網(wǎng)站正巧都是做Email應用的,并且巧妙的繞過或者徹底的解決了上述的一些問題。并且,用戶似乎不是很在意UI上的不足以及界面遲鈍的反應。幾乎我認識的所有正常人都因為某種原因非常滿意基于web的Email程,無論我多么努力的向他們推薦富客戶端軟件。唉~更富的客戶端軟件其實。
所以,Web用戶界面已經(jīng)有八成火候了,并且即使沒有新的瀏覽器我們也很可能可以把它做到九成半。這對絕大多數(shù)人來說已經(jīng)足夠好了。而此用戶基礎對那些選擇Web做新軟件開發(fā)的程序員來說也足夠好了。
這也就意味著,微軟的API突然間變得無足輕重了。Web程序不需要Windows!
這不是說微軟并沒有意識到這些事情的發(fā)生。他們當然清楚。而且,在事情表面化的時候,他們突然緊急剎車了。很有潛力的技術如HTA跟DHTML停止發(fā)展了。Internet Explorer的整個開發(fā)團隊似乎消失了;他們以及好幾年沒有任何作為了。微軟沒有理由讓DHTML變得比現(xiàn)狀更好;因為這對于它的核心業(yè)務-富客戶端軟件太危險了。微軟這些日子來的口號是:“微軟在富客戶端軟件開發(fā)公司上壓了重注!蹦憧梢栽陂L角的幻燈片上看到這些。來自Avalon團隊的Joe Beda說:“Avalon跟長角在整體上說,是微軟的根基。這說明我們相信桌面軟件的威力,坐在本機前就能夠玩很酷的東西。這里,我們正對桌面軟件做投資,我們認為這是跟很好的方向,并且我們希望開啟新一輪激動人心的……”
問題是已經(jīng)太晚了。
我自己對此是有點傷心的
我自己真的是對此有點傷心。對我來說,Web很棒;但是,基于Web的軟件反應慢,用戶界面不統(tǒng)一是對日常穩(wěn)定操作的一大退步。我愛我的富客戶端軟件,而且當我需要去使用這些軟件的Web版本的時候,我會呆掉的。我每天使用的這些 軟件有:Visual Studio,CityDesk,Outlook,Corel PhotoPaint,QuickBooks。 但,這些卻是程序員即將要帶來給我們的。沒有人(我再重復一次,沒有人意味著少過一百萬人)會再使用Windows API做開發(fā)。風險投資商不會給做Windows應用程序的公司錢的,因為他們擔心來自微軟的威脅。并且,絕大多數(shù)用戶不像我這么在意蹩腳的Web界面。
這里有個鐵證:我注意到(并且,我從人事部門的朋友處證實了)紐約的Windows API開發(fā)并懂得C++跟COM的程序員年薪大約是十三萬美金;而典型的使用托管語言(包括Java,PHP,Perl甚至ASP.Net)的Web程序員年薪是八萬美元。差距是巨大的。而且當我跟在微軟做客服的朋友聊天時,他們承認微軟已經(jīng)錯過了一整代的程序員。請一個有COM開發(fā)經(jīng)驗的程序員每年需要十三萬美金,是因為在過去約八年的時間里沒有人在乎去學COM開發(fā)了。所以,你一定得找到有相當資歷的程序員,并說服這些往往已經(jīng)處于管理人員的層次人去處理底層的程序(神啊!救救我吧!)如處理marshalling跟monikers跟apartment線程跟aggregates跟tearoff跟其它一千萬種基本上只有Don Box能理解的事情,事實上Don Box也受不了再跟這些玩意打交道了。
我討厭說這點。但一堆開發(fā)人員已經(jīng)轉(zhuǎn)到Web上很久了,并且不愿轉(zhuǎn)回去。大多數(shù).Net的開發(fā)人員是開發(fā)ASP.Net的,做微軟Web服務器端的開發(fā)。ASP.Net是卓越的;我已經(jīng)做了十年的Web開發(fā),但ASP.Net便硬是再往前夸了一步。但它是服務器端的技術,客戶端可以使用任何桌面軟件。更甚者,ASP.Net在Linux中使用Mono也跑得很好。
所有的這些兆頭都對微軟不妙,它無法再從API壟斷上獲得巨額利潤了。新的API是HTML,而市場的新勝利者將會是那些能玩轉(zhuǎn)HTML的人。 |
|