到目前为止,Apple在创建良好的全方位开发人员生态系统(SDK,应用程序分发,货币化等)方面迄今为止已经走到了最远的任何移动平台.但是,阅读之前关于移动开发的SO问题的评论(例如这个和这个),似乎会出现某些批评,例如:
Objective-C虽然是一种很好的语言,但并不是在Apple产品之外使用.
开发环境和工具与Microsoft提供的Visual Studio和.NET不匹配.
所以,我想知道苹果生态系统在长期(即2 - 4年)的可行性.如果Windows Mobile 7手机(预计将在一年左右发布)获得市场份额,那么iPhone开发环境是否能够与.NET + Visual Studio竞争(加上微软推出的任何"App Store"型分发机制) )?从我所读到的关于iPhone开发的内容来看,我得到的印象是,我们可能会看到开发人员逐渐消耗在Windows Mobile上,因为大多数人更愿意使用Microsoft的工具套件进行开发.
对于具有这些平台之一经验的开发人员,您对此主题有何印象?iPhone平台是否具有长期可行性(与Windows Mobile相比),超出了拥有更多市场份额的初始优势?
==
编辑:关于App Store优势的公平点.但我对这两个平台的长期潜力感到好奇,而微软推出自己的应用程序商店(例如SkyMarket)似乎只是一个时间问题,这使得安装变得像在iPhone上一样简单.(虽然iPhone的应用程序商店可能会占上风,因为它首先出现.)
我不认为Windows Mobile是iPhone的竞争对手.据我所知,开发人员现在应该考虑面向消费者的应用程序的四个平台:
苹果手机
黑莓(与新的App Store)
PalmPré(将获得App Store)
Android(将获得付费应用的App Store)
其他一切都是非实体.Symbian和Windows Mobile可能会再次变得相关,但截至今天,它们并非如此.这些设备上没有健康的软件市场,我不清楚决定购买Windows Mobile手机的大部分人是否关心第三方软件.
至于工具和语言,差异是微不足道的.这不是问题.开发人员不会因为不喜欢工具或语言而放弃像iPhone这样的市场.
更重要的是,Xcode非常好(有些人更喜欢Visual Studio - 我当然认为它的某些方面比它们的Visual Studio更好),如果你了解Java,C++或C#,你将学习Objective-C最多在一周之内.它基本上是两个或三个新概念,略有不同的语法和引用计数.如果您已经了解了一些面向对象的语言,那么学习Objective-C是一个非问题,如果不这样做,那么获取一些新的想法和概念是一个很好的借口.
真正的区别在于库,我个人非常喜欢Cocoa到.Net库,这通常需要你调用pre-.Net API.
也许四年后,一切都会有所不同.诺基亚可能会很好地修复Symbian并接管智能手机市场.谁知道?你必须做我们今天拥有的东西:-)
所以我的观点是:
在Windows Mobile真正开始成为第三方应用程序的可行平台之前,请忽略它
相反,看看黑莓和Android手机上的Pré,iPhone
Objective-C只是一种编程语言.即使考虑太多也没有意义.任何程序员都可以在一周内学习它
Xcode有它的弱点,但它也有它的优点,并不比Visual Studio差
可可很棒
四年是很长一段时间,没有人知道到那时会发生什么
iPhone的编程非常有趣,如果你从未在.Net世界之外冒险,你将学到很多新东西.只需拿起一本好书,留出一个周末,设置一个小目标(比如一个小游戏,或者一个todo应用程序,或类似的东西)并获得编码.即使你不喜欢Xcode,即使你最终没有编写任何iPhone应用程序,你也会找到一个更好的程序员.
如果Symbian 确实获胜,那么学习为iPhone编写代码的经验至少会教会你如何在新平台上启动和运行:-)
您错过了Apple的工具集IMO的观点.
VisualStudio可能有一个很好的工具集,但Apple的工具集足够好(并且非常棒,IMO)已经启用15K应用程序,下载量超过500,000,000.我会说这对未来来说非常好.
iPhone的杀手级应用是AppStore.这是在手机上获取应用程序并且不在运营商控制系统之外的唯一方式.例如,尝试在Verizon手机上获取应用程序,您很快就会发现无线运营商的控制手段.
Discovery是基于Web的,因此您可以向某人发送指向应用程序的链接,当他们加载该应用程序时,它会转到可以安装应用程序的页面.简单而优雅.
Objective-C的语言怪癖是一个红色的鲱鱼.任何有能力的开发人员都会在几周内加快速度.Cocoa是一个令人难以置信的框架.
另外,不要低估控制硬件规格的能力.Apple对硬件规格的控制对开发人员来说是一个福音,因为他们可以指望不会变得复杂和分散的事情,因为尽可能完全不符合iPhone SDK规范的电话并不符合Apple的利益.当OEM制造硬件到Windows Mobile规格时,总会有"解释"规范,这意味着开发人员在手机a和手机b之间保留了包,为什么我的应用程序在两者上都运行不同?
这是移动设备中经常被忽视的重点.如果没有硬件规范的所有者,它很容易变成"一次写入,到处调试".
"如果Windows Mobile 7手机(预计将在一年左右发布)获得市场份额......我们可能会看到开发人员逐渐消耗Windows Mobile,因为大多数人都倾向于使用微软的工具套件进行开发."
让我们假设VS和CLR提供了更好的编程体验.即使如此,对WM的"逐渐消耗"也不会很明显."编程经验"只是开发人员将面临的一个因素; 现有的市场份额和感知是另一个(想想亚马逊和eBay,或者就此而言,iTunes的MP3商店).
你谈到"长期"为2 - 4年.在那个时候,WM7有没有机会获得比苹果更大的市场份额?不现实.
即使我们采用您的时间范围的远景,iPhone面向WM7的卓越编程体验,4年后iPhone开发是否可行?MS有什么可以成为对抗iPhone的平台杀手?C#4,DLR,VS2K10?这些都不够.可能(可能)做的是Azure.
但我认为,如果你认为Azure是iPhone平台杀手,那么你必须同样关注Google/Android.
所有这一切都表明,从风险管理的角度来看,风险最小的选择显然是iPhone.如果你想减轻错误的风险,那么你可以很好地考虑你的Cocoa程序,以便你可以在C#中重新实现它们.