哪些因素可以决定Clojure,Scala或Haskell是否会获得牵引力?

时间:2009-09-01 07:43:04

标签: programming-languages scala haskell clojure

鉴于不可能看到未来,与Clojure,Scala或Haskell相关的哪些因素可能决定其中一个是否能够吸引?

是否存在可能使其中一种语言优于其他语言的文化或经济问题?

或者由于它们的概念复杂性,这些语言都不可能获得牵引力吗?

9 个答案:

答案 0 :(得分:20)

在我的头顶:

  • 良好的IDE支持(重构)
  • 足够稳定的规格
  • 关于backward compatibility的明确政策(在来源,二进制和行为方面)
  • 围绕语言的框架和工具(如代码静态分析,代码覆盖,......)
例如,Scala仍然在不断发展,并且“过快”不能“大量”使用,即使一些大项目已经采用它。


编辑:2009年11月

参见Refactoring to Scala DSLs and LiftOff 2009 Recap演示文稿,幻灯片10和11:

  

Martin明确地“了解”拥有高质量Scala工具支持的重要性

答案 1 :(得分:17)

在Haskell世界中,我看到了继续推进的主要内容:

除此之外,很难说。一些随机的想法:Haskell已经存在了20年,拥有非常庞大的用户群和大量的商业支持。相比之下,Clojure很小。 Scala和Clojure通过在.NET或JVM上运行获得“免费积分”。那有关系吗?运行时有多重要? GHC有一个非常快速的自定义并行运行时,因为它不是JVM,但人们喜欢使用JVM。对于.NET也是如此。成熟度/稳定性是否重要?

最重要的是,谁在做最好的外展?

哦,我们有The Industrial Haskell Group

答案 2 :(得分:10)

我认为要打入大联盟(即C,C#,C ++,Java),他们需要广泛接受来自少数大公司的内部人士开发,但本身不是软件公司。我想到的是大型银行,保险公司,服务公司,管理咨询公司等。

但是,如今这种接受存在很大的障碍;即支持市场稳定性。如果没有像Sun,IBM或微软这样的大公司提供支持,说服这些公司很难说任何新语言都是安全的赌注

在没有说服这些公司的情况下,熟悉这些语言的开发人员的市场规模很小。只要有一小部分用户,该语言就可以承担社区要求的向后不兼容的更改。因此,非主流采用的恶性循环。

答案 3 :(得分:3)

好的,我会猜测一下。我认为成功所需的因素是“它可以做Java的工作吗?”。

Java所做的真正的事情是静态类型。虽然这对小型程序来说很烦人,但它可以构建大型稳定系统。它允许重建充满信心。

考虑一下:每种语言都有它支持的最大大小的程序。要超过这个规模,需要越来越高于平均水平的设计和实施。

作为次要考虑因素,Java非常快,并且具有相当完整的库。

所以,我猜这些是标准,因此Scala有机会。

唯一不利的是使用JVM运行廉价共享服务器Web主机的难度。

答案 4 :(得分:3)

其中一些语言可能很容易在非商业和开源环境中获得认可。或多或少发生在Perl,Python,Ruby(以及其他一些语言)上的事情。

易于部署软件(想想apt-get)和程序员的自由促进了开源世界的语言多样性。一旦某些软件变得足够重要,语言在支持方面就变得不朽。一旦它不朽,对每个人来说都是安全的赌注。小型开发人员将是第一个,如果他们从使用该语言中获得一些好处,大公司将会效仿。

因此,这是一个社区对开源(教学,文档,基础设施)更友好的问题,以及哪种语言允许程序员提高工作效率。

答案 5 :(得分:2)

由一家大型软件开发公司提供支持。看看Java和C#在什么地方得到它们。这也是其他人到达那里所需要的。

答案 6 :(得分:2)

一个文化因素是语言与现有流行语言的相似程度。例如,C - >的演变。 C ++ - > Java - > C#。

Haskell与主流的差距最大,不熟悉的语法,运行时堆栈,编程范例和社区更倾向于学术界而不是行业。

答案 7 :(得分:0)

在我看来,主要因素是研究的结果,旨在提供纯函数语言中的隐式并行性。如果/这将起作用,那么Haskell很可能成为主流。

至于Scala和Clojure ...... Scala具有历史上更可接受的语法。这太过分了。有些人可能认为Clojure有一个宏系统,但宏显然等同于clojures,所以这不是一个真正的优势。

无论如何,我认为静态类型的语言不适合所有领域,即Web开发。奇怪的是,现在有一种趋势,即以网络为基础。我不认为Ruby是一种炒作:它正在快速成熟。

答案 8 :(得分:-4)

Haskell或Ruby将扫除世界上的evryone。由于Haskell很复杂且难以学习,因此Ruby很有可能获得成功。

Ruby 2.x将成为'Scala和Clojure'的父亲。它将具有高速,GIL的新版本以及用于并行处理,功能编程,宏的内置模块。

进一步思考,为了完成各种任务,需要在ruby中构建更多的库。一旦版本2.X将与上述所有feechurs一起使用,这将完成。

我相信马茨和安东尼奥!!!!!

C ++,Java,.NET,Python,Scala将在博客中出现。 XXXXX
C,Perl和PHP仍然适用于小型应用程序/任务。
MySQL,Oracle,SQLServer也将出现在博物馆的“db部分”中。 XXXXX
SQlite,PostgreSQL将在外面活着。

干杯,
呃男人