1. 聚能聊>
  2. 话题详情

您会为了Kotlin语言放弃Java吗?

自从今年5月,Google Android团队官宣,Kotlin成为继C++和Java之后的第三个官方编程语言,Kotlin就呈现了爆发式的增长,不仅在编程语言的各种榜单中都大幅逆袭,而且在程序员之间的采用率也直线上升,有人预测Kotlin将在未来几年内超越Java。

screenshot

Kotlin是由JetBrains为JVM,Android,JS浏览器和本机应用程序开发的静态类型编程语言。根据Realm Report,从2015年8月起,Kotlin构建的应用数量已经增长了125%,目前Kotlin应用程序中约有20%的应用以前是用Java构建的。

1. 赶时髦

最近 Kotlin 的讨论,在我的知乎时间线上成爆发趋势,大多数情况下我并不是一个赶时髦的人,然而 Kotlin 的火热超出想象,甚至微信指数一度超越 Java,好奇心驱使我一定要尝试了一下。

在之前多年的职业生涯中,我编写了大量的 Java 代码,对 Java 语法的啰嗦是有深刻体会的,可以说要不是因为大量的项目维持在 Java 平台,肯定早就切换到其他语言了(比如 Python 现在是我的首选语言)。

对于其他的一些 JVM 语言其实也都拿来在工程上时间过,比如 Scala(鉴于其巨难用的 SBT 果断放弃,不知道近况如何了),也有一些其他的小众 JVM 语言,我在工程上用了之后根本没有他们说的那种酷炫的效果,根本就是假的,都是特效。

对于 Kotlin,我抱着试一试的态度试学了两个疗程,经过一周左右的熟悉和改造(特意找了一个较为复杂的旧全文检索项目进行了改造,代码量缩减为 1/3),和大部分人的谨慎态度不一样,我认为 Kotlin 有巨大的潜力全面替代 Java。

2. 体验



  • 代码的大幅度精简
  • 100% 兼容 Java 代码
  • 函数式编程
  • 各种语法糖

3. 感想

如我在开头所说,我认为 Kotlin 有望成为替代 Java 成为新的工业语言(当然对于新人来说入门门槛是提高了一些),目前 Google 宣布 Kotlin 成为Android 一级语言,我相信并非由于部分人说的和 Oracle 的专利之争,而是实实在在期望全面提升 Android 的开发效率和语言层面的特性支持(Java 8 才支持 stream 操作,而且语法依然很难看,可见当权派多么固执)。

Google 和 Jetbrains 的深度合作也让人浮想联翩,下一步收购 Jetbrains,大力推广 Kotlin 语言也不是不可能(毕竟据说 Swift 在国外已经是主流了,咱码农灯塔也不能老守着古董级的 Java 不放),而 Jetbrains 推出的各种开发神器之成功也是有目共睹的。

100% 兼容 Java 也并非噱头,而是实打实的支持,甚至 IDE 可以支持直接将 Java 代码转换成 Kotlin 代码(目前我自动转换了很多代码,仅遇到一例位操作转换失败)。

总结起来,切换成本几乎没有(绝大多数情况可以依赖 Jetbrains 的神器自动转换 Java 代码),同时有巨头亲爹,未来的光明前途不可限量。

4. 学习和迁移

官方网站的文档和例子非常详实,一个成熟的 Java 开发者应该很容易快速按照官网的例子学会。

如果您是编程初学者并且英文不是很好,不建议在现在这个阶段将这门语言作为第一语言(中文社区资源还不是特别丰富)。

对了,Spring 5 专门为支持 Kotlin 做了大量的工作,就问你怕不怕:

screenshot

您是否决定抛弃Java转投Kotlin了吗?

您对于Kotlin的感受如何呢?

未来您更看好什么语言呢?

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    淘公仔 x 2

  • 奖品二

    阿里云代金券 x 5

130个回答

5

青藤木子 已获得阿里云代金券 复制链接去分享

您是否决定抛弃Java转投Kotlin了吗?
对于开发Android Application的话,这是肯定的,因为谷歌也将它设为了官方语言,肯定要顺应潮流。但如果对于开发其他的东西的话,Java是应该要有所保留的。
您对于Kotlin的感受如何呢?
十分的轻巧,方便,几乎把java里所有能压缩、能精简的都精简了,如果Kotlin不能使用的语法还能直接调用java解决,支持翻译成java或javascript。真的十分好用。
未来您更看好什么语言呢?
Android的话,是Kotlin,其他的是Python,还有Go语言,这几个语言的访问量越来越大了。

柄哥哥 回复

有来有回

评论
3

水灵儿 已获得淘公仔 复制链接去分享

放弃Java?我想不会的。
1、首先一个问题,现有Java项目如果改换K,开发成本考量过没?计算过没?
2、其次,我承认17年Google I/O将Kotlin正名为Android一级开发语言,着实让Kotlin火了一把。但是作为一个半吊子开发者咱也抽空看了一下kotlin,谈一点自己的看法。kotlin作为Java后设计出来的语言,对Java做了大量借鉴,自有其先进的一面。但是kotlin在开发中不会对Java构成实质性的超越。这点从kotlin官网也可以看出。而且其还必须依托Java社区的庞大资源和开发人员,而且由于其与Java底层的相似性,每一条都不会实质性的超越Java,而且还要榜Java这颗大树的。。

安国通 回复

肯定不会啊,作为一个小菜鸡,Java还没搞懂就搞Kotlin,太难了吧

唐诗三摆手 回复

Kotlin入门成本太高了,,

水灵儿 回复

(⊙v⊙)嗯

水灵儿 回复

程序猿哥哥,求公仔O(∩_∩)O~

腾讯网友 回复

Kotlin 看上去更简单,更灵活,不是应该更容易学习吗?

评论
5

smile霜冷 已获得阿里云代金券 复制链接去分享

您是否决定抛弃Java转投Kotlin了吗?
对于kotiln把java语言的繁杂性精简化是很有意义的,大大减少了编程员的负担Kotlin在国外至少有将近2年的应用生产环境的实践(非JetBrains内部实践应用),对于android的程序员是很幸运的,但是java的门槛没有Kotiln高,所以对于我来说并不会放弃。
您对于Kotlin的感受如何呢?
语言精简,态类型编程语言,用于现代多平台应用,100%可与Java™和Android™互操作 [java] view plain coppy。对于基础要求高,但非常实用。
未来您更看好什么语言呢?
我更看好kotlin,因为它非常安全也很精简。有很高,广的用途。

2

笨笨的粽子妞 已获得阿里云代金券 复制链接去分享

您是否决定抛弃Java转投Kotlin了吗?
其实没有所谓的抛弃不抛弃的问题,存在即价值,每种语音有其自身的特点和应用场景。只是会根据业务场景和发展趋势跟随一波潮流罢了。
您对于Kotlin的感受如何呢?
自己没有使用过,但是有朋友推荐过,说很不错。
未来您更看好什么语言呢?
最初很看好Python,但是最近根据局势来看,感觉Go也不错。

笨笨的粽子妞 回复

求公仔~

评论
1

浮生递归 已获得阿里云代金券 复制链接去分享

公仔公仔公仔~~

您是否决定抛弃Java转投Kotlin了吗?
没有,因为java还没吃透。等java非常娴熟了,再跟楼主一样尝试下kotlin的味道。先精一门,再慢慢扩展,吸收其他语言的长处。

您对于Kotlin的感受如何呢?
看上去挺不错,优势比较明显。毕竟是新的语言,跟老的相比,总会有进步才会拿出来竞争吧。希望能把优势一直保持下去,等我玩腻了java就来好好玩玩这个kotlin。特别是java代码自动转换神器,应该是目前唯一做到这种程度的吧。

未来您更看好什么语言呢?
kotlin更年轻,所以我更看好。年轻的事物总是特别有竞争力。从来都是长江后浪推前浪,前浪死在沙滩上。java下沉是必然,就看kotlin是不是推java的后浪了。

1

小易-2 已获得淘公仔 复制链接去分享

语言的定位应该是一个工具,工具如果能够提高工作效率那就值得去用;
对于个人而言,kotlin语法肯定领先java,并且做了良好的兼容,熟悉之后可以简化代码的逻辑,提高我的开发效率,让我选择,我肯定会选择kotlin。
但是对于企业,一个团队来说,语言不只是个人开发效率,还会影响到其他人的开发效率,招聘成本,线上运行的稳定性,所以java还是首选

0

aoteman675 已获得阿里云代金券 复制链接去分享

您是否决定抛弃Java转投Kotlin了吗?
作为刚开始从事移动开发者中的一员,开发安卓APP有5年时间了,从android2.3.6到android7.0,使用的语言一直是Java和C++,Kotlin
语言非常精简,静态类型编程语言,用于现代多平台应用开发,kotlin也可用于服务器开发,精简服务器代码,提供效率,之前Google发布了Go语言,Go也具有相当的服务器开发优势,但是缺点不能与Java100%互通,对于大多数从事Java开发者来说,更换一门语言具有一定的排斥性,在目前国内开发环境下可从Java过渡Kotlin,Google将Kotlin做为官方编程语言,在其后的更新功能会偏向于Kotlin,就像Eclipse向Android Studio过渡一样,需要时间。相信Kotlin社区会越来越壮大。
您对于Kotlin的感受如何呢?
Kotlin代码精简,可阅读性非常好,相比Java的冗余,Kotlin具有与天独厚的优势。
未来您更看好什么语言呢?
做为Android开发官方语言,我更看好kotlin,因为使用Kotlin开发效率更高,安装包体积更小,用户体验更佳。

3

小柒2012 复制链接去分享

语言只是工具 何来放弃一说

柄哥哥 回复

男人的工具吗

小柒2012 回复

性别歧视了哈 小心被维权

评论
1

bestvino 复制链接去分享

无论场景不同,业务的需要,还是技术思想的沉淀,提炼,升华,新的开发语言诞生一定是在新的开发语言基础之上的。新的语言需要出现,是相对好的,理念是先进,但是也带风险和常规思维的违背。我觉得新的开发语言需要究其原理,突其场景,展其优势,对于劣势不肯定也不否定。新开发语言需要市场和环境的积累,之前基于Java的grails还是现在kotlin,要在市场和技术层面坚持,发展,需要更好走向开源,走向社区,这才能走得更远,走得更坚定。

1

wolcen 复制链接去分享

还得结合公司产品需要

1

花狸猫 复制链接去分享

先来两个疗程的ヾ(❀╹◡╹)ノ~

0

1227108985475128 复制链接去分享

我现在刚学JAVA,有必要直接学k吗??

咱chen默 回复

现在java用的挺多的,团队开发用kotlin的还是不多,先学java吧,后期转kotlin相对就简单了。

评论
1

1401408335291564 复制链接去分享

我们都是中国人,少点外语,多点汉字

1

陈序婷 复制链接去分享

您是否决定抛弃Java转投Kotlin了吗?
没有,代码初学者,Kotlin网上教程很不友好。java这种比较古老的语言,网上的教程已经详细到无异于手把手教学了。
您对于Kotlin的感受如何呢?
可能会比java高效?但是越高级的语言越难学这可以说是公理了。
未来您更看好什么语言呢?
目前想把PHP学精一些。很多人逗趣说PHP是全世界最好的语言,恩,我也这么想。可能是懂得还不太多。

1

你啊9527 复制链接去分享

看情况咯…用JAVA写Android的人会更容易接受kotlin.但是像其他用JAVA写嵌入式写后台就不一样了.Kotlin在Android领域里或许可以大放异彩吧……这是我自己的看法.因为还是大二学生接触的没有很多所以也不知道说的对不对0.0

0

1252111517567195 复制链接去分享

自从今年5月,Google Android团队官宣,Kotlin成为继C++和Java之后的第三个官方编程语言,Kotlin就呈现了爆发式的增长,不仅在编程语言的各种榜单中都大幅逆袭,而且在程序员之间的采用率也直线上升,有人预测Kotlin将在未来几年内超越Java。

0

腾讯网友 复制链接去分享

Kotlin看起来简单、随意,连变量都不用主动定义,变量的类型也可以随便更改,不像严谨的语言,阅读起来也费劲。代码是少了,可以编译后,是不是真的比 Java 少呢?

不太看好这类不严谨的语言。比较适合用来写一些实验用的程序。

0

诚叙缘 复制链接去分享

我能说我已经转python了吗?

0

七色凉橙 复制链接去分享

刚学习Java,先把Java学习通了再说

0

1221708532658397 复制链接去分享

不会

7