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中国
相关推荐
-
内存数据网格提供商一头扎进Java
10年的时间里,应用性能解决方案提供商Alachisoft一直在用NCache(针对N-Tier和网格计算.NET应用的内存计算和数据网格产品)为.NET社区服务。
-
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高, 直到把内存吃完应用崩溃,但是这个wrapper
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高 […]
-
Google App Engine for Java 对于目前中国需要学习吗?
-
前无古人后无来者的Java平台
开发人员一直在致力于保持Java的活力,经过20年后,我们感觉从来没有更好的、更令人激动的时刻如同Java社区一样。