有没人觉得 scala 语言很难? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
cirton
V2EX    程序员

有没人觉得 scala 语言很难?

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

    感觉 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
    F281M6Dh8DXpD1g2
        13
    F281M6Dh8DXpD1g2  
       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 的类型系统是我见过的最复杂的了
    em998
        21
    em998  
       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     Solana     5550 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 02:40 PVG 10:40 LAX 18:40 JFK 21:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86