在读《程序员的修炼之道》的时候,每每提到一些编程思想,如变换式编程、契约式编程等等,都会提到 Clojure 和 xxx 在语言层面支持这种编程方法。
《黑客与画家》中捧 LISP 的 Paul Graham,在此书出版近 20 多年后依然推荐 LISP,不过他这次推荐的方言是 Clojure,因为这已经是事实上最流行的方言。
A Programmer's Rantings的作者说,「实际上,我已经开始认为它是我见过的最好的程序设计语言了,然而不知怎么它就流行起来了」。
这门语言在很多主流的平台上都有实现,例如 JVM,CLR 和 JavaScript Host,所以在任何平台上都有用武之地。
本来我猜这个语言相关的书籍应该并不太多,结果我有点低估它了,真的有挺多资料。
最近开始看 Clojure 书籍的前言了,也许某个时候就会深入的学习和使用它。
@lcj2class 开设的电报群交流气氛很好,现在将邀请链接放在这里,便于有需要的人进入讨论 0.0
欢迎入伙: https://t.me/clojurists
1
cgpiao 2020-12-30 08:53:19 +08:00
close 的主流应用是哪方面,一直想了解纯函数式语言。
|
2
holulu 2020-12-30 08:54:37 +08:00
大学 CAD 画图的时候就写过 lisp
|
3
pythonee 2020-12-30 08:56:35 +08:00
想到了红烧肉姐
|
4
whileFalse 2020-12-30 09:00:41 +08:00
对这个语言不了解,既然 LZ 这么捧,那能说说这个语言适合哪种场景吗?在该场景下对比竞品语言有什么优势?
|
5
Jeb 2020-12-30 09:20:53 +08:00
国内 LeanCloud 在用 Clojure
|
7
Wincer 2020-12-30 09:41:02 +08:00 via Android 2
vscode 的插件写 clojure 挺舒服的
|
8
FaiChou 2020-12-30 09:53:25 +08:00 1
上一家公司全员 Clojure, 前端 ClojureScript. 老板在 17 年时候就开始推荐 clojure. 有兴趣我可以帮忙联系下.
https://tva1.sinaimg.cn/large/0081Kckwly1gm5n9zgklvj30u050p1ky.jpg |
9
ytll21 2020-12-30 10:00:03 +08:00
语言不错,可是太小众了,招不到人,上一点规模的企业都不敢用
|
11
zhuangzhuang1988 2020-12-30 10:09:30 +08:00
我们群里有人在看 metabase 源码, 经常问的是这个参数是啥意思, 该传啥, darklang 作者 也提到为何不选择 clojure(we spent a whole lot of time with dealing accidental complexity, specifically "what type is this field" and nulls all over the place. So I deliberately chose not to have a dynamically typed language, even though Clojure is a lovely language. ) https://blog.darklang.com/why-dark-didnt-choose-rust/
|
13
hexiaowu1993 2020-12-30 10:12:49 +08:00
不容易,难得能见到人提到 Clojure,在 17 年的时候,写了一年的 Clojure,不得不说,语法上面,Clojure 让人写起来还是很舒服的。
|
14
VHacker1989 2020-12-30 10:20:49 +08:00
反人类的函数式语法,oop 才是主流,这玩意不知道能干嘛,知名框架就一个 storm
|
15
cmdOptionKana 2020-12-30 10:24:19 +08:00 via Android
F#更好一点,楼主不妨也了解一下
|
16
TypeError 2020-12-30 12:20:15 +08:00 via Android
还是 oo 语言带一点函数式写法舒服,受不了纯函数式的
|
17
aloyuu 2020-12-30 12:26:11 +08:00 via Android
php C# 完美,其它一概不考虑
|
18
nguoidiqua 2020-12-30 12:30:23 +08:00
学着挺有意思的,但从来没真正用过,语法我觉得比其他 Lisp 方言要更好读一点。
|
19
P233 2020-12-30 12:31:23 +08:00
我也是最近一有空就看 clojure + clojurescript
|
20
secondwtq 2020-12-30 12:59:01 +08:00 1
据我所知,Clojure 最牛逼的应用是 Datomic,一个利用 Datalog 技术的数据库。也是 Clojure 的创造者 Rich Hickey 搞得
而该应用的一大硬伤在于,他是闭源的 … Cognitect 公司需要它赚钱来投入到 Clojure 中,而另一方面如果一个语言的 killer app 是闭源的,那么必然会严重影响该应用和该语言的应用(虽然我很怀疑任何一个 LISP 在现在能有什么大的应用) |
22
yanhh 2020-12-30 13:19:33 +08:00
Python 就是新的 Lisp
|
23
Jooooooooo 2020-12-30 14:44:25 +08:00
语言流行看生态
|
24
zfish 2020-12-30 14:52:39 +08:00
clean code 这本书的作者也在搞 Clojure 了,是个不错的语言,这是 JVM 端的函数式语言,也可以学学 BEVM ( Erlang )的 Elixir,也是函数式语言,天然分布式、高并发、容灾,同时支持 Lisp 类似的宏,用代码写代码。。。
|
25
defclass 2020-12-30 14:59:49 +08:00 4
我们在用 Clojure/ClojureScript 做一个开源的笔记软件 logseq, 对 Clojure 感兴趣的同学可以了解一下, : ) https://github.com/logseq/logseq
|
26
fengjianxinghun 2020-12-30 15:32:22 +08:00
@whileFalse 没有什么优势,lisp 血统就够了,纯粹是信仰。
|
27
chanchan 2020-12-30 15:36:48 +08:00
不喜欢,对比 scheme/racket
|
28
skenan 2020-12-30 15:52:18 +08:00 1
@defclass 哇塞,终于发现一个开源的 roam research 替代品,好奇为么 roam 和 你的这个 logseq 都要用 clojure 写呢?其他语言有啥瓶颈?
|
29
defclass 2020-12-30 15:58:54 +08:00 1
@skenan 其实还有类似的如 athens . 我觉得很大程度上是因为 ClojureScript 社区有比较方便的图数据库, 前端有 datascript, 后端有 datomic, 存储和查询笔记时的双向链接这种知识图谱比较方便.
|
31
SmiteChow 2020-12-31 10:58:25 +08:00
学习曲线巨高 比 Rust 不知高哪里去了 只因它是 pure function
买了一本 Clojure 书 已经吃灰很久了 |
34
lcj2class 2020-12-31 17:56:36 +08:00 1
欢迎入伙: https://t.me/clojurists
|
35
Team OP @cmdOptionKana #15 据我了解两种语言并不是对等的关系,在 JVM 里面和 F#对等是有,而且还很流行,当然具体是怎么拼忘记了.
Clojure 主要还是个 LISP 方言,F#没听说和 LISP 有关,至少不在维基百科的 LISP 列表中. 所以我推断你应该不太了解 LISP. |
36
AndyAO 2021-01-04 09:40:24 +08:00 1
defclass 的项目挺好的,是个很有用的工具,源代码也值得看.
看了 defclass 那帖子里的求职简介,感觉他是个很资深的开发人员 |
37
Team OP @cgpiao #1
@whileFalse #4 这两个问题很大,泛泛的回答的话,只能抛出几个词,但是没有深入的解释,其实那几个词也白给. 最近看到一篇文章,讨论 2020 年平均薪资最高的岗位,主要是应用什么编程语言,答案是 Clojure,这是 StackOverFlow 给出的数据,应该还是比较准确的. 文章简要的介绍了 Clojure 最近开始火爆的原因,我感觉比很多地方都讲得简洁而清晰,这里就贴一下,直接贴谷歌翻译的中文版,如果想看原文下面也有: > 根据 StackOverflow 的数据,Clojure 是收入最高的编程语言列表中的第一名,每年的收入超过$ 72,000 。 > > Clojure 之所以变得流行是因为它是一种简单的语言,可以解决大多数其他语言无法解决的许多现实问题。 > > 由于 Clojure 具有不可变数据结构的支持,因此可以更轻松地进行代码推理。您可以安全地孤立地考虑一段代码,而不必知道整个应用程序的状态。 > > 这也使编写处理并发性和并行性的应用程序变得容易得多。Clojure 在其标准库中提供了许多出色的并发原语,而最近的增减器和 core.async 进一步扩展了此工具集。 > > Clojure 的表达能力很强,您可以编写简洁而简洁的代码,而无需花费太多的仪式或样板。最重要的是,宏允许您轻松抽象代码中的重复模式。 > > 托管在 JVM 上意味着 Clojure 具有成熟的运行时,其中包含许多可用的现有库。在 TechEmpower 基准测试中,Clojure 框架运行良好,并且远远领先于 Ruby 和 Python 等效项。 > > 您还可以学习有关区块链的编程,这在最近非常需求。 > > 函数式编程绝对是值得关注和学习的东西。在生产中使用 Clojure 的公司的成功案例越来越多,没有理由期望这种趋势在可预见的将来会改变。 What are the highest paid programming languages? - Technology https://expertain.net/what-are-the-highest-paid-programming-languages/ 至于为什么,这些新起的小众语言薪资比较高,感觉这个观点是比较有解释力的: > 相当长一段时间里,豆瓣招聘的主要根据地就是 CPyUG 。找了解 Python 的程序员本身就完成了对员工的第一层筛选。在那几年里 Python 一直小众,一个懂 Python 的程序员大概率具备独立的审美与思考,而能主动学习一门自己认可的语言也已经完成了个人成长能力的证明。基于这些特质建立的早期团队也成为豆瓣的中坚。 [“教授”洪强宁和他穿越的技术江湖]( https://mp.weixin.qq.com/s/UCQaNMQ3rfCwfsOApCupyA) |
38
Team OP 如果用最短的话表示 Clojure 的优势就是,①LISP(或者元编程)和②函数式.
前者能够实现'设计模式'的复用,能定制 DSL,这个功能是非常强大的,Java 只能总结出'设计模式',而复用还是要靠码农脑子完成的,而 LISP 可以让机器自动完成. FP 中的函数,是没有任何副作用的,数据也是不可变的,这就导致处理数据的时候会非常方便,出错的时候稳定性强,而且天然的适合处理并发问题. 当然 Lisp 的很多方言也能实现,在方言当中 Clojure 的优势就是能够依托 JVM,CLR 和 JavaScript Host. |
39
JohnXu20151211 2021-01-19 21:01:35 +08:00
@zhuangzhuang1988 同啃 metabase 源码,求拉群
|