scala实用指南
最近几个月,Scala表现出了一些低潮,许多开发人员认为它的入门级水平太高了。 ZeroTurnaround的市场经理Oliver White告诉我们为什么不需要这种方式…
Scala是否过于复杂以至于无法在Java团队中广泛采用,或者是因为修补了他们不完全了解的内容的Devs使得Scala显得过于复杂。
本报告对Scala的优缺点进行了技术审查,使JVM语言成为Java组织探索的理想选择。 Scala的动态力应该足以让您编写比Java更简洁明了的代码,但是要达到目标就很困难。 Scala“游泳池”的较深部分有时很有趣,但一开始可能会令人恐惧。 一旦对较简单的部分感到满意,您的Java团队就可以考虑利用高级功能并朝着纯功能性方向发展。
在ZeroTurnaround研究与内容部门Rebel Labs撰写的有关Scala的30页报告中 ,我们采访了Scala创作者Martin Odersky,提供了有关Scala编程优缺点的详细技术分析,并结合了“ Scala”作者Josh Suereth的评论深度”。
Scala是Martin Odersky创建的一种语言,他渴望在Java虚拟机上结合面向对象和功能编程。 Odersky先前在Pizza,GJ,Java泛型,javac编译器和Funnel方面的工作最终导致了Scala的创建,并于2003年在EFPL上首次发布了它 。 Scala纯粹是面向对象的,因为每个值都是一个对象,而功能性是每个函数都是一个值。 OOP和FP范例的成功结合使该语言相对流行,并且成为许多人的“更好的Java”。 对于那些在JVM上寻找类似Haskell的功能的人来说,这也是一种好语言。
随着该语言的流行, Typesafe由Scala和Akka中间件的创建者于2011年成立,旨在以Typesafe Stack的形式提供易于使用的包装,以及更好的开发工具和商业支持。
在最近几年中,对Scala提出了一些批评。 它主要被指控过于复杂。 在此报告中,我们认为,Scala的复杂性实际上更多是由于生态系统的多样性而不是语言本身引起的。 然后,我们来看一个更简单的Scala子集,对于正在考虑采用它的Java团队来说,这也许是一个不错的起点。
在过去的一两年中,许多博客文章都指责Scala过于复杂或突出了Scala的采用方面的其他问题。 一些批评是公平的,但其中一些批评可能针对的是几乎所有的JVM语言。 Scala似乎得到了更多支持,因为它更受欢迎,并且有可能领先于其他公司 。
也可能是因为Scala实际上是相当复杂的, 但前提是您希望这样做 。
将Scala视为一个游泳池-有一个深处和一个浅处; 似乎许多还没有学会游泳却直接跳入深渊的人。 不可避免地,在飞溅了一段时间后,惊讶地发现他们的腿没有完全伸到地板上,或者他们沉入了底部,被无法在水下呼吸而感到震惊。
为什么会这样? 也许很难将深端与浅端区分开来-它不像一眼就能清楚地看到泳池的深度那么简单。 也许一开始,当您还没有真正了解它的时候,最深的一面似乎更加令人兴奋。
为什么首先要谈论这种二分法呢? 因为Scala社区非常多样化。 它可以同时满足新手和专业类型安全库设计人员的要求 。 一些Scala用户来自面向对象的编程背景(例如Java),一些来自功能编程背景(例如Haskell)。
Scala将这些编程样式融合在一起,但是仍然允许您以“不纯”的命令性代码或以“纯”功能的方法进行编码。 这可能是主要的问题-Scala支持的编码风格截然不同,这意味着来自校外的人们编写的许多代码看起来似乎难以辨认。
每个Scala团队都需要找到他们同意的通用样式,否则结果会很混乱。 《 Scala样式指南》可能对此有所帮助。
Scala 2013:Java组织中采用Scala的实用指南主要是为那些来自Java(面向对象/命令式)学校的人编写的 。 其中一些建议很大程度上取决于口味,背景等,因此我们并不期望每个人都同意它。 注册以阅读完整的报告 。
scala实用指南