whe*_*ies 11 scala clojure jvm-languages
在接下来的3年中,我将不得不使用非常具体的第三方API来使用JVM(项目要求).他们想要Java,但我已经有了回避Java的余地.我希望我们可以回到.NET框架,这样我就可以在F#中开发代码,完全爱上OCaml..NET开发已被我们的客户打倒.这是不行的.
我转向寻找,阅读和探讨编程博客/论坛,试图了解哪种语言可能会对我更有吸引力:Scala或Clojure.那些似乎拥有最大的社区/粉丝群.有了ML语言的经验,我看到很多人将Scala与ML进行比较.然而,在进行这种比较时,有一些真正的反对者.如果Scala接近ML,那么我的生产力和学习曲线将有助于实现这一转变.
互联网上充满了错误的信息,并想知道我是否患有此类信息.我不喜欢Lisp的语法(不要伤害我!)但是如果Scala有我正在阅读的瑕疵(糟糕的IDE支持,通量单元测试框架,性能问题)我想知道Clojure是否更好选项.我希望通过使用函数作为第一类对象,并最大限度地减少并发性痛苦,提高效率.
所以无论如何,在我花太多时间在互联网上而不工作之前......我被JVM困住了,厌倦了Java,想知道去哪儿了?
Dan*_*phe 24
在我看来,Clojure和Scala都没有很好的IDE支持,如果这对你真的很重要的话.也就是说,这是我从阅读和体验中可以收集的内容.
Scala的专业人士
Clojure的专业人士
关于分布式并发
如果你的并发需求是分布式的,那么除非你在Terracotta或类似的东西上运行它,否则Clojure还没有任何东西,在这种情况下你将能够使用它的所有并发功能.如果你这样做,你将获得比Scala的Actors,IMO更好的分布式并发体验.
结论
IMO Scala尝试做所有事情,并成功完成大部分工作.Clojure没有尝试同样的事情,但它关注的是绰绰有余并且成功得如此之好以至于大多数人真的知道Clojure不会想要回到别的东西.披露:我个人的偏好当然是Clojure.我希望我能够在我写的内容中保持客观.
Dón*_*nal 10
你考虑过Groovy吗?我不认为它与Scala/Clojure一样功能,但它确实比Java**更具功能性.一般来说,我可以在Groovy中完成相同的工作,其中大约50%的代码将用于Java.
这是因为Groovy在语法上与Java类似,并提供对JDK库的无缝访问,但是添加了许多语言功能(闭包,元编程,属性)和动态类型几乎消除了与Java编程相关的所有样板.
**我的意思是"功能性编程"而不是"正常工作"的功能
Dan*_*ral 10
我将解决你提出的关于Scala的观点.
IDE支持:
Scala没有与Java相同的级别或IDE支持 - 或者,就此而言,F#应该与VS10一起使用.
也就是说,它在Java之外的JVM上拥有最好的(甚至是最好的?)IDE支持.目前NetBeans已经足够好了,人们一直认为IDEA仍然更好(传闻).Eclipse插件虽然不稳定.
但是你提到了3年的范围,一旦Scala 2.8出来,对Scala的IDE支持应该会大大增强,因为它将为IDE提供一些编译器支持.没有定义发布日期,但它看起来在接下来的六个月内,可能是三个月.Eclipse插件将随之更新.
在通量单元测试框架中:
是的,如果你的意思是它充满活力,不断发展和得到很好的支持,而不是停滞不前和被抛弃.ScalaTest,Specs和ScalaCheck是高质量的框架,兼容它们,并与其他Java框架和库(如JUnit和JMock)兼容.
事实上,测试框架几乎是Scala可能实现的儿童海报.
编辑: Scala在其标准库(scala.testing.SUnit)中具有基本的单元测试支持.但是,鉴于许多优秀的,积极支持的和免费的替代品已经出现,这已被弃用,并且可能不会成为Scala 2.8附带的库的一部分.
性能问题:
我不知道任何事情,除了你可以编写糟糕的代码,就像任何其他语言一样.不习惯函数式编程的人经常会做一些效率不高的事情,例如不使用尾递归或连接列表,以及Scala启用的范式转换可以实现这一点.
无论如何,您可以像Java代码一样快速编写Scala代码(对于一些即将推出的功能,速度更快).您可以使用几乎与Java代码一样快的函数功能编写Scala代码.
坦率地说,得到另一份工作.
如果你要在接下来的三年里对你正在做的事感到不舒服,你应该考虑寻找更有吸引力的替代方案.
即使你设法得到一个你喜欢的语言,如果你是一个团队的一部分(我猜你是),团队的其他成员可能不喜欢那种语言.如果其余的代码用Java编写,并且您" 填写空白 "编程语言,则可能会出现问题.
毕竟这并不坏.
和老板谈谈,让他知道你的感受.开始寻找替代品并拥有一个漂亮而专业的"离开".
你没有理由不能与现任老板保持良好的关系.如果最终他们有了.net的新项目,你可能会回来.与他们谈论这一点.把门打开.
| 归档时间: |
|
| 查看次数: |
2609 次 |
| 最近记录: |