當前位置:編程學習大全網 - 編程語言 - 軟件接口的發展歷程

軟件接口的發展歷程

早在上個世紀的70年代,Digital Research公司的Gary Kildall為微型計算機首創了世界上第壹個實用的軟件API。這個初生的API大致上有20多個對操作系統的簡單函數調用組成,這個操作系統就是CP/M――那時可是相當的簡單和粗糙,而同樣簡單的API卻讓整個計算機世界發生了重大變化。Kildall這個很有才氣的計算機專家希望自己設計的API能被其他科學工作者采用。至於商用方面的考慮可是想都沒想。而且,我們現在的產業現狀也證明:僅讓科學家們俱歡顏是不會在商業中賺到壹分錢的!好在,比爾蓋茨認識到,用於應用程序開發人員而不是科學家的API絕對是商業軟件獲得成功的關鍵之壹,這樣壹來,情況就很不壹樣了。

隨後由比爾·蓋茨等開發的MS-DOS操作系統全盤拷貝了CP/M及其API,並在這些API的基礎之上又增加了壹些簡單特性,務實的比爾·蓋茨將Kildall的發明變成了巨大的商業應用並立刻讓MS-DOS的API在軟件開發中占據了主導地位。

然而,當微軟公司推出Windows操作系統的時候,系統的龐大API族就沒有拷貝Kildall的成果了,可是,事實證明這些微軟自己折騰出來的Windows API實在是糟糕的可以:醜陋的代碼、混亂的結構等等不壹而足。但是,Windows采用了實用的偽多線程技術和高效的內存管理,特別是簡單易用的圖形界面立刻俘獲了壹般用戶的忠心。大量的程序員也就隨之投入到Windows程序的開發中來,這些糟糕的API自然當仁不讓了。微軟花費了5年多的時間改進和發展早期的Windows並在最終壟斷了全球桌面操作系統市場。今天我們誰也離不開Windows API了,除非妳不打算編寫支持Windows的軟件!

1988年,微軟購買了Alan Cooper開發的可視編程語言:Ruby。隨後微軟把Ruby和垂死的QuickBASIC語言組合起來創建了Visual Basic。Alan Cooper方面的Ruby實現了名為VBX的軟件API,這種API可以讓程序員動態地擴展Visual Basic功能,這壹事實再次證明了軟件接口具有多大的重要性。VBX接口也就是目前火熱的組件對象模型COM的前身。

在為微軟的勢力之外,Unix世界也發明了自己的API,這就是TCP/IP,有了它,網絡之間就可以自由地通信了。TCP/IP首先在大學裏獲得了普遍的歡迎,然後,到了20世紀90年代,Marc Andreessen瞄準那些不是程序員卻很想從使用計算機獲得好處的年輕人推出了世界上第壹個Web瀏覽器:Mosaic,後來在此基礎上誕生了Netscape Navigator,可以說,正是Web和瀏覽器的發明,我們終於被帶到了信息時代。

最早的Navigator所能作的不外乎就是查找和顯示文件,這和Macintosh Finder乃至Windows Explorer也沒什麽兩樣,但是,正因為有了TCP/IP API,Netscape 就可以放眼於本機之外查找和顯示其他網絡上的其他計算機中的文件。新世界豁然洞開。

整個90年代,Netscape就象流感病毒壹樣滿世界到處擴散。到了現在計算機之間在通用API的努力下可以非常方便地相互通信,但幾乎沒有壹個用戶會直接和這些TCP/IP接口交互。

如果沒有優秀的、符合時代潮流的API,什麽先進的技術都可能會不得不寂寞很長壹段時間以等待命運的垂青。壹旦成熟的API出現,軟件的前景也就能大致看到輪廓了。

舉個例子,不管是妳身上的手機還是隨身攜帶的PDA――比如PalmPilot,它們其實都是處理能力不同的計算機而已,這兩種設備都裝備了短距無線(通常是紅外線)通信端口。可是,它們如何才能通過這些端口實現相互之間的通信呢?如果這些設備之間缺乏公用的API,妳的手機就不可能和妳的PDA實現通信。

今後會產生壹種所謂的“陌生人服務”API,比方說,當妳走在大街上的時候,妳的手持設備,不管是手機、PDA還是筆記本電腦或者車載導航設備就會自動地和周圍設施通信,商店、辦公室、售貨機和其他人等等。

目前有幾家公司已經在致力於開發以上的通用API,其中最有希望的或許是Sun公司的Jini。但是,Jini的定位和以前的CP/M壹樣,也是更多的把目標放在了計算機科學家而不是解決方案服務商上。

我們今天的軟件開發很大壹部分是開發Web應用程序,驅動Web進步的是交互設計和商務模式而不是技術創新。從技術上說,Web領域的大開發商不會對Web本身挖掘太多,他們缺乏編寫大型、復雜程序的耐心。但是,反過來,這些大型廠商可以把其他開發商預先編寫的軟件組件組合起來,這樣,他們就比以往更多地依賴於為其編寫的軟件API。

總而言之,不管我們設計什麽API,最重要的是首先要弄明白我們在為什麽目標或者為誰在設計。這是壹定要記得的關鍵點。只有在我們理解目標受眾的需求之後,我們才可能創建有用的API,才能實現恰當的用戶接口,才能讓不同人設計的不同軟件部分良好地集成。

  • 上一篇:數控車床的工件螺紋的牙距壹般是怎麽標的
  • 下一篇:中秋節的來歷端午的來歷端午節的傳說端午節的習俗
  • copyright 2024編程學習大全網