Java vs Kotlin for Android:开发人员意见

在2018年Stack Overflow的调查中,有45.3%的受访者将Java称为最受欢迎的编程语言,而Kotlin仅选择了4.5%的开发人员。 但是,在2019年5月,谷歌宣布 Kotlin 作为优先编程语言。 公司没有要求放弃C ++和Java,但是程序员之间的争执更加激烈了。

Netology向开发人员学习了他们使用哪种编程语言以及他们如何看待Java和Kotlin的未来。

“主线程将保留在Java中,而Kotlin将用于快速开发”



凯利IT解决方案首席程序员Dmitry Kachalov

他知道什么语言。 最初,我学习了Web开发语言,但有时我也想进行移动开发。 我开始研究Android的开发,并在必要的最低限度上精通Java语言,这样我就可以编写第一个在电话上运行并在市场上发布的应用程序。 这是Kotlin刚出现时,还不为广大开发人员所知的时代。

哪个用。 现在,在开发企业应用程序时,我使用Java。 他可以使用许多库,有现成的模块。 此外,Android Studio支持如此之多,以至于您可以按字面意义写一个字母,并且代码将为您编写。 非常方便。

在我的实践中,没有什么需要其他语言的知识。 通常,Java就足够了,因为它具有许多库,并且原则上可以执行任何任务。 唯一值得考虑的是Android平台本身的局限性。 因为无论使用哪种语言,迟早所有限制都取决于平台的限制。 我认为,使用哪种语言来执行任务并没有太大区别,主要是找到一种可以在特定平台上运行的良好解决方案。

为什么更喜欢Java。 您可以在其上提供免费服务,您自己的API方法,编写站点,服务器,移动应用程序。 这本质上是一种通用语言,您可以在其中进行大量操作并开发不同的应用程序。 对他来说,有许多发展和图书馆。 还有-一个随时准备回答问题和提供帮助的大型社区。

关于语言的对抗和未来。 Kotlin无疑是向前迈出的有趣一步,但我认为它没有任何新方法和范式。 它只是减少了用较短的结构编写代码所花费的时间。 同时,它仍然基于相同的Java。

在不久的将来,Java仍将是最流行的。 主线程将保留在Java中,并且Kotlin将用于简单应用程序或原型的快速原型制作中的快速开发。 尽管这是一个非常挑衅的观点。 Kotlin与Java兼容,因此您不能说某些事情会发生根本变化。

“如果您是初学者,并且想使用Android,请学习Kotlin。 否则,我会选择Java“



Artem Pervushov,获得许可的Android ATC专家,Netology的Android开发者课程计划的作者

为什么更喜欢Java。 首先,您需要了解Kotlin的含义。 Kotlin更关注语法糖。 我需要那么多糖吗? 可能不是,我已经习惯于阅读Java代码并且几乎没有犯错误。 编程新手是否应该选择显然更复杂的Java? 可能不是。

仍然需要考虑投资时间的好处。 Java不仅是关于Android和台式机的故事。 还有大量其他项目。 而且,如果您想从其他地方使用Android,知道该语言将非常有用。

关于语言的未来。 也许将来Kotlin将接管世界,也许不会。 “捕获世界” Go,Python,Ruby,JS和<必要的替代品>比我们对这些技术的迷们所说的要少得多。 因此,我的建议是-如果您是初学者,并且决心将自己的命运与Android联系起来,请学习Kotlin,它既方便又时尚。 否则,我将专注于Java。

“ Kotlin开发人员可以使用Java框架和库并编写更易于理解的代码。”



Semyon Pilunts,Android开发人员,Netology课程专家

他知道什么语言。 我对编程的了解发生在我的学院,我从Pascal开始,我也学习过Basic,QBasic。 在我学年结束时,我开始学习C。我并没有止步于此,而是开始学习其他语言-Javascript,VB 6.0,MS SQL,Java。 他很快意识到Java最接近我,因此他决定专注于Java。

几年后,偶然的机会,我开始使用Java为Android创建移动应用程序。 有时有必要在Android本身中使用Javascript,HTML,SQL。 知道其他语言总是有帮助的。

哪个用。 我目前在Java和Kotlin中工作。 到目前为止,我们不能完全放弃Java,但是我们正在逐步前进。

实际上,在执行任务之前,您需要评估它,选择一种方法和一种方法来完成它。 在这里可以清楚地知道哪种语言更适合使用。 在这种情况下,您将无法应付任务。 同时,Kotlin开发人员可以使用Java框架和库并编写更易于理解的代码。

为什么Kotlin更喜欢。 比起Java,使用Kotlin更容易,更方便。 在其中,程序代码平均缩短了40%。 而且,它可以防止程序执行期间可能发生的某些错误。 当代码更简单,更易于理解时,错误将更难以产生且更易于检测,因此错误数量迅速减少。 您花费更少的时间进行开发和测试。

关于语言的未来。 我认为在不久的将来Kotlin将能够几乎完全取代Java。 它已经覆盖了Android市场50%的位置,并且距离问世仅3年。 但是,Java需要知道的是,没有它,将代码传输到Kotlin将会很困难。 在这里,我注意到Kotlin与Java完全兼容,也就是说,完全没有必要立即完全重写该应用程序。 逐渐进行此操作通常更方便。

而且,Android应用程序的开发并不是Kotlin的唯一方向。 它支持JavaScript,程序员可以向其转移前端,Kotlin非常适合开发服务器应用程序,允许您编写简短而有表现力的代码,同时保持与现有基于Java技术的堆栈的完全兼容性。 创建者还添加了Gradle支持,以便开发人员可以在其上编写Gradle文件。 积极地是Kotlin Native的开发,您可以用它来创建iOS应用程序。

“ Kotlin通常不比Java更好,但在Android世界中更好”



AIMS联合创始人Ilnaz Gilyazov,《 Nettology Kotlin开发人员》课程的作者

他知道什么语言。 最初,我根据需要学习了几种语言:汇编程序,C / C ++,然后是Java,JS,PHP,Python。 自从我在信息安全领域工作以来,我无法停止使用一种语言。

哪个用。 现在,我根据客户的任务和偏好选择工具。 对于后端-Java / Kotlin,对于没有大量集成的轻量级事物-Go / NodeJS,对于前端-JS / TypeScript +框架,对于系统事物-C ++ / Go。 也就是说,我没有考虑个人喜好,而是从语言及其生态系统的任务和功能出发。

为什么Kotlin更喜欢。 Kotlin语言的优点是可以重新审视事物,以为开发人员提供不需要大量代码的简单便捷的工具。 这些是语法糖和协程。 Kotlin允许您编写更少的代码-可以。

在Android上,选择Kotlin而不是Java是显而易见的。 在后端世界中,科特林的位置要弱得多,尽管他在那里也能做到。 Spring框架(在后端是很多标准)包括用于Java的Kotlin芯片。 这已经说了很多。 在大型而复杂的后端,尽管我们在某些地方使用Kotlin,但我们仍在使用Java。 在微服务架构中,特定的微服务不需要大量集成,因此Kotlin感觉很好。

通常,Kotlin并不比Java更好,但在Android世界中则更好。 尽管这也可以争论,但这全都取决于我们评估所依据的参数。

关于语言的对抗和未来。 有时在没有共识并使用两种语言的项目中,有时会观察到Kotlin和Java开发人员之间的对抗。 有些狂热者相信唯一正确的语言。 否则,尽管粗糙度仍然存在于集成问题上,但一切都或多或少是平滑的。 如果您想成为Android的专业人士,则必须同时了解这两种语言。 无论如何,值得一提的是,您必须不断学习新的语言,库,框架,思想和方法。

现在,Android中Java的未来尚不清楚。 当我们将所有Android项目转移到Kotlin时,Android中的Java卡在了第七个版本中,而第八个中的一些芯片则陷于困境。 目前尚不清楚谷歌是否打算解决与甲骨文的纠纷,并推出对新版本的支持,还是将停留在当前职位上。 因此,从中期来看,对在Android上学习,使用和支持Java进行投资似乎至少具有风险。

Kotlin正在或多或少可以预测地进行开发,并提供包装程序,使您可以使用该语言的所有现代功能,并添加了许多专门用于Android开发的便利设施和功能。 这是影响开发人员满意度的重要因素。

在不久的将来,我认为Kotlin不会取代Java。 相反,它将能够与Java共存,因为它最初是针对Java的。 希望不会在Kotlin中重写大多数现有的流行Java库。 但是您可以用Kotlin编写(了解了Kotlin <-> Java集成的细微差别,例如反射和所有陷阱),并使用用Java编写的库。

“现在,没有人正在寻找只了解Java或Kotlin的开发人员。 您需要成为通用专家”



RoadAR的Android开发人员Dmitry Gordin

关于对抗。 为了避免滋生煽动性和基于个人的感受,让我们看一下主要的市场参与者。 首先,Google承认Kotlin是Android的主要开发语言。 其次,这是顶级公司在HH.ru上的职位空缺的样子:

  • Tinkoff-“一个重要的优点:在Kotlin上开发应用程序的经验”;
  • Yandex-“ Welcome:有关Kotlin的开发经验”;
  • Redmadrobot-“理想:Kotlin开发经验”;
  • 甚至是“俄罗斯邮政”-“我们希望您具备以下知识和能力:Android SDK技术栈,Kotlin / Java的知识”。

关于语言的选择。 您需要同时了解两种语言。 知道Kotlin和不了解Java是不可能的。 无聊的联盟可能会发现错误,并注意到存在与Java不相关的Kotlin Native。 但是我们谈论的是Android开发,这意味着Dalvik / ART运行时。 因此,所有写他们在Kotlin上寻找开发人员的雇主实际上都在寻找两种语言。

我认为,最好的方法是先熟悉Java,然后再平稳地切换到Kotlin。 Kotlin不会颠倒您对Java的了解。 您可以切换到新的语言,而只需进行最小的更改,然后以“ Java风格”编写代码,逐步对代码进行代码整理,并向其中添加糖和针对Kotlin的芯片。

来自编辑


我们考虑到了编程语言的现状以及开发人员本身的意见-我们在Java和Kotlin的“ 从头开始开发Android开发 ”课程中教给Java和Kotlin。 因此,学生可以选择将来使用的语言,或同时使用两种语言。

Source: https://habr.com/ru/post/zh-CN461877/


All Articles