Scala类型系统:对于Java程序员来说太复杂

日期: 2013-02-04 作者:Cameron McKenzie翻译:蒋红冰 来源:TechTarget中国 英文

Scala类型的系统是否太过复杂?

  这是很常见的抱怨,这是新人谈到Martin Odersky的JVM语言时的心声,但这个抱怨公平吗,尤其是当它与Java程序员所用的系统相比时?根据受到调试赞誉的Scala In Depth的作者Josh Suereth所说,答案是否定的,这是不公平的。“对于基础的东西,Java类型的系统是不错的,但是一旦你遇到了Scala,你就会意识到你可以写出更完美表达的代码,而且同时也能让事情很简单,”Josh说,他是Typesafe的资深软件开发员,也是对Scala和Java充满热情的专家。“从Scala中离开,回到Java中,并试图在Java类型的系统中执行所有事情,这是一个令人沮丧的工作。”

  类型系统对比

  当然,这不甚诚实,当Java的狂热追随者开始抱怨另一语言类型系统的复杂性时。毕竟,直到Java 5才加入了泛型来解决集合API中缺乏类型控制问题,它是该语言的最重要一部分,是经过论证的。另外,Java泛型可以迅速转变成笨拙的,混乱的嵌套类型标记,或大于或小于那些在时尚类型的长廊里嵌入到其它的类型里的标记。

  但,现在来说,显微镜是在Scala中,而不是Java中。因此,如果该类型系统不是那么势不可挡的话,为什么那么多的Scala新手会对它有这样的问题呢?

  为工作选择合适的工具

  “对于新接触Scala的人其中一个常见的问题是,他们试图在此类型系统上做他们所有疯狂的东西,即使他们不需要,” Josh说。无论是明显的、隐含的还是强大的类型系统,Scala在企业开发都工具包中加入了大量的新工具。但是要想随着其它东西一起变成Scala的能手,就意味着要知道什么时候给定的工具是适合该工作的。“突然之间,你有了一股以前没有的新的力量,并且你可以在你的所有代码中使用它。了解什么时候在类型系统中保存类型,什么时候使用,是一件很重要的事。”

  当然,新的狂热Scala开发者不能完全为类型系统的过分使用负责,他们可能不能完全理解这一系统。对于此系舞台上相对较新的角色,Scala不能如其它的更成熟的编辑语言那样做出很的记录,舞台上许多耀眼的角色都过分忙于实际开发,而不能编写最佳实践、设计模式和高级用法策略,这是Josh希望在Scala in Depth中可以解决的。“编写Scala in Depth背后的动机是它所需要的一些基础性的东西。现在有一大堆介绍Scala的书,但没有为中级到高级的开发人员编写的。”而这些听众将会是Josh此书的目标读者,那些正在寻找到他们的关于Scala编程语言知道提高的另一个档次的中高级开发人员。

  但回到最原始的问题:Scala类型系统是否过于复杂?关于些题目我们将会给出Josh的最后一句话。“是的,它可能比你习惯使用的更复杂。但它只是在你需要它使用它为你解决问题时才复杂。”

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

翻译

蒋红冰
蒋红冰

TechTarget云计算主编,主要负责云计算和虚拟化网站的内容建设。长期专注于IT前沿技术,对云计算、虚拟化、人工智能、区块链等技术都有了解;对行业趋势、市场动态有一定的洞察。

相关推荐