Spark平台下,scala比java更有优势么?

理由
举报 取消

之前为了用spark学过scala,但后来还是用java实现的。scala有哪些优势? 除了在spark平台之外还有哪些地方能用到?这货会取代java么?

2017年7月24日 4 条回复 695 次浏览

发起人:xaod 初入职场

回复 ( 4 )

  1. 夏梓耀
    理由
    举报 取消

    1. 从Scala的集合操作移步到Spark的RDD操作很自然,而Java则是跨过去的,容易扯到蛋,这就是Spark平台下的优势

    1.5 Scala的优势

    优势非常多:

    a. 静态强类型加类型推导,类型安全,打字还少

    b. Scala是一门图灵完备的语言,Scala类型系统也是一门图灵完备的语言

    c. 函数式编程和面向对象的有机结合,既可以装高冷,又可以做实事

    d. 可以用任何的Java库,JVM一家亲

    e. 编译速度慢,但是开发效率高啊 (呵呵)

    f. 生态系统构建的不错,各种库都有

    g. 等等等

    2. 任何地方都可以用,任何Java能用的地方都可以用Scala (都是通用语言)

    3. 会不会取代Java?

    光从语言上看:肯定是能取代Java了,都可以看出是不同时代的产物了(求Java同僚放过)

    然而我想说的是,不要只是观望啊!大家都只是观望而不去实际学一学,用一用的话,如何来得取代之说呢?

  2. 李冰
    理由
    举报 取消

    你不觉得用scala写spark比用Java写精简很多吗?这就是优势。而且spark的很多设计和scala是一致的,所以写惯了scala的人,写spark特别的简单。而Java就不一样了,虽然Java也能写,但是spark的风格和Java完全不同,写起来会比较怪。(主要是Java不是函数式语言)

    至于其他应用,akka,play什么的也是用scala开发的。不过基本上所有scala开发的lib都有Java接口,谁让他们都是JVM上的语言呢~能兼容Java当然要兼容一下,方便推广。

    至于会不会替代Java,我觉得难。你看c++这么些年有没有替代c?说实话Java比scala好学很多,而且函数式语言并不是全方面都比命令式语言强,只能是各有千秋。只不过在数据处理方面函数式用起来舒服些,但是比如GUI开发等方面函数式就恶心了。

  3. int32bit
    理由
    举报 取消

    scala语法丰富,不过也显得比较复杂,使用scala写spark程序最方便的就是函数式编程、链式编程已及类型自动推导,当然还有其他一堆特性!不过java 8也支持lambda了,不需要再像以前那样写一堆匿名类了,能够支持类型自动推导就更好了(c++11引入 auto关键字),这样能够大幅度减少java程序的臃肿问题。因为scala更像脚本语言,写起来更方便、更自然,效率更高,并且spark本身也是scala实现的,因此主流还是使用scala作为spark开发语言。

  4. 笨鸟
    理由
    举报 取消

    小公司自己喜欢哪个用哪个。

    scala简洁是不假,替代java是想太多。不说别的领域web hadoop什么。仅说spark,一个弱类型语言你们怎么多人协作。题主你在没有详细注释的情况下是愿意维护别人用java写的spark app还是scala。

    分割线

    我愚蠢了,scala是强类型。只是我被它的隐式转换误导了。

我来回答

Captcha 点击图片更换验证码