Java vs Kotlin,开发人员应该选择哪种语言?
点击上方“开发者技术前线”,选择“置顶或者星标”
属于开发者的文章第一时间送达!
都快一周没有亲自更新原创文章,看最近张涛一张Kotlin 的 PPT,讲了一年多,今天抽时间谈谈自己对Java 和 Kotlin发展的看法。
自 Google 于 2017 年宣布 Kotlin 成为 Google IO 的 Android 开发官方语言以来,想要成为Android开发人员的程序员正陷入两难境地。
在讨论这个问题前,我首先要明确一点,千万不要陷入编程语言战争,不要进行语言之间的鄙视,只要能让赚钱的编程语言就是好语言。
最近:2018 开发者生态报告:Java 最流行,Go 最有潜力, 其实吧 得java者得永生,但是Android并不是寒冬, 技术菜的人,同样 iOS冬天来了,PHP冬天来了,Python冬天来了,每年都是冬季,哪有春天可言? 人工智能来了,是不是程序员都要去死了?
我作为一名程序员,深知 Android的发展并不像 在2012 移动风口 时那么热门, 但是Android开发也不是寒冬,天天网上唱衰这语言,助兴那语言,真的没必要瞎操这个心,这是Google等语言解释者操心的事。
放在我们面前真实的一个大问题 我们学习什么,
怎样提高技术,说难听点就是怎样尽可能的多赚钱,对于这个话题 更是我应该学习Kotlin还是Java?
如果你是一个想要学习Android开发的编程初学者,那么我建议先学习Java,如果你是一个想要进入Android App开发目前待遇不错的Java开发人员,那么我建议是Kotlin。今天解释下面两个问题。
1 为什么Android初学者应该先从学习Java开始?
2 为什么Java开发人员应该在开始学习Kotlin?
当我说初学者应该从学习Java开始的时候,你可能会想:“为什么?Kotlin更加高效,代码更简洁,并且也是Android开发的官方语言,而且这个人建议学习Java。并不是唱衰Kotlin....."
那么,作为一名Android开发,我的观点可能有点偏见,。
Android开发初学者应该先从学习Java开始
作为一名程序员,我知道我的粉丝大都是搞Android开发的,但如果你是做Java开发的,你的职业瓶颈相对较高,这意味着你有更广,更高薪的就业机会。
其次,目前Java也拥有自己强大的开源社区,当你遇到问题就能通过这些找到答案。
作为初学者,会遇到很多技术问题,当我们在Google搜索问题时,肯定会得到答案;
相对Kotlin来说,还是一种新的编程语言,很多开源项目还未成熟,并且也相对稀少。
此外,还有很多关于Android开发的教程,书籍和课程,包括免费和付费的,这些教程可以让你先用java语言开始入门Android开发之路,但对于Kotlin来说这块资料并不多,特别是在Android上的免费资源,在国外很多关于kotlin的进阶教程大都收费的。
随着越来越多的程序员开始使用Kotlin开发,情况肯定会有所改善,但我怀疑它并不会撼动Java编程语言的主流使用地位。
但是,这不是一条硬性的建议,如果你更喜欢学习Kotlin,并且主要想或者已经从事Android开发,那么肯定是从Kotlin开始学习,目前Android Studio已经支持kotlin开发,
但是,一旦你熟悉Java语言,你的Kotlin之旅也将变得简单和顺利,因为Kotlin完全与Java互相支持调用。它依然编译成Java字节码并在JVM上运行。
但是:
Android和iOS学习的关键不在于对kotlin和Swift 掌握有多神化,目前环境技术已经成熟的背景下,学习的关键就在于对整个技术横向的衍生,
比如:一套代码是不是能兼容多个端,做一个打点系统,如何追踪三端用户轨迹等等!做一个测试工具是不是覆盖所有场景等!
实际上比直接研究语法和api高很多,未来市场也需要偏策略性的编程工程师,无需大量造轮子的工程师,目前很多公司业务稳定,项目已经有了自己的架构设计,新人进去需要的并不是将技术突破,而是将业务代码写的优秀的,策略写的精简点!
Java程序员应该学习Kotlin
对Java开发人员来说,我认为最好学习Kotlin,因为它确实提高了开发效率。
一个在Java中使用50行代码的类可以在Kotlin中只写一行。
它可以帮助你避免所有的火车代码(说了一大堆不知道写的是什么),例如你不需要指定getter和setter,equals(),hashCode()或toString()方法。Kotlin可以自己生成所有这些。我对Kotlin和Java在开发编写生产力和编写类似代码的代码方面进行了比较:
如果你不知道Kotlin是由JetBrains开发的,后者也是最流行的Java IDE之一IntelliJ IDEA的后台。
他们是一家Java 工具开发商,正在开发像IntelliJ IDEA,PyCharm和ReSharper这样的IDE,所有这些都是用Java编写的,并且构建了Kotlin来提高他们的工作效率,但同时他们不能在Kotlin中重写所有的代码,所以这就是为什么他们让Kotlin与Java完全互通。
因为Kotlin生成Java字节码,所以可以在Kotlin中使用你最喜欢的Java
框架和三方库,并且其他Java开发人员也可以使用你开发的Kotlin框架。
即使是Spring, 有个主要的Java框架 已经开始从Spring5.0 开始支持Kotlin了, 可见对于java 人员,Kotlin的未来前景蛮鲜明。2017 年开发者生产力报告: Kotlin 很受 Java 开发人员的欢迎。
说道这里也顺便推荐下张涛的一个视频课程:
通过这个课程,我希望你不仅能轻松地处理 Kotlin 与 Java 共存的各种问题,还能从容应对老的 Java 项目迁移至 Kotlin 时可能碰上的”坑“。
同时,作者会带你从宏观的角度思考 Kotlin 语言的各种优势与劣势,学会如何选择适合自己团队的语言与技术,能够用 Kotlin 更高效地进行跨平台开发与协作。
尽管目前几乎所有的Android代码,示例demo 和App都是用Java编写的,但这种情况维持不了多久,因为Google从宣布Kotlin是Android应用程序开发的官方语言以来,都对Kotlin进行了大量的推广,在不同开发者大会都会进行技术演进,并且想facebook, Squre等公司已经切到kotlin开发,国内也有一些独立开发者编写Kotlin教程,虽然国内App目前并没有公开说明已经使用kotlin语言。
但是很多多公司已经开始使用Kotlin开发Android应用程序,这也是我认为Java,和android高级进阶开发人员应该在今年学习Kotlin的主要原因。
加群 请回复加群,淘金请回复“码农淘金”