可移植类库的苦恼:软件许可限制

最近,我们已经多次探讨了微软的可移植类库。许多重要而有趣的库都提供了可移植类库支持,包括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中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

你可能感兴趣的:(可移植类库的苦恼:软件许可限制)