很多人都知道我是一个Kotlin fanboy。在Google IO宣布之前,我就一直在关注,也尝试过在蘑菇街推广,后来。。。请看后文。
如果你问我为什么这么喜欢Kotlin,我可以给出很多很多理由。如果你要问一个最重要的理由,我会说,是Nullsafty。
什么是Nullsafty,简单的说就是不会再有NullPointerException了。这个可不是从我写代码爽不爽出发,这个是从产品的质量出发考虑的。这点有多重要?我们来算一笔帐。
我前段时间上我们公司bug统计平台数了一下,前20个bug中,有12个是NullPointerException(以下简称NPE),比例高达60%。这个比例有点高,可能跟这个时间点有关,那退一步讲,假设NPE的比例是40%,这个算是安卓业内比较保守的一个估计了。
现在,假设公司安卓端的日活是100万(对于很多公司来说,要远远超过这个数),Crash率为业界比较优秀的0.3%,再假设3次crash导致一个用户流失,那么
每天导致的用户流失数量是:
100 0000 * 0.003 / 3 = 1000
其中NPE导致的用户流失:
1000 * 0.4 = 400
每个用户值多少钱呢?这个每个公司都不一样,对于电商类公司来说, 每个用户20块应该算比较平均的估计了。
那么,每天因为NPE导致的资产流失:
400 * 20 = 8000
也就是说,如果采用Kotlin的话,每天能给你的公司节省 8000,一个月节省
8000 * 30 = 24万。
每年节省:
24 * 12 = 288 万。
如果公司把这288万分给用Kotlin的同学作为奖金的话。。。那简直不要太爽啊同学们!
当然,这个计算是比较粗糙的,你可以根据自己公司的数据,调整相关的系数,作比较准确的计算。不管怎么算,我相信,计算的结果会让你吃惊!
此外,我还没算因为 Kotlin更简洁,大家写代码速度更快,从而开发效率更高。
《人月神话》里面有一个定律,对于一个特定的程序员,无论他用什么语言,他每天所写的代码行数基本上是一个常数。
平均而言,Kotlin比Java简洁3倍,那么用Kotlin,你的开发效率会提高3倍。(这个结果千万不要让PM们看到)。
此外,我还没算因为Kotlin更简洁,它的可读性更好,所以开发效率又更高,要知道。《Clean Code》里面提到,有人对编辑器里面敲击键盘的模式作了精确的分析,区分一个程序员是在看代码还是在写代码,结果发现,一个程序员看代码的时间是写代码的时间的10倍以上。Kotlin更简洁,自然节省了看代码的时间,从而提高了整体的开发效率。
此外,我还没有算,因为Kotlin写起来比Java有趣多了,程序员工作更开心,自然更集中精力,甚至自愿的工作更长的时间,这又提高了开发效率。
这些都是提高开发效率的因素啊,这些都是更快赚钱的因素啊!
总结一下,使用Kotlin,没有NPE,给你的公司省下一大笔钱;使用Kotlin开发效率更高,让你的公司更快的赚钱。
所以,老板们,结论在这里,剩下的,选择权在你们手中。The choice is yours!