最近,我们已经多次探讨了微软的可移植类库。许多重要而有趣的库都提供了可移植类库支持,包括 BCL 可移植包、 Async 、流压缩和ZIP 归档以及微软HTTP 客户端库。最新版的 Mono 也支持 PCL 。你也许认为对于跨平台开发人员而言这是个伟大的胜利,但事实并非如此。
这些可以应用于生产环境的库只有 Windows 平台的许可证。这意味着,你没法基于它们创建自己的可以部署到 Android、Linux、iOS 和 OS X 设备上的可移植类库。
Phil Haack 认为,对于 Windows 手机和平板电脑的长远成功而言,C#在 iPhone 上有一个好的成功案例很重要。
现在,我并不认为我们可以看到一群 iOS 开发人员突然对 C#趋之若鹜,并开始将他们的应用移植到 Windows 上,但还有下一代。如果 Windows 8 设备获得足够的市场份额,那么说服下一代开发者使用 C#进行 iOS 应用开发并低成本地移植到 Windows 将变得更容易。况且,使用 C#进行 iOS 应用开发的工具 Xamarin 是一个比 Objective-C 更好的开发环境。我认为,iOS 开发人员之所以能够忍受 Objective-C,是因为它取得了成功并且是过去唯一的选择。当 Xamarin 变得更好,我不认为下一代还会容忍 Objective-C 的笨拙。
在这个问题上,微软很可能会改变策略。随着时间的推移,ASP.NET MVC 和 MEF 库上的许可限制已经解除。不仅如此,有些部门已经走的更远。
在最近一次 Outercurve 会议上,微软负责 Azure 平台开发的副总裁 Scott Guthrie 说,他们的原则是新框架默认是开源的,除非有更好的理由说服他们不这么做。
参考英文原文: Licensing Restrictions Plague the new Portable Class Libraries
感谢杨赛对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论