现在我已经用Scala做了一些琐碎的事情(我喜欢使用"hello world“和人工设计的应用程序!)我只想知道..。部分是关于支持开发的工具的成熟,另一部分是关于通用的适用性。工具集准备好了吗?Scala适合用于企业/业务应用程序吗?“你”会在一个不平凡的项目上使用它吗?
我的一些(可能是毫无根据的)关切是:
因此,底线--生态系统是否已经成熟到现在就可以使用,或者更好地等待着它的发展?
编辑:假设“非平凡”是一个多年、多版本、10-20个开发人员项目。
发布于 2011-05-19 07:59:19
虽然Scala确实在“卫报”和Twitter上被广泛使用,但有一个基本问题。
Java的流行很大程度上是因为它相对容易阅读和维护。Scala在这里有一个问题,因为它可以用许多不同的样式编写。OO与functional是很明显的区别,但是当您将讨论Scala的三个级别时,它变得更加复杂。
你需要确保你的团队和任何潜在的新员工都能遵循相同的风格,并且这种风格足够简单,让你能够真正地雇佣有效的开发人员(并不是每个人都能雇佣前2%的员工)。
工具支持还没有完全到位,尽管我预计这一差距会很快被消除。您还可以从TypeSafe人群中获得对完整Scala堆栈的支持。我认为Scala将开辟它的利基,但直到这些级别真正被内置到语言/编译器/任何东西中,我才会看到最初1-2年的工作效率令团队感到头疼。
有关更多详细信息,请参阅这个相关的答案。
发布于 2011-05-19 02:02:23
Scala目前由Twitter和Gaurdian使用,因此它当然可以用于非平凡的应用程序。
Scala程序员会很有动力,而且很有可能很好。选择一种新的语言是吸引人才的好方法。
当然,Scala程序员通常没有专业的Scala经验,而且他们使用的习惯用法可能有一些变化。有些人可能追求类似Haskell的纯洁性,而另一些人则认为它是带有闭包的Java。因此,开发一致的编码标准和约定可能需要一些时间。
许多Java将运行良好,尽管IntelliJ的想法可能值得在Eclipse之上进行投资。
总之,如果您能够控制项目,这可能是一个很好的选择。如果这是一家大型保险公司的一部分,您可能会遇到一些问题,比如:“所有项目都将由Maven构建并部署在WebSphere中。”(我没有理由认为这条规则会是个问题,但这种规则的激增可能会在某一时刻让你措手不及。)
发布于 2011-05-20 11:09:56
我的印象是,“传统”语言(如Java)附带的许多生态系统都是为了弥补它们的笨拙之处。
问题不在于针对给定语言(Scala)的工具有多少,而是用于该语言的现有工具是否优于用于引用语言(Java)的现有工具。因为100个普通的工具不会给你,一个好的工具能给你什么。你不应该忘记的一点是,语言本身就是这些工具的一部分。
一种语言的陈述性
例如,我曾经读过一个Ruby家伙写的可怕的博客文章,他认为静态输入是没有意义的,因为您的测试将涉及类型安全性。这显然来自于一个人,他还没有使用一个表达式的静态类型系统。假设我可以用语言语义来表示所有的类型关系,而且它不需要做太多的工作(因为大多数现代语言都支持类型推断),我可以免费获得所有这些。
为了使我们的想法向前推进一点:单元测试确保一个单元按照指定的方式工作,或者重新定义它,单元测试是可运行的规范。但是,通过声明式编程,单元本身是可运行的规范。再一次,你可以免费得到一些东西。
我想说的是,你不应该低估语言特性对你的作用。除非你真的在战场上尝试它们,否则你永远不会明白。
因此,回到原来的问题: Scala的现有工具比Java好吗?很难说。取决于你想做什么。我想我们都会同意,语言要好得多,现在的问题是,在你的商业领域,你能找到一个多么好的生态系统。
对于网络来说,电梯确实是一个很好的选择。不知道桌面或移动。
https://softwareengineering.stackexchange.com/questions/77373
复制相似问题