什么因素可以决定Clojure,Scala还是Haskell会获得牵引力?

鉴于不可能看到未来,与Clojure,Scala或Haskell相关的因素有可能决定它们中的一个是否能够实现?

是否有文化或经济问题可以使这些语言中的一种优于其他语言?

还是这些语言中的任何一个都不可能因为概念的复杂性而获得牵引力呢?

在我头顶上:

  • 良好的IDE支持(重构)
  • 足够稳定的规格
  • 明确向后兼容的政策(源头,二进制和行为)
  • 围绕语言的框架和工具(如代码静态分析,代码覆盖,…)

例如,斯卡拉仍然在演变,并且“太快”,即使一些大的项目已经采用它,也不能“大量”使用。


编辑:2009年11月

请参阅重构到Scala DSL和LiftOff 2009概述 ,幻灯片10和11:

马丁明确地“获得”关于高质量Scala工具支持的重要性

从Haskell的世界中,我看到主要的东西继续推进:

  • 在图书馆方面,我们在Hackage上拥有1500多人,这是一个显着的竞争优势。
  • 在每个系统上安装简单(Haskell平台)
  • 更多文档,教程和书籍
  • 持续的工业成功案例(即首先validation过的微内核使用Haskell , 在Haskell中build立实时交易系统以获利 )

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

最重要的是,谁在做最好的宣传呢?

哦,我们有工业Haskell集团 。

我认为,要进入大联盟 (即C,C#,C ++,Java),他们需要几家大公司进行内部开发,但不是自己的软件公司 。 我想到的是大型银行,保险公司,服务公司,pipe理咨询公司等等。

然而,这些接受这些日子有一个很大的障碍, 即支持市场稳定 。 如果没有像Sun,IBM或微软这样的大公司提供支持,说服像这样的公司很难说任何新的语言是安全的

如果不说服这些公司,熟悉这些语言的开发者的市场将会很小。 只要有一小部分的用户,这个语言就可以承担社区所要求的向后不兼容的变化。 因此,非主stream采用的恶性循环。

其中一些语言可能很容易在非商业和开源环境中获得接受。 或多或lessPerl,Python,Ruby(以及其他一些语言)发生了什么事情。

易于部署软件(think apt-get)和程序员的自由在开源世界中促进语言多样性。 一旦一些软件变得足够重要,这种语言在支持方面就会变得不朽。 一旦它的不朽,这是一个安全的赌注,每个人。 小的开发者将是第一位的,如果他们从使用这个语言中获得一些优势,那么大公司将会跟随。

所以,开源(教学,文档,基础设施)以及哪种语言可以让程序员提高工作效率是社区更友好的问题。

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

Java所做的真正的事情是静态types。 虽然这是小程序烦人,它允许build设大型稳定的系统。 它允许自信地重构。

想想看:每种语言都有一个它支持的最大尺寸的程序。 要超过这个规模,需要越来越高于平均水平的devise和实施。

作为一个次要的考虑,Java是相当快的,并且有一个相当完整的库。

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

唯一的缺点是使用JVM运行便宜的共享服务器Web主机的困难。

由一家大型软件开发公司提供支持。 看看Java和C#花费的是什么。 这也是其他人也需要去的地方。

一种文化因素是一种语言与现有stream行语言的相似程度。 比如C的进化 – > C ++ – > Java – > C#。

Haskell与主stream的差距最大,语法不熟悉,运行时间栈,编程范例和面向学术界的面向社区的行业比行业更为重要。

在我看来,主要的因素是关于旨在以纯function语言提供隐式并行性的研究结果。 如果/当这个工作,那么Haskell很可能成为主stream。

至于斯卡拉和Clojure …斯卡拉有历史上更可接受的语法。 这太过分了。 有些人可能会认为Clojure拥有一个macros观系统,但macros观上与clojures相当,所以这不是一个真正的优势。

无论如何,我认为静态语言并不适合所有的领域,即Web开发。 而现在好奇的是,一切都以networking为基础。 我不认为Ruby是一种炒作,它正在快速成熟。

Haskell或Ruby将扫遍世界上的埃克森。 由于Haskell复杂而且难于学习,因此Ruby的成功机会更大。

Ruby 2.x将成为“Scala和Clojure”的父亲。 它将有新版本的高速,GIL删除和内置模块的并行处理,function编程,macros。

进一步思考,更多的图书馆将build立在ruby的各种任务。 一旦2.X版本将与所有上述feechurs来这将完成。

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

C ++,Java,.NET,Python,Scala将会在musuems中被看到。 XXXXX
C,Perl和PHP仍然适用于小应用程序/任务。
MySQL,Oracle,SQLServer也将在博物馆的“db section”中看到。 XXXXX
SQlite,PostgreSQL还会在外面活着。

干杯,
呃男人