Symbian(塞班)的衰落,绝不是因为Symbian落伍了。
首先,应当说,Symbian是一个优秀的嵌入式系统。Symbian是一个实时操作系统,是一个微内核系统,从设计的时候,就是为了能在有限的硬件资源和能源的环境下,长时间稳定运行的。Symbian采取了许多措施,比如使用微内核架构、严格控制内存泄漏、抢占式多任务调度等。Symbian使用的是Symbian C++进行开发,有自己一套完整的开发框架和机制,约束开发者,保证系统的稳定性和可靠性,提高系统的性能。
这些都是,Symbian的优势,同时也是Symbian的劣势。在Symbian下进行应用的开发难度是很高的,因为要写一个高质量的C++程序,确实不容易。
Symbian检测到内存泄漏,是会让应用程序崩溃的。避免内存泄漏,这对于一般程序员来说,是一个不小的难题。
虽然Symbian本身有二阶构造函数、清除栈这样的机制辅助开发者进行内存管理和控制,但是这些都需要开发者对C++的内存分配机制有一个比较清晰和深刻的了解,而大部分开发者,是不知道到底什么是栈什么是堆的。
因为工作在硬件资源有限的嵌入式系统中,Symbian的栈大小非常有限,所有的数据都要放到堆上,于是需要使用二阶构造函数。
还有那个蛋疼的Leave机制,基本上是对C++过于简单的异常机制的简单封装,稍微不慎,就会出现内存泄漏。
在微内核机制中,许多东西都和我们平时的开发不一样,大部分的系统功能都不在内核中,需要连接提供该功能的模块进行操作,这些模块都是C/S模式的。
Symbian中不提倡使用多线程或者多进程,提倡使用调度器,进行抢占式多任务调度,我自认为对于并发控制学得比较好,多线程工作的问题也能处理和发现,但是对于这个抢占式多任务的流程,我真的足足花了一个礼拜才弄明白到底怎么回事。
因为上述原因,进行Symbian开发的门槛还是比较高的(相比于不需要关心上述所有问题的Java而言)。Symbian的机型非常多,使得Symbian上应用的调试也比较麻烦,除了屏幕分辨率、键盘结构、扬声器数量、相机型号、闪光灯等因素,即使是同一款系统,运行在不同机型上的系统也有细微的差别,所以往往要对众多的机型进行适配。
除了不讨好开发者以外,诺基亚在一些方面也是比较认死理,比如手机就应该不容易摔坏,手机信号就是应该好。我一直觉得,这个是诺基亚迟迟不使用大尺寸电容屏的原因之一(当然,大家常调侃的Q屏采购量过大没用完可能也是)。即使到今天,摔不坏、信号好依然是诺基亚给大家的印象,难以磨灭。我们必须承认,这些都是对的,但是,这些也确实是不容易被人们注意到的方面。
Symbian S60 第三版开始,对应用引入了签名机制,只有有签名的应用才能安装到机器上。有人认为复杂的签名机制是导致Symbian衰落的原因之一。其实签名并没有错,iOS上一样也是使用签名机制,不也是好好的?错的是当时那个互联网暂时还没有普及到手机上的时候,人们过多的使用了盗版软件,而我们也都知道,只有盗版软件才需要进行复杂的签名才能安装到自己的手机上的。
至于操作系统的界面,这个我想不用我说太多,用过的人,不管懂行不懂行,都知道怎么评价。Symbian的界面要说很差我觉得不至于,时间太久了没有什么变化,让大家缺少新鲜感,然后直接败给了又好看又好玩的苹果。
在系统上,不讨好开发者;在使用的时候,也不讨好使用者,但是凭借多年的积累,Symbian还是稳稳的把握住了市场,当时不是没有其他的系统,Windows Mobile、Palm、BlackBerry OS都是。但是Symbian因为定位能在性能比较差的机器上运行,诺基亚的智能机在性能、种类和价格上,以及Symbian平台上的众多的应用,稳稳的压倒了其他竞争者。
2007年iPhone刚刚出现的时候,不仅仅是诺基亚,全世界都觉得这是个笑话。一个不能换铃声、不能后台运行程序,甚至就根本没有第三方应用的手机,怎么好意思称作智能机,唯一的亮点,大概就是那个好玩的多点触控的屏幕,和那个相比于Symbian将近十年不变的界面,相对好看的UI。
当然后来,全世界都知道了,乔帮主在下一盘很大的棋,当祭出App Store这个大杀器的时候,所有的开发者都开始倒戈了。因为Symbian开发困难,还赚不到钱,苹果上开发简单,没有盗版,能赚到钱。钱这个东西一来引诱,加上Symbian即不讨好开发者,也不讨好使用者,当然也就没有人拥护。
价格上,诺基亚从低端到高端全线都有,不过在高端市场(不含Vertu),价格一直都很坑爹,旗舰级的机器往往都能5k+到6k+。苹果也是跟运营商合作,通过套餐,让iPhone的使用成本跟别的机器基本没有区别。正好手机坏了,几百刀买一个iPhone,几年的合约,还不见得比别的手机贵,还好玩,为什么不呢?
……