Symbian 因何沒落

來源:互聯網
上載者:User

在回家的路上,和同事開玩笑說,要是 Nokia 或者 Symbian 請我去做 Symbian OS 的技術總監,我會告訴他們如何把 Symbian 引導到正確的方向。當然,這僅僅是笑談,但是似乎不妨礙我們正確地思考這一問題。

在 2006 年,我開始做真正智能移動平台的安全軟體(在此之前,曾經跟蹤過 Palm 上的安全動態,也有原型程式)。當時的平台還是以 Symbian(包括 S60 和 UIQ)和 Windows Mobile 為主。在經曆痛苦的學習,持續的挫折感,並使用相當難用的 CodeWarrior(而據說已經是當時最好的整合式開發環境了)進行開發之後,我大膽預測了 Symbian 平台的沒落。到現在,似乎長著眼睛的人都可以看到這一點了。我做出這一預言的根據有兩點,從現在看來,雖然沒有觸及到核心問題,但基本上還是對的。這兩點分別是:1、對觸控螢幕裝置的準備不足;2、Symbian 應用的開發困難。

在第一點上,完全是 Nokia 的問題,而不是 Symbian 的問題。眾所周知,Nokia 一直是 Symbian 的實際決策者,不知道出於什麼原因,Nokia 對於觸控螢幕裝置一直抱有一種奇怪的敬而遠之的態度。然而這並不是 Symbian 對觸控螢幕裝置的態度,事實上,Symbian 系統從開始就對觸控螢幕裝置是支援的,甚至於 UIQ 子公司本身就一直致力於觸控螢幕裝置上介面的演化。但 Nokia 從未試圖採用 UIQ 介面推出裝置,在觸控螢幕裝置上,僅推出過一款 7710(7710 的前身 7700 沒有產品化)。7710 的介面系統被 Nokia 冠以 S90 的名號。事實上,即使到今天來看,7710 的介面也不能算是過時,如果能夠一直演化到現在的話(還有一個前提,就是 Nokia 確實有關注觸控螢幕上使用者體驗的產品人員),應該不遜色於其他系統,至少不輸給 S60 第五版。有意思的是,S90 的介面原型卻輾轉到了 maemo 上(叫做 Hildon),而後者的最新進展又成了 Nokia 眼下寄予厚望的救命稻草。

在第二點上,大家都知道,在 Symbian 平台進行開發,其學習曲線是很陡峭的,即使是老手,對於形形色色的描述符(一個幾乎避不開的東西)以及清除棧(另一個幾乎避不開的東西),也很難能在短時間內完全掌握,寫出無錯代碼;我一直堅持認為,清除棧是一個更加容易引入錯誤的機制(error-prone mechanism)。而且無論 Symbian 如何宣稱,如何鼓吹,它仍然是一個不完善的 C++ 開發平台,甚至很長時間連 STL 都不能支援。在使用其他語言開發,更多地要為實現什麼功能,給使用者帶來什麼樣的體驗而沉思的同時,Symbian 開發人員可能不得不絞盡腦汁去實現一個 map。

開發困難嚴重地抑制了應用程式的繁榮,尤其是對大量的愛好者來說。而從 Symbian 9 開始引入的簽名機制更使得這種情況雪上加霜,個人幾乎寫不出任何激動人心的應用(由於能力的限制),即使寫出來了,也很難於推廣,因為你在使用者使用之前就不得不支付給 Symbian 或者其相關的認證機構/測試機構一筆不菲的費用。在這樣的開發生態系統中,我想,任 Nokia 把 Ovi Store 做得再好,也無濟於事。

那麼,現在的我,認為導致 Symbian 沒落的根本原因是什麼呢?是理念問題。無論是 Symbian 還是 Nokia,似乎都一直是在以作嵌入式裝置的理念設計手機,而不是以真正的開放式的智慧型裝置的理念來設計。這種毫無開放性的理念,其直接後果就是不重視開發平台的進化。就在 2008 年,還可以聽到 Symbian 的這樣回複夥伴要求改進構建系統的建議:為什麼要改變呢,它工作得很穩定啊?我已經不止一次說過,Nokia 曾經坐失良機:當初 Borland 的開發部門以極低的價格出售,Nokia 無動於衷,要知道 Borland 公司在開發工具上的積累根基深厚,甚至為 Nokia 的手機終端推出過 C++ Builder!Nokia 在這方面的欠缺(對軟體基礎構造而言,如作業系統和編譯器)影響深遠,maemo 系統的龜速前進也是鐵證之一,要不是在緊要關頭和 Intel 大佬結盟,meamo 的前途更是暗無天日。即使是現在,meego 到底能對 Nokia 的手機有多少貢獻也還殊難預料。Nokia 的另一個失誤在於前些年購買了 Qt。準確地、從純技術的角度說,購買 Qt 並不完全錯誤,但是,如果去推敲 Nokia 購買 Qt 的目的,就可以認為完全是個愚蠢的決定,因為 Nokia 希望利用它能夠快速開發出跨平台的應用,來使得 Nokia 手機終端上的應用數量能夠快速增長。這一事實證明,Nokia 或者 Symbian 的技術決策者有嚴重的 C++ 情結,而完全無視於移動領域技術大潮的方向!我們放眼看一下當前的主流開發平台,無一不是受控環境或者近似受控環境為主。Android 的 Java,iPhone 的 Objective-C,Windows Phone 正是意識到了這一潮流,才勇於把開發技術遷移到 .net 平台上。

總結而言,Symbian 沒落在看不清科技發展前景,既缺乏創新,又缺乏對創新的認同乃至追隨上。

Symbian 的最後機會。Symbian 確實是一個出色的作業系統(穩定而安全),但一直以來,Symbian 都缺乏這樣一個清醒認識:Symbian 不是一個出色的應用開發平台。它把過多的系統本身在設計或者實現時引入的限制,毫無遮攔地暴露給了應用開發人員,導致後者們不得不面對一個奇形怪狀的系統,它和很多其他更為成熟的作業系統相比,儘管原理相似,但卻在用法上有很大不同,增添了許多繁瑣的操作(比如要顯式串連很多伺服器,甚至檔案服務也不例外);而且還要採用一種稀奇古怪的開發語言(所謂的 Symbian C++),系統提供的 R 類甚至不支援在解構函式中自動關閉關聯著的開啟的資源控制代碼。Symbian 現在由 Symbian 協會管理,我仍然看不到任何將要翻身的跡象,無論是 Symbian^3 還是 Symbian^4,都是如此。如果需要我來給出解決方案的話,那就是,明確而嚴格地區分系統和應用的介面層面,底層保留 C++ 開發的狀況,而把應用程式層轉向更為先進的、更具有生產效率的其他受控語言或者開發工具。這樣做,從根本上隔離了應用程式,降低了給系統帶來的安全風險,同時又大大降低了學習曲線和周期,提升了開發效率,可以吸引更多的開發人員進入。具體的方法,個人認為,要麼移植 Dalvik,實現和 Android 的相容,要麼收購 Red Five Labs(http://www.redfivelabs.com),加以整合改進,採用 .net 開發。又或者,也可以考慮全面使用 Flash 技術,可惜的是我對這個方面瞭解甚淺,不能確定是否可以滿足絕大多數的開發需求。

順便說一下 meego,我本人對這個系統不太看好,特別是對於 Nokia 的手機而言,可能對於迷你筆記型電腦或者其他終端還會好一些。在開發上,meego 現在比 Symbian 還要倒退一步,開發環境連 Windows 都不支援,而且仍然是以 C/C++ 為主要開發語言。照現在的形勢看,meego 極有可能會是下一個 Symbian。

 

更新/更正(2010 年 7 月 31 日)

1、Nokia 確實出過一款 UIQ 系統的觸控螢幕手機,型號是 6708,盡針對中國市場推出,市場業績不怎麼好;順便說一下,這個裝置其實是 BenQ P31 的 ODM 變種。

2、文中所提到的編程受控語言,更準確地,似乎應該描述為受控語言/動態語言;在採用這種開發模式的手機平台方面,遺漏了最近呼聲挺高的黑莓平台。

3、文中提到的“meego 開發環境連 Windows 都不支援”有誤,為當時筆者尚未試用 Nokia 最新的 Qt SDK 而純以之前開發 maemo 的經曆所言。

 

感謝網友 Blue_Light
,是他的留言讓我擊敗惰性,附上以上更新內容的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.