短期不看好 KotLin 原因-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

短期不看好 KotLin 原因

简介: Google IO 2017 上宣布,将Kotlin语言作为安卓开发的官方语言。Kotlin由JetBrains公司开发,与Java 100%互通,并具备诸多Java尚不支持的新特性。谷歌称还将与JetBrains公司合作,为Kotlin设立一个非盈利基金会。

Google IO 2017 上宣布,将Kotlin语言作为安卓开发的官方语言。Kotlin由JetBrains公司开发,与Java 100%互通,并具备诸多Java尚不支持的新特性。谷歌称还将与JetBrains公司合作,为Kotlin设立一个非盈利基金会。

Kotlin 是一个基于 JVM 的静态类型编程语言Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行(是不是因为这一特性谷歌选择它,最终代替Java和JVM?现在只是猜想)

Kotlin的第一个Issues在2011年,相比Java的1995它还太年轻,但由于Google的选择,它会更快速的成长。就从Google IO 2017 以来这两天,Kotlin的文章数量,就可窥见一般。


CSDN随即推出最新一期观点:Android 新推出的官方语言 Kotlin 会取代 Java 么?


我们看到,正方观点的文章有很多,可反方投票的人很多,文章却没有一个;

这让我这个不懂Kotlin的人也想写点什么!

下面我们就来看一看有哪些不被看好的原因:

1、相比Java,它还太年轻

这意味着社区还不成熟,很多问题还没有暴露出来,你在网上也不容易找到解决方案;

你去提问,由于会的人少,也很难及时得到正确的解答;

成熟的框架少,当然Spring可能正在使用Kotlin来重写;

但是,如果你喜欢尝鲜,喜欢踩坑,这是一个好选择;

当然,现在不学,等什么都OK了再学就错过风口了;

2、想吃语法糖,还是需要剥皮的

它的语法也不是完美到无可挑剔,有些语法糖还是让人感觉多此一举。

var currentVersionName : String = "1.0" //显式标明类型
这种语法也不够简洁,既然显示标明还不如直接用
String str = "1.0";

为了兼容Java,也做了一定的牺牲,例如语句结束符分号;你到底是写还是不写呢?

解决空指针异常的方法是后面加问号,这是学习了Freemarker的语法吗?

fun main(args: Array<String>) {
    val person: Person? = null
    String abc = "123";
    person?.name = "John"
    println("hello world" + person?.name )
}

百分百兼容Java,你在Kotlin文件中写一句Java代码试试!上面这段加了“

String abc = "123";

”就异常满天飞了。

所以说,所谓的兼容只是允许同时使用两种语言编写各自的文件,而不是允许你在一个文件中用两种语言。

你能理解这些异常是神马意思吗?

另外有文章提到使用扩展的方式取代Util类,完全不能理解。

有些语法上也确实挺简洁的,可以参考:http://blog.csdn.net/sergeycao/article/details/54984108

3、各大招聘网站招聘Kotlin职位的数量用手指可以数过来

感兴趣的可以去自己知道的招聘网站搜索一下看看。

这就有一个很严重的问题,你学了可以没有公司用,短期只能是知识储备,当然有一名话说的好:机会是给有准备的人的;

4、排名太低

通过 https://www.tiobe.com/tiobe-index/ 可以看出,kotlin 还没有进入前 50 名;从排名可以看出它目前的认可程度还比较低。

小结

这里只是列举了几个短期不看好 KotLin 原因,长期来说,Google选择了它,你认为Google错了的机率有多大呢?

如果你预见它比较有潜力,有发展,如果现在还不快点开始学习它的话,等到上面几个原因都消失的时候,那就为时已晚了。

======================文档信息===========================

版权声明:非商用自由转载-保持署名-注明出处

署名(BY) :testcs_dn(微wx笑)

文章出处:[无知人生,记录点滴](http://blog.csdn.NET/testcs_dn)

==============本文首发于个人微信订阅号(微wx笑)============


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: