由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 这个世界不合理的事太多,比如clojure
相关主题
scala 的感悟今天跟公司confirm了,没有人用Scala
Scala 1-star, would not program again周末上点有用的信息
王垠新文 为Java说句公道话node来势凶猛,已经完胜Ruby了
教小孩C++?对web 编程厌倦的, try try Lift framework
大家推荐clojure几个重要的库?客观总结vert.x
steave yagg 新帖,关于android和google俺最近写lisp写得很开心
clojure这语言真不错Clojure和Javascript涨势喜人
感觉clojure很强大呀Go被人吐槽了
相关话题的讨论汇总
话题: clojure话题: pytorch话题: flare话题: js话题: python
进入Programming版参与讨论
1 (共1页)
n***p
发帖数: 110
1
clojure需要记忆的rule不到python的十分之一,build in feature(stm) for
concurrent programming. 单线程速度也比python快很多,用的人不多找谁说理去
r*****z
发帖数: 906
2
可能是因为不喜欢lisp吧。说实话,对lisp的态度,向来很两极。
x***4
发帖数: 1815
3
如果可以选,肯定选lisp类的语言。

【在 r*****z 的大作中提到】
: 可能是因为不喜欢lisp吧。说实话,对lisp的态度,向来很两极。
x****u
发帖数: 44466
4
lisp的主要缺点是前置操作符啊
现在都是ai时代了,已经有充足证据证明前置写法不好读妨碍思维

【在 r*****z 的大作中提到】
: 可能是因为不喜欢lisp吧。说实话,对lisp的态度,向来很两极。
n******7
发帖数: 12463
5
我超喜欢clojure
但是试着学了几次
就是不知道怎么做一个project
没点头绪
h*i
发帖数: 3446
6
Clojure做AI最合适了。我以前在这里提过,用Clojure实现算法基本上照文章上的
pseudo code直接翻译,性能又好,传统AI和现代AI通吃,无缝衔接,搞什么都不费劲
。比如有一个人业余时间两个月从头写一个类似pytorch这样的库,不加优化,性能比
pytorch好两三倍。
我个人觉得AGI能实现的话,可能会被一个用Clojure的公司搞出来。

【在 n***p 的大作中提到】
: clojure需要记忆的rule不到python的十分之一,build in feature(stm) for
: concurrent programming. 单线程速度也比python快很多,用的人不多找谁说理去

n******7
发帖数: 12463
7
另外去年我颇花了一点时间看clojure和F#
后来觉得性能还是硬伤就没继续了
现在我们这块的东西上aws,感觉性能不是那么重要了
但是因为对.net熟悉,加上简单直接,估计还是先学会F#
h*i
发帖数: 3446
8
做Clojure项目基本上都要从lein开始,下载lein脚本https://leiningen.org/,lein
new myproject,就行了。
然后就看你想做什么项目。
Clojure主要被用来做Web,这方面的资源比较多。如果对Web有经验,从这儿入手比较
好。做Web项目的话,用luminus微框架,照着做就行了, http://www.luminusweb.net/
$ lein new luminus my-app
$ cd my-app
$ lein run
Started server on port 3000
作者还写了本书,喜欢读书的话,可以看看https://pragprog.com/book/dswdcloj2/
web-development-with-clojure-second-edition
如果没做过Web,那可以从你熟悉的领域入手。一般能找到有关的资源的。

【在 n******7 的大作中提到】
: 我超喜欢clojure
: 但是试着学了几次
: 就是不知道怎么做一个project
: 没点头绪

n******7
发帖数: 12463
9
我买了这本书第一版的中文版
还操练了几个晚上
发现我对web一窍不通,MVC都不知道
我就是感觉clojure主要是用来做web的,这个我工作上也不需要,就搁置了
我们主要做console application,读个文件,做点处理计算,再写出去

lein

【在 h*i 的大作中提到】
: 做Clojure项目基本上都要从lein开始,下载lein脚本https://leiningen.org/,lein
: new myproject,就行了。
: 然后就看你想做什么项目。
: Clojure主要被用来做Web,这方面的资源比较多。如果对Web有经验,从这儿入手比较
: 好。做Web项目的话,用luminus微框架,照着做就行了, http://www.luminusweb.net/
: $ lein new luminus my-app
: $ cd my-app
: $ lein run
: Started server on port 3000
: 作者还写了本书,喜欢读书的话,可以看看https://pragprog.com/book/dswdcloj2/

n******7
发帖数: 12463
10
可否告知repo的名字,我去瞻仰一下?

【在 h*i 的大作中提到】
: 做Clojure项目基本上都要从lein开始,下载lein脚本https://leiningen.org/,lein
: new myproject,就行了。
: 然后就看你想做什么项目。
: Clojure主要被用来做Web,这方面的资源比较多。如果对Web有经验,从这儿入手比较
: 好。做Web项目的话,用luminus微框架,照着做就行了, http://www.luminusweb.net/
: $ lein new luminus my-app
: $ cd my-app
: $ lein run
: Started server on port 3000
: 作者还写了本书,喜欢读书的话,可以看看https://pragprog.com/book/dswdcloj2/

相关主题
clojure这语言真不错周末上点有用的信息
感觉clojure很强大呀node来势凶猛,已经完胜Ruby了
今天跟公司confirm了,没有人用Scala对web 编程厌倦的, try try Lift framework
进入Programming版参与讨论
h*i
发帖数: 3446
11
性能看和谁比。和脚本语言比,Clojure要强太多了,和Java有一样的做后端服务器语
言的优点。通过优化,性能可以达到与Java类似。当然编程效率比Java高太多太多了。
ClojureScript其实优势更大,走在前端编程的前沿,是大家的模范对象。Javascript
平台现在几乎到处都是,所以ClojureScript潜力很大。除了浏览器,node, reactive
native这些平台都可以用ClojureScript.
前后端用同一个语言,用cljc写同一个代码,到处通用,还是很爽的。所以现在新的
Clojure库基本上都是写cljc了。

【在 n******7 的大作中提到】
: 另外去年我颇花了一点时间看clojure和F#
: 后来觉得性能还是硬伤就没继续了
: 现在我们这块的东西上aws,感觉性能不是那么重要了
: 但是因为对.net熟悉,加上简单直接,估计还是先学会F#

h*i
发帖数: 3446
12
做一般的console application的话,建议用ClojureScript。 Node上的Clojurescript
叫lumo
https://github.com/anmonteiro/lumo
npm install -g lumo-cljs
node的东西都可以用。
当然如果你主要做计算,那没办法,目前你还得用python。但Javascript用来做计算的
库也开始有了,所以你可以开始来做个早期用户。
说到底JS最后可能还是要赢的,因为JS可以deploy得到处都是,比如手表啥的。这个故
事会和Java赢了C++类似,工业应用最后还是以deploy环境为准。如果都要求JS环境,
最后ML也会用JS写。

【在 n******7 的大作中提到】
: 我买了这本书第一版的中文版
: 还操练了几个晚上
: 发现我对web一窍不通,MVC都不知道
: 我就是感觉clojure主要是用来做web的,这个我工作上也不需要,就搁置了
: 我们主要做console application,读个文件,做点处理计算,再写出去
:
: lein

h*i
发帖数: 3446
13
https://github.com/aria42/flare

【在 n******7 的大作中提到】
: 可否告知repo的名字,我去瞻仰一下?
n******7
发帖数: 12463
14
谢谢建议
如果用js这一套,岂不是更慢了?
我喜欢clojure的一点就是jvm的速度,换成node.js怕是和python一个水平了?
我们主要的任务其实是processing,真的计算的部分,尽量自己实现
deploy确实很重要,最近在研究aws lambda
能用的就限定在jvm,.net core, python, node.js, go了
我对js也属于一直想学,没应用机会的情况
不过为啥手表也要js? 不是苹果obj-c/swift, android java吗?

Clojurescript

【在 h*i 的大作中提到】
: 做一般的console application的话,建议用ClojureScript。 Node上的Clojurescript
: 叫lumo
: https://github.com/anmonteiro/lumo
: npm install -g lumo-cljs
: node的东西都可以用。
: 当然如果你主要做计算,那没办法,目前你还得用python。但Javascript用来做计算的
: 库也开始有了,所以你可以开始来做个早期用户。
: 说到底JS最后可能还是要赢的,因为JS可以deploy得到处都是,比如手表啥的。这个故
: 事会和Java赢了C++类似,工业应用最后还是以deploy环境为准。如果都要求JS环境,
: 最后ML也会用JS写。

h*i
发帖数: 3446
15
其实喜欢Clojure,又有能力搞ML的话,参加进去,把Clojure的ML库搞起来还是大有可
为的。目前Clojure生态环境里面大多是没有什么数学背景的程序员,学术届也几乎没
有什么用Clojure的,但Clojure其实非常适合搞数据科学,只是有这方面背景的
Clojure程序员太少了。
这个aria42当然不是一般人,是Stanford出来的博士,Chris Manning的学生,发过不
少文章的。Stanford的人搞starup很有风气,这人就去搞了个公司,用Clojure的,后
来公司被买了,现在估计还在坐四年监狱,所以没事就写了个这个库。

【在 h*i 的大作中提到】
: https://github.com/aria42/flare
n******7
发帖数: 12463
16
谢谢
The big surprise with Flare has been that performance is relatively strong
compared to PyTorch, about 2x-3x faster for the models I’ve built in Flare.
While I’ve optimized the obvious things in Flare, there is still a lot
more low hanging fruit. I suspect some of the performance wins relative to
PyTorch are coming from graph construction itself. While PyTorch and Flare
both fallback to Intel native MKL on CPU, graph construction happens in the
host language (Python or Clojure) and this is where PyTorch and Flare can
differ performance-wise; this makes a large difference for dynamic neural
nets where graph construction happens for each input.
如果这是真的话,语言的raw performance对data processing还是挺重要的

【在 h*i 的大作中提到】
: https://github.com/aria42/flare
h*i
发帖数: 3446
17
自己实现计算的话,JVM Clojure其实是非常好的平台。Clojure是目前最Data
oriented programming语言,做ETL这些是最好不过的了。
GPU, native的计算,Clojure现在也有很好的库了,比如Neanderthal。上面我举的那
个flare就是用的Neanderthal,这玩意是个俄国人在欧洲做教授的一个人写的,性能很
优化,支持所有的硬件平台,我问过他他的打算,他说他准备一直把Neanderthal支持
下去,反正欧洲教授也没啥事干,他是研究贝叶斯的,所以主要是为了自用。
至于JS,因为实现容易,再加上有在native重用Web UI资源的需求,所以各种软硬平台
都有JS engine的实现,所以我觉得JS必然会成为最为通用的ML deploy平台。比如苹果
,Android都有JS实现,甚至JVM内部都有一个JS平台。

【在 n******7 的大作中提到】
: 谢谢建议
: 如果用js这一套,岂不是更慢了?
: 我喜欢clojure的一点就是jvm的速度,换成node.js怕是和python一个水平了?
: 我们主要的任务其实是processing,真的计算的部分,尽量自己实现
: deploy确实很重要,最近在研究aws lambda
: 能用的就限定在jvm,.net core, python, node.js, go了
: 我对js也属于一直想学,没应用机会的情况
: 不过为啥手表也要js? 不是苹果obj-c/swift, android java吗?
:
: Clojurescript

h*i
发帖数: 3446
18
那当然了。在GPU, native这一层,大家的性能都一样,因为用的都是同样的东西。但
在高层,语言本身的性能差异还是很大的。
我怀疑他这个东西要是真的优化起来,性能比pytorch搞一两个数量级是没有问题的。

Flare.
the

【在 n******7 的大作中提到】
: 谢谢
: The big surprise with Flare has been that performance is relatively strong
: compared to PyTorch, about 2x-3x faster for the models I’ve built in Flare.
: While I’ve optimized the obvious things in Flare, there is still a lot
: more low hanging fruit. I suspect some of the performance wins relative to
: PyTorch are coming from graph construction itself. While PyTorch and Flare
: both fallback to Intel native MKL on CPU, graph construction happens in the
: host language (Python or Clojure) and this is where PyTorch and Flare can
: differ performance-wise; this makes a large difference for dynamic neural
: nets where graph construction happens for each input.

n***p
发帖数: 110
19
习惯而已,用多了前置操作符code读起来对我来说不用费脑子。
而且Clojure的不少macro如doto, ->, ->>让可读性大大提高。

【在 x****u 的大作中提到】
: lisp的主要缺点是前置操作符啊
: 现在都是ai时代了,已经有充足证据证明前置写法不好读妨碍思维

n***p
发帖数: 110
20
这种情况是很不幸,you either get it or don't.

【在 r*****z 的大作中提到】
: 可能是因为不喜欢lisp吧。说实话,对lisp的态度,向来很两极。
相关主题
客观总结vert.xGo被人吐槽了
俺最近写lisp写得很开心GO搞parallel computing有前途吗?
Clojure和Javascript涨势喜人我觉得在scala上浪费时间没意思
进入Programming版参与讨论
w********m
发帖数: 1137
21
跟python一样,clojure没有typing。这是个很蛋痛的事情。
n***p
发帖数: 110
22
http://www.youtube.com/watch?v=Uxl_X3zXVAM
dynamic vs static, 上面的talk也许能改变你的看法, it depends on your business
. There are many situations type is needed, but not for all

【在 w********m 的大作中提到】
: 跟python一样,clojure没有typing。这是个很蛋痛的事情。
L****8
发帖数: 3938
23
1+1 写成 + 1 1 ?

【在 n***p 的大作中提到】
: clojure需要记忆的rule不到python的十分之一,build in feature(stm) for
: concurrent programming. 单线程速度也比python快很多,用的人不多找谁说理去

n***p
发帖数: 110
24
1 + 1 + 1 + 1 + 1
Vs
(+ 1 1 1 1 1)
Again, which one is better depends on personal preference
Another example,
1 + 2 * 3
You need to know operator precedence. C++ has 17 rules about precedence
In lisp you don't need to know such things
(+ 1 (* 2 3))

【在 L****8 的大作中提到】
: 1+1 写成 + 1 1 ?
s*****V
发帖数: 21731
25
严重怀疑,训练的大部分时间都花在底层库里面,高级语言不过是胶水。ML的训练时间
动则以周计算,如果时间差几十倍,早没人用python了。

【在 h*i 的大作中提到】
: 那当然了。在GPU, native这一层,大家的性能都一样,因为用的都是同样的东西。但
: 在高层,语言本身的性能差异还是很大的。
: 我怀疑他这个东西要是真的优化起来,性能比pytorch搞一两个数量级是没有问题的。
:
: Flare.
: the

f*******t
发帖数: 7549
26
同是dynamic type语言,closure单线程性能为什么比python好?
s*****V
发帖数: 21731
27
严重怀疑,训练的大部分时间都花在底层库里面,高级语言不过是胶水,无光紧要的。
ML的训练时间动则以周计算,如果时间差几十倍,早没人用python了。

【在 h*i 的大作中提到】
: 那当然了。在GPU, native这一层,大家的性能都一样,因为用的都是同样的东西。但
: 在高层,语言本身的性能差异还是很大的。
: 我怀疑他这个东西要是真的优化起来,性能比pytorch搞一两个数量级是没有问题的。
:
: Flare.
: the

n*****3
发帖数: 1584
28
I guess clojure is compiled while python is still explained language?

【在 f*******t 的大作中提到】
: 同是dynamic type语言,closure单线程性能为什么比python好?
r*****z
发帖数: 906
29
嗯,clojure是编译成bytecode再交给jvm运行的。
f*******t
发帖数: 7549
30
训练1天,用来跑python的时间估计也就10分钟,提升一个数量级又如何

【在 s*****V 的大作中提到】
: 严重怀疑,训练的大部分时间都花在底层库里面,高级语言不过是胶水,无光紧要的。
: ML的训练时间动则以周计算,如果时间差几十倍,早没人用python了。

相关主题
有人用clj写web么?比如用luminus,ring这些框架Scala 1-star, would not program again
pixie - Clojure寄生在C环境王垠新文 为Java说句公道话
scala 的感悟教小孩C++?
进入Programming版参与讨论
h*i
发帖数: 3446
31
这是在比动态图的pytorch与flare,每一步要做的DAG重建都是在高层语言做的,所以
差异出来了。
静态图的tesorflow这种当然没区别。

【在 s*****V 的大作中提到】
: 严重怀疑,训练的大部分时间都花在底层库里面,高级语言不过是胶水,无光紧要的。
: ML的训练时间动则以周计算,如果时间差几十倍,早没人用python了。

h*i
发帖数: 3446
32
你profile了pytorch? 张嘴就来是不行的。
人家说快两三倍,当然是指wall clock time。

【在 f*******t 的大作中提到】
: 训练1天,用来跑python的时间估计也就10分钟,提升一个数量级又如何
s*****V
发帖数: 21731
33
你贴个数据看看吧,我看到的benchmark Pytorch和其他的FRAMEWORK之间的差距都很小
,百分之二三十。Pytorch甚至不比TensorFlow慢。

【在 h*i 的大作中提到】
: 你profile了pytorch? 张嘴就来是不行的。
: 人家说快两三倍,当然是指wall clock time。

h*i
发帖数: 3446
34
看你想要什么样的typing,Clojure大多能支持。
1. 如果你要Java那种,手工搞一堆class,Clojure有deftype, defprotocol,
defrecord这一套,其实就是现代的基于interface的OOP,不搞继承,program to
interface。
2. 如果你要Haskell这种,infer type的, Clojure有core.typed。
3. 另外就是core.spec, Clojure独有的一种typing的方法。
1和3在Clojure里面是非常普及的。比如我们在谈的flare库,就大量使用这两种typing。

【在 w********m 的大作中提到】
: 跟python一样,clojure没有typing。这是个很蛋痛的事情。
h*i
发帖数: 3446
35
我也没有benchmark过,不过是看了这个
http://aria42.com/blog/2017/11/Flare-Clojure-Neural-Net
根据这人的背景,我没有理由不信他说的,如此而已。
注意,他这儿只是比的全CPU性能。
如果都用GPU,也许你说的也不错。我们不知道。

【在 s*****V 的大作中提到】
: 你贴个数据看看吧,我看到的benchmark Pytorch和其他的FRAMEWORK之间的差距都很小
: ,百分之二三十。Pytorch甚至不比TensorFlow慢。

s*****V
发帖数: 21731
36
这种benchmark需要看其中的测试细节,听两方面怎么说,细节不对差个几倍都没有意
义。

【在 h*i 的大作中提到】
: 我也没有benchmark过,不过是看了这个
: http://aria42.com/blog/2017/11/Flare-Clojure-Neural-Net
: 根据这人的背景,我没有理由不信他说的,如此而已。
: 注意,他这儿只是比的全CPU性能。
: 如果都用GPU,也许你说的也不错。我们不知道。

x****u
发帖数: 44466
37
人脑适合并行操作,不适合栈处理,这是解剖学和实验证明的
你不费脑子是错觉

【在 n***p 的大作中提到】
: 习惯而已,用多了前置操作符code读起来对我来说不用费脑子。
: 而且Clojure的不少macro如doto, ->, ->>让可读性大大提高。

x****u
发帖数: 44466
38
动态图的瓶颈也一样是并行gpu部分啊

【在 h*i 的大作中提到】
: 这是在比动态图的pytorch与flare,每一步要做的DAG重建都是在高层语言做的,所以
: 差异出来了。
: 静态图的tesorflow这种当然没区别。

n***p
发帖数: 110
39
If it's an issue for you, you can customize it yourself, change prefix to
infix is so easy in clojure.
https://www.braveclojure.com/read-and-eval/

【在 x****u 的大作中提到】
: 人脑适合并行操作,不适合栈处理,这是解剖学和实验证明的
: 你不费脑子是错觉

i******l
发帖数: 270
40
这就比较好奇了,解刨学怎么证明人脑不适合栈操作的?

【在 x****u 的大作中提到】
: 人脑适合并行操作,不适合栈处理,这是解剖学和实验证明的
: 你不费脑子是错觉

相关主题
大家推荐clojure几个重要的库?感觉clojure很强大呀
steave yagg 新帖,关于android和google今天跟公司confirm了,没有人用Scala
clojure这语言真不错周末上点有用的信息
进入Programming版参与讨论
x****u
发帖数: 44466
41
没人去改默认写法,这是语言开发者的责任

【在 n***p 的大作中提到】
: If it's an issue for you, you can customize it yourself, change prefix to
: infix is so easy in clojure.
: https://www.braveclojure.com/read-and-eval/

x****u
发帖数: 44466
42
因为人脑是并行低速,并非串行高速结构
视觉处理一个表达式是同时从不同空间位置上并行进行的

【在 i******l 的大作中提到】
: 这就比较好奇了,解刨学怎么证明人脑不适合栈操作的?
h*i
发帖数: 3446
43
你如何证明人脑处理(+ 1 1)需要“栈”处理, 而1+1就神奇的不是“栈”处理了?
或者说,为什么人处理(+ 1 1)就不是并行低速处理了?
Like I said many times before, you keep regurgitating things you have no
idea about.
I have no tolerance for fools like you.

【在 x****u 的大作中提到】
: 因为人脑是并行低速,并非串行高速结构
: 视觉处理一个表达式是同时从不同空间位置上并行进行的

x****u
发帖数: 44466
44
你听不懂都是人家的错么?
人脑的速度已经被生物学证明是高并行和低速的,栈式处理的串行算法满足不了熟练小
学生的心算速度

【在 h*i 的大作中提到】
: 你如何证明人脑处理(+ 1 1)需要“栈”处理, 而1+1就神奇的不是“栈”处理了?
: 或者说,为什么人处理(+ 1 1)就不是并行低速处理了?
: Like I said many times before, you keep regurgitating things you have no
: idea about.
: I have no tolerance for fools like you.

h*i
发帖数: 3446
45
Nobody, nobody knows a fucking thing about how brain works. Anyone who talks
as if they know are either a fool or have something to sell you.
People who actually know something about brain won't talk like this fool
xiaoju.
Here are some videos how they talk about brains:
https://nancysbraintalks.mit.edu/course/9-11-the-human-brain
x****u
发帖数: 44466
46
你这是宗教观点
科学上早就研究了人脑在思考时的工作过程,能量,信息传导,运算速度都有大量论文
而你破口大骂是宗教狂热分子绝望的呐喊

talks

【在 h*i 的大作中提到】
: Nobody, nobody knows a fucking thing about how brain works. Anyone who talks
: as if they know are either a fool or have something to sell you.
: People who actually know something about brain won't talk like this fool
: xiaoju.
: Here are some videos how they talk about brains:
: https://nancysbraintalks.mit.edu/course/9-11-the-human-brain

h*i
发帖数: 3446
47
Don't switch topic.
Just show how you know human processing of (+ 1 1) is "stack processing".
Show us.

【在 x****u 的大作中提到】
: 你这是宗教观点
: 科学上早就研究了人脑在思考时的工作过程,能量,信息传导,运算速度都有大量论文
: 而你破口大骂是宗教狂热分子绝望的呐喊
:
: talks

x****u
发帖数: 44466
48
尼玛有点常识会死么?
解刨学发现人类脑皮层是局部连接的,适合并行的东西必须是局部相关性多于全局相关

【在 h*i 的大作中提到】
: Don't switch topic.
: Just show how you know human processing of (+ 1 1) is "stack processing".
: Show us.

h*i
发帖数: 3446
49
这货真有可能是老邢弄来的,语言非常的形式化。贫乏的语言模式反应了低智商。
一般来说智商相差20左右的两个人几乎就无法进行智能上的交流了,这儿就是一个现场
演示。没办法,都是我的错,没想到是这个问题,现在都make sense了。

【在 x****u 的大作中提到】
: 尼玛有点常识会死么?
: 解刨学发现人类脑皮层是局部连接的,适合并行的东西必须是局部相关性多于全局相关

1 (共1页)
进入Programming版参与讨论
相关主题
GO搞parallel computing有前途吗?大家推荐clojure几个重要的库?
我觉得在scala上浪费时间没意思steave yagg 新帖,关于android和google
有人用clj写web么?比如用luminus,ring这些框架clojure这语言真不错
pixie - Clojure寄生在C环境感觉clojure很强大呀
scala 的感悟今天跟公司confirm了,没有人用Scala
Scala 1-star, would not program again周末上点有用的信息
王垠新文 为Java说句公道话node来势凶猛,已经完胜Ruby了
教小孩C++?对web 编程厌倦的, try try Lift framework
相关话题的讨论汇总
话题: clojure话题: pytorch话题: flare话题: js话题: python