在回家的路上,和同事开玩笑说,要是 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,是他的留言让我击败惰性,附上以上更新内容的。

Symbian 因何没落相关推荐

  1. IT168 年初的采访稿

    IT168 年初的采访稿 2011年05月22日 2011年01月26日 作者:景保玉 IT168:你目前从事 Symbian 平台的哪个版本开发?你认为 Symbian 近几年的发展变化对于开发者有 ...

  2. C++ Applications

    C++的应用 C++ Applications (English version): http://www.stroustrup.com/applications.html 这里有一个有关系统.应用程 ...

  3. 哪些软件是用C++写的

    http://www.cppblog.com/Chipset/archive/2008/12/17/69625.html C++的应用 C++ Applications 2013年6月27日更新 (E ...

  4. 我敢说,没人能超过这份产品经理推荐书单(40本)!

    产品经理要博览群书. 博览群书以便接受通识教育,要懂用户.懂设计.懂开发.懂底层架构.懂抓包 SQL.俗称,中关村活字典.互联网百晓生. 最近三年,我在以每年60本的进度看书.可以说互联网领域内外的经 ...

  5. 我们来哈尔滨了,东北的老少爷们可以回家了

    这两天关于"东北人口加速减少"的新闻甚嚣尘上,昨天相关新闻跟贴多达几十万.背井离乡的东北人纷纷讲述自己离开的原因,留在东北的人则吐露现在生活如何艰辛.那么东北经济因何没落?为何人才 ...

  6. java跨平台项目-lisa

    鉴于halloya没有功能,我打算启动一个新项目,其功能大致设想如下: 这是一个to do list,记录所要完成的事情. 可以跨平台运行,包括我的windows PC和塞班手机,不需要适应性开发.充 ...

  7. 得华人者得天下 诺基亚东山再起扎根中国

    得华人者得天下 诺基亚东山再起扎根中国 2011年06月02日06:25 来源:中关村在线 欢迎发表评论0 字号: FROM: http://tech.hexun.com/2011-06-02/130 ...

  8. Symbian,倒在3G的门槛上

    新闻来源:<北京青年周刊> 两.三个月前,三星和索尼爱立信再次强调彻底放弃Symbian系统的时候,有人就说过,如今Symbian是否开源已经没有区别,因为只有诺基亚一个真正像样的手机厂商 ...

  9. Symbian开发系列 - 入门篇

    要开始我的Symbian开发之旅了, 先收集一些相关资料,如Symbian概述, 开发平台搭建, 参考书籍与网络资源. [基础] 什么是Symbian 学习Symbian的基本概念  Symbian操 ...

最新文章

  1. 【Netty】大白话 Netty 核心组件分析
  2. PHP经验总结(一)序言
  3. 【译】Java中的对象序列化
  4. nodejs链接kafka示例(producer、consumer)
  5. C语言二维数组元素的多种表示方法小结
  6. Express + mongoDB + nodejs
  7. C++ 中的三种继承public , protected, private
  8. linux安装nagios客户端
  9. Spring Boot和应用程序上下文层次结构
  10. java中double类型占几个字节_面试官:Java 中有几种基本数据类型是什么?各自占用多少字节?...
  11. 后续:安装ORK功能包踩坑之路和解决方案
  12. 20181215《linux设备驱动开发详解》宋宝华 学习笔记(1)
  13. 正交实验法,软件测试用例的特性,编写方法,软件缺陷的基础知识
  14. 基于变量推理的知识图路径推理分析
  15. 【第17天】SQL进阶-查询优化- SHOW STATUS(SQL 小虚竹)
  16. Gateway 网关路由、断言、过滤
  17. 地图学:专题地图制作详细步骤
  18. smartsvn学习(-)
  19. 桌面图标icon替换客制图标。图标要比原始图标大,要求一致。应用图标去掉四周白边,保持原有比例。
  20. 物联网大咖华山论剑,MVP学院打造高端成长营

热门文章

  1. 记一次tomcat部署错误导致的项目自动宕机问题
  2. 大数据-Hadoop初探-01
  3. ios swift5 时间戳 时间差 日期格式 Date 日期字符串
  4. 数据结构题库知识点汇总
  5. JavaOOP 第十章 多线程
  6. 如何写好科研论文答案_Quiz1
  7. Python 手写机器学习最简单的 kNN 算法
  8. 计算机视觉岗秋招面经
  9. oracle povit,oracle pivot 和 unpivot 函数的使用
  10. RabbitMQ --- 惰性队列、MQ集群