犹豫要不要学习scala,想了解下它的好处到底在哪里?尤其是和java相比在网上搜了一下,大概有支持jvm运行,一些词法,语法上的简化。(其实在我看来这些算不上什么优点,不同的语言有不同的语法习惯而己)不太理解的是scala在多核CPU上的优势。还有为什么说scala是分布式语言。

解决方案 »

  1.   

    为什么选择Scala?
      

  2.   

    看了一下,可能是我没看懂,仍然没有吸引我学习scala。我想了解下为什么说scala是分布式语言。我看除了一些语法,写作习惯上有些不一样以外,没觉得在多cpu和分布式上有什么优势啊。网上的文章都只谈了单台机器上使用scala,没见一个人说多台机器怎么用。以及比一些基于java的公布式开源包(如jgroups, jcs)有什么特别的地方
      

  3.   

    你属于语法不敏感的程序员,和我不一样,不过这样也不是坏事,专心搞Java不错。
      

  4.   


    对滴,我更关心功能。代码多写几个字,少写几个字有什么关系。不要太晦涩就好。别像brainf*ck就好。另外写少量的代码能实现强大的功能也是我喜欢的。
    比如在方法上加个synchronizedAll可以同步同一个网段内的所有机器对这个方法的执行。某ExecutorService可以自动把runnale按负载均衡分配到其它机器上去执行。
    有这样的类或关键字才是分布式的关键啊。把语法调整一下又有什么用呢。呵呵,可能是我坐井观天了,求scala大神改错。
      

  5.   


    请教下现在的java/jvm在多核CPU上有哪些不足的地方?scala与java相比在多核CPU上有哪些优点?为什么?
      

  6.   


    老实说,Java确实很容易造成代码量大,不过幸好Java语言过于简单,以至于代码量上去了,出错率还是很低的。
    但是很多人不喜欢Java,就是因为他太罗嗦了。因为你关心功能本身,那就无所谓了,语言不起什么决定性的作用,只是重要元素之一。
    而且Scala现在也是半死不活的,都排名到50了,有啥意思呢。
      

  7.   


    我了解不多,也许很多东西在库上可以弥补,可能不行。Scala和Java不同的地方,是Java强调变量,Scala是函数式编程,有个值的概念,val,
    在并行计算中,这种量好像更容易被优化吧?好像是,貌似以前看到过。而过程式的变量很难被优化。
      

  8.   

    看情况了。我的观点是“多研究些问题,少谈些主义”。能够解决更多实际问题,比发明新的语言、语法、语法糖实际。当然,不是说新的语言、语法、语法糖没用。但是,我感觉,现在java,特别是java无数线程的开源包,能够解决更多实际问题,虽然语法陈旧(比如,同样过滤一个List,.net的linq在语法上方便很多),但是这并不影响我的工作。很多时候,工具再先进,但是大部分工作需要你一个人完成,我还不如选择用老式工具,但是大部分任务人家已经帮忙搞定的方式。虽然有时候,共同的东西可以积累,但是维护、扩展等工作既然有社区在维护,何乐而不为?喜欢Java的理由,主要就在这点上。
      

  9.   

    java的类库、第三方库基本都可以在scala(jvm)中使用。scala性能和java差别微乎其微。
    scala的表达能力比java强,同样的功能代码更少,