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

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

  •  1
     
  •   casillasyi · 266 天前 · 7664 次点击
    这是一个创建于 266 天前的主题,其中的信息可能已经有所发展或是发生改变。
    面临的现实问题就是人少!
    无论从语言设计还是并发性能等等的各个方面,Clojure 都是一个更先进的生产力工具。但做 java 的人浩如烟海,要选择 Clojure 的坑,必然在公司会孤军奋战,承受各方面压力。

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

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

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

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

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

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

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

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

    坐标深圳,游戏公司。

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

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


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



    你想要的可能是优点 1,3,5, 但是它带来的缺点是 1-10, 不管要使用多少特性, 请你记住,它带来的代价是固定的,做决定之前要考虑清楚
        93
    defclass   265 天前   ♥ 1
    一个 4 年 clojure 程序员路过, 顺便贴一个链接 http://www.yinwang.org/blog-cn/2017/07/06/master-pl
        94
    casillasyi   265 天前
    @defclass 受益匪浅
        95
    jingxujuan   181 天前
    我司一直用 clojure,目前也在招人,感兴趣可以加我
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2374 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 31ms · UTC 00:36 · PVG 08:36 · LAX 16:36 · JFK 19:36
    ♥ Do have faith in what you're doing.