【51CTO独家观察】最近国内外Linux桌面发行版方面,Ubuntu、Mint、Fedora相继更新,Deepin召开技术大会并发布Deepin 11.05,Ylmf OS 4.0发布,感觉好不热闹。要是在两年前,这种Linux发行版大更新的场面无疑会让人觉得欣欣向荣,Linux桌面端的流行程度又更进一个台阶。然而去年的一个情况对于所有Linux粉丝而言都相当有打击性:2010年6月,根据市场占有率报告网站NetMarketShare网站的数据,iOS的市场占有率已经超越了Linux。
毕竟一个是移动终端,一个是桌面端,似乎可比性不强,但是从网站的角度来看,iPad和Linux桌面端有什么区别呢(当然还是有区别的,比如看不了Flash)?抛开单纯的市场占有率不谈,2011年4月,Statcounter网站300万个网站访客数据的平均值出具了一份报告,在该报告中,用iPad看网站的用户数量已经超过了用Linux系统看网站的用户数量。
这对于网站或开发者而言是具有实际意义的。单纯的市场占有率的差距,意味着开发者会优先考虑为iOS平台开发应用,将Linux平台排在后面;相对而言,网站用户所在平台的比例影响到是不大,因为一个页面在iPad Safari下看或是在Linux的Firefox/Chrome下看基本差不多;但是针对一些微小的兼容性问题,Safari也将排在较高的优先级上。
应用软件商店带来的变革
操作系统是什么?Windows,Linux,iOS,Android,塞班,乃至于XBox、PlayStation、NDS这些都是操作系统,虽然针对不同的设备,但是操作系统的本质都是一样的:在应用和硬件之间搭起桥梁。市面上硬件何其多,各种不同型号的CPU、GPU、硬盘、内存、声卡、网卡、鼠标、键盘等等。对于游戏开发者而言,如果他需要花费大量的时间解决如何让显示屏显示图形、如何让声卡发声、如何让用户敲打一个键盘被系统识别这样的底层问题,那么他完成的作品可能是这样的:
其实即使这样一个游戏,也是基于一个最基本的操作系统开发的
而操作系统最基本的使命,就是将这些不同硬件的驱动集成起来,为开发者提供现成的接口(API),甚至进一步提供现成的开发工具包(SDK)。一方面让开发者能够无需考虑硬件的方面就可以完成自己需要的效果,另一方面也可以让使用不同硬件的用户都可以同样的玩到这个应用——只要他们都在同一个操作系统上。根据应用种类的不同,操作系统也各自有所侧重,比如服务器系统的用户会经常用到跟网络有关的应用,桌面系统的用户则经常用到显卡、声卡这些。
这两年人们都说iOS应用如何如何多,iOS平台如何如何。其实平台哪里算是新事物了?操作系统本身就是平台。应用数量方面,Windows系统在过去二十五、六年间还算有一定积累,国内外的几个软件下载站,比如华军软件园目前的Windows软件总数为十多万,国外CNET下载站的Windows软件总数为二十多万,这还是没有统计游戏的情况(事实上全球Windows平台的游戏数量恐怕也很难统计了)。反观iOS、Android平台,苹果应用商店从2008年7月启动到2011年5月的时候,已经号称超过50万应用,数量的确客观。不过,其中15%是游戏,14%是电子书,11%也是娱乐相关的杂志啊、音频视频之类的。这样一说,要是把所有exe格式的电子书、杂志、小游戏之类的都算上,Windows这个平台上的应用数量,恐怕目前还是高于苹果应用商店的。
若说iOS的到来为什么会成为一种革命,笔者看来主要是两个原因。
其一,完全基于触屏的操作方式。全触屏这个概念,iPhone之前也有其他家进行过类似的尝试,但主要还是反对的声浪居多(比如Palm就是坚定的触屏反对者——当然它后来被HP收购了),而且屏幕技术的确也不够成熟。不过,iPhone 3G开始,高强度玻璃工艺的电容屏,唯美的外观,符合人性的手势设计,让触屏操作方式能够真正跟键鼠操作方式分庭抗礼(还有触摸笔,不过触摸笔从来都不是主流操作方式之一),迅速抢占了移动设备市场。后来,这个全触屏的理念在iPad上继续发扬光大。iPad的成功让之前很多调侃它的媒体大跌眼镜,如今想来,其深层的因素之一就在于触屏操作方式对人类天生的吸引力。
其二,应用软件的线上商店化。要说数字商品的商店化,Amazon是领头羊,但是这个商店化在操作系统层级的执行却是从苹果开始。应用商店的最大价值在于为软件开发者提供了便捷的盈利渠道。在应用软件商店这一平台出现之前,开发者虽然已经不用跑到实体店摆个摊卖CD盘,但是在淘宝或是eBay这种电子商城卖这种数字商品,基本吸引不到什么流量,操作的成本也不小,最低程度也需要给每个客户一个一个发邮件告知软件下载地址。而有了应用软件商店之后,虽然要给苹果分三成收入,但是开发者只要订个价格扔到商店里就行了,用户过来下载,钱会自动到帐,这个流程为开发者省去了太多麻烦。
正如本部分一开始所说,操作系统只是一个桥梁,应用才是用户的目的。应用的丰富程度决定了用户是否需要投奔一个系统,而应用能否丰富,则取决于有多少开发者的支持。开发者支持的关键因素,一个在应用的受众多不多,一个在收益的渠道是否有保障。传统桌面端而言,Windows平台的优势在于受众多,收益方面虽然门槛较高,而且一直受盗版所困扰,但整个Windows软件产业还是产生了巨大的营收的。iOS的崛起,其实是吸收了大量没能力跨过那道盈利门槛的小开发团队。平心而论,iOS开发比Windows开发的难度大(都说Objective-C是垃圾语言,更不用说iOS开发的SDK必须在Mac上才能跑),但是既然iOS能够为开发者带来收益,那么倍受支持也是必然之事了。
为什么要开发Linux应用?
Linux应用的开发者,很多带有一种浪漫色彩:从学生时代接触编程和Linux系统,出于兴趣和对开源理念的认同,参与及发起了很多Linux应用大小项目的开发,在毕业后进入一家Linux厂商或Google这样认同开放理念的企业。比如SCIM输入法平台的作者苏哲,在初中时代开始接触编程,在高中、大学期间开发了Smart Fdisk、Smart Boot Manager、Smart Common Input Method platform等项目,硕士毕业后相继在Turbolinux和Novell SUSE工作,在07年加入Google的Linux开发小组。根据他本人的介绍,当初进行Linux应用开发就主要是为了兴趣,顺便拿点奖金,算是比较完美。
由于Linux平台多是开源软件,所以商业模式并不那么稳定。成立自由软件基金会的RMS最初倒是靠卖带有Emacs的软盘赚到一笔钱,不过这条路现在肯定行不通。RMS认为在自由软件时代,软件公司的出路在于服务和培训。但这条道路显然没有留给没什么背景的个人开发者们多少机会。广告也是一条路,好比LVS的作者章文嵩博士就在LVS官网上靠Google Adsense赚了不少钱,但广告模式的不稳定和不确定性也往往令很多开发者感到纠结。
一方面是收入没有保障,另一方面,Linux开发相比Windows开发的难度也更高一些。对于Windows开发者而言,Windows有固定的SDK,API接口也都是一致的,开发过程相对流畅;而对于Linux开发者而言,有时不得不从不同的第三方库中调用,比如QT库、GTK库、XML库等。在同一个应用中使用多个第三方库,造成的困难就在于需要将不同的库黏合在一起。虽然听苏哲说过去两年来基本形成了Gnome用GTK、KDE用QT的稳定趋势,情况有所好转,但也相对有限。
难赚钱,难开发,可以说对于没有发行版厂商背景的开发者而言,促使他们进行Linux应用开发的最大动力就是兴趣和对开源理念的认同。相对于由商业模式支撑的产业而言,由兴趣支持的产业是难以持久的。当兴趣逐渐被消磨、生存压力压倒了信仰的时候,独立开发者们还有什么理由去开发Linux应用?网络层、内核层的Linux开发还好,由于Linux设备众多,底层Linux开发的商机并不少。但是Linux桌面开发?
问题就先提到这里,如果有关注Linux的读者们认为Linux应用开发,尤其是Linux桌面应用开发有其他理由的,欢迎在评论或微博中探讨。微博中探讨的朋友们可以采用#Linux桌面开发#这个标签。
在下一篇文章中,笔者会对Linux桌面应用未来比较可行的发展方向进行尝试性的解读,欢迎读者们关注51CTO系统频道的最新文章。
【编辑推荐】