使用Kotlin语言两年后,我有话要说

使用Kotlin语言已经两年了,它已经成为了我使用频率仅次于Java的编程语言。在此期间,很多人也谈了自己的一些使用感受。但我想,我是最有发言权的。迄今为止,我已经在三个生产环境应用中使用了Kotlin语言。因此,希望我的这些感想能够给你一些启发。

Q:是一个什么机缘让你开始决定使用Kotlin?

如果我没有记错的话,大概在2016年3月份的时候突然收到一条来自Bugly的推送,文章里面介绍了Kotlin语言。看完这篇文章,我发现Kotlin与Swift语言很像,恰好那段时间正好迷Swift。而更让人惊喜的是,Kotlin语言可以用来开发Android。因此,突然有了一种热血沸腾的感觉。迅速花了几天时间浏览了官方文档,便开始在代码中使用Kotlin。

Q:你使用Kotlin主要用于生产环境还是仅仅用于平时测试?

我使用Kotlin几乎全是在生产环境,第一个加入了Kotlin代码的应用是在一家金融公司。最后的成品是一半Kotlin,一半Java。第二个项目是一个P2P的应用,在这个项目中,作为项目的负责人。我在工程的脚本中严格限制必须使用Kotlin,否则将导致编译不通过。因此,这个P2P的应用是我的第一个全Kotlin语言的项目,目前这个项目还在线上运行。最后一个项目也是使用了全Kotlin语言,是一个社交类的应用,这个应用目前也在线上运行。其实,除了这些之外,在我的一些开源项目中,也大量使用了Kotlin语言。目前,在码云私有库中还存在着大量使用Kotlin语言开发的项目没有对外公布。

Q:使用Kotlin语言的过程中,你遇到过什么问题吗?

如果说完全没有遇到问题,那是骗人的!因为我算是Kotlin语言的早期用户,在我使用Kotlin语言的时候,Android Studio的Kotlin插件还不成熟,经常出现奔溃。一旦出现奔溃,代码提示就悲剧了,不得不手敲,编译之后再看问题。另外,当时还遇到过一个问题是:当Kotlin与Realm数据库配合使用的时候,始终报错。至于其他问题,貌似没有遇到过。

Q:有人说,Kotlin是一门新语言,难免存在一些Bug?对于这种说法,你怎么看?

首先,并不否认,Kotlin语言可能存在着一些未知的Bug。但我认为,说这句话的人,更多的是对自己的不自信。他害怕新东西,他在担心,突然又要学习一门新的语言,该怎么办?万一短时间内学不会,怎么办?实际上,Kotlin的Bug是几乎可以忽略不计的。我认为,这大概和你买彩票中五百万的概率差不多。为什么这么说呢?我给你举个例子。你肯定知道Linux,可你知道Linux第一个版本的版本号是多少吗?是0.01。第一个版本是由Linus一个人开发出来的,它仅仅在屏幕显示了一行Hello world。Linus认为这个版本的Linux距离正式版本很很远,因此将其命名为0.01。事实也的确如此,不知道经历了多少个版本,最终在1994年Linux 1.0版本终于发布了,这是一个历史性的时刻!可我想说的是,你知道对于一个庞大的系统来说,1.0意味着什么吗?用两个字来回答就是:稳定!这中间经历了无数人夜以继日的努力,也经历了无数次的内测、公测,这意味着几乎99%以上的Bug它已经帮你排除掉了,你可以完全放心使用了。Kotlin也是一样,Kotlin语言项目开始于2010年,想象一下,一个6、7年的项目,而且还是由全球最严谨的一批程序员开发的产品。你有什么理由不去相信呢?因此,我认为所谓的Bug论,不过是害怕和恐惧的代名词罢了!

Q:有人说,因为Kotlin语言接入需要成本,公司会限制程序员使用Kotlin,你怎么看?

这是有道理的!在中国,技术的跟进总是慢于其它国家。因此,你可以看到,中国的大部分iOS程序员目前依然在使用OC语言开发。而事实上,Swift语言已经发布四年了。其中的一个原因可能是公司领导限制团队使用,因为Swift语言确实语法变动很大。升级后需要使用Xcode帮助你自动转换,这恐怕是大部分iOS程序员最头疼的一个问题。对于公司的限制,我们无能为力。但这种限制,我认为并不完全有道理。就像我上面所说的一样,既然苹果官方有足够自信可以使用Xcode帮助你自动转换,就证明这种方式已经非常好用了。我知道一定会有人反驳:胡说,我在几次转换的时候都出现了一些问题!可我想说,出问题是一定的。如同Java自动转换到Kotlin代码一样,也会出现一些问题,可是只要你手动修正掉这些问题也就正常了,往往不过是几行代码的工作量而已。所以,我认为,产生这种技术跟进慢的原因,不仅仅是公司限制,也恰好是中国人的“胆怯”心理在作祟。

Q:使用Kotlin语言对你的生活有产生一些变化吗?

其实,生活上的变化目前并没有。但对于我的工作却帮助不少,日常开发中至少给我节省了大约30%的时间。而且,在生产环境出现异常的概率也降低了不少。如果这也算变化的话,的确对我的生活产生了一些改变。

Q:使用Kotlin语言有过什么特别的感受吗?

如果一定要说特别的感受的话,的确有一件让我特别自豪的事情。我是早于Google官方宣布Kotlin成为官方语言之前使用Kotlin的,我当时预言Kotlin有可能成为Android官方编程语言。而当Google IO大会结束,一觉醒来,Kotlin突然成为了Android官方语言。我很自豪,买彩票从来没有中大奖的我,居然第一次成功预言了一门语言。

Q:对于新加入的Kotlin同学,你有什么话想说吗?

首先,一定要无所畏惧,学习一门新的语言,会让你产生短暂的不适应。这就如同你跑步一样,开始的那一段总会很艰辛,而往后就会越来越轻松,慢慢就开始变成了享受。因此,如果在过程中遇到了问题,不要害怕,全球有无数的Kotlin程序员会帮你解决问题。如果你希望及时解决问题的话,可以加入我的Kotlin技术交流群:329673958。最后,祝你早日搞定Kotlin。

Q:如果只能让你对Kotlin说一句话,你最希望说什么?

I love you <<<

欢迎加入Kotlin交流群

关于Kotlin,如果你有任何问题,欢迎加入我的Kotlin交流群: 329673958。当前群交流活跃,问题解答速度很快,期待你的加入。

微信扫描下方二维码,关注欧阳锋工作室,与锋同行

欧阳锋工作室

猜你喜欢

转载自juejin.im/post/5ae4669c6fb9a07acc1179a0