客岁7月,当Xamarin刚建立的时分,我们在Boston调集了全部团队一同切磋iOS和Android上Mono的演进企图。某日,在停止了一天的查理士河上的皮艇举动以后,我们在饭桌上会商怎样改善Android使用程序的功能和耗电,和怎样让MonoforAndroid变得更好。
最初我们回到了底层成绩上:Dalvik仍是个年老的假造机,它没有经由Mono那样的功能调优,在受限于Java的很多功能限定的同时,也短少如OracleHotSpot那样壮大的后端优化才能。在那次晚饭中,我们的团队迸收回了一个猖狂的动机:不如将Android源代码翻译成C#吧。如许Android就能够得益于C#的高效功效,比方布局体,P/Invoke,真实的泛型,另有我们更加成熟的运转时作为后台。
固然那年7月终极甚么都没有产生,但这个动机深深地印在了我们的脑海里。
把时钟疾速向后拨几个月:MonoforAndroid已取得了使人注目的功效,因而我们再一次入手下手思索怎样改善产物在Android上的功能。假如我们把Java交换成更快的C#,以此制止Dalvik带来的各类限定又会怎样呢?我们可让一个Android手机完整挣脱Java,挣脱Dalvik假造机的限定吗?
我们以为这个点子已猖狂到值得一试了。因而,从一个小项目入手下手,我们以完全翻译Android中的Java部分至C#为方针入手下手行进。我们把这个项目称为XobotOS。
微软对C#举行了一些改善,年夜年夜简化了代码优化的难度。比方它引进了值范例,下降了小型对象带来的开支;同时虚办法不再默许启用,这下降了假造机的功能优化难度。更进一步的是,Java和C#在泛型完成体例上各奔前程,Java接纳了完整向前兼容的做法,而C#在运转时上构建了撑持。C#的做法更加易懂易用,也更加高效和完整。
从当时起,两种言语和实行情况都在精益求精。C#底本只是一门“稍稍优于”Java的言语,现在二者的差异何止以千里计。从静态编程,到引进异步撑持,另有迭代器,函数式编程组件,拥抱并行化,以致泛型的优异完成。个中大批的功效来自于DonSyme的的研讨,他的F#小组还在持续引领言语开展的新思绪。
更主要的是,Mono作为一个假造机也更加成熟,在已往的十年里举行着不休地改善,如今可谓履历了第八代的优化了。
<br>
关于一个创业公司来讲,专注当然主要,但偶然候也必要实验一些猖狂的设法来推进本身行进——说不定有一天,Google也会感激我们呢!
欢迎光临 仓酷云 (http://ckuyun.com/) | Powered by Discuz! X3.2 |