kotlin scala
本文基于我们的一位开发人员(以前是Java的Scala开发人员)的故事,他之所以决定遵循Scala的发展之路,是因为他发现用Scala编写的内容非常有趣 。
当涉及到我所在的公司Scalac时 ,Scala编程绝对是想到的主要主题之一(名称本身实际上是Scala + C = Scala编译器)。 从您的品牌名称可以看出,在我们建立数据工程师,DevOps,UX / UI和Frontend之类的团队之前,我们公司由Scala专家提供支持-即使是现在,我们还是全球最大的Scala公司之一,以及Gold Lightbend合作伙伴。
不久前,我开始怀疑。 与其他语言相比,开发人员更喜欢Scala是什么? 我们为什么需要Scala? 这篇文章最初旨在重点关注Scala与Kotlin的比较-因此,我们采访了我们的高级工程师(以前是Java工程师),目的是发现有一种更好的故事可以讲述-Scala如何使开发人员享受他们的乐趣。再次工作。 让我带您探索发现真相的旅程!
第一天,有Java
Java是在1990年代初期开发的,它改变了整个IT世界。 在90年代初,将网络计算的功能扩展到日常生活中的想法完全是抽象的。 如今,随着技术成为我们日常生活的重要组成部分,我们将其视为理所当然。 实际上,这些年来,Java仍然是运行许多应用程序(从游戏到业务解决方案)的引擎。
真正的问题是:Java是否足够?
Java编程语言的缓慢发展导致了JVM编程语言中的许多发明。 结果,有超过50种JVM语言! 创建它们都是为了填补那些对“足够好的”不够满意的开发人员在现有Java版本中的空白。
从理论上讲,Java可以用于一切-移动应用程序,服务器,电子商务平台。 在实践中-如果您想要一个移动应用程序,那么使用Kotlin更好,并且与您的解决方案有关的任何事情都更复杂并且需要大量数据,Scala是一种解决之道。
第二天, Kotlin
很抱歉不得不这样说,但是Kotlin只是Java中更好的软件包-仍然是一种面向对象的语言,但是更加新颖有趣。 它是如此相似,因此不需要不同的心态。 Java开发人员能够快速切换到Kotlin并在其中顺利编程。 您也可以轻松地从Kotlin调用Java代码,反之亦然。
而且,除此之外,它还具有其他一些优点,例如集合库的构建方式,对null的支持以及协程。 Kotlin支持功能构造,但是与Scala相比,它更接近被剥夺了老式遗产的Java。 它为Java程序员提供了Java所没有的新鲜度和结构,以及通过代码表达思想的简洁性。
与Scala相比,Kotlin的领域是移动领域。 它可以用于服务器和客户端(移动)开发-前端和后端。 Android开箱即用地支持Kotlin。 您也可以为此目的使用Scala,但它没有Kotlin那样麻烦。
Scala vs Kotlin在美国的受欢迎程度
资料来源:Google趋势
我选择Scala作为初中生,是因为它在某种程度上很容易入手。
您不必直接进入面向对象的编程 (它可以首先在过程范例中引入),但是同时,它具有学习它的所有必要概念。 您可以切换到函数式编程,而不必切换到其他函数式语言。 Scala还具有类似C的知识,因此也很容易学习C风格的语言 。
Patryk Kirszenstein,
Scalac的 初级Scala开发人员
第三天……有斯卡拉
如前所述,一些Java开发人员知道他们无法完全满足自己的需求。 他们想要更多。 他们正在寻找一种替代方法,可以使用更好的语法。
Scala作为具有功能性功能的编程语言,与Java或Kotlin相比,其思维方式和知识要多得多,这是因为,除其他外,代码的编写方式不同。
在Scala中,您可以编写功能和面向对象的代码。 它具有非常丰富的语法,使您可以通过多种方式编写代码。 这也是为什么不参与Scala的人可能会觉得它过于复杂的原因。 这是因为,对于Java和Kotlin,程序员知道会发生什么。 使用Scala之类的语言,您可以变大或回家。
从长远来看,以Scala之类的强类型语言编写的系统更易于维护。 而且,与业务相关的一个大优势是它是JVM编译语言,因此您可以使用所有现有的Java库。 您是否知道Scala尽管不像Java那样流行,但它也被Zalando,LinkedIn,Twitter,Foursquare,Netflix,Tumblr,Walmart,Paypal,Intel和Samsung等世界各地的企业所使用。
使用Scala的商业原因是什么?
如果您正在使用复杂的环境,应用程序和分析,那么它比Java或Kotlin效率更高。 Scala用于实现Spark(分布式数据处理的领先平台)以及自行定义计算,因此它对数据科学家非常友好。 更不用说Scala是机器学习和区块链等领域的出色语言,它们在当今的业务中极为重要,并且在未来将变得越来越重要。
Scala是纯的
挑战可能是为什么Scala拥有如此庞大的社区(尤其是对于一种看似利基语言的社区)的关键,在StackOverflow上仅对Scala提出了超过95 919个问题(更不用说相关主题了)。
Scala是一种功能强大的语言,具有许多高级功能和灵活的语法。 但是,开发人员很难掌握这种JVM编程语言。 但是,随着时间的流逝,它变得真正自然而直接。 Scala通过其功能性方法所代表的是激情驱动的工作,这些工作导致了纯粹的自我发展。 要爱上它,您需要首先开始编写它,然后再进行更深入的研究。 刮擦表面可能只会给您带来错误的想法。
“虽然许多语言共享Scala的某些功能,但很少有语言共享这么多的功能,这使得Scala在易于开发方面独树一帜。
Dorian Sarnowski,
Scalac的 高级Scala开发人员
在Scalac,我们出于各种原因使用Scala,主要是为了减少开发时间和减少代码错误的数量。 尽管许多语言共享Scala的某些功能,但很少有语言共享这么多的功能,这使得Scala在易于开发方面独树一帜。
Scala-简单漂亮。
Scala确实鼓励从可变数据结构切换为不可变,从常规方法切换为纯函数(不要像Haskell那样疯狂)。 真漂亮。 它在语言的简洁性,可扩展性和性能之间提供了很好的平衡。 遵循JVM的“一次编写,随处运行”的范式承诺,并将其与功能编码相结合,Scala可让您在代码中两全其美。
功能齐全
我认为没有哪个程序员不会觉得函数式编程很有趣,但是有时候他们只是放手,因为他们还有其他工作重点。 幸运的是,有些工作实际上可以让您完全以谋生为生,这真是太了不起了。
对于希望在编写纯代码和编写快速代码之间取得平衡的开发人员,Scala是一个非常吸引人的选择-通过在可用的现有解决方案和库的基础上进行构建。 结合Java生态系统和JVM的互操作性,Scala看起来非常有前途。
与Kotlin相比,Scala受Haskell等功能编程语言的影响更大。 它鼓励使用功能编码以及一些其他功能,例如模式匹配和currying。 不仅如此,在Scala环境中函数式编程也更加重要。
“ Scala使您可以在代码中建立两全其美的方法。
是爱
Scala具有功能性和类型安全性,但是您会逐渐遇到困难(您仍然可以编写类似Java的代码),因此您永远不会感到无聊。 您更有可能会觉得自己一直处于智力旺盛的状态。 您可以在诗意上将它与第一次恋爱的感觉进行比较。 我认为,这确实是Scala绝对值得您花时间学习的原因之一。 它将永远改变您的思维方式。
先前发布在 https://scalac.io/why-does-scala-win-against-kotlin-senior-engineers-opinion/
翻译自: https://hackernoon.com/senior-engineers-opinion-why-does-scala-win-against-kotlin-jbei3y0n
kotlin scala