V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cirton
V2EX  ›  程序员

有没人觉得 scala 语言很难?

  •  
  •   cirton · 2019-04-17 16:38:59 +08:00 · 7911 次点击
    这是一个创建于 2048 天前的主题,其中的信息可能已经有所发展或是发生改变。

    感觉 scala 比 java,python 等常见语言都要难。 讲真,API 文档都很难看懂,那一堆符号,看得头大。 一些高级功能更是难以理解。

    44 条回复    2019-04-18 14:57:13 +08:00
    liujianwei
        1
    liujianwei  
       2019-04-17 16:52:06 +08:00   ❤️ 1
    Scala 不是号称 JVM 上的 C++嘛~
    glaucus
        2
    glaucus  
       2019-04-17 16:55:07 +08:00
    Scala 本来就难啊
    tairan2006
        3
    tairan2006  
       2019-04-17 17:01:45 +08:00
    最复杂的语言
    linusyang
        4
    linusyang  
       2019-04-17 17:03:37 +08:00
    官方吐槽,最为致命。

    beneo
        5
    beneo  
       2019-04-17 17:05:51 +08:00
    当年 Scala 用的最多的 spark,后来 spark 的替代品也出来了,Scala 就不怎么用了
    sonicjam
        6
    sonicjam  
       2019-04-17 17:16:26 +08:00
    那一堆符号指的是 scala 的类型系统?
    13k
        7
    13k  
       2019-04-17 17:19:43 +08:00
    @beneo spark 的替代品是啥
    cirton
        8
    cirton  
    OP
       2019-04-17 17:23:04 +08:00
    @13k 指的是 flink 吧
    btv2bt
        9
    btv2bt  
       2019-04-17 17:23:05 +08:00
    可能用的比较深,喜欢的话可以用 JAVA 那种方式 ( doge
    cirton
        10
    cirton  
    OP
       2019-04-17 17:23:52 +08:00
    @linusyang 中间那行大标题是啥意思?
    cirton
        11
    cirton  
    OP
       2019-04-17 17:24:34 +08:00
    @liujianwei 感觉比 c++都难。。
    beneo
        12
    beneo  
       2019-04-17 17:24:40 +08:00
    @13k storm
    liprais
        13
    liprais  
       2019-04-17 17:25:16 +08:00
    scala 那堆符号是挺难理解的
    rockyou12
        14
    rockyou12  
       2019-04-17 17:30:00 +08:00   ❤️ 1
    不只复杂,和原生 java 兼容性烂得一 B,写个 list 转换都难受得要死
    ihainan
        15
    ihainan  
       2019-04-17 17:36:31 +08:00
    Scala 我觉得还行,写多了也能读懂那一堆语法糖,但是 SBT 真是一个不知道怎么吐槽的工具。

    https://www.reddit.com/r/scala/comments/5a6muj/sbt_makes_me_want_to_give_up_scala/
    salamanderMH
        16
    salamanderMH  
       2019-04-17 17:42:46 +08:00
    lisp 如何
    sonicjam
        17
    sonicjam  
       2019-04-17 17:43:59 +08:00
    @ihainan #15 感谢分享这个贴子,原来真的不是我英语不好……
    ihainan
        18
    ihainan  
       2019-04-17 17:48:29 +08:00
    @sonicjam 哈哈我一开始读 sbt 的文档也是跟你一样的想法,脑壳疼…
    blueskea
        19
    blueskea  
       2019-04-17 18:06:08 +08:00 via Android
    @cirton flink 很多东西是 scala 写的啊
    lululau
        20
    lululau  
       2019-04-17 18:14:38 +08:00
    同感 Scala 是最难的语言了,一般编程语言里比较复杂的部分是类型系统,Scala 的类型系统是我见过的最复杂的了
    wancaibida
        21
    wancaibida  
       2019-04-17 18:35:55 +08:00 via iPhone   ❤️ 1
    scala 写出来的就是文言文
    mangoDB
        22
    mangoDB  
       2019-04-17 18:51:10 +08:00
    最近刚刚接触 scala,真的晦涩难懂……
    coolmenu
        23
    coolmenu  
       2019-04-17 18:58:16 +08:00 via iPhone
    还是 clojure 好用点...
    monsoon
        24
    monsoon  
       2019-04-17 19:04:06 +08:00
    其实比 C++简单多了,而且语法都很有条理(那些没条理的很多 Scala 3 里面也会删除了)……我觉得 Scala 最难的那部分是如果你要懂 fp,要把 Haskell 那套东西学一遍比较难。
    比 Java 和 Python 复杂是的,但是你不用 Macro 或者 Type level 的那些东西,熟悉一段时间就会好起来的……
    saluton
        25
    saluton  
       2019-04-17 19:04:41 +08:00
    @beneo 你说 Flink 我还信,storm 替代 spark 有难度吧
    lastpass
        26
    lastpass  
       2019-04-17 19:15:34 +08:00 via Android
    感觉还行,难倒不是很难,但是有些编码风格贼不喜欢。比如,返回值可以不加 return,每行代码之间可以不加分号。然后 idea 还默认这个为警告。
    hantsy
        27
    hantsy  
       2019-04-17 19:43:07 +08:00
    java 8 吸收了很多 Scala 设计,现在 Java 也开始添加了 模式匹配了,Switch 使用方便多了。Scala 很多年前自己学过,当时觉得 Scala 语法怪怪的,而且一直没解决版本兼容性问题,看过那本 Scala for the Impatient, 可是放下去后一直没使用。
    使用过 Java 8 后,倒是觉得 Scala 语法没那么怪了。
    hantsy
        28
    hantsy  
       2019-04-17 19:43:49 +08:00
    @lastpass 现在不加 Return 的多的是,Kotlin 用表达式也可以,Groovy 好像一直都这样。
    woodfish
        29
    woodfish  
       2019-04-17 21:34:00 +08:00
    短符号用的太多,而且随场合不同含义还会不同,感觉非常难记忆。。。一本 programming scala 隔了一个月不看又得重头复习
    cyspy
        30
    cyspy  
       2019-04-17 22:28:42 +08:00
    Scala 的语法其实很简单,那一堆短语法都是函数,只是你不熟悉这些编程范式而已,我现在写 Python 不需要副作用的时候都基本上不用 for 了
    yuikns
        31
    yuikns  
       2019-04-17 22:28:55 +08:00 via iPhone
    只有我简单文本处理有时候直接 scala shell 搞定么?
    我感觉它比 python 好用多了
    glfpes
        32
    glfpes  
       2019-04-17 23:17:43 +08:00 via Android
    熟悉匿名函数更容易上手
    zhy0216
        33
    zhy0216  
       2019-04-17 23:29:22 +08:00 via iPhone
    推荐 functional programming in scala
    reid2017
        34
    reid2017  
       2019-04-17 23:47:15 +08:00 via iPhone
    除了 java 外的,都难…
    Narcissu5
        35
    Narcissu5  
       2019-04-17 23:58:49 +08:00   ❤️ 1
    最讽刺的是 sbt = simple build tool
    wc951
        36
    wc951  
       2019-04-18 07:59:38 +08:00 via Android
    scala 就是魔法太多,各种隐式的东西,不过也可能是我对函数式编程不太熟练的缘故
    luozic
        37
    luozic  
       2019-04-18 08:40:07 +08:00 via iPhone
    scala 的类型系统 啥时候在 dotc scala3 里面解决了,就再次玩这个语言,否则还不如去写 rust haskell 的
    zhanwh9
        38
    zhanwh9  
       2019-04-18 09:08:38 +08:00 via Android
    挺喜欢 Scala 的,虽然学习曲线比较陡峭,但是写着比较有趣,按一些人的说法就是像在写诗。可惜公司不用,而且由于一个功能写法很多,review 别人的代码也比较麻烦。
    congeec
        39
    congeec  
       2019-04-18 09:11:25 +08:00 via iPhone
    之前写过 Haskell 应该就没那么难了
    lszxlong
        40
    lszxlong  
       2019-04-18 09:46:39 +08:00
    @beneo storm 没法替代 spark,storm 只是一个实时计算,storm 应该比 spark 出来的早吧
    marcong95
        41
    marcong95  
       2019-04-18 11:35:09 +08:00   ❤️ 1
    @cirton #10 正常语境下 gateway drug 说的是大麻,指的就是“虽然大麻对身体危害不大,但是一旦抽上了大麻就很容易起去碰其他更大危害性的毒品”的这种情况。你可以自己把它类比到一下到这个 Scala 跟 Haskell 的关系上。
    cirton
        42
    cirton  
    OP
       2019-04-18 11:49:05 +08:00
    @marcong95 那这句话表达的意思就是 haskell 比 scala 还要更难吧?
    beneo
        43
    beneo  
       2019-04-18 12:18:44 +08:00
    @lszxlong
    @saluton

    我司就是这样,当然我不是说 spark 不如 storm,只是 storm 在公司内部 PK 中胜出,PK 当然不只是技术。
    cirton
        44
    cirton  
    OP
       2019-04-18 14:57:13 +08:00
    @beneo 正好相反,之前公司用的 storm,后来换成了 spark。估计你们公司对实时性要求比较高吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2953 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:11 · PVG 21:11 · LAX 05:11 · JFK 08:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.