Programming languages 什么因素可以决定Clojure、Scala或Haskell是否会获得吸引力?

Programming languages 什么因素可以决定Clojure、Scala或Haskell是否会获得吸引力?,programming-languages,scala,haskell,clojure,Programming Languages,Scala,Haskell,Clojure,鉴于不可能预见未来,与Clojure、Scala或Haskell相关的哪些因素可能决定其中一个是否流行 有没有文化或经济问题可以让其中一种语言比其他语言更具优势 或者这些语言中没有一种可能因为其概念的复杂性而获得吸引力?在我的脑海中: 良好的IDE支持(带重构) 足够稳定的规格 明确政策(在源代码、二进制文件和行为方面) 围绕该语言的框架和工具(如代码静态分析、代码覆盖率等) 例如,Scala仍在发展,而且发展速度“太快”,无法“大量”使用,尽管一些大型项目已经采用了它 编辑:2009年1

鉴于不可能预见未来,与Clojure、Scala或Haskell相关的哪些因素可能决定其中一个是否流行

有没有文化或经济问题可以让其中一种语言比其他语言更具优势

或者这些语言中没有一种可能因为其概念的复杂性而获得吸引力?

在我的脑海中:

  • 良好的IDE支持(带重构)
  • 足够稳定的规格
  • 明确政策(在源代码、二进制文件和行为方面)
  • 围绕该语言的框架和工具(如代码静态分析、代码覆盖率等)
例如,Scala仍在发展,而且发展速度“太快”,无法“大量”使用,尽管一些大型项目已经采用了它


编辑:2009年11月

请参见演示文稿,幻灯片10和11:

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


从Haskell的世界来看,我认为继续推进的主要事情如下:

  • 在图书馆中,我们的黑客攻击数量超过1500个,超过4000个,这是一个显著的竞争优势
  • 易于在每个系统上安装(Haskell平台)
  • 更多文档、教程和书籍
  • 持续的行业成功案例(即)
除此之外,很难说。一些随意的想法:Haskell已经存在了20年,拥有非常大的用户群,以及大量的商业支持。相比之下,Clojure很小。Scala和Clojure通过在.NET或JVM上运行获得“自由点”。那有关系吗?运行时有多重要?GHC有一个非常快速的自定义并行运行时,因为它不是JVM,但人们喜欢使用JVM。NET也一样。成熟度/稳定性重要吗

除此之外,谁的外展工作做得最好


哦,我们有。

好吧,我猜一猜。我认为成功所需要的因素是“它能做Java的工作吗?”

Java真正做的事情是静态类型。虽然这对小程序来说很烦人,但它允许构建大型稳定系统。它允许自信地进行重构

想想看:每种语言都有它所支持的最大规模的程序。要超过这个规模,就需要越来越高的设计和实现

作为第二个考虑因素,Java相当快,并且有一个相当完整的库

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


<> P>唯一的负面是使用JVM运行廉价共享服务器Web主机的难度。

< P>我认为,要攻入大联盟(即C、C、C++、java),它们需要“强”>从一些大公司中广泛接受,这些开发本身是软件开发的,但不是软件开发的。我想到了大银行、保险公司、服务公司、管理咨询公司等等

然而,这些天来,这种接受存在着很大的障碍;即支持市场稳定性。如果没有像Sun、IBM或Microsoft这样的大公司提供支持,就很难说服这些公司相信任何新语言都是安全的


如果不说服这些公司,熟悉这些语言的开发人员的市场将会很小。只要有一小部分用户,该语言就可以按照社区的要求进行向后不兼容的更改。因此出现了非主流采用的恶性循环。

这些语言中的一些可能很容易首先在非商业和开源环境中获得接受。Perl、Python、Ruby(和其他一些语言)或多或少发生了什么

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


因此,问题在于哪个社区对开源(教学、文档、基础设施)更友好,以及哪种语言允许程序员更高效。

由大型软件开发公司提供支持。看看Java和C花了多少时间才达到目的。其他人也需要这样做。

一个文化因素是一种语言与现有流行语言的相似程度。例如,C→C++→java→C→C的演化。
Haskell与主流的差距最大,语法、运行时堆栈、编程范式都不熟悉,而且社区更倾向于学术界而非工业界。

我的拙见是,主要因素与旨在在纯函数式语言中提供隐式并行性的研究结果有关。如果这能奏效,那么哈斯克尔很可能成为主流

至于Scala和Clojure。。。Scala具有历史上更为可接受的语法。那太过分了。有人可能会说Clojure有一个宏系统,但宏在表达上与Clojure是等价的,所以这不是一个真正的优势


无论如何,我相信静态类型语言并不适用于所有领域,即Web开发。奇怪的是,现在有一种趋势是一切都基于网络。我不认为Ruby是一种炒作:它正在迅速成熟。

Haskell或Ruby将席卷全球。Ruby成功的机会更多,因为Haskell很复杂,很难学习

Ruby2.x将成为“Scala和Clojure”之父。它将有一个新版本,高速,GIL删除和内置模块的并行处理,功能编程,宏