技术开发 频道

Windows 8之父:跨平台开发会越来越难

        【IT168 评论】上周微软Windows 7和Windows 8负责人Steven Sinofsky正式从微软退休,现在的他自己开设博客写文章,在最近的一篇博文中,他解释了为什么跨平台开发会越来越难。下面是对他文章的一些提炼:

  早期移动平台的开发者应该都有这样的经历,当只有一个平台的时候,唯一要做的事情就是做好产品,获取尽可能多的用户和提高他们的参与度,所有精力都放在一个平台上。

跨平台开发会越来越难
Windows 8之父Steven Sinofsky

  但是当新的平台(比如Android、Windows Phone等)出现的时候,最开始开发者会觉得新平台开发与以往平台的开发没有太多差别,你可以使用一些通用的代码,比如把在iOS上所用的代码用于新平台的App开发中,或者严重依赖一些能够简单适配到任何平台的Web服务。那时候你觉得为多个平台开发似乎不是那么的难,需要的人力也不是太多。

  但是随着时间的发展,你会发现,跨平台开发变得越来越难,你需要花大量的时间去为各个平台做开发,平台之间的API和设计元素差别越来越大,所以你的产品开发也变得复杂起来。要为不同的平台配备不同的团队;需要管理更多的代码;有的开发者还要经营一个跨平台库;平台整合的工作也变得更繁琐,语言和工具也越来越多。要把所有事情都做好原非想象的那么简单。

  然后你开始期待,是不是有一个统一的平台更好,比如类似HTML 5这样的平台,大家可以齐心协力去使之更加标准化,然而这样的工作总会遭遇一些平台厂商的反对,他们可不想去依赖发展缓慢的标准平台,所以也不要去期待他们会为之作出努力。

  所以,当平台多起来的时候,你会开始设定平台的优先级,会思考先为哪个平台开发产品好,会考察平台的用户基数、用户群体、地域分布等等,然后就想,或许iOS第一,Android第二,又或者是相反的。

  但不管怎么思考,平台多了,开发的压力是有增无减。

  为什么跨平台开发会越来越难?

  1.平台厂商的“诡计”。 看看下面一张图。因为最开始的平台吸引了大量开发者为之效力的同时,也吸引另外的厂商开发新的平台。最开始的时候,新平台会在跨平台方面提供一些支持,以便吸引更多开发者到自己的平台。但是当新平台羽翼丰满之后,厂商就强调自己平台的服务应该要如何如何演进,它开始注重建立一些独特的东西去构建自己的护城河。比如Android会关注一些独特的服务,iOS会强调创新和首次用户体验。最后的结果是,它们给开发商的API差异越来越大,可共享的代码越来越少。

跨平台开发会越来越难

  2. 基于不定的元素做计划。对于开发者所考察的那些元素,包括用户基数、用户群体、地域分布等,实际上都可以看作是未知的。 观察者在调查过程中总会存在偏见,因为一切都是基于用户行为去预测一个动态的系统,基于一个快速变化并且难以定义的“市场份额”去制定一个产品计划,这样是有问题的。很多人很快发现,做跨平台开发似乎不太可行,他们没有一个长期可行的跨平台方案。

  3. 竞争对手开始进行创新。比如在同一个平台中,有很多人去做同一种产品,那如何突出自己?答案是所谓的微创新。第一个人做出来的产品可能是这个样子的,第二个的或许又稍作创新,第三个也在某些基础上进行创新。平台越多,压力越大。

  接下来的问题是,未来开发者是专注于一个平台好还是跨平台好?不清楚,但可以确定的是,未来API、开发工具和方法的差异化会越来越大。跨平台开发会只会更难。

0
相关文章