我刚开始在空闲时间探索Scala.
我不得不说到目前为止我印象非常深刻.Scala位于JVM之上,与现有Java代码无缝集成,并具有Java不具备的许多功能.
除了学习新语言之外,切换到Scala有什么缺点?
oxb*_*kes 26
好吧,缺点是你必须为Scala准备好有点粗糙:
您还必须承担Scala作为一种语言失败的风险.
那就是说,我不认为你会回头看!我的经历总体上是积极的; IDE是可用的,你习惯了神秘的编译器错误意味着什么,虽然你的Scala代码库很小,但向后兼容性中断不是一个主要的麻烦.
它是值得的Option,集合,闭包,演员模型,提取器,协变类型等的monad功能.它是一种很棒的语言.
这是伟大的也是个人的好处是能够从不同的角度,一些上面的结构允许和鼓励办法的问题.
Dan*_*ral 16
Scala的一些缺点与该语言的相对年轻人根本没有关系.毕竟,Scala已经大约5岁了,Java在自己的生命周期中已经有5年的不同了.
特别是,由于Scala没有企业的支持,认为它是一个战略优先事项,因此它的支持资源相当缺乏.例如:
另一个重要的区别是由于Sun看到Java和EPFL看到Scala.Sun将Java视为吸引企业客户的产品.EPFL将Scala视为一种语言,旨在成为比现有语言更好的语言,在某些特定方面(主要是OOxFunctional集成和类型系统设计).
因此,Sun使JVM冰川稳定,Java完全向后兼容,非常慢的弃用和删除功能(实际上是删除?),使用一个版本的Scala生成的JAR文件将无法与其他版本一起使用(第三方库的一个严重问题),语言不断获得新功能以及实际删除已弃用的语言,Scala的库也是如此.Scala 2.x的修订历史,我认为只有3年的历史,令人印象深刻.
最后,由于上述所有原因,第三方对Scala的支持已初具少量.但要注意,虽然,这是重要的JetBrains公司,这让钱出来卖的IntelliJ IDEA的 IDE,支持了斯卡拉相当长的一段时间,精益求精的支持.对我来说,这意味着需要第三方支持,而且支持势必会增加.
我指出书的情况.一年前,市场上没有Scala书.现在有两个或三个入门书籍斯卡拉市场上,大约相同数量的书应该在今年年底前进行,并有一本关于基于Scala中,一个很重要的Web框架电梯.
我敢打赌,我们将会看到一本关于ESME的书不会太远,还有关于Scala和并发的书籍.出版市场显然已达到临界点.一旦发生这种情况,企业就会效仿.
Fea*_*gal 15
去年,我对J2EE皮带的解除束缚,想要在企业为一些世界上最大的公司建立一个非常庞大的系统的12年Java之后做一些新的事情.
我过去曾尝试过Ruby on Rails.在构建了一些示例应用程序后,我不喜欢它的感觉,或者我不得不编写大量的单元测试以涵盖通常由编译器完成的内容.
Grails上的Groovy是我的下一个停靠点.我不得不说我喜欢这个,但它遭受与ROR相同的动态类型问题.不要误会我的意思我没有把Grails放下来,因为它是一个很好的框架,我仍然会使用它.每个人都有自己的地方IMO.
然后我跳过了Scala,现在已经构建了一个基于Scala和Spring MVC的混合应用程序.最初使用Scala很困难,但是随着时间的推移,它变得越来越容易,也越来越高效.我已达到一个临界点,我现在也想在Lift上投入时间.
"Scala编程"和David Pollak的"Beginning Scala"书籍的结合有助于学习语言,后者的学术性较低.
斯卡拉还很年轻,还有一段路要走.我认为它有一个光明的未来,我看到势头已经开始增强.最近,Groovy语言的创建者之一在一篇博客文章中说,如果Scala当时存在,他将永远不会打扰设计Groovy.
我认为更多关于更好的Java API集成/包装的工作将为Scala提供赢得更多关注者所需的提升.基本集成已经存在,但我认为它可以更加精致.
是IDE支持,但它目前是基本的.Intellij的强大的重构支持还没有,我很想念.编译器+ IDE支持混合使用其他插件还不成熟.我有时会得到非常奇怪的内部编译器错误,这些错误是由Scala如何使用Goggle应用引擎的JDO增强引起的.然而,这些是可以轻松修复的小东西.新技术和语言的早期适应总是带来一点痛苦.但是这种痛苦可以在将来产生巨大的乐趣.
如果我看一下Scala与早期Java相比的能力,那就远远领先于它.当我从C++迁移到Java时,JVM还没有准备好可扩展性.曾经有很多奇怪的崩溃,并在各种操作系统上刻录JVM核心转储.所有这些现在已经在Java中得到修复,JVM非常坚固.Scals在JVM中运行,因此它在本机平台集成方面获得了巨大的先机.它站在巨人的肩膀上!
经过多年构建和支持企业应用程序,我的投票是一种语言,在构建单元测试之前,编译器可以捕获大部分非功能性错误.我喜欢类型检查和功能编程的强大功能.我喜欢我正在做OO ++的事实.
我认为开发社区将决定Scala是否是未来.现在采用Scala的缺点是,如果它没有获得动力和适应.使用极少数Scala开发人员维护Scala代码库非常困难.然而,我看到Java来自臭鼬工作进入企业以取代C++,而这一切都是由开发者社区自下而上推动的.时间将告诉Scala,但目前它有我的投票.