什么';这是一个Scala';杀手级应用程序';?

什么';这是一个Scala';杀手级应用程序';?,scala,Scala,我是一名Java开发人员,正在考虑投资时间学习Scala以开发未来的应用程序。我已经读了很多关于Scala相对于Java的优势的书,但是它们有点抽象,让我从情感上理解它 有人能推荐一个真正适合使用Scala而不是Java开发的应用程序的例子吗?这是一个愚蠢的问题。Scala是一种图灵完全语言:因此,它在可开发的任何其他TC语言中都是等价的 它可以访问所有JVM库(包括那些用Java编写的库),因此在访问数据库、媒体API、网络等方面具有优势。作为一种JVM语言,它具有“一次写入,随处运行”(WO

我是一名Java开发人员,正在考虑投资时间学习Scala以开发未来的应用程序。我已经读了很多关于Scala相对于Java的优势的书,但是它们有点抽象,让我从情感上理解它

有人能推荐一个真正适合使用Scala而不是Java开发的应用程序的例子吗?

这是一个愚蠢的问题。Scala是一种图灵完全语言:因此,它在可开发的任何其他TC语言中都是等价的

它可以访问所有JVM库(包括那些用Java编写的库),因此在访问数据库、媒体API、网络等方面具有优势。作为一种JVM语言,它具有“一次写入,随处运行”(WORA)的优势

当然,Java也有这些功能!那么Scala的实力是什么?那么,清晰性、表现力、可维护性、可扩展性等等

这说明你是个什么样的应用杀手?嗯,当然都是!撒点小谎

def fibs = (0, 1).repeat[Stream].map { case (a, b) => b -> (a+b) } map(_._1)
或:


它唯一不太好的地方是非常接近金属,低延迟编程。而且它也在侵入这个地区

在我看来,任何使用Erlang的Actors成语进行大规模并行化的东西都将是一个“杀手”。我认为,scala-lang.org上列出的公司就是社区可以自豪的例子。他们使用Scala构建高并发(和重负载)分布式可伸缩应用程序,这些应用程序具有表达型安全轻量级API、代码重用和创建内部DSL的强大能力、开发效率以及更多原因

仅举几个名字:

  • twitter
  • 链接。在的和
  • 卡皮塔利克

    • 答案是“全部”。Scala严格地说是Java的超集,因此您可以获得表达能力和节省时间,并且除了Java的局限性之外,您不会损失任何东西。

      @Dario:Twitter不是用Java编写的,是吗?我想他们正在使用Ruby on Rails。@难以捉摸-twitter前端是RoR,消息队列后端是基于RoR的Scala@oxbow_lakes:那好吧。感谢您指出:)Scala是一种通用语言。没有专门设计的“杀手级应用”。但是它的“抽象建议”使得编写任何应用程序都比用Java编写相应的程序更容易。但是actors库“Akka”也为Java actors提供了绑定。而且,在您的回答中,它并没有将scala与Erlang区分开来!是的,这在Erlang同样是杀手锏。我不是下选者,但我不喜欢这样的想法,如果它是图灵完全的,它可以用于任何事情。这就像说你可以用Javascript编写中断处理程序。是的,但我接着指出,它也有和Java一样的库。Scala可以有一个杀手级的功能,这是肯定的——但是,正如目前提出的问题,“它也在进入这个领域!”这是毫无意义的。我指的是Kunle Olukotun在ScalaDays2010上所说的。这是第二天的主题演讲,我预计我们将在未来6-12个月内开始看到这项工作的“成果”。它是关于使用Scala创建一个DSL,它可以编译成一个并行执行平台。至少,我想他是这么说的!VI(编辑器)是图灵完成的。这并不意味着我想用它来满足我的日常编程需求。Scala使某些事情比java更容易。我想这就是问题所在。
      lazy val fibs: Stream[Int] = 0 ::# 
        ( 1 ::# 
          fib.zip(fibs.tail).map { case (a,b) => a + b)))