Kotlin与Java:您应该为下一个Android应用选择哪个

如果您是移动应用程序开发人员,那么Java可能是构建Android应用程序的首选语言。 但是,到处都有新的语言涌现,这可能会挑战Java在Android世界中的统治地位。

其中之一就是Kotlin,这是一种相对较新的编程语言,已被Google宣布为Android上支持的“一流”语言。

尽管它不断地发展和完善,Kotlin已经被认为是成熟的生态系统并且它的普及迅速增长,尤其是在移动开发领域。

这是Kotlin和Java的详细比较,可帮助您确定哪种语言最适合您的下一个移动开发项目。

What is Kotlin?

ķotlin was designed by programmers from JetBrains (the guys behind integrated development environments) to add some modern features to Java mobile development.

在2018年Google I / O宣布将其作为Android的官方编程语言后,它肯定获得了发展。Google也在内部转换为在Android上使用Kotlin而不是Java。

Kotlin是开源,静态类型语言基于Java虚拟机(JVM),但您也可以将其编译为JavaScript或本机,以构建可在iOS上运行的代码。 只需安装Kotlin插件并让其配置您的项目即可。

Pros of Kotlin

  • 科特林有Android开发中的许多吸引力,但也用于后端项目,例如Spring 5;Kotlin不仅可以编译到几乎所有平台,包括Android,JVM,JavaScript和本机-使用Kotlin Multiplatform框架,您可以提取一个通用代码库将同时针对所有这些目标;借助该语言的脚本编写功能,您可以直接在Gradle构建脚本中使用Kotlin;从Java切换到Kotlin很容易–只需安装Kotlin插件,将其添加到Gradle构建文件中,然后单击“转换”即可;它支持现代编程概念例如扩展功能,高阶函数,委托和更多现成的以帮助开发人员构建干净的API;Kotlin提供了内置的空安全支持这是一个救命稻草,尤其是在Android上,它充满了旧的Java风格的API它比Java更简洁和更具表现力,这意味着更少的错误余地。您可以在Kotlin中编写新模块,并确保它们可以正常工作与现有的Java代码一起; Kotlin与所有Java库和框架,JVM兼容,并且可以与Gradle或Maven构建系统集成。开发人员可以受益于GitHub上开放源代码项目的快速增长,许多书籍,学习资源和在线课程;采用Kotlin无需花费任何费用(学习和培训除外)。

Cons of Kotlin

  • 由于语言简洁的语法(祝福和挑战),在将整个团队切换到Kotlin时,学习曲线相当陡峭;编译速度比Java慢(尽管在某些情况下,证明Kotlin击败Java);与Java相比,开发人员社区相对较小,这意味着学习资源有限,并且难以找到问题的答案; 看看Stack Overflow会给你一个大概的想法-用Kotlin标记的问题只有约26.000个,而有关Java的问题则有150万个(2019年6月);有越来越多的Kotlin开发人员可用,但是为您的团队寻找经验丰富的导师可能需要更多的精力。作为一种高度声明性的语言,Kotlin有时会在相应的JVM字节码中生成大量的样板。

Kotlin use cases

以下是一些用Kotlin编写的出色应用程序:

What is Java

在Android应用程序开发中,Java是许多开发人员的最爱-主要是因为Android本身以前是用Java编写的。Java是由Sun Microsystems(现在是Oracle的财产)开发的,是一种面向对象的编程语言,拥有GitHub第二活跃的语言的称号。 也就不足为奇了-它已经存在20多年了,它的受欢迎程度似乎只是在增长。

Pros of Java

  • 易于学习和理解;灵活–您可以在其中运行浏览器窗口或虚拟机。当您重用代码和更新软件时,这很方便。Android依赖Java – Android SDK包含许多标准的Java库;Java具有庞大的开源生态系统,部分原因是Google采纳了Android的Java虚拟机(JVM)。在Gradle中加快组装速度–组装大型项目时,我们都对此表示感谢;Java应用程序是更紧凑并且在需要更好的性能时更易于优化。 而且,与Kotlin相比,Java应用程序更轻巧(甚至是完全模拟),因为Java是更强制的语言。

Cons of Java

  • Java的局限性会导致Android API设计出现问题;作为一种冗长的语言,Java需要编写更多的代码,这会带来更高的错误和错误风险。与许多其他语言相比,它速度较慢,并且需要大量内存。

Java use cases

以下是一些用Java编写的著名开源应用程序的示例:

  • Android-oss - the official kickstarter.com Android app, a social platform for funding creative projects;
  • NewPipe - a lightweight video streaming app project for Android;
  • Wordpress Engineering - the official WordPress App for Android. (Although new features are developed in Kotlin, the core codebase is still made up of Java code.)  

Why use Kotlin for Android

您可能想知道-从Java切换到Kotlin的意义何在?

主要论点可能是科特林是旨在解决Java问题。这意味着Kotlin提供了许多现成可用的安全机制,同时比Java更简洁和更具表现力。

也许那就是为什么Kotlin是开发人员最喜欢的五种语言之一,占使用技术或语言进行开发并表示有兴趣继续开发的开发人员的百分比(Stack Overflow 2019,100.000被调查者)。

Kotlin与Java:您应该为下一个Android应用选择哪个

Credit: "Developer Survey Results 2019" by Stack Overflow

Conclusion

而Kotlin具有Java不具备的许多优势,它仍然有一些缺点。 让您的团队尝试Kotlin时,请记住过渡到新语言对于已经找到适合他们的工具和策略的开发人员而言,这并不总是那么令人兴奋。

You'll need to give your team at least a month to get familiar with Kotlin, risking that some team members might not adapt in time for the launch of your Kotlin project. You also need to bear in mind that Java isn’t going anywhere and will remain essential for Android app development.

但是,如果您是初学者,正在寻找新的挑战,那么尝试Kotlin是有意义的,尤其是如果您想为初创公司从事创新项目。 但是,如果您正在运行一个由移动开发人员组成的团队,那么最好一次尝试一下Kotlin,以检查新语言是否为您带来了明显的好处。

from: https://dev.to//netguru/kotlin-vs-java-which-one-you-should-choose-for-your-next-android-app-5aeb