食客还是大厨
(请勿将本文用于商业用途,转载时注明作者和出处)
昨天我在文章《Android将允许纯C/C++开发应用》中发表了一些“很不中听”的观点,在我早晨上班刚打开电脑的时候,Gtalk上同学就发来了一条信息“android 为啥不用C/C++的原因是,android是开放式系统,为了能够跨平台。如果整回C/C++,那么windows mobile就是前车之鉴。”,于是和同学展了争论,同学的意思是Java是正确的,在硬件上的表现也将是很出色的,而且准入门槛低,最重要的是跨平台,跨平台是恶梦,而硬件上性能的问题在未来不是问题。iPhone是单一平台,所以不需要考虑跨平台。
而在我的博文后面上也有许多的讨论,在CSDN上也有一些,大家可以去看看。很多朋友都谈了谈为什么Java要比C++要好的理由,很多很多,大家可以去看看,我觉得挺好的。不过后来,我更新了一下我的文章,留下了几个让大家思考的问题,我希望大家都看看。
在这里,我想和大家说说技术之上的东西。
——————————————正文分割线——————————————
在绝大多数的评论中,我看到了大家都是站在技术开发者的角度在讨论。我想这和Google的Android犯的是同一个毛病,那就是其注重了“程序员”,而不是“用户”。就像是,Unix是为程序员开发,Java 也是为程序员的跨平台难问题开发,而Windows是为用户开发,iPhone也是为用户开发。也许,我们认为,改进了程序员的开发体验后,能迸发出程序员强大的生产力,进而增加满足用户需求的能力。不过,我想说的是,这件事的初衷是好的,但事实上程序员是永远不懂用户的。
就像大家在讨论Android和Java的关系时,仅在谈跨平台,其实,跨平台关我最终用户屁事,开不开放并我最终用户P事。甚至,手机里装的是Linux还是Android还是Win Phone7还是Symbian,我做为一个用户我统统不关心,什么Java,还是C++,管我球事。作为一个程序员,如果你想不通这个观点的话,那你就去想想,你上饭馆点菜时,你会关心你点的菜是用什么样的锅碗瓢盆来盛,用什么样的燃料来做,什么样的刀来切,长在什么样的地,浇了什么样的肥……如果你还想不通的话,请看下面的例子:
有一天,Google告诉所有的大厨,从我们发布Android开始,你们做菜就简单了,这是一个跨平台的烧菜系统,以后,作为厨师的你,做菜再也不用关心是用炒锅,蒸锅,煮锅,砂锅,电饭锅,平底锅,也不用关心做的是西餐还是中餐,我们推出的“虚拟锅”将屏蔽这些硬件和技术细节,以后,你面对的只有一口锅。当然,对于这个虚拟锅,你需要使用一种新型的叫Java锅勺。Java锅勺是强大的,容易的。(然而,过了几年后,他们却推出了传统锅勺)对此,一堆大厨,吵啊吵啊的,大家都在争论锅的好坏。
来饭馆吃饭的食客说,关我屁事,都麻利儿地赶快给我上菜!给我好吃的!(到这里,我希望你看懂了,如果你没有看懂的话,就此打住,后面的对你就太深了)
当然,用户并不单单只是着迷于好吃的,还有好的服务和体验!程序员们管这个叫用户体验。不过,如果餐馆都关注大厨们做菜的体验了,很有可能会怠慢了用户体验。餐馆负责人吆喝着,我们的餐馆是跨平台的,是开放的,就是说,任何都可以在我们这里做吃的买给你。食客们说,什么?什么人都可以在你的餐馆里做菜?你搞错没有啊?!餐馆负责人说,这样我们可以吸引到更好的更优秀的大厨,能做出更优秀的菜,有的菜品还是其它餐馆提供的。食客们说,那可以试试。然后,当食客上桌的时候,他们发现不同的菜居然有不同的服务,而且点菜的流程也不一样,不过大家都号称自己有最好的用户体验和服务。此时,食客们反而犹豫了。而各位大厨在厨房津津乐道着自己的做菜体验,而没有挣到一分钱。餐馆负责人还继续向食们说:我们有四个订餐电话,不同的订餐电话可以订到不同的菜,以后这样的订餐电话会更多。
这个时候,一家叫iPhone的餐馆出现了,用户体验非常好,服务也很到位,食客们从入座点菜和进餐的过程都非常的流畅和风格统一,都相当的简单。食客们说,你们的这些菜品是怎么来的?iPhone餐厅负责人说,我们厨房对大厨们其实也是开放的,不过,厨房里的硬件和烹饪器具都是固定而不能修改的,而且,他们要想在这里做菜的话,每年得交给我们99美元的审核费用,我们严格他们的做菜工序,并保证用户的体验一致,我们的收入会和这些厨师分成,特别是那些有秘方的厨师将会分得更多。我们就像麦当劳一样,加盟我们的人有很多,不过我们所有店面的风格和用户点餐的过程完全一致,方便而服务优质。当然,我们的收费是高一点,但在我们这里不会出现任何的混乱。对于食客来说,虽然有人抱怨iPhone餐馆的只有一个服务生(单进程),但是,食客对该餐馆的服务表示很放心,体验也没得说,流畅完美简单一致。
—–更新:2011/01/26—–
跨不跨平台,开不开放,一点都不关用户的事,那是程序员的事。但用户的体验很关用户的事。用户的体验包括两方面,一方面是技术所带来的功能体验,另一方面是服务体验。Android和iPhone的差别是,Android只关注开发人员的体验和功能的体验,并没有服务的体验,而iPhone把功能和服务的体验都打包了。Android选择走什么样的路无所谓,要打赢这场战争,Android一定要学会从技术向服务的过渡,否则,就开发而言,也就是吸引一下程序员和产商罢了,其对用户没有任何吸引力。
但凡是走这条的,都很有问题(用户和服务跟不上,全部玩完,Linux的前期基本如此)
- 产品 -> 开发人员 -> 产商 -> 用户 -> 服务(???)
而有些公司选择了这条路 (产品和服务先行,抢占用户市场相当快,比如Windows,IBM)
- 产品 + 服务 -> 用户 -> 开发人员 + 运营代理
我不认为Apple的经验无法复制,而是这样的模式很多很多,这个世界上有很多IT公司做到最后才发现,只有把产品和服务一同打包,才是用户想要的。
——————————————————
这就是Apple的简单之道,上述内容素材取材于我和我老婆的对话(我老婆是文科,对编程不懂,她正是我了解最终用户的对象,也是我锻炼沟通的对象)。下面是相关原始对话:
我:问个问题,如果有两家餐馆,你会先那家?
- 第一家餐馆是开放的,怎么个开放呢?厨师可能是任何想做菜的人,有做的好的,也有做不好的。餐馆的厨房里的配置也是各式各样的,厨师甚至可以自带设备,反正,什么样的厨房用具都支持。另外,该餐馆有四个订餐电话,不过,不同的订餐电话都不一定都订到菜单上所有的菜,因为这个餐馆不但把厨房给开放出去了,订餐的方式也开放出去了。进餐体验方面,不同的分店有不同的样子。
- 第二家餐馆是封闭的,不过他也对外面的厨师开放,并和厨师一同分成。厨师里的用具是餐馆定制好的,厨师要做菜,必需先交100美金的审核费,餐馆派专人审核厨师做的每一道菜,包括工序。每个餐厅的环境非常友好,也很简单,而且能让人感到非常不错的进餐体验,所有的分店都是一样。订餐电话只有一个,可以完成一键订餐。当然,第二家店要贵点。
老婆:你说的第一家就是那种像“大食代”的各种小吃拼起来的地儿吧?第二家就是像麦当劳, 必胜客,或是一些正规地像“海底捞”、“江南春”这样的店吧。第一家的店么就是顺便吃吃,要真正吃东西,还是要去第二种店。老公,难得你今天请我吃饭,我看就吃你说的第二种吧。(我晕,又把自己给绕进去了)
——————————————正文分割线——————————————
P.S. 有的朋友说我是C/C++出生,就是看不起Java。这样说我太小看我了,我的文章风格从来都是以一种调侃的方式,因为我觉得这样的文章会比那些枯燥的技术文章更有意思。我调侃C++和程序员的文章不比调侃Java要少,我对C++的观点从来都是C++是一门很不成熟的半成品语言!Java则要比它成熟的多得多,不过Java的跨平台和性能上的确是有很多东西可以调侃。
(请勿将本文用于商业用途,转载时注明作者和出处)
(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)
《食客还是大厨》的相关评论
http://apple4.us/2011/01/shortchange-business.html
要是当年Google直接选了C+Python估计就啥事儿没有了…
我也这样认为
我想说的是Google选用什么样的语言都无所谓,然而,Google选择的是更多的是程序员,而不是用户。而直接影响一个产品的兴衰是用户而不是程序员。对于手机产品来说,更是这样。(看来我白说了)
其实关心产品是否开源之类就相当于关心你的菜里有没有罂粟壳、生产时有没有污染。。。。
Good Point。不过对于食客来说,生产线开不开源无所谓,就算开了我也看不懂,他关注的是整个生产链上有没有派专人审查,而食品贵点也没关系。当然,也有些不要求品质只图吃饱的食客。所以,iPhone的用户定位是那些不但对食物,而且对环境有品质要求的人。Android定位可能是那些对食物要求过得去不算差能吃饱的人。
食客和大厨并不是绝对的矛盾和对立。一个操作系统,首先要有简化的应用开发流程,才能吸引更多的软件开发者参与,才能拥有更多的应用软件,才能实现更丰富的功能,进而,这个实用的功能丰富的操作系统,才能吸引住更多的终端用户。强调一下,吸引用户的首先是功能,其次才是体验。所以,Android重视开发者,也就是重视为用户开发应用,也就是重视用户。体验是可以在后期改进的,并且一直在改进。这是一个常规发展路线。
博主给出的Windows的例子,恰恰是支持我的观点的,Windows 3.x时代它的API就很丰富了,到Windows95时代SDK就非常成熟稳定了,再算上给力的Visual Studio,说微软Windows异常重视软件开发人员也一点不为过,这也是它20年经久不衰的重要因素之一。相对应的是,Windows的用户体验,一直在改进一直在变好。对比Win95和Win7,SDK的变化有限(仅增加一些新的API),人机界面上的变化却是改头换面。
谢谢回复,我从来没有说过“食客和大厨并不是绝对的矛盾和对立”。我说的是,你是想通过大厨来促进用户,还是通过用户来促进整个餐饮业,从而保证用户,大厨的利益?
关于说到windows重视开发人员,呵呵。我相到了ActiveX,COM,J++等等。这里有篇Windows编程革命史,不妨看看。http://coolshell.cn/articles/3008.html(Windows也是先注意用户体验,然后才注重开发人员的)
一个操作系统最重要的是在它基础上的开发平台,如果开发平台不行,系统再好也没人用。如果没有好厨师,烧菜的效率再高也没人吃。为了吸引好厨师,当然需要满足厨师的一些个性要求。
照楼主这么说,塞班系统应该比苹果强,因为他比苹果更封闭。
你又误解我了,我说的不是封闭和开放,我说的是给用户的体验。你可以举一百个不同的烧菜例子来反驳我,不过我的观点不在那里。我的观点是,作为一个餐饮业,你是通过增进大厨体验来兴旺它,还是通过了解用户而满足用户的体验来兴旺它?(哪怕牺牲大厨的体验,但会给大厨涨钱)
好的操作系统当然要兼顾开发者和用户双方的利益,而不是只考虑用户或者只考虑开发者。
这件事的初衷是好的,但事实上程序员是永远不懂用户的。–这种话希望楼主就不要再说了,程序员面对的就是终端用户,程序员自己也是用户,操作系统的开发者(Apple/Google)也是程序员,我承认程序员中的一些是不懂用户的,但是不能以偏概全。
谁的菜最好吃最便宜就吃谁 XD
……食客点了一份猪肉白菜炖粉条(flash),服务员说,这个菜炖起来太费碳吃起来也不雅观,咱们不支持吃这个菜,食客心里说我吃什么还要你管?
……食客们又反映说店里某些角落漏风(信号门),服务员说,是您座的地方和姿势不对,请换个姿势坐,我们也可以免费提供外套~~~
为什么表达观点的时候总是要反驳另一个观点呢?搞不懂!作者在表达他的观点,并列出了他的理由,其实其他人也可以表达自己的观点,列出自己的理由,没必要非得反驳一下,打小辩论赛看多了吧!
问题其实出现在硬件上。Android/Google不能限制硬件平台,各个厂商必定会推出不同指令集的机器。普通开发者无力为每种机器测试一遍,编译不同Bin,于是只能这么干了。
现在的流程是, 厂商想办法让android在自己的机器上跑起来,兼容性问题就解决了一大部分。 要在一个Market里卖不同的Bin,除非厂家把自己的开发工具按照一定的规则提交给Google,然后由Google统一对开发者提交的代码Build出程序,这明显不靠谱嘛。
iPhone的统一也是有代价的。 一样的价格,一样的性能,一样机型。 对我来说, iPhone是最不坏的选择,最近有想买手机又没主意的朋友,我都推荐他们买iPhone。不过我自己用的是T-Mobile G2, 我喜欢物理键盘,现在我的E文输入速度是120每分钟, 我喜欢在上面没事写写Python和JS,我还想要Flash。我不喜欢拿着iPhone 和周围的人都一样的外形。
Android 提供给用户一种选择,有选择是麻烦的, 不过总有人会喜欢。硬件厂商也能根据用户的需要生产不同的机器。
Android也只是说允许C/C++吧,并没有说要放弃Java,只是多给了条选择,Android并没有把Java和C/C++搞的你死我活,所以大伙也不用驳个你死我活。挣到最后无非是在讨论Java好还是C/C++好。
没想到这篇由Android关于Java还是C++引起的讨论这么有意思。我很同意博主的观点,做产品必然要以用户体验为先的,任何一个终端用户必然不会关心你是用什么技术做的。比如说,你设计了一门比JS更优雅的新脚本语言来构建你的富客户端应用,即便你把这项技术说的天花乱坠前无古人后无来者,对于用户来说,他在意吗?
很多回复博主的观点,基本都是站在程序员的角度来探讨的。技术只是产品成功的一方面,而大部分程序员又都是沉迷于技术的。而另外一个关于良好的平台吸引更多优秀的开发人员的观点,我觉得并不如博主的观点更切入本质: “作为一个餐饮业,你是通过增进大厨体验来兴旺它,还是通过了解用户而满足用户的体验来兴旺它”. 你的产品是给谁用的?没有客户就没钱赚,没钱赚为什么那么多开发人员要涌入到这个领域?而@低调所说的“塞班系统应该比苹果强,因为他比苹果更封闭。”纯粹是诡辩了,因为博主没用就封闭与成功之间划等号。
我感觉最后的问题还是因为Apple只有一款机型,而Android有多款,这个应该算是商业策略的问题吧,应该不是语言的问题。Windows Phone目前有基本配置这么一说,那么及其间的差异化应该是被缩小了,针对该模型的VM优化应该是更容易些了
硬件平台的兼容性不是我们这些开发者要考虑解决的问题,google定是会定出一套规则来解决,开发者是针对某个具体的操作系统来开发,又不是针对具体硬件开发,把C/C++加进来实际上能曾加更多的开发者参与进来,大家都在猜测为什么Android要支持C/C++开发,一切都是猜测。
你确定“吸引用户的首先是功能,其次才是体验”?除非你这个“功能”是世界上独一无二的,可能你会吸引一部分用户,但是你的产品不可能做大,不可能吸引部分geek以外的用户。况且现在你的功能并不是独一无二,你的用户体验还不好,我为什么要选你的产品?作为一个普通的触摸屏手机用户,我最关心的还是谁的触摸体验好,谁的划动更流畅,谁的界面更简洁美观,你具体实现关我什么事?我只买一个手机,你跨步跨平台关我什么事?所以跨平台只是对程序员友好而已,对用户完全没有意义的。难道某些程序员只能从自己的角度看问题吗?@liigo
你说的例子基本成立,但是你的顾客只有你所说的一种?顾客也是多元的,你的顾客就是所谓的白领及其高端人士喜欢iphone,但不是全部,里面也有大部分人会喜欢更自由的第一种..更不要说这种人之下的那些人也要生活.能更自由的选择并且也有不错的体验..还是便宜的那种..最后可以说2010年手机用户的增长也说明了这样一个事实.
只要是讨论,无论什么样的观点我都喜欢,让我们摆好心态去享受争论的快乐。
手机是一个很同寻常的平台,比起PC平台来说,需要更好的用户体验,用户体验不单单只是应用和技术,还有服务。
谢谢大家的留言,都非常精彩。
终端用户最直观的感受就是效率,虽然java一直在努力,但是要在不同的硬件体系中取得平衡是很困难的。
另外博主对C++的评论我很赞同,c++就是一门实验性质的编程语言,什么都往里堆,然后又非常流行…..
认同作者的大部分观点,认为Google应该支持C/C++的。但是同时也应该保持对Java的支持。
我感觉Android和Iphone之类的不是餐馆,而应该是一套厨具,Iphone是一不对外开放的厨具,但是只有Apple一家餐馆使用,当然厨师可以到这家餐馆做菜卖给食客。Android是一套开放的厨具,任何人都可以用这套餐具开一家餐馆,厨师可以做一道菜到各家去卖。
我们相信即使Apple可以做出来更好吃的菜,这家是连锁店,也不可能所有的人都到这一家餐馆去吃Ios厨具做出来的饭。
Android不一样,任何餐馆都可以使用。所以肯定也比Ios更流行,更广泛使用。
我想我還是會去大食代。
在用戶體驗上,分割用戶群體也是一件很重要的事情。
高端用戶,比如對食物挑剔的,對服務有要求的,那麼就不會去麥當勞。
為什麼?原因是假如世界上的餐廳只有麥當勞,你不會吃膩么?
所以高端用戶自然會轉向更加自由的,FREE的,可以自由選擇的,而不是按照某種固定規則的餐廳。
開放的核心體驗也就在這裡。
你認為你可以一年365天都吃麥當勞么?
@XnnYygn
如果麦当劳一年有365道菜,又便宜又好吃,何乐而不为?
我突然又想到一点:难道程序员就不算是操作系统的用户吗?它们和终端用户一样,都是操作系统的用户。
操作系统用来干什么?操作电脑。操作电脑的目的是什么?开发程序吗?开发程序的目的是什么?解决问题。解决问题的目的是什么?所有的一切最终都会指向实际需求。就像我们用电脑并不是用操作系统,而是进行交流,购物,娱乐等实际需求。如果电脑上只有一个操作系统,那将会是何等的无聊。如果操作系统只是字符界面,就像DOS和UNIX一样,那么也只有专业人使用电脑了。今天的IT业和互联网业也不会如此的火爆。
产品的对象是客户,所以要把握好这一点。
我觉得作者有所误解。android的架构目前来看是分层的java作为应用层开发,c/c++主要是系统层的,并不存在太多的竞争,也许以后html5会作为主要的应用开发层呢。c/c++可以用来优化一些性能瓶颈的地方。一般的应用开发java就够了,也许以后脚本(基于JVM)会成为主流呢,web会成为移动应用的主流呢。总结就是两者是不同层的东西,不存在什么谁取代谁的问题。好的体验是饭店是基础,厨师只是上面的一个因素。
大食代和麦当劳,总结的精彩!后面用在请吃饭上更好玩。又一个技术为生活服务的经典案例。收藏了。
iPhone体验好,也不能说Android的体验不好。
iPhone太成功了,如果除去iPhone再比较呢。
说句实话,貌似很多ANDROID的用户同时也都是程序员
所有android用户中android开发者能占多少呢?我也认为程序员不懂用户,我觉得程序员在需求上、对产品的理解上等等和大部分普通用户差别很大。不要指望每一个去饭店吃饭的都是厨师。
@砖家
软件开发的矛盾就在于此啊
产品必然要以用户体验为最终目标,这点我同意,相信Google也同意。博主的错误在于认为apple的成功是可复制的,而且是唯一成功可能。而事实上,如果google照搬apple模式,封闭平台,自己生产一款手机,结果会如何?就算不惨败,也一定无法超越apple。事实上封闭系统的成功是有很大风险的。看apple几十年的经历即可知,pc时代更是被开放的ibm兼容机狂虐,jobs本人也是大起大落。可以说apple的封闭式成功只有apple玩得好,甚至可以说只有jobs的apple玩得好。另一方面来说google的企业文化和风格也促使其开放产品。谁上战场的时候会带着自己不熟悉的武器?第三,apple是从硬件向互联网服务发展,google则是反向。apple的阵地是自家几十年来的单一平台,google的目标则是“只要有了浏览器,什么都一样”。目标的不同自然导致了决策的差异。
因此,无论如何,google必须选择一条不同于apple的道路,而他们选择了开放,多平台。在这个前提下再来讨论整个系统的设计,虚拟机又成了唯一可能,然后自然就导向了java。以你餐厅的比喻,对面已经开了一家很像样的餐厅,用户体验超级好。而你这的服务员长得又丑态度又不好,一时也雇不到好的人。怎么办?当然是另辟蹊径打出健康的大旗了。
跨不跨平台真是不关用户的事。用户的体验很关用户的事。用户的体验包括两方面,一方面是技术所带来的功能体验,另一方面是服务体验。Android和iPhone的差别是,Android只关注开发人员的体验和功能的体验,并没有服务的体验,而iPhone把功能和服务的体验都打包了。Android选择走什么样的路无所谓,要打赢这场战争,Android一定要学会从技术向服务的过渡,否则,就开发而言,也就是吸引一下程序员和产商罢了,其对用户没有任何吸引力。
但凡是走这条的,都很有问题(用户和服务跟不上,全部玩完,Linux的前期基本如此)
产品 -> 开发人员 -> 产商 -> 用户 -> 服务(???)
而有些公司选择了这条路 (产品和服务先行,抢占用户市场相当快,比如Windows,淘宝,IBM)
产品 + 服务 -> 用户 -> 开发人员 + 运营代理
我不认为Apple的经验无法复制,这个世界上有很多IT公司做到最后才发现,只有把产品和服务一同打包,才是用户想要的。
其实发现大食代还是有很多人去的。
大食代永远都不会像麦当劳、星巴克或是海底捞那样成功,试问,你会去大食代过生日吗?你会去大食代看书吗?你会去大食代吃年饭吗?你会请客户去大食代吃饭吗?那只是一个吃饭地方,离有品质的餐饮文化相差甚远。
编程语言的选择和用户体验没有关系或者说关系不大,更多的是影响程序员的体验吧。
博主好像有些转不过弯,坚持认为如果OS对程序员更好就是变相的冷落终端用户。其实不然。我前面也提到过,程序员和终端用户都是操作系统的用户群。对程序员友好了,自然会促进对终端用户的友好;反之,对程序员都不友好,该操作系统连推广自身都有问题。事物发展都有先有后的,次序很重要。
iPhone 做的是一家高端餐馆,Android 做的是餐馆联盟。不一样的发展思路,所以会有不一样的技术路线。NDK 对苹果而言是优点,对 Android 来说恰恰是问题。他们都选择了适合自己发展的方式而已。
无非就是说Android缺个人像苹果那样给程序把个关吗?这跟平台开不开放有什么关系。苹果能把关,是因为它就用在自己的机器上。各个使用Android平台的厂商也可以自个推出自个的“认证”。
厨房里使用固定的器具还是不固定的器具,这跟做出来的菜好不好吃一点关系也没有。做的菜怎样,看大厨的水平,不是看厨具。另外,iPhone这个餐馆的东西很好吃么?你确定不是因为它房子(硬件)漂亮所以才去吃的?
Android 是一个操作系统,就不存在跨平台的事情了。
google选择java,是因为java有大量的应用和游戏可以快速的移植到Android 上来。java又是最流行的语言。大量的应用才会有更多的客户。
Android 的UI也是统一的,虽然目前还在和各大手机厂商在博弈。所以他的体验和服务也是一致的。唯一不同的是你用的是不同品牌的手机。
为啥要用c/C++,因为在游戏方面和iphone相比确实性能上是有差异的。就像当年pc和mac的战争一样,只不过apple的对手从微软变成了google.
一直认为google和苹果的野心是不一样的,苹果会成为一个赚钱的公司,但是google会成为征服世界公司,你觉得哪个更可怕
其实我们每个人都是一个用户,只是当面对手机产品的时候,会不自觉的以自己的程序员观点去看待产品,假如我们现在讨论的不是手机,而是一个电饭锅(不会有电饭锅开发员在这吧?呵呵~),大家就能更好的理解“技术”“开发”和“用户体验”等词语了。
楼主很可怜,跟中国人说道理永远都说不通.我比较简单.我就说一句:”看我们的市场环境就知道了.用户体验做的一塌糊涂,但是你不买就没得买.”
明白为什么大家总喜欢和你辩了吗?
为什么不能两种并存呢?这么大的用户市场,有人专注开发高端用户,有的专注开发低端不是挺好。
google之所以这么做是因为两个原因第一个是网络的能力太强大另一个原因是由于android是开源的.它无法阻止像jquery这样的第三方库来磨平javascript在各个浏览上的不兼容,所以google也没办法阻止一个第三方的NDK来支持C/C++的本地代码.比如说有这么一套系统..它的客户端软件是由java(这个是google所以支持的,你没办法禁止,并且你还得好心的伺候着)写的,可以检测手机上的各个组成部分来生成列表.然后传到服务器上的APP Store然后服务器根据这个列表来查找所需要的软件..而实体软件部分,则是由软件开发方为不同的平台生成的不同版本(跨平台的游戏是经常这么做的,所以对于c/c++的开发人员来说这是家常便饭),服务器端就可以通过客户端传过来的信息挑选相应的版本即可,这样在用户体验上和java的跨平台没什么差别.但是性能上确会更优.这就是网络的强大所赐予的能力,所以以前的系统大战中不会出现这样的情况,用户需要识别各种不同的系统,这无疑是一种灾难,但是网络解决了这个问题.而由于android是开源的,所以google也没办法阻止使用各种hook来实现一个本地化的C/C++的NDK(比如现在已有的Qt for Android (NECESSITAS),而由于网上的开源社区的强大,真的要维护一个这样的东西是很简单的)的出现,因为只要你开源下去,我总能找到方法来实现这个NDK(而如果不开源了,那么第一个找上门来的就是甲骨文了,大家都懂的,在解决甲骨文之前,只有持续的开源,用大量的厂商来共同对抗甲骨文才是好方法).这样的结果会导致android分裂的更严重,所以google支持c/c++是必定的..对于一个平台来说只有三个东西是关键的厂商,开发人员,用户.其他什么语言都是无关紧要的.iphone占尽了开发人员和用户体验的优势.而android要与之竞争就只能从另一个方向来选择比如拉拢厂商,所以android是开源的,之所以首选java首先是为了讨好厂商,因为java不在google手里,而且java是开源的,是跨平台的,各个厂商可以随意发挥,而厂商如果不愿意跟你混.也不会被你拖着走,大不了就跟linux一样分化成各种版本,其次是为讨好开发人员这个大家都明白.而之所以回头支持c/c++是为了防止不可控的分化.linux的不凝聚是导致根本没办法和windows竞争的永恒原因.所以android的最大挑战是控制分化的程度..搭建一个平台是希望大家都在这个舞台上演出,而不是各干各的,那就没有平台的意义了.
@hvsy
这段文字的用户体验好差
肤浅!
谷歌就是在和苹果走不一样的路而已,如果再出个苹果类似的必死。
谷歌就是在追求一种开放的大锅菜,做出来的有好菜也有坏菜,岂是你能了解的?
如果谷歌真的像你说的那样,搞个花钱传程序,统一的商店,那拿什么和苹果竞争?
这就像windows和liunx,2个完全走的不一样的路,而两个都发展的很好。不可能有2个windows同时存在的。
安卓能在短时间内占领如此大的市场,就能证明它选择的路是多么正确。
有人一直在争论谷歌选为什么会java!
我认为
是因为安卓之父选了java
而安卓诞生的时候并不是在谷歌。
所以不存在谷歌选不选java的问题。