Tinyfool的Blog

这就是我,Tinyfool,郝培强!身高180,体重240,标准的中年老胖子。 有妻有女,无房无车,现居上海,程序员。

Browsing Posts tagged 标准

话说最近豆瓣很关注iPhone平台,他们刚刚推出了豆瓣电台iPhone版本(地址:http://douban.fm/app。我现在就正在使用,感觉不错,速度也很快,跟本地没区别,不过貌似歌对我这样的老年人来说有点太新,跳过一堆歌也没有找到我爱听的,或者我听过的。)。所以,豆瓣邀请了很多人去豆瓣聊聊关于iPhone和iPad开发的问题。

这次去见到了之前没见过的flycondor,在twitter上面已经认识的@hongqn,在ignite北京活动上认识的阿稳,很久以前认识的阿北@ahbei(其实说起来好久没见过阿北同学了,居然还记得我的ID,感动)。

在豆瓣我大侃了一通对iPhone开发开发的看法,所以的很high,可惜昨天晚上回来就给老婆做饭,然后晚上还有一堆事情,当天没时间整理思路写下来,可惜了。

以下是我刚刚整理出来的我的一些想法:

1、iPhone和Android哪个个平台更有前途

我更看好iPhone平台(包括iPhone,iPod Touch,广义也包括iPad),原因是我认为在移动平台未来取得成功最重要的是开放和标准。iPhone在硬件上面完全封闭,发行渠道上也很封闭,那么我为什么还看好它呢?

iPhone在硬件层面的封闭保证了产品的系列化,标准化,这是第三方开发者最应该珍视的。回想历史,摩托罗拉手机在中国的总销量可能是iPhone的百倍,但是虽然有这么多的用户,但是没有产生任何真正广泛流行的应用。那么是摩托罗拉没有智能手机平台么?不是,摩托罗拉是市面上几乎所有流行智能手机平台的大玩家。J2ME刚刚出现的时候,我下载的开发包,里面的模拟器就是基于各种款式的摩托罗拉手机的,当时摩托罗拉几十款流行手机同时都支持了J2ME。Nokia做Symbian的时候,摩托罗拉也是第一批合作厂商。Linux/Android/WinCE等平台也从来没有少过摩托罗拉的身影(最近好几款大火的Android平台手机就是摩托罗拉出品的)。

在iPhone横空出世之前,只有Nokia在Symbian上坚守S60、S40等的多产品系列的,标准化系列化的产品设计。回报就是在移动百宝箱的Java区,游戏、应用几乎都是for Nokia的。这就是市场和统一市场的区别,iPhone的用户数量,短期内决无可能超过摩托罗拉的用户数量,但是iPhone用户数量早已超过摩托罗拉任何一款手机(或者一个相关系列手机)的用户数量了,这是产生流行应用的必要土壤。

所以,因为产品的系列化,标准化,Nokia曾经有过自己在智能手机领域的辉煌。但是整个手机行业太固步自封了,Nokia太固步自封了。自从7650以来,我已经用了很多款Nokia的S60手机了,虽然性能越来越好,外观越来越酷,但是近10年了,真正的大改进并不多,开发仍旧困难,操作仍然笨拙。话说那天,我在地铁上看到一个美女用手写笔去拉动手机右边的滚动栏,恨不得大喊一声,“你改悔吧,别浪费生命了,买个iPhone吧!”。这其实就是iPhone出现前,手机行业固步自封的最明显表现。

我尤其珍视的是软件层面的开放,对第三方开发者的开发。这点可能也有人不同意,他们认为iPhone平台软件层面也很不开放,比如不能后台运行第三方程序,不能自行发行,不能开发第三方输入法等等。但是,这些种种的局限,有些我相信可能是阶段性的,有些是为了让发行渠道的利润更高。总体来说,我认为如果你要开发的应用在iPhone平台的种种限制下,能够做出来,那么iPhone平台就是对你来说,就是目前最好的移动平台,也是最开放的移动平台。开放是一个多层面的问题,不是说开源就一定最开放,iPhone平台目前丰富的应用,丰富的文档,方便的开发环境,这也是平台开放性的重要组成部分。

同时,iPhone平台的渠道优势也是完全不能忽视的。最近最火的一个相关新闻是,植物大战僵尸iPhone版本9天赚了100万美元,这款游戏的PC版本,在中国都早已经是白领中很流行的东西了。这家公司在这款游戏应该也早就挣到了很多钱,但是短短9天的销售获得100万美元,我想他们在很多平台都很难达到。这就是苹果公司精心打造的一键付费,方便的软件发行系统的功劳(甚至是他们很多令人不爽的苛刻规则的功劳)。

之前,我对中国到底有多少台iPhone一直犯嘀咕,这两天,我问了一个在国内很火的应用的公司里的朋友,他告诉我的数字是他们公司的app目前有100万左右的免费用户,有5%左右的付费用户。这样我就得到了一个很好的参考值,那么我可以斩钉截铁的说,中国的iPhone数量应该是100万以上。

据说豆瓣刚刚上线的电台iPhone应用的流量,已经占到了豆瓣电台总流量的一个相当比例了,而相应的Android版本目前还比较沉寂。我有个朋友做了一个很火的信息网站,年前他们做了一个web的iPhone优化版。于是我就毛遂自荐想帮他们做个官方的app,结果拿了api我还没动手。朋友告诉我已经出现了一个非官方的app,而且现在iPhone优化的web版和这个第三方app,目前已经达到他们总访问量的1/4了。

2、那么我是完全不看好Android平台么?当然也不是。

有人把现在Google领导的Android平台和Apple领导的iPhone平台的竞争比作当年PC机和Mac机的大战,不得不说,我也很喜欢这个比喻,确实有太多太多相似的地方了。在硬件方面,iPhone和当年的Mac机一样,是封闭的,没有兼容机,没有第三方硬件厂商。从软件上来看,iPhone平台是不开源的,Android平台是开源的。

那么如果以唯开放论的观点去看未来,Apple应该毫无机会,Google必胜。但,我不这么看。首先我们回顾一下历史,PC平台硬件确实是开放的,但是软件从来不是完全开放的,Cpu也从来不是完全开放的。这个开放系统的伟大胜利,我曾经有篇文章仔细分析过,有兴趣的可以看看《标准,要挣钱除了标准还是标准》。文中的道理简而言之就是,这个伟大的开发系统的胜利的缔造者IBM根本不是受益者,掌握了两个标准在手的微软和Intel才是胜利者。而今天我们仔细想来,这个开放平台开放的恰到好处,正式因为这两个关键标准的不完全开放,才保证了这个平台虽然很开放,但是一直都是一个标准化的产品。你在Dell的PC写的程序,可以运行在HP、IBM、甚至联想的PC,是这个高度标准化保证的。

所以,太多成功学的教材,只顾大谈开放,而不去提标准;或者只提标准而不提开放。我认为都是不对的,事实上在现在,一个系统要获得成功,我认为关键是要把握开放和标准之间的平衡,不能因为开放,而忽视了标准,反之亦然。

如今Android的战略中的每一点,我都很喜欢,但是它在标准化和发行渠道上,跟iPhone确实有巨大的差距。标准化和兼容性方面,最近有个很明显的例子,一款叫做Leech Killer的Android软件的作者@an0最近被Android手机间的不兼容性折磨得最终决定放弃这款软件的开发。他的写到:

我很伤心的宣布:Leech Killer 已死,有事烧纸。

是太多互不兼容的 Android 手机杀死了它。在如此混乱的世界中,涉及电话功能的工具软件已经无法由一个人维护。Leech Killer 在许多新款手机上无法正常工作,用户很生气,后果很严重。有人甚至说,它就是一坨:( 我很抱歉,朋友们,我真的已经努力了,但是我连你们的手机长啥样都不清楚 ─ 我不可能所有款式的手机都买一个。

安息吧,我的孩子,我会想念你的,你的那些老机器人朋友们也会的。

我一向认为这么多国际大牌厂商参与的,已经有10年左右的智能手机革命,十年不成的原因正是因为缺乏足够好的标准,所以客户端兼容性差。而现在Android这个单一平台,其本身的不兼容性问题已经开始成为了一个严峻的问题。开发一般应用,也许还好,凡是涉及到硬件的,酷的程序,以及游戏,一般来说都对兼容性有比较高的要求。

比如一个应用他需要一个快捷键,而某款手机缺少了一个键造成这个快键无法按下,等等。比如一个应用需要GPS+重力加速度传感器,但是有些手机只有GPS,而没有重力加速度传感器。更可能的就是一款游戏,你在某个分辨率下把有些做到精益求精以后,突然发现Android平台的新宠分辨率居然跟你的游戏不匹配,又要做无数的调整。相信这10年来,混迹于移动平台的第三方开发者都深有体会。

跟兼容性问题一样严重的就是,Android的市场并没有app store这么强的渠道能力,这也是目前不可忽视的问题。

从长远来看,我对这个世界的看法是越来越多元,同时因为多元也越来越美好。我认为iPhone平台和Android平台未来很有可能在很大的程度上分庭抗礼,有各自的核心价值,有各自不同的第三方开发者生态链。这不是PC机和Mac大战的结果,因为那个时代,整个世界也不足够多元(当然还有很多细节,今天就不分析这个老深坑了)。

但是Android如果想达到这样的局面,要在兼容性/标准化方面做出巨大的努力。还需要对发行渠道也就是他们的app市场上做出巨大的努力。

就目前为止,我想提出的建议是立足iPhone平台为主做开发,可以适当的付出一定的精力在Android平台,或者只是先观望Android而已。我乐见未来的世界,既是开放的,又是多元的。只有一种选择的用户是最可怜的用户。PC机这个号称最开放的平台,后来不也变成了让用户只能选择Windows的,OS层面不足够开放的平台么?索性我们有 Linux和Mac,大家才有了更多的选择,也才带动了Windows做出很多改进。

附,本文引发的一些相关的讨论:

  • iPhone和Android的开放问题
  • 招聘广告

    腾讯即时通信部门大力招聘 Mac/iPhone 平台开发人员,欢迎联系和推荐。
    工作地点:深圳腾讯大厦

    可以Mail简历给我,我帮你转发给腾讯有关人员。
    我的邮箱:Tinyfool@gmail.com

此文在2005年3月31日曾发表于我在Donews的Blog。

我感觉值得悲哀的一件事情在于,虽然微软是世界上最好的一个成功案例之一,每个人都在研究微软的成功,但是更多的人把微软的成功看作是机遇和一些非常的商业手腕的结果。我一直避免自己变成一个唯技术论者,但是我不得不说,我觉得目前的不好的倾向在于整个行业太不唯技术论了。跟我们的政府立足的模仿西方先进技术不模仿西方的经济体制类似,我们的软件行业好像醉心于趴在微软和众多国外系统软件开发商的系统之上,专心致志地进行企业信息化建设。整个软件行业最流行的词汇是.Net和J2ee这样的企业级解决方案,就是这种现状的一种写照。

曾几何时,中国人的Ucdos和Wps给我们带来了无上的民族自豪感,虽然他们也建构在微软的平台上面,但是毕竟让我们感觉我们离世界软件大国的脚步并不遥远,甚至当时有人会认为中华民族的伟大复兴就将会依靠软件业。但是,一朝微软进行平台更替,整个中国软件行业才发现这种并不遥远,其实只是一种错觉。应该说Ucdos的荣光来自于微软对Dos中文化的投入甚微,或者说心不在焉,在当时我们不能准确地了解到,微软这种心不在焉也许并不是不重视中国市场,而是打算在Win95一劳永逸的解决问题(注一)。而Wps就是一种悲剧了,我有时候在想,就算金山现在做得再差劲,政府采购也应该对他们有所偏向。要知道Wps对中国的信息化贡献极大,而某种程度上说,政府的追赶时髦和没有民族软件危机意识也是Wps失败的主要原因之一(注二)。抛去这场悲剧中的民族感情色彩,我们发现在那个历史时刻,我们全行业溃败(注三)的主要原因很简单,不掌握标准,而且跟不上掌握标准者的脚步。

微软是怎么样从一个卖Basic解释器的小作坊发展成全球最大的软件航母的,找本微软发家的书来看,字里行间就是两个字“标准”。当年IBM出于对 Apple的眼热(注四),开始研制自己的个人电脑,也许是为了更快的进入市场,IBM在这个项目里面居然没有采取惯用的什么都自己做的战略(注五)。 Cpu选择了Intel,操作系统选择了微软买来的Qdos(注六)。在这场三位一体的历史事件中,Intel和微软成了胜利者,因为他们各自掌握了一个核心标准。而PC的缔造者,IBM因为不掌握核心标准在PC行业中一直扮演者尴尬的角色,起初他还算是行业领导者,但是因为核心标准不在手中,一旦他打算利用附加标准来重夺控制权的时候,他立刻被行业抛弃(注七)。今年年初,IBM通过把自己的PC产品事业部卖给联想,实际上已经正式逃离了这个行业。从 1980年IBM开始研制PC机到2005年IBM离开PC行业,25年弹指一挥间。

微软成长很大程度依赖于他在操作系统上面建立的标准,他的Office能够打遍天下无敌手,仰仗了两次重要的技术标准升级。第一次就是Dos到 Windows,大部分竞争对手不可能有微软那么了解Windows也不可能得到那么详尽的开发资料,所以这次升级,微软让很多对手元气大伤,甚至一蹶不振(注八)。第二次就是OLE技术(注九),OLE技术的推出让很多对手措手不及,而且有证据表明微软在OLE技术前期,刻意得对竞争对手进行了技术封锁。

如果你看过李维的《C++圣战》,你会发现Borland被微软边缘化,也主要是因为这两次技术标准升级。这里展开说句题外化,我发现了一条真理,玩微软平台开发的只有两个下场,第一,被微软弄得没饭吃,第二,去微软混饭吃。Borland一直用行动在证明我这条理论,首先是Borland在微软的打压下吃饭越来越艰难,其次是Borland的N多牛人最终去了微软。

本文不想继续描述其他微软利用技术标准来战胜对手的例子了,实际上这样的案例实在太多了。我认为微软的持续成功,就在于微软把自身的标准建设贯穿在整个产品体系之中,没有一款产品不是服务于标准的建设,也没有一款产品的成功不是得益于标准的建设。

但是在国内,我们看到很多企业并不是这么做的。这里要举的例子是某电子产品生产厂商。他们从93年开始占领市场,处于垄断地位至少5年之久,到现在市场却越做越小,产品和竞争对手的相比没有任何竞争力,唯一可以依靠的就是长久垄断带来的品牌效应。然而这种品牌效应也慢慢地在消失之中。

他们的现状是怎么造成的,有方方面面的原因,这里我只想谈谈没有自己的标准带来的后果。该公司早期采取了以产品项目组为中心的开发模式,在经营之初,这种模式没有表现出来任何的问题。然而,由于没有长远的规划,没有自己的标准,每款产品之间的资料往往不能共享,由于没有固定的硬件平台解决方案,也没有上层的软件平台标准,每款产品上的同类软件都需要重新开发,大大的降低了项目开发的效率。在没有竞争的年代尚好,在竞争者如云的今天,该公司甚至难以保证每个销售季节有足够的新产品和竞争对手对抗。2003年的时候有一丝的标准化的曙光,公司的某个员工为了解决频繁地在不同硬件平台上面移植某一游戏的任务,设计了一个比较高效的虚拟机系统。但是这个公司并没有完全采用这个系统,系统的开发者最后也离开了这个公司。该公司目前有一个项目组采用这个虚拟机系统开发产品上面的软件,效率很高,而且有非常多的资源可以使用。另一个项目组虽然使用了更好的硬件,但是很多精力花在了底层平台的构建,产品开发周期很长,而且运行效果相当不理想。这是很有趣的一幕,采用虚拟机的标准化的16位系统,可以高速地在16级灰度下放视频剪辑,而32位平台为了支持其实没有必要的多任务,再加上系统开发时间紧,对Cpu不熟悉等等,甚至在4级灰度下都不能达到正常的软件使用速度,最后不得不做成黑白显示模式。这个案例我亲身体验,所以感受颇深。这个公司的失败很大程度是在管理,但是有很大程度也在技术,一个技术公司没有好的技术方向,空有良好的管理,也是无法想象的。技术公司里面技术就是公司的生命,但是我听到了太多强调管理的声音,我并不反对重视管理,但是很反感最近一段时间接触到的某些人对技术的轻视,这种轻视来自于对技术层面的客观规律的不了解。我对这种思维倾向的蔓延感到恐惧,如果中国处处都没有自己的技术,那么就说明我们的管理到家了么?只怕事情不是那么简单的吧?

—————————-

注一:微软确实已经做到了。
注二:这个问题要讨论起来就是一篇很长的文章了,基于我的朴素的善恶观,我认为Wps的失败政府有很大的责任,虽然更大的责任在于裘伯君自己,但是在那个历史时刻,中国整个软件行业都沉浸在Dos的虚假繁荣之下,有几个人能认识到Windows的势不可挡。
注三:即使是在Win下面的中文平台,RichWin、中文之星实际上也是败军之将,他们的丰厚利润取得于微软无暇推重中文版Windows的空档,后来这种黄金岁月再也没有出现过。
注四:其实IBM这样的史前巨龙,完全没有必要眼热Apple那一亩三分地,要知道那个时候Pc产业远没有这么庞大,IBM随便的一个子公司都不知道是Apple的几倍。但是IBM对那种对全行业的控制欲促使它还是搅了这个浑水,而且搅得一塌糊涂。
注五:抑或者是某个天才的脑子的故意所为,这虽然导致了IBM创造PC无法控制PC,但是也催生了一个产业,但是具体的思路显然已经湮没在历史之中了。
注六:这是整个微软神话中最神话的部分,这是机遇论者的最核心论点。甚至有人说这笔买卖是因为盖茨母亲的一点小小的特权,据说她可以影响某个机构的电脑采购。我对这种传言丝毫不以为然,要知道IBM是史前巨龙,很难想象一个机构的采购订单就能影响IBM的决断,尤其是PC是IBM涉足微机市场的第一款作品,他们不会太掉以轻心的。
注七:这里指得是IBM打算利用“微通道结构”(MCA)总线技术这个自己占有的标准来避免兼容机仿冒,然而最后结果却是,其他所有的兼容机厂商联合在一起支持EISA,IBM成了事实出局者,以至于后来不得不去兼容EISA。IBM还搞过很多类似的附加标准显示接口XGA,OS/2这样的软件标准等等,除了PS/2键盘鼠标口被广泛接受以外,无一成功。
注八:Wps应该说就是这次以后,基本上就奠定了非主流软件的地位。
注九:OLE技术本身在我看来就是失败技术,虽然副产品COM技术非常成功,后来成了Windows的新基础。