V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
casillasyi
V2EX  ›  程序员

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

  •  1
     
  •   casillasyi · Feb 20, 2019 · 14941 views
    This topic created in 2633 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
        1
    shylockhg  
       Feb 20, 2019   ❤️ 1
    贵公司管理这么宽松么
    casillasyi
        2
    casillasyi  
    OP
       Feb 20, 2019
    @shylockhg 请问什么公司会干涉你学习
    quickma
        3
    quickma  
       Feb 20, 2019
    比 Java 设计先进的语言多了去了。
    nicevar
        4
    nicevar  
       Feb 20, 2019
    不用滋了,就这两个还需要放弃一个?一起学了就行了
    casillasyi
        5
    casillasyi  
    OP
       Feb 20, 2019 via Android
    @x7395759 是这样,但 jvm 的会说顺我者昌逆我者亡
    VDimos
        6
    VDimos  
       Feb 20, 2019 via Android
    学 clojure 还不如学 rust 来得实在
    Lonely
        7
    Lonely  
       Feb 20, 2019 via iPhone
    没兴趣滋醒你
    BBCCBB
        8
    BBCCBB  
       Feb 20, 2019
    没必要,真的, 浪费时间... 当然如果你自己喜欢, 有时间提升自己, 不为当下的生活发愁, 那当我没说
    shylockhg
        9
    shylockhg  
       Feb 20, 2019
    @casillasyi 我听你你的描述像是要用在公司,如果不用再公司你说啥各方面压力?
    BBCCBB
        10
    BBCCBB  
       Feb 20, 2019
    不如学 go
    zcsz
        11
    zcsz  
       Feb 20, 2019   ❤️ 3
    C#写起来比 Java 爽不少,公司还是义无反顾的转了,我们这儿才刚转 Java,老哥都考虑 Java 下一阶段了,
    glues
        12
    glues  
       Feb 20, 2019   ❤️ 2
    不用滋了,一周后可能就被劝退了
    orangeade
        13
    orangeade  
       Feb 20, 2019 via Android
    反正个人项目我才懒得用 Java,工作的话看公司的
    casillasyi
        14
    casillasyi  
    OP
       Feb 20, 2019
    @shylockhg 是想在公司小范围推广,但氛围比较 open,不至于被干掉
    cuebyte
        15
    cuebyte  
       Feb 20, 2019
    醒醒,看看 kotlin 和 vert.x 吧。
    wutiantong
        16
    wutiantong  
       Feb 20, 2019
    如同舍本求末
    casillasyi
        17
    casillasyi  
    OP
       Feb 20, 2019
    @wutiantong 并不能这么说,jvm 是个优秀的东西,只给 java 用真是浪费,哈哈
    mooncakejs
        18
    mooncakejs  
       Feb 20, 2019
    换语言一时爽,换工作两行泪啊。
    wutiantong
        19
    wutiantong  
       Feb 20, 2019
    @casillasyi 你又不是直接用 jvm,所以呢?
    lihongjie0209
        20
    lihongjie0209  
       Feb 20, 2019
    你们怎么招人

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

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

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

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

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

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

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

    坐标深圳,游戏公司。

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

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


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



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