Windows編程革命簡史

來源:互聯網
上載者:User

起初,世上有Windows API和DLL Hell。然後有了DDE,史稱第一次Windows編程革命——還記得怎麼通過動態連結在狀態列上顯示Microsoft股票的即時價格嗎?
差不多同時,Microsoft發明了VERSIONINFO資源,消滅了DLL Hell。但Microsoft內部的另一個開發小組發現了DDE的一大致命缺陷:這玩意兒不是我們組寫的!
為瞭解決這一重大缺陷,他們創造出OLE(除了跟DDE不一樣,就跟DDE一樣)。我依稀記得某位微軟演講人在微軟大會上莊嚴宣布Windows API將很快被重寫為OLE API,螢幕上所見的任何控制項都將是一個OCX控制項。OLE引入的若干介面消滅了DLL Hell。當初“置身於革命洪流”的激動之情,君猶記否?都曾經夢想將應用程式內嵌在一個(顯然將變得相當龐大的)Word文檔裡頭吧?
不知道從哪裡開始的,微軟信了C++教。應運而生的MFC再次解決了我們的所有問題,托繼承的福。不行,OLE才不會坐以待斃,它華麗變身成COM再次登場。突如其來之下,我們猛醒了,OLE(還是該叫DDE?)才是世間萬物本來該有的樣子——何況這次它還帶了一個精巧絕倫的組件版本系統,完全消滅了DLL Hell。就在這普天同慶之時,微軟內的一小撮叛亂分子發現了MFC的致命缺陷:它不是我們組寫的!
他們毫不猶豫地挺身而出,發明了ATL來解決這個重大缺陷。ATL,除了跟MFC不一樣,就跟MFC一樣,它打算將COM小組努力教會我們的那些銷魂細節全部隱藏起來。COM小組(或者該叫OLE?)受了刺激,發奮圖強,在給自己改名ActiveX之餘,接連放出數百坨新介面(包括全新的版本管理介面,完全消滅了DLL Hell),同時震撼推出通過網路瀏覽器下載程式的驚喜功能,附贈眾多病毒任憑使用者挑選一併下載(哈,ATL小牙籤們,這下你們沒轍了吧!)。作為一路被忽視的小孩,作業系統小組開始哭鬧著爭取注意力,讓大家注意“Cairo就要來了”,至今他們都沒解釋清楚Cairo到底是一坨什麼玩意兒,更別提發售了。不過有一點必須誇他們,的確是作業系統小組率先提出了“系統檔案保護”的先進理念,完全消滅了DLL Hell。
與此同時,微軟內的另一個小組發現了Java的一個致命缺陷:它不是我們發明的!作為補救措施,他們創造了J,也可能是叫Jole或者ActiveJ(老實說,名字我記不得了),它除了跟Java不一樣,就跟Java一樣。這是多麼激動人心的一件事,可惜Sun援引大清律例《關於一家公司每年發布腦子進水產品次數的規定》把微軟給告了。這完全是對微軟創造除了跟其他產品不一樣,就跟其他產品一樣的產品的自由的赤裸裸的壓迫,最終結果是造就了“微軟向國會議員褲兜裡塞錢網路(MSFSMTCN)”(加入本網路即可享受新聞郵件訂閱及$14.75T恤優惠)。記不記得J/Jole/ActiveJ的專案經理一邊拿鞋拍著桌子,一邊信誓旦旦微軟絕不會拋棄他手中的產品?傻了吧!還不是因為不夠重視ActiveX(或者該叫COM?)小組。這群生命力無限的API製造機又帶著COM+(不是應該叫ActiveX+才對嗎?)和MTS殺回來了。(我完全想不明白為什麼MTS的名字裡面沒有出現“Active”、“X”和“+”這幾個字——他們這次天馬行空的創意令我佩服得五體投地!)他們放話說將來還要給所有詞都再加一個“+”呢。差不多同一時間,還有人嚷嚷了一陣子“Windows DNA”和“Windows搓衣板”,不過還沒等我弄清楚那是什麼就銷聲匿跡了。
這個時候,微軟已經冷眼旁觀了Internet好些年,心裡越來越不安。他們剛剛發現了Internet的一處致命缺陷:嗯,你懂的。所以就有了如今的.NET(除了不一樣,發音就跟“doughnut”差不多),.NET就跟Internet差不多,除了公關稿多一點。我們要非常、非常強調一點事實:.NET將會消滅DLL Hell。.NET包含了一門叫做C#的全新程式設計語言(Active++J++語言因為有一處致命缺陷,已經不幸入土為安了)。.NET包含了一個虛擬運行時機器,所有語言都會在上面運行(因為他們發現運行在Intel CPU上有一處致命缺陷)。.NET包含了一個單一登入系統(因為他們發現你不把所有密碼都儲存在微軟公司的伺服器上會導致一個致命缺陷)。.NET包含的實在是太多了,反過來列舉.NET沒有的東西說不定還更容易呢。總之,.NET絕對會給Windows編程帶來革命性的變化……直到下一次革命。


摘自 http://coolshell.cn/articles/3008.html#comment-10415

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.