最近在准备弃了 Java ,入 Clojure 的坑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
casillasyi
V2EX    程序员

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

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

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

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

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

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

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

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

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

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

坐标深圳,游戏公司。

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

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


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



你想要的可能是优点 1,3,5, 但是它带来的缺点是 1-10, 不管要使用多少特性, 请你记住,它带来的代价是固定的,做决定之前要考虑清楚
defclass
    93
defclass  
   2019 年 2 月 21 日   1
一个 4 年 clojure 程序员路过, 顺便贴一个链接 http://www.yinwang.org/blog-cn/2017/07/06/master-pl
casillasyi
    94
casillasyi  
OP
   2019 年 2 月 21 日
@defclass 受益匪浅
jingxujuan
    95
jingxujuan  
   2019 年 5 月 16 日
我司一直用 clojure,目前也在招人,感兴趣可以加我
3rdFaust
    96
3rdFaust  
   2020 年 6 月 5 日
LISP 的确符合我的编程审美
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2792 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 34ms UTC 09:14 PVG 17:14 LAX 01:14 JFK 05:14
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