• 请不要在回答技术问题时复制粘贴 AI 生成的内容
casillasyi
V2EX  ›  程序员

最近在准备弃了 Java ,入 Clojure 的坑

  •  1
     
  •   casillasyi · Feb 20, 2019 · 15657 views
    This topic created in 2819 days ago, the information mentioned may be changed or developed.
    面临的现实问题就是人少!
    无论从语言设计还是并发性能等等的各个方面,Clojure 都是一个更先进的生产力工具。但做 java 的人浩如烟海,要选择 Clojure 的坑,必然在公司会孤军奋战,承受各方面压力。

    现在刚开始学,求滋醒!
    Supplement 1  ·  Feb 20, 2019
    看了大家的建议:
    1.jvm 上的语言不存在非黑即白的关系,都了解一下不是坏事
    2.Java 现在和未来 10 年都依然会大行其道,这点毋庸置疑
    3.kotlin 语言本身谷歌官方推荐,未来可能会成为安卓的默认语言,但服务端个人感觉没有推动力
    4.或许我真正该关注的是,学一个非 jvm 的语言作为第二语言,erlang 或者 ruby,哈哈
    Supplement 2  ·  Feb 21, 2019
    我这个标题 naive 了
    96 replies  •  2020-06-05 07:07:28 +08:00
    shylockhg
    shylockhg
    Feb 20, 2019❤️1
    1
    贵公司管理这么宽松么
    casillasyi
    casillasyi
    OP
    Feb 20, 2019
    2
    @shylockhg 请问什么公司会干涉你学习
    quickma
    quickma
    Feb 20, 2019
    3
    比 Java 设计先进的语言多了去了。
    nicevar
    nicevar
    Feb 20, 2019
    4
    不用滋了,就这两个还需要放弃一个?一起学了就行了
    casillasyi
    casillasyi
    OP
    Feb 20, 2019 via Android
    5
    @x7395759 是这样,但 jvm 的会说顺我者昌逆我者亡
    VDimos
    VDimos
    Feb 20, 2019 via Android
    6
    学 clojure 还不如学 rust 来得实在
    Lonely
    Lonely
    Feb 20, 2019 via iPhone
    7
    没兴趣滋醒你
    BBCCBB
    BBCCBB
    Feb 20, 2019
    8
    没必要,真的, 浪费时间... 当然如果你自己喜欢, 有时间提升自己, 不为当下的生活发愁, 那当我没说
    shylockhg
    shylockhg
    Feb 20, 2019
    9
    @casillasyi 我听你你的描述像是要用在公司,如果不用再公司你说啥各方面压力?
    BBCCBB
    BBCCBB
    Feb 20, 2019
    10
    不如学 go
    zcsz
    zcsz
    Feb 20, 2019❤️3
    11
    C#写起来比 Java 爽不少,公司还是义无反顾的转了,我们这儿才刚转 Java,老哥都考虑 Java 下一阶段了,
    glues
    glues
    Feb 20, 2019❤️2
    12
    不用滋了,一周后可能就被劝退了
    orangeade
    orangeade
    Feb 20, 2019 via Android
    13
    反正个人项目我才懒得用 Java,工作的话看公司的
    casillasyi
    casillasyi
    OP
    Feb 20, 2019
    14
    @shylockhg 是想在公司小范围推广,但氛围比较 open,不至于被干掉
    cuebyte
    cuebyte
    Feb 20, 2019
    15
    醒醒,看看 kotlin 和 vert.x 吧。
    wutiantong
    wutiantong
    Feb 20, 2019
    16
    如同舍本求末
    casillasyi
    casillasyi
    OP
    Feb 20, 2019
    17
    @wutiantong 并不能这么说,jvm 是个优秀的东西,只给 java 用真是浪费,哈哈
    mooncakejs
    mooncakejs
    Feb 20, 2019
    18
    换语言一时爽,换工作两行泪啊。
    wutiantong
    wutiantong
    Feb 20, 2019
    19
    @casillasyi 你又不是直接用 jvm,所以呢?
    lihongjie0209
    lihongjie0209
    Feb 20, 2019
    20
    你们怎么招人

    你推广同事为什么要学,不想早点下班嘛

    为了个人原因推广 xxx 导致同事加班你就不内疚嘛
    skyrem
    skyrem
    Feb 20, 2019❤️1
    21
    为什么不试试 scala 呢
    zhaoliguo
    zhaoliguo
    Feb 20, 2019 via Android
    22
    我们正在从 Java 转 goⅠang
    wutiantong
    wutiantong
    Feb 20, 2019
    23
    @casillasyi 所以要我说,你应该把 base 在 jvm 上的语言都学一遍,最好能融会贯通。而不是去“舍 Java,入 Clojure ”。
    casillasyi
    casillasyi
    OP
    Feb 20, 2019
    25
    @lihongjie0209 您既然这么说,我只能说抛开 Clojure,学习带来的短暂的加班和长期的效率提升,然后长期的减少加班,您怎么选。
    casillasyi
    casillasyi
    OP
    Feb 20, 2019❤️1
    26
    @mooncakejs 看了上半句,我以为下半句是一直换语言一直双爽
    casillasyi
    casillasyi
    OP
    Feb 20, 2019
    27
    @wutiantong 也对,我 naive 了
    notreami
    notreami
    Feb 20, 2019
    28
    @casillasyi 根据什么原理预估出来加班的呢??
    说其他语言不加班的,你们难道写的是 hello world ?
    业务需求不清晰,功能多,排期紧,啥语言不加班?
    HangoX
    HangoX
    Feb 20, 2019
    29
    不说别的,java 就胜在多,人多,资源多
    smeraldo
    smeraldo
    Feb 20, 2019
    30
    一个人用没问题。
    如果要在公司用,怎么说服同事接受,怎么和同事协作?
    如果想换公司,没有工程经验怎么找工作?
    wdv2ly
    wdv2ly
    Feb 20, 2019
    31
    我司后端已经上 clojure 好多年,目前基本已经完全 clojure 化,有兴趣可以来看看。
    4DAX07B8Kle4Dm6T
    4DAX07B8Kle4Dm6T
    Feb 20, 2019 via iPhone
    32
    求你们别学了,我真跟不上
    casillasyi
    casillasyi
    OP
    Feb 20, 2019 via Android
    33
    @notreami 业务问题不在讨论范围,而且我说的是减少加班。同样的并发,java 的处理就是更加复杂,后期的运维成本也更高
    Raisu
    Raisu
    Feb 20, 2019 via Android
    34
    不是为了钱,谁会用 Java
    casillasyi
    casillasyi
    OP
    Feb 20, 2019 via Android
    35
    @Raisu 也不能这么说,java 工作机会多,但大部分写业务的,给的并不多
    murmur
    murmur
    Feb 20, 2019
    36
    为什么不 kotlin
    ChiangDi
    ChiangDi
    Feb 20, 2019
    37
    小孩子才做选择,大人全都要
    icerhe
    icerhe
    Feb 20, 2019
    38
    学什么东西是你的自由,又没人拦着你,你来这边求什么?
    richard1122
    richard1122
    Feb 20, 2019
    39
    如果从 java 开始换语言我觉得 kotlin 比较好,基本可以渐进试替换
    bumz
    bumz
    Feb 20, 2019
    40
    1. 既然都是基于 JVM,「并发性能」的差异只能说是库、框架以及实现思路导致的差异,而不是 Clojure 导致的
    2. 曲高和寡的语言设计在实践中未必比大众的语言设计更有效益

    当然了解一个 lisp 系的语言对整个思维还是很有帮助的,只不过轻易换语言往往是火葬场
    sadhen
    sadhen
    Feb 20, 2019
    41
    学 Scala 吧,可以无缝和 Java 项目混合编写,建议从用 Scala 写单元测试开始

    可以关注一下我的 闲话 Scala 知乎专栏 https://zhuanlan.zhihu.com/scalastyle
    aijam
    aijam
    Feb 20, 2019
    42
    ?t=337
    sadhen
    sadhen
    Feb 20, 2019
    43
    如果你对 Scheme 感兴趣,可以在业余时间参与我 Maintain 的项目: https://github.com/texmacs/

    不建议在 Clojure 上投入过多时间,从赚钱养家角度,投入产出比比较低。
    kx5d62Jn1J9MjoXP
    kx5d62Jn1J9MjoXP
    Feb 20, 2019
    44
    你是在逃避些什么么?因为 Closure 未必是坑,但是坑位少
    CANTI
    CANTI
    Feb 20, 2019
    45
    看到楼主最后一句现在刚开始学...我还以为前面一段话是实践出真知已经用在项目里才有感而发的内心感悟
    oldmanHua
    oldmanHua
    Feb 20, 2019❤️1
    46
    360 行,行行转 Java
    hujianxin
    hujianxin
    Feb 20, 2019
    47
    选择一个小众的语言并不会让你真正牛逼,只是会在少数不懂行的人眼里显得牛逼而已
    cgpiao
    cgpiao
    Feb 20, 2019
    48
    kotlin or scala 吧,其他的我觉得没有必要学习。
    grantonzhuang
    grantonzhuang
    Feb 20, 2019 via Android
    49
    @wdv2ly 大佬在哪的
    tinybaby365
    tinybaby365
    Feb 20, 2019
    50
    孤军奋战,什么语言都可以。军团作战,我还只认 Java !
    myyou
    myyou
    Feb 20, 2019
    51
    学另一门 JVM 语言不如学 Scala,对 Lisp 感兴趣不如学 scheme
    hkitdog
    hkitdog
    Feb 20, 2019❤️1
    52
    CRUD 什么语言都可以
    casillasyi
    casillasyi
    OP
    Feb 20, 2019
    53
    @hujianxin 不能认同,要为了装逼,学个 haskell 什么的不挺好吗。最终还是想开阔眼界,提升效率
    hkitdog
    hkitdog
    Feb 20, 2019
    54
    @aijam 聽不懂。。。。
    RoyL
    RoyL
    Feb 20, 2019
    55
    有多大意义,准备让公司不好招人离不开你?哈哈
    Jonz
    Jonz
    Feb 20, 2019
    56
    来了新公司以后,用 clojure 和 kotlin 各写了两三个服务端的项目,感觉就是换换口味,尝试点新的总是不会错的。
    Jonz
    Jonz
    Feb 20, 2019
    57
    @wdv2ly 做啥项目的~~
    yuyueMJ
    yuyueMJ
    Feb 20, 2019
    58
    @shylockhg 是呀 楼主上来第一条回复就让人不太舒服
    momocraft
    momocraft
    Feb 20, 2019
    59
    有哪些东西使得 clojure 并发性能好呢
    eternaldzw
    eternaldzw
    Feb 20, 2019
    60
    把手上的项目全改一遍,然后没人会,公司不会辞退你,好像有点小开心
    Narcissu5
    Narcissu5
    Feb 20, 2019
    61
    Clojure 作为一个业务爱好就好,吃饭靠这个就不靠谱了。我记得当年在 repl 里面按 backspace 不会删掉前面的字符而是会打印一个^B 出来,输错一点就斯密达,基本没法用。

    Clojure 唯一的大型项目大概就是 Storm 吧,然后被 jstorm 全面超越。之前有段时间说 storm 2 会全面采用 jstorm,后面好像没动静了
    kex0916
    kex0916
    Feb 20, 2019
    62
    可以试试 scala 瑟
    tao147258
    tao147258
    Feb 20, 2019
    63
    年轻人,哈哈
    waruqi
    waruqi
    Feb 20, 2019 via Android
    64
    可以自己先做个新语言,然后再开始做项目 逼格更高
    passerbytiny
    passerbytiny
    Feb 20, 2019
    65
    想学 Clojure 可以,别拿 Java 说事。

    看了下 Clojure 的百科,Clojure 是 Lisp 编程语言在 Java 平台上的现代、动态及函数式方言,即 Clojure 时 Java 平台的 Lisp 方言。你做多说弃 Spring、Hibernate 入 Clojure,弃个毛的 Java。
    peterontheway
    peterontheway
    Feb 20, 2019
    66
    我们公司服务端全面使用 kotlin 已经快 2 年了,哈哈。
    完全没有客户端的
    aijam
    aijam
    Feb 20, 2019
    67
    @hkitdog 视频大意就是说,别折腾了省省吧 :p
    casillasyi
    casillasyi
    OP
    Feb 20, 2019
    68
    @shihty5 贵司有眼光啊
    hikarugo
    hikarugo
    Feb 20, 2019
    69
    学语言真的没意思,语言要用在对应的领域里才有存在的价值。需求驱动开发是最好的学习路径。个人的价值是完全依赖业务能力,也就是领域知识,和语言精通能力不能说完全没有关系,占个 1%吧
    xpresslink
    xpresslink
    Feb 20, 2019
    70
    不就是搬砖嘛,工地让你用什么砖夹你就用什么夹,让你怎么码你就怎么码。
    casillasyi
    casillasyi
    OP
    Feb 20, 2019 via Android
    71
    @fyxtc 不能认同哦
    flyll
    flyll
    Feb 20, 2019
    72
    正在学习 c++中。。。。ps:纯 swift 开发近 3 年
    liuyibao
    liuyibao
    Feb 20, 2019
    73
    Java 的市场需求大,搞 Java 的人也特别多。这是优点,也是个缺点。
    casillasyi
    casillasyi
    OP
    Feb 20, 2019
    74
    @flyll swift 是好东西,语言学习价值很高,可惜我不开发 ios,要是有时间真的可以单纯的学习一下这个语言。
    zhuangzhuang1988
    zhuangzhuang1988
    Feb 20, 2019
    75
    拓展眼界
    不过工作上最好别
    rayingecho
    rayingecho
    Feb 20, 2019
    76
    作为消遣还是不错的, 但假如是为了生产力(赚钱), 推荐看看王垠的<我为什么不再做 PL 人>
    ArcherD
    ArcherD
    Feb 20, 2019 via Android
    77
    。动态的就不要对性能有太大的期待了吧
    fan123199
    fan123199
    Feb 20, 2019
    78
    果断 kotlin,感受极简代码量
    wdv2ly
    wdv2ly
    Feb 20, 2019
    79
    @grantonzhuang
    @Jonz

    坐标深圳,游戏公司。

    老板是程序出身,写了 20 多年代码,到现在还是后端“主程”级别的存在🙃

    公司技术氛围浓厚,目前运营同事都要求学 Clojure 了
    abcbuzhiming
    abcbuzhiming
    Feb 20, 2019
    80
    生产力工具从来就不是越先进越好的,有篇文章专门谈过这个问题,当年的大牛们都认为 haskwell 是“先进设计”,而 C 语言是“落后,丑陋,愚笨”的设计,然后赢得历史的却是 C
    casillasyi
    casillasyi
    OP
    Feb 20, 2019 via Android
    81
    @abcbuzhiming 生产力工具永远都是进步的,而且必然是越先进越好,只是兴衰不由单纯的设计决定。
    6MuDvoa2kh
    6MuDvoa2kh
    Feb 20, 2019
    82
    语言只是一个工具,我觉得还不如 多刷刷算法 提升基础来的实在
    luozic
    luozic
    Feb 20, 2019 via iPhone
    83
    要么 kotlin 要么 scala,上这个 Java 上的 lisp 是要写框架么?
    youngxhui
    youngxhui
    Feb 20, 2019
    84
    kotlin 基本和 java 兼容,可以把业务代码一步步的换成 kotlin
    grantonzhuang
    grantonzhuang
    Feb 21, 2019 via Android
    85
    @wdv2ly 那我大概知道是哪一家了,招聘网站上看过~
    szq8014
    szq8014
    Feb 21, 2019
    86
    @oldmanHua 23333
    jjx
    jjx
    Feb 21, 2019
    87
    java 系的语言, 换什么都离不开这个生态, 还是熟悉的味道
    abcbuzhiming
    abcbuzhiming
    Feb 21, 2019
    88
    @casillasyi 极客的想法罢了,技术要服务于现实,你再先进,现实不接受又如何?不过就是孤芳自赏罢了,就像我前面说的,“设计良好”的 Haskwell 败给了“愚笨”的 C。说到底,生产力工具是要拿来用的,又不是光发论文,理论先进就行了
    CoderGeek
    CoderGeek
    Feb 21, 2019
    89
    有什么区别... 看心情了
    lihongjie0209
    lihongjie0209
    Feb 21, 2019
    90
    @casillasyi 你觉得加班的原因是语言嘛?多一些语言特性和语法糖能加快开发的话早就大面积铺开了
    lihongjie0209
    lihongjie0209
    Feb 21, 2019
    91
    当我们在考虑一个技术的时候,要首先考虑它带来的代价, 其次才是它带来的好处
    lihongjie0209
    lihongjie0209
    Feb 21, 2019❤️1
    92
    https://www.quora.com/What-are-the-downsides-of-Clojure


    参考一下这个,文章把 Clojure 的优缺点都列出来了



    你想要的可能是优点 1,3,5, 但是它带来的缺点是 1-10, 不管要使用多少特性, 请你记住,它带来的代价是固定的,做决定之前要考虑清楚
    defclass
    defclass
    Feb 21, 2019❤️1
    93
    一个 4 年 clojure 程序员路过, 顺便贴一个链接 http://www.yinwang.org/blog-cn/2017/07/06/master-pl
    casillasyi
    casillasyi
    OP
    Feb 21, 2019
    94
    @defclass 受益匪浅
    jingxujuan
    jingxujuan
    May 16, 2019
    95
    我司一直用 clojure,目前也在招人,感兴趣可以加我
    3rdFaust
    3rdFaust
    Jun 5, 2020
    96
    LISP 的确符合我的编程审美
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2586 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 132ms · UTC 11:13 · PVG 19:13 · LAX 03:13 · JFK 06:13
    ♥ Do have faith in what you're doing.