为什么不是';Scala在桌面应用程序中使用得多吗?

为什么不是';Scala在桌面应用程序中使用得多吗?,scala,Scala,我一直听说Scala被用于web开发,但我很少听说Scala被用于桌面应用程序。它在桌面应用程序中使用得不多,这是真的吗?原因是什么?我认为这是因为该语言相对较新,其功能主要有助于开发处理大型复杂数据的应用程序(功能性编程语言中常见的功能),或者已经开发的框架有助于编写web应用程序 使用Scala与普通的“桌面”应用相比,与C++、java、……语言相比,没有很大的优势。但当然,一段时间后,会有更多的开发人员使用scala编码,也会有更多的标准桌面scala应用。我认为这是因为缺乏工具。人们经

我一直听说Scala被用于web开发,但我很少听说Scala被用于桌面应用程序。它在桌面应用程序中使用得不多,这是真的吗?原因是什么?

我认为这是因为该语言相对较新,其功能主要有助于开发处理大型复杂数据的应用程序(功能性编程语言中常见的功能),或者已经开发的框架有助于编写web应用程序


使用Scala与普通的“桌面”应用相比,与C++、java、……语言相比,没有很大的优势。但当然,一段时间后,会有更多的开发人员使用scala编码,也会有更多的标准桌面scala应用。

我认为这是因为缺乏工具。人们经常听说为工作选择合适的工具,工具可以是平台、框架、操作系统,或者在本例中是编程语言

Scala本身没有任何东西阻止编写桌面应用程序。关键是你永远不要用语言写程序:你用工具箱写程序。工具箱由语言、库和辅助工具组成,用于将所有内容粘合在一起。Scala是一种很好的语言,它还继承了Java的一些很酷的widgeting库,但是没有用于构建桌面应用程序的Scala框架


所以,即使没有什么能阻止开发人员,也没有什么能鼓励他们,这就是为什么桌面开发通常选择其他平台的原因。人们经常举一个例子,Scala没有更多地用于桌面应用程序,这与java没有被更多地使用的原因完全相同。这就是缺乏良好的工具包和框架。当然,你有swing、swt等,但它们不是很复杂,当你尝试使用它们时,你会觉得你已经用了10年了。 真正的问题是为什么java桌面工具包那么糟糕,但这超出了本文的范围。 scala的驱动设计原则之一就是利用现有的java库。scala在很大程度上做到了这一点。由于java现在主要存在于服务器端应用程序和android(而不是桌面应用程序)上,所以java的命运基本相同


这在将来可能会改变,但我对此表示怀疑。

这个问题可能更适合程序员,而不是stackoverflow,因为它是主观的。FWIW,在我看来,原因与Java在桌面上没有被广泛使用的原因大致相同。事实证明,平台独立性并不是一个巨大的胜利。Windows在桌面上占有如此大的市场份额,而Java中用于富GUI的工具包是相当容易泄漏的抽象,这使得它们很麻烦。你也可以使用本机,而大多数严肃的桌面应用程序都可以。真正的问题是为什么Java不用于桌面应用程序,没有什么可以阻止您使用Scala的Swing(我认为甚至还有一个官方的Swing包装器)。@JiříPospíšil:Yup<代码>scala.swing。Java FX 2.0仍然可能是替代非Java工具的可行选择,因为它是一个框架,可以使用普通Java(或普通scala)中的当代思想来创建令人赏心悦目的轻量级UI。此外,它将是一个默认的UI框架,而不是Java8(或9)中的Swing。