Clojure的活力是不是在慢慢消失?

受elisp的影响,最近有些兴趣了解一下Clojure。但是在github上浏览一些clojure项目后发现很多项目最近好几年都没有任何动静,甚至有些有不少贡献者的项目也是这种状况。看看这些项目作者最近的动态,往往他们最近写的东西也不用clojure。

我有点好奇,难不成Clojure的活力已经在慢慢消失了吗?大家注意力已经转向更加fancy的语言,诸如Rust,Julia之类?

Lisp 风格注定难主流。现在的主流是混杂 C 和 Haskell 的静态强类型语言,Rust 比较好的卡位了。

但是,依托 Java 的优势,如果你可以用而且喜欢用,那就大胆用Clojure好了,其REPL风格才是编程的正途,那帮误入歧途的人早晚会明白这点的。

Lisp 家族如Common Lisp, Scheme, Racket, Clojure, Smalltalk家族如 Squeak, Pharo, Cuis Smalltalk, Erlang 家族如 Erlang, Elixir, ML 家族如 SML, OCaml, F#, Haskell 家族如 Haskell, Agda, Idris,这些都是闪闪发光的牛逼语言,Rust 的风光会过去的,留下一地鸡毛。

Go 比较克制,可以当工具,Julia, Python 都是工具,不妨碍用,Scala 3前途未卜。

Clojure 的库很多就是不更新了,但是非常稳定,有些库实在很小,也没有什么好更新的,加上 Clojure 有双向的很好的兼容(向前向后)。举个例子:

https://github.com/clojure/tools.logging 已经不更新了,但是也没有什么可更新的

但是还有改进空间的基础库依然在更新

https://github.com/clojure/core.async 很多年了 API 没有改过,但是一直在完善

Clojure 也有很多在更新的库,但由于 Clojure 的主流和传统的主流走的流线不一样,所以可能不会被人注意到。如果你看 Clojure 的数据库相关,如果你在看主流的 ORM ,那么你大概会找到这个:

https://github.com/korma/Korma 已经不更新了,ORM 在 Clojure 社区是被抛弃的方向

但是这个不是 Clojure 主流的方向,Clojure 更倾向于 Raw SQL 或 Datalog. 比如说这个:

https://github.com/xtdb/xtdb 在积极更新中

10 个赞

还有 java 那边的改进,loom 虚拟线程快好了,zgc 最新gc的时延的降低和吞吐的提升,graalvm native compile 带来的内存降低,启动加快等等。jvm的语言还有好多东西可以玩。

我举个例子吧,一些设计的很好的语言没人用,比如Lisp, Ada
而设计很差的语言有很多人用,比如C++, Javascript
由于用的人多,有很多人帮他改进,比如 typescript
我觉得不是语言的问题,是风口的问题,站在风口上,猪都能起飞
比如类型系统上Python设计的没有Julia好,可他确提前站在人工智能的风口上起飞,生态比Julia丰富,这样我们很难取舍

不用取舍,喜欢的都用。不可能一门语言用到底,看具体任务,哪个合适就用哪个,实在没有合适的,可能还得自己造一个。

现在比较热门的双链笔记应用,是基于 Clojure,最出名的是 Logseq,从某种程度来说,Clojure 因为参与了面向大众的项目,应该获得了更多活力才对

1 个赞

话说Clojure好像整个团队都被一个什么银行给收购了。

不过DataScript还是yyds

是(字数补丁

而且整个Clojure社区主要就是围绕slack进行,也让人觉得很奇怪。

参考QUEL与SQL

如果是自己一个人做东西,还是强烈建议学一下 Clojure 和 ClojureScript,整个社区虽然在缩水,但是还是有一批铁杆在维护必要的库(比如我自己),可以说够用,非常够用。

如果是和很多人协作,需要安利和传教的话还是不建议在推广 Clojure 了。

1 个赞

那么现在传教的话该传那种Lisp呢? :sweat_smile:

如果可以的,还是别传 lisp 了。学了 lisp 就抛弃了全世界,同时也被全世界抛弃了 :rofl:

3 个赞

语言学多了应该会有自己的喜好吧,大概率和外界主流不一样,这时选择放弃自己喜好跟随外界主流也没什么不对的

3 个赞

Clojure 的伙伴太难找,感觉有些时候一个人能力实在有限。

1 个赞

太多了啊,Common Lisp, Scheme, Racket, Mathematica, Maxima, R, JavaScript, TypeScript。

哦,居然忘了 elisp…

Lisp, Ada 好评,Ada有个子集 Ada/Spark语言很厉害。

JavaScript, TypeScript也能被算成lisp吗?他们自己不也承认是大杂烩嘛 :rofl:

至于剩下的几个例子,基本比Clojure还要古老,要是Clojure的传不下去,这些元老感觉就更难吸引到新人了

R语言使用的人很多。不过,大部分人可能很少利用它的functional programming 和 meta programming。