作为一位Andorid开发者,或者说一名前端开发者,实在是感概“日新月异,一山更比一山高”。2016年的夏天我还在解决从Android4.0到5.0时的权限适配问题,以为这已经是一个很大的跨度了,但是到今年我已经要开始考虑Android7.0的安全适配问题了,然后如期而至的Anroid8.0也到来。这只反应出一个问题——前端开发者必须时刻紧跟时代的步伐,去吸收,接纳新鲜事物,和新技术。
暂且不管,甲骨文和谷歌之间的撕逼,但是JAVA已经陪伴Android七八年的光景来看,非到万不得以也不会将一个成熟的语言,移出官方语言的位置。那么该来的终究是要来的,抱着开放和接纳的心态,我大概的介绍一下Kotlin的特性,和未来技术趋势的一些预测。
1.Kotlin出来会不会断崖式的取消JAVA?
答案是不会的,我们举个IOS的例子,IOS在14年就推出了Swift语言,而且在2015年年底对Swift进行了开源(有意推广)那么到了今天,我们依然看到的是IOS面试的时候更注重的是C++和C的核心底层。而只是学一些Swift的语法应用和开发一些DEMO显然是不能完成高级需求的。但是这不代表Swift就没有机会,因为Swift的门槛更低,Swift的学习成本和开发效率更高,那么随着时间的推移Swift的底层迟早会被吃透,那么那一天应该就是OC和Swift平分秋色的时候了,即使Swift取代了OC,但是作为一个IOS开发者最有价值的部分依然是你对C底层的理解和使用。那么回到Kotlin上来,在2017年5月18日之前,好像还没有那家公司正式宣布放弃JAVA全面的转向Kotlin,最多也就是向外宣布,新建一个部门开始实验Kotlin进行开发。所以即使Kotlin取代了JAVA那么应该也是几年之后的事情了。
2.Kotlin是对JAVA的颠覆吗?他们有相似的地方吗?
当你看过Kotlin之后你会发现他和JAVA和JAVAScript非常相似,基本上可以理解为一个简化语法版的JAVA语言。所以Kotlin并不是对JAVA的颠覆,相反我们可以将Kotlin理解为JAVA的优化版更贴近于Android开发的实际需求(举个例子Kotlin支持方法扩展,仔细思考是非常简便实用的)。总之Kotlin和JAVA之间有太多相似的地方,以至于你可以只记住Kotlin的几个变量和方法语法之后,按照JAVA的写法写Kotlin当然这没有发挥出它的优势,但是完成开发任务还是足够的。最后补充一个最重要的,Kotlin里面支持所有的现在Android-OS下存在的方法,而且所有的方法名称都一样!这就意味着Kotlin并不是脱离了我们已经熟悉的Android-OS体系的。
3.Kotlin好学吗?我能一上来就开始学习Kotlin吗?
我看完Kotlin的语法之后,说一句不夸张的话,只要你JAVA功底扎实,对面向对象开发的设计思想领悟透彻,那么一个星期学会Kotlin足够了!着急的话三天也可以。有一个项目练手3个月的时间基本上能精通了,主要是语法十分相似,Android-OS的方法名称都一样,我实在是想不到有什么太大的学习成本和难度。那么是否可以一上来就学Kotlin,答案是可以的,但是不建议,因为JAVA发展到今天里面还是有很多精华和优雅的设计思想在里面的,当我们看JAVA的源码的时候会发现是非常优美完善而且可读性十分的好,尤其是一些设计思想的体现是非常漂亮的。所以建议学习JAVA的设计思想之后,再学习Kotlin会更事半功倍。
4.我们要不要学习Kotlin?
我想是需要的,尤其是已经很擅长Android开发的人,从后端很火的PHP,再到OC到Swift,到今天的JAVA到Kotlin,这都反应出一个问题,弱类型,更加趋近于面向对象开发,更灵活的语言语法,和更贴近于实际系统的开发语言会成为主流。那么作为高端的技术人才,我们当让应该站在技术的最前端,去学习去接纳,更主要的是他学习起来并不难。再说一句,如果在Kotlin的开始时候我们就将当前使用率很高的开源框架移植过去,那么这就是机会,我们就是下一个大神。
5.做为公司我们要不要将现在的JAVA语言切换到Kotlin上?
答案是不需要整体切换或者不需要切换,因为Kotlin出来已经有一段时间了,但是我们搜索Kotlin app这类关键字的时候很尴尬的发现,并有排行或者大公司的代表作。所以我们可以鼓励员工去学习一下Kotlin,然后将之前使用的框架,整体移植过去,看看实际情况是否适用,是否有明显的帮助之后再做决定也并不迟。另外Kotlin 100%支持JAVA代码,而且支持JAVA文件转Kotlin文件,所以即使有一天发现JAVA的代码无法上线了,用工具转一下适当的修改下就可以了。
6.什么时候是我必须转Kotlin 的时候
这个问题可以参考,Android开发工具从Eclipse到Android Studio的过程。如果那天谷歌突然说我不在维护Android-OS的JAVA代码,而且推出了Kotlin 的专用编译器不再维护Android Studio了那么就是转Kotlin 的最后时机了,当然你也可以不转,但是Kotlin 将变成主流,而Android上的JAVA使用者也会越来越少。
7.Kotlin 的优势
核心的一点就是效率,开发效率,编译效率(很重要),运行效率都有提升,总之更适用于Android开发,更高的开发效率和执行效率。