Wally McClure谈MonoTouch与Mono for Android的未来

Wallace B. McClure是《Professional iPhone Programming with MonoTouch and .NET/C#》以及即将出版的《Professional Android Programming with Mono for Android and .NET/C#》一书的合作者。我们刚好在Xamarin将从Attachmate手上接管Mono这一消息公开前后进行这次采访的。 InfoQ: 现在距Miguel宣布Attachment裁员及创建Xamarin已经过去两个月了。您对这个情况有什么看法吗? 第一个问题是在7月16号提出的,两天后Miguel宣布创建Xamarin以及与Novell合作。 Wally McClure: 作为一个面向移动设备的.NET开发者,我有几个必须关注的问题。其中最大的问题就是:“我该如何针对移动平台进行开发才可以赚最多的钱?”对我来说,这相当于“我该如何开发iPhone和Android应用程序?”许多人跟我提起过iPhone开发,有时候也会谈到Android。那么作为一个.NET开发者,我该如何简单快速地针对这些平台进行开发?我可以去开发一个HTML 5应用程序,但是Web程序并不能利用设备的所有功能,客户也会要求原生应用而非Web应用程序。HTML 5应用会有一席之地,但是它们无法解决所有客户的所有问题。 作为一个.NET开发者,如果想要开发原生应用,则可以选择学习Objective C和Java。学习语言需要一些时间,还包括开发环境等等。开发人员可能会认为学习语言没什么难度,但就我的感觉来说,事实并非如此,我没法使用一个周末的几个小时来学会一门语言。当然我也可以使用其他一些产品,例如把HTML应用程序作为原生应用的基础。然而,我还是时常会关注跨平台与原生应用之间的比较,所以我还在寻找其他方式。 我比大部分人知道更多东西,因为我除了是一个开发人员,也会关注许多金融方面的消息。在2009年末至2010年初的时候,我听说了Novell的事情,他们正通过CNBC寻找买家。对我来说,这意味着可能会有些麻烦了。此外我还听说了Novell业务部门之间的一些摩擦,其中也包括Novell的裁员以及Xamarin建立的事情。我的看法是: 市场并没有拒绝MonoTouch。我和许多付费用户交谈过,有些暂停使用MonoTouch/iPhone,不过并非所有人都拒绝MonoTouch,有些人继续在iPhone和MonoTouch上投入。 已有的MonoTouch产品也不会就此无法使用了。我还是可以创建在iPhone和iPad上运行的程序,一切正常,而他们也认为可以在3个月内构建一个产品。他们是六月份动手的,所以九月份可以完成,这也差不多是下个版本iOS发布的时候。 MonoTouch本身有一些风险。例如,Xamarin和他们的iPhone .NET产品可能会有一些版权纠纷。这是事实。我和一些比我更具有法律背景的人交谈过,他们提出的问题是: Xamrin可能会面临这些风险。Miguel de Icaza已经对此发表过申明,表示这方面已经没有什么问题了。 部分API是基于iOS及Andorid的API而定义的。不过这方面出现版权纠纷的可能性不大。 在Novell公布裁员消息之后的两个星期我重新尝试了Objective-C和Java开发,最后得到了与我2009年相同的结果。Objective-C与我内心所想相差甚远,对于.NET开发者来说会是十分陡峭的学习曲线。想要获益的唯一办法便是投入大量时间。对于我们这种已经在其他领域投入许多的人来说,这个门槛实在有些高。 在仔细审视了这些问题之后,我发现MonoTouch和Mono for Android依然有着十分重要的意义,这与两年前的状况一致。 InfoQ: 我们开始采访的不久,Attachmate就宣布向Xamarin提供有关“Mono,MonoTouch,Mono for Android以及Mono Tools for Visual Studio”的永久授权。现在法律问题已经解决了,你觉得采纳iPhone和Andorid上的Mono还有哪些障碍呢? Wally McClure: 这真是美妙的一周。一周前,我醒来后看到一堆指向 http://ios.xamarin.com/ 的内容,我发现Xamarin获得了这些工具永久的知识产权。这周末我又参加了Monospace会议,整整两天,我了解了许多关于Xamarin的消息,也和其他参与者进行了交流。上周我和一个潜在客户进行了沟通,他们是财富500强公司,对MonoTouch很感兴趣,已经投入iOS平台,并使用.NET开发他们自定义的业务应用产品。不过现实情况是,目前有些公司依然有顾虑。我想关于Attachmate的法律问题已经解决了,我估计接下来还会和其他一些公司达成协议,这会更进一步减少法律风险,我想接下来几个星期应该会有相关消息。从法律角度来说,我觉得已经没什么问题了。除了一些目前还无法得知的风险,我已经找不到暂缓使用MonoTouch和Mono for Android的理由。就我个人来说,过去的六个星期可谓是马力全开,我也会继续保持下去的。 我还听说过一个问题,是说“MonoTouch和Mono for Android有bug,所以不该使用”。其实每个软件都有各种各样的bug,Android和iOS也都在持续更新,有问题都会即时修复。Xamarin的计划是定期更新他们的软件,就像过去24个月那样。当发现bug的时候,我们会在trunk上修复它,并打包在下次升级的版本中。之前的更新一直很有规律,我想这应该也会保持下去。发布频率大约是2到3个星期一次,所以你无需等好几个月才能获得新版本,而可以很快地更新,很快地更新项目。最终用户都不愿等待,我们都明白这一点。 InfoQ: 有没有哪方面你觉得是MonoTouch和Mono for Android做得尤其出色的呢? Wally McClure: 理论上说,它们是向六百万.NET开发者开放了两个最流行的移动平台。对我来说,作为一个.NET程序员,在2009年早些时候还在考虑如何进行iPhone开发,那时候MonoTouch的出现真可谓神来之笔。我还是需要学习特定平台的内容,但我完全不需要学习新的语言,就好比Objective-C。这对我来说至关重要,在学习iPhone理念的同时还要学习Objective-C真可谓是难以逾越的高山。虽然我还是需要使用Mac,我必须使用MonoDevelop进行开发,但这笔投资还是相当值得的。我可以使用HttpWebRequest来调用服务获取内容,再使用LINQ处理数据,在许多地方都可以使用这些代码,这实在是太棒了。 从技术角度来说,我会关注基础方面的内容。我每天早上都会在iPad上使用一款新闻工具,它时不时就会崩溃一下,我猜这是因为指针计算或是内存使用方面的问题。有了垃圾收集器之后,我们就可以减少内存使用的麻烦,也无需担心指针问题了。 我认为它们还有一个重要的优势,它们是在运行平台上进行“真正针对性的开发”。简单的说,它们只是为底层操作系统提供了一个C#调用层,最终执行的还是平台上的原生API,只不过使用C#而已。这对开发人员来说十分关键。尽管我会推荐有关MonoTouch和Mono for Android开发的书籍,但我们完全可以通过一本使用Java的Android的书籍来学习Mono for Android。它们并没有为用户界面控件提供什么通用的容器,而是完全直接使用平台上完全相同的那些控件。MonoTouch应用程序和Objective-C应用程序完全相同,Mono for Android应用程序看上去也和Java程序毫无二致。这对用户来也是个优势。 ...

November 2, 2012

Mono 3.0正式发布

 经过一年半的努力,我们终于发布了Mono 3.0的正式版本。 就像我去年说的一样,我们会尽快推动Mono 3.0的正式版的发布。我们努力压缩进度,尽快地让每一个Mono开发者快点。这就意味着从此以后我们的主分支开发会走上一个正常进度,并且未来会有更伟大的版本出现在我们的主要分支中。 Mono 3.0的 release notes 列出了3.0的新内容: 1、C#异步编译器 2、统一的C#编译器的所有配置文件 3、4.5异步API简介 4、集成新的微软的开放源代码的堆栈: ASP.NET MVC 4 ASP.NET WebPages Entity Framework Razor System.Json (replaces our own) System.Json(代替Mono自己的) 新的高性能的垃圾收集器(SGEN - 许多性能和可扩展性方面的改进) 大量的运行时和类库的改进。 原文地址:http://tirania.org/blog/archive/2012/Oct-22.html

October 23, 2012

Mono

Mono是一个由Novell公司(先前是Ximian)主持的项目。该项目的目标是创建一系列符合ECMA标准(Ecma-334 和 Ecma-335)的.NET工具,包括C#编译器和共通语言运行平台。与微软的.NET Framework不同,Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,Mac OS X和Solaris。 Mono现由Novell持有双重许可,这和Qt和Mozilla应用程序包的情况相似。Mono的C#编译器及其相关工具发布于GNU General Public License(GPL)之下,其运行时库发布于GNU Lesser General Public License(LGPL)之下,其类库发布于MIT License之下。这些均是开源协议因此Mono是一个开源软件。如果你打算向Mono贡献你的源码,则你须签署一个版权分派给Novell以允许它将这些代码在其它协议下再申请许可,从而允许Novell保留其双重许可的能力来持有Mono的商业协议。[1] 微软开发了一个称为共享源码公共语言基础(Shared Source Common Language Infrastructure,Shared Source CLI)的可用于FreeBSD,Windows和Mac OS X的.NET实现版本。微软的共享源码协议并不是开源软件协议,且可能对于社区来说也是不足够的(它明文禁止了对软件的商业用途)。我们还可以见到另外一个.NET实现版本,Portable.NET项目,该项目与Mono项目有着很多相同的目标。 Mono虚拟机包含一个实时编译引擎,该引擎可用于如下处理器:x86,SPARC,PowerPC,ARM,S390(32位模式和64位模式),x86-64,IA64和64位模式的SPARC。该虚拟机可以将代码实时编译或者预先编译到原生代码。对于那些没有列出来的系统,则使用的是代码解释器。 ...

October 16, 2012

跨平台移动开发商Xamarin融资1200万美元 用于提升服务

北京时间7月25日消息,据国外媒体allthingsd报道。近日,跨平台移动开发软件服务提供商Xamarin获得投资1200万美元,投资商分别是Charles River Ventures,Ignition Partners和Floodgate。 Xamarin公司是由两位联合创始人Nat Friedman 和Miguel de Icaza于去年共同创办,发展至今,已拥有7500多位付费用户,其中包括音乐服务商Rdio。Xamarin的技术帮助开发人员通过一套常见的编程工具来编写Android,iOS和Windows Phone软件。 Rdio工程副总裁Todd Beeman在声明中表示,“我们拥有了Xamarin就等于拥有了一切,节省了大量工程时间,通过跨平台特性打造华丽、高性能的本地应用。” Xamarin创始人Friedman称,此次资金将用于改善公司服务并建立销售和营销工作。 Friedman在一份声明中表示,“我们的使命是提供快捷、简单、具有趣味性的服务来创建强大的移动应用。在第一年中,我们取得了优异的成绩。每月有1.2万个新开发者和上百万美元的收入。这笔资金将帮助我们履行使命,使更多开发人员参与进来。” 原文链接:allthingsd

August 8, 2012

Mono重生?Mono创始人成立新公司Xamarin

Miguel de Icaza已成立了一个新的独立公司Xamarin,给Mono一个继续奋斗的机会。 最近的消息称Attachmate公司对Mono框架不再感兴趣,这个消息已经北证实。Mono都创始人Miguel de Icaza终于打破了长久的沉默,透露他已经成立了Xamarin公司来继续支持Mono项目。 Mono团队被Attachmate公司解雇,使Miguel de Icaza非常难过: 一年以来我们一直都想把mono从Novell分离出来,大家一直认为独立成立一个公司将给Mono能带来更光明都未来。 长话短说,分离 Mono都计划没被执行,反而在5月2日加拿大和美国都团队被遣散了,几天后欧洲、巴西和日本团队也不能幸免.这包括MonoTouch和 MonoDroid工程师以及其他主要Mono开发人员。虽然Attachmate公司解散了我们,但只要我们在Novell都一天我们会继续给我们都用 户提供技术支持。 Mono项目有良好的前景,它为Linux以及IOS和Andriod提供C#以及框架支持。然而所有的实现都不是完善的。所以对开发人员都又局限 性。你不能简单快速的把.NET程序移植到Mono,因为缺失相应都框架类以及其它实现,尤其是WPF。同样的,如果使用Mono为iOS或 Andriod写个应用需要学习很多知识,它和在Windows Phone 7建立应用程序的关系不大。 还有在Mono中使用都微软的专利和知识产权问题,微软声称将来可能由于专利和知识产权而导致使用Mono的产生一系列的问题,现在不会对Mono有动作,但将来不见得。很多使用Mono做项目的开源支持者都视之为是个不定时炸-弹。 除了Mono和Moonlight,Xamarin还计划商业产品,既定目标是: 为iOS建立一个新都商业.NET; 为Andriod建立一个新都商业.NET; 继续为Mono和Moonlight贡献和开发; 为Moonlight在移动领域以及苹果Appstore寻求机会; 这两个商业项目需要更多都开发来为潜在的用户提供服务,需要更认真的工作。而且在移动领域以及苹果Appsotre来探索Moonlight的发展 也是件非常有趣的事情。Silerlight并没有成为微软声称的伟大的跨平台的统一者,目前来看貌似微软已经对其失去了兴趣。如果Mono能成为跨平台 的浏览器插件,可能会进一步触发微软的不定时炸-弹爆炸。这当然也不会被苹果所接受,因为这无疑是另一个Flash。 当然一切都归结于资金,如果又足够的资金这个项目或许会有所成就,博客声称已经得到一些资金,而且还有在合同期的工程师们。这听起来比较危险,他们没有足够都资金,只能寄希望于一些勇敢都基金了。 目前看来,Mono的用户都非常支持Miguel de Icaza和他的新公司。在他的博客评论中很多个人表示想投资,但前提是如果自己有钱。但这并不能对这事起到真正都改善作用。关键是.NET社区的反应以及微软的回应。 如果你想帮助Mono,可用访问Xamarin的网站:Xamarin website

July 10, 2011