平台

From The Joel on Software Translation Project

Jump to: navigation, search

Platforms Joel Spolsky

Friday, August 30, 2002

A part of Joel on Software, http://www.joelonsoftware.com


[edit] 詞彙表 (Glossary)

  • software developer 軟體開發者 人員
  • application, software application 應用軟體 應用程式
  • language runtime 程式語言的執行環境
  • platform 平台
  • operating system, OS 作業系統
  • DBMS 資料庫管理系統
  • server 伺服器
  • ISV (Independent Software Vendors) 獨立軟體供應商
  • built in 內建
  • license 授權,許可執照
  • dormroom 多人合宿的房間

[edit] 正文

大部分軟體開發者,包括Fog Creek Software,光是撰寫應用軟體就能獲得無上的快樂。 你知道的, 就是那些能做些什麼事或解決特定問題的程式。 但是,在我們當中有些勇者想要更徹底地改變這個世界,於是他們選擇致力於平台: 就像是巨大的軟體板塊(譯註:就像建築業在蓋房子時會先鑄好一些水泥板塊,到現場再組合),光是板塊本身並沒有什麼功用,但是卻能讓大家組合應用,造就了一個充滿了新奇有趣應用程式的世界。所以,他們撰寫作業系統,或資料庫管理系統,或 Java 之類的程式語言執行環境,而且他們希望能吸引獨立軟體開發者在他們的平台之上創造一些很棒的新應用程式。

廣義而言,一套作業系統就是一個平台。 許多平台必須在作業系統之上運作,Java執行環境就是。 還有別忘了 Windows 一開始並不是一套作業系統,起初它是以在 DOS 上執行的一套程式現身, 它(剛裝好時)沒有什麼功能,但是卻讓軟體開發者能在其上為便宜的 Intel 機器製作 GUI 應用程式。

判斷出你的產品是不是平台真的真的很重要,因為平台需要非常不一樣的行銷方式才能成功。理由是,平台最初且首先需要吸引的是開發者,不是一般使用者。

我有幸可以先讀到Rick Chapman 關於軟體業界的蠢事的超棒新書(預測會成為最暢銷的書)。身為凡事都要分析的人,我總是尋找共通的論點。軟體界失敗案例最大的論點之一,就是平台商並不了解他們是平台商,以至於疏遠他們的重要顧客:開發者。

案例:網威 (NetWare) 太晚釋出適合的NLM開發工具組,以至於 當 Unix 和 Windows NT 挾帶著更好更便宜的開發工具組出現之際,他們在伺服器軟體開發人員的心中被掃地出門。

案例:蘋果電腦 (Apple) 花了數十年讓他們的開發者的生活像場災難。 將近20年來,每一版新的作業系統都需要將應用軟體的程式碼東修修西改改。 如果你太成功了,蘋果電腦就會跟你作對(不過有時會控制一個名為 Claris 的掌上傀儡來跟你競爭,然後假裝跟自己無關。)

案例:想要在OS/2 1.0版上開發軟體,要先投資 $3000 買 SDK , 而且,如果列印對你來說很重要的話,那你就必須撰寫你自己的印表機驅動程式。 列印的確重要,所以 OS/2 沒有應用軟體。

但反例也一樣有趣:

案例:第一版的 Windows 包含了一個可以免費再次發佈的執行環境,所以, 如果你寫了一支 Windows 軟體,你可以賣給任何有 DOS 的人, 而不限於那些少數有買 Windows 1.0 版的怪胎(我!)。

案例:撇開昇陽 (Sun) 在 Java 上犯的錯誤,它的執行環境一直都是免費的, 並且,好的 Java 開發工具也很便宜或免費。沒有其他開發平台能如此迅速地躍升主流 (就算是 Visual Basic,史上賣得最好的電腦語言,也花了幾年才往上攀升。)

一個平台想要成功,需要被廣泛大量的採用,那意味著你需要開發人員為它開發軟體。害死一個平台最好的方式是讓開發人員難以在其上建設。因為平台廠商往往要嘛不知道他們所有的是個平台(他們以為是個應用軟體),要嘛就是變得貪婪(冀望所有的利益都歸他們。)

貪婪的平台廠商沒辦法容忍所有各種的下等痞子可以從他們的平台賺錢, 所以任何人要為它開發東西都近乎該死的不可能。 要闡釋這點,最著名的失敗例子大概是 IBM 的 PS/2, 掛著一大拖拉庫的私有技術,例如新的 Microchannel 架構 設計成確保只有 IBM 能製造擴充卡。這當然有夠短視的。 沒人想要 PS/2,因為,呃,想要擴充卡時沒得用,有得用時則太貴了。 作為一個平台供應商,在其上開發的人們有多麼成功,你才算那麼成功。

更細微的問題是,平台供應商不認為他們所有的是一個平台, 而認為他們有個應用軟體。為了闡釋這點,我要再次地講到 Groove

「為什麼你不斷地提到 Groove,思博兄?」三個理由:

他們有個吸引人的架構,提供了重要的平台功能,可以實際用在我自己的產品中。 他們使得獨立軟體供應商無法在他們的平台之上開發(或至少是不切實際的),於是注定了被遺忘的命運,若非出於貪婪,就是因為他們把 Groove 當作應用軟體而非平台, 而且 Groove 發明人 Ray Ozzie 有寫部落格(weblog),所以如果他認為我錯了,他可以回答我。(他回答了。)

讓我說說我是怎麼發現Groove的問題的。 我有個簡單的桌上網站內容管理程式CityDesk,可以用於部落格(Weblog),公司的網站,小型組織等等, 是給那些需要內容管理卻負擔不起大系統,或者無法隨處控制伺服器,或是不打算浪費工夫在伺服器上按裝perl腳本系統的人。

我們的 1.0版有些弱點。 最大的一個問題是:人們想要透過網際網路(Internet)在CityDesk網站上共同合作。這是很合理的要求。 我們必須在下個大版本釋出時做點事情來解決此限制。 基本上有兩個選擇。傳統上的選擇是做成主從式架構(client-server):搞出一個CityDesk伺服器,讓你安裝在某處,然後每個人就可以共同合作。

但另一個選擇是利用安全的點對點架構,可以保持CityDesk不需要放任何東西在伺服器上的優點。而這正好就是Groove所提供的。

因此我考慮著移植CityDesk到Groove上。接著發現:

1. 沒有免費的Groove執行環境。我每一個客戶都必須購買Groove。 2. 沒人有Groove。

Groove這個點子的命運從一開始就被註定要完蛋。 我向幾個據稱正在為Groove開發軟體的Groove "合作夥伴"請教, 問說"與Groove的關係有任何好處嗎?" "哈!" 他們說道:"付了$1500,僅從他們網頁得到每月少於10次的點閱連結(也就是經由Groove網站連過來的訪客數)。 真是浪費錢。我們甚至沒辦法要求Groove分享顧客名錄。"

這不是我想用來開發的平台。雖然技術上它確實是我想用來開發的平台,但卻被一家貪婪(或無知)的公司所控制。它正在切斷自己的命脈:那些在 Groove 上跑的應用程式. Ray Ozzie 正熱衷於酷斃的網誌,但 Groove 的網誌在哪裡?又有誰會想幫它寫一個? 是 Blogger 的創造者 Evan Williams 嗎?就算是 Blogger Pro 一年也只要付 35 美元,而這還不夠付 Groove 一個使用者的使用許可 99 美元呢。

如果Groove執行環境是免費的又將如何?順著Windows的軌跡, 一開始以免費的執行環境出現,一次能讓你跑一個GUI應用程式。 最終,為了Windows的檔案管理,在不同應用程式間剪貼資料等好處,很多人買下完整版,然後Windows 3.0版現身了,這麼受歡迎,有著這麼多的應用程式,以致於每台個人電腦都搭售Windows。如今的Windows就像英國的電視稅。除了開發者以外所有人都得付錢。只要你在撰寫Windows的軟體,就不用再付一分錢。事實上在Windows的歷史上,開發人員從來不用擔心Windows本身的費用。

任何曾經是過販賣軟體元件(ActiveX 控制元件, beans等等)的人,都知道執行環境必須免權利金,否則開發者絕對是敬而遠之。 微軟(Microsoft)甚至讓你免費地再散佈Jet這個完整的關聯式資料庫引擎,這相當於微軟Access程式的十分之九。而且更誇張的是,這個引擎已經事先安裝進Windows 2000了。

Groove平台想要成功就要做相同的事情。 讓Groove執行環境可免費再散佈,意謂著會冒出上百個應用程式,進一步使得執行環境又遠又廣地傳播出去。很多使用者會看到購買內建合作功能的Groove完整版之價值所在。如hosted reflectors之類的Groove服務,應會擁有更大的潛在觀眾群。

當然啦,他們可以延著Notes的軌跡,假定賣出軟體的唯一途徑就是,用酷酷的投影片讓 CEO們發出哇噢的叫聲,然後賣價值百萬但無用而冷門的企業軟體(corporate shelfware)授權。 這樣做的確是有幫蓮花公司(Lotus)賺錢,因為Notes有一個吸引人的應用程式:電子郵件軟體。而且還是內建的!

不過想像一下,如果Notes的執行版本是免費的,如果Notes從80年代起在這個軟體之上形成一個軟體產業, 某些小小的新創公司很可能已經為Notes製作出令人激賞的超文件應用程式,並取代現在的Web網路了。 巨大的Notes公眾網路之夢或許早就實現,那麼Notes在個人電腦上就會和接龍遊戲一樣普遍了。 如今,Notes仍只不過是又一個郵件系統而已,而且是一套沒什麼未來的郵件系統。

我是一直在找Groove的碴,不過這只是因為在其中存在有趣的地方,因為吸引人的技術少之又少,而它是其中之一。是的,Groove工程師是架構太空人(architecture astronauts)。那並不成問題,他們正在建立一套架構。可是目前他們將它定位成應用程式,而我認為如果他們那麼做的話,Groove是紅不起來的。 總會有某人將會帶著一套P2P架構打進來,並且以元件(component)的方式來銷售, 或是做作開發源碼的程式庫形式(是的,我察覺到JXTA),而那將是軟體開發者會去用的。

Personal tools