avatar
golang上的Clojure# Programming - 葵花宝典
j*o
1
你们还没有tenure的赶紧跳槽不要等
我看见这位老哥,才在U of Wisconsin Milwaukee做了四年助理教授,直接被VT环境系
挖走给tenure,给副教授,人VT环境多年top 10,UWM专业前100还不知道有没有,这难
度就跟老李下一秒钟直接在MIT拿tenure差不多,话说回来就算本校四年提前tenure也
赚大发了,看来发考题现在很容易搞大家快上阿!
Zhen (Jason) He
Work Experience :
Associate Professor, Via Department of Civil and Environmental
Engineering, Virginia Tech, 2013-present.
Adjunct Professor, Department of Civil Engineering and Mechanics,
University of Wisconsin-Milwaukee, 2013-present.
Assistant Professor, Department of Civil Engineering and Mechanics,
University of Wisconsin-Milwaukee, 2009-2013.
Postdoctoral Research Associate, University of Southern California, 2007
-2009.
http://www.cee.vt.edu/people/jason.html
avatar
h*i
2
需要用Clojure来写脚本的话,这个joker不错,内存用得少,快。当然没有实现
Clojure所有的特性,但用来写脚本不错。
https://github.com/candid82/joker
avatar
e*g
3
VT最近挖了不少人,不是都在本版潜水吧。

【在 j***o 的大作中提到】
: 你们还没有tenure的赶紧跳槽不要等
: 我看见这位老哥,才在U of Wisconsin Milwaukee做了四年助理教授,直接被VT环境系
: 挖走给tenure,给副教授,人VT环境多年top 10,UWM专业前100还不知道有没有,这难
: 度就跟老李下一秒钟直接在MIT拿tenure差不多,话说回来就算本校四年提前tenure也
: 赚大发了,看来发考题现在很容易搞大家快上阿!
: Zhen (Jason) He
: Work Experience :
: Associate Professor, Via Department of Civil and Environmental
: Engineering, Virginia Tech, 2013-present.
: Adjunct Professor, Department of Civil Engineering and Mechanics,

avatar
d*r
4
为啥不用 scheme on golang, 也就是基本的 Lisp, 不是 clojure.
我以前考虑过这种 idea, 因为 golang 之前连个 generic template 都没有, 倒是可
以用 lisp 做代码生成之类.
按照我的理解,clojure 是 lisp for JVM (以前还是 C# 上也有), 做到 golang 上比
一般的 lisp 有啥优势?

【在 h*i 的大作中提到】
: 需要用Clojure来写脚本的话,这个joker不错,内存用得少,快。当然没有实现
: Clojure所有的特性,但用来写脚本不错。
: https://github.com/candid82/joker

avatar
j*o
5
你可以冲击一下princeton了

【在 e****g 的大作中提到】
: VT最近挖了不少人,不是都在本版潜水吧。
avatar
h*i
6
Clojure不是仅仅是Lisp,更多是这个数据为中心的编程风格。
我认为Clojure最重要的特征,就是几种基本的immutable data structure作为核心的
语法结构。在传统的list ()之外,加上vector [],map {} 和 set #{}作为基本的
语法结构,这些数据结构本身还可以当函数用。这就从Lisp传统的code is data特性,
扩展到了data is also code特性。"In Clojure, code is data and data is code",
data和code就完全是同一个东西了,把data oriented programming发展到了极致。
事实上,很多Lisp卫道士拒不承认Clojure是Lisp,就是因为加了这两对符号,[]和{}
,貌似小改变,其实把编程风格完全改变了。
这种数据结构同时也是代码本身的编程风格,是非常独特的。Clojure编程往往不需要
OOP,因为一个map其实就可以当Object用。不像OOP的oboject,其操作方法是特殊的,
只能用在这个object上,任何重用都是很复杂的,要搞各种design pattern。Clojure
用map就完了,操作这些普通map只需一些普遍性的函数就够了,get, get-in, update,
update-in, merge, group-by, zipmap等等。map是object, vector是collection. 就
这两种数据结构,80%的用例就都满足了。其实这和JSON成了事实上的数据标准一个道
理,Clojure感觉就是用JSON来编程,这个JSON同时又是是活的代码,而不是死数据,
可以随意操控。
这种以数据为中心的编程风格,非常强大,同时又很简单,一旦领会了,很难离开。所
以人们在各种环境上都要搞Clojure。只要有Clojure这种编程风格和语法结构,都可以
算作Clojure的方言。

【在 d*******r 的大作中提到】
: 为啥不用 scheme on golang, 也就是基本的 Lisp, 不是 clojure.
: 我以前考虑过这种 idea, 因为 golang 之前连个 generic template 都没有, 倒是可
: 以用 lisp 做代码生成之类.
: 按照我的理解,clojure 是 lisp for JVM (以前还是 C# 上也有), 做到 golang 上比
: 一般的 lisp 有啥优势?

avatar
q*g
7
黑家堡科比匹兹堡差得远了去了,老李估计不稀罕。
avatar
h*i
8
Clojure几乎在各种平台上都有。Javascript上有,C#上有, python上有, Erlang上
有,Racket上有,golang上有。连其他Lisp上都有,Common Lisp上也有, Scheme上有。
所以它不仅仅是个Lisp,是有它自己的壁龛的,就是我说的data oriented
programming,目前没有什么其他语言在这个设计空间,如果有,也是其方言,可见它
在这个空间站位很准。

【在 d*******r 的大作中提到】
: 为啥不用 scheme on golang, 也就是基本的 Lisp, 不是 clojure.
: 我以前考虑过这种 idea, 因为 golang 之前连个 generic template 都没有, 倒是可
: 以用 lisp 做代码生成之类.
: 按照我的理解,clojure 是 lisp for JVM (以前还是 C# 上也有), 做到 golang 上比
: 一般的 lisp 有啥优势?

avatar
d*y
9
第一次VT的时候俺的手机连信号都没有。那个地方超级Boring。做个飞机要么去夏洛特
要么去richmond 都是好几个小时的车程。

【在 q******g 的大作中提到】
: 黑家堡科比匹兹堡差得远了去了,老李估计不稀罕。
avatar
x*4
10
借问问clojure用那个ide/editor好?不想用emacs。cursive怎样?

有。

【在 h*i 的大作中提到】
: Clojure几乎在各种平台上都有。Javascript上有,C#上有, python上有, Erlang上
: 有,Racket上有,golang上有。连其他Lisp上都有,Common Lisp上也有, Scheme上有。
: 所以它不仅仅是个Lisp,是有它自己的壁龛的,就是我说的data oriented
: programming,目前没有什么其他语言在这个设计空间,如果有,也是其方言,可见它
: 在这个空间站位很准。

avatar
s*r
11
做学问的好地方啊!

★ 发自iPhone App: ChineseWeb 7.8

【在 d***y 的大作中提到】
: 第一次VT的时候俺的手机连信号都没有。那个地方超级Boring。做个飞机要么去夏洛特
: 要么去richmond 都是好几个小时的车程。

avatar
c*v
12
Android上没有。Lisp系统完美错过mobile.


: Clojure几乎在各种平台上都有。Javascript上有,C#上有, python上有,
Erlang上

: 有,Racket上有,golang上有。连其他Lisp上都有,Common Lisp上也有,
Scheme上有。

: 所以它不仅仅是个Lisp,是有它自己的壁龛的,就是我说的data oriented

: programming,目前没有什么其他语言在这个设计空间,如果有,也是其方言,
可见它

: 在这个空间站位很准。



【在 h*i 的大作中提到】
: Clojure几乎在各种平台上都有。Javascript上有,C#上有, python上有, Erlang上
: 有,Racket上有,golang上有。连其他Lisp上都有,Common Lisp上也有, Scheme上有。
: 所以它不仅仅是个Lisp,是有它自己的壁龛的,就是我说的data oriented
: programming,目前没有什么其他语言在这个设计空间,如果有,也是其方言,可见它
: 在这个空间站位很准。

avatar
m*1
13
A haunted place...
avatar
n*3
14
cursive is the best ..
I used sublime for toy task/play too.

【在 x***4 的大作中提到】
: 借问问clojure用那个ide/editor好?不想用emacs。cursive怎样?
:
: 有。

avatar
g*6
15
How do you know that he has tenure at VT?

【在 j***o 的大作中提到】
: 你们还没有tenure的赶紧跳槽不要等
: 我看见这位老哥,才在U of Wisconsin Milwaukee做了四年助理教授,直接被VT环境系
: 挖走给tenure,给副教授,人VT环境多年top 10,UWM专业前100还不知道有没有,这难
: 度就跟老李下一秒钟直接在MIT拿tenure差不多,话说回来就算本校四年提前tenure也
: 赚大发了,看来发考题现在很容易搞大家快上阿!
: Zhen (Jason) He
: Work Experience :
: Associate Professor, Via Department of Civil and Environmental
: Engineering, Virginia Tech, 2013-present.
: Adjunct Professor, Department of Civil Engineering and Mechanics,

avatar
h*i
16
有过。不过现在大家用react native搞clojurescript,一个代码,同时用在web,iOS
和android


: Android上没有。Lisp系统完美错过mobile.

: Erlang上

: Scheme上有。

: 可见它



【在 c*******v 的大作中提到】
: Android上没有。Lisp系统完美错过mobile.
:
:
: Clojure几乎在各种平台上都有。Javascript上有,C#上有, python上有,
: Erlang上
:
: 有,Racket上有,golang上有。连其他Lisp上都有,Common Lisp上也有,
: Scheme上有。
:
: 所以它不仅仅是个Lisp,是有它自己的壁龛的,就是我说的data oriented
:
: programming,目前没有什么其他语言在这个设计空间,如果有,也是其方言,
: 可见它
:
: 在这个空间站位很准。

avatar
d*0
17
杀人的好地方

【在 s***r 的大作中提到】
: 做学问的好地方啊!
:
: ★ 发自iPhone App: ChineseWeb 7.8

avatar
c*v
18
实践上挺难。react native自己是不是能走下去也不清楚。


: 有过。不过现在大家用react native搞clojurescript,一个代码,同时用在web
,iOS

: 和android

:

【在 h*i 的大作中提到】
: 有过。不过现在大家用react native搞clojurescript,一个代码,同时用在web,iOS
: 和android
:
:
: Android上没有。Lisp系统完美错过mobile.
:
: Erlang上
:
: Scheme上有。
:
: 可见它
:

avatar
m*1
19
3 NSF in 4 years, it should be excellent. especially in such his previous
univ.

【在 j***o 的大作中提到】
: 你们还没有tenure的赶紧跳槽不要等
: 我看见这位老哥,才在U of Wisconsin Milwaukee做了四年助理教授,直接被VT环境系
: 挖走给tenure,给副教授,人VT环境多年top 10,UWM专业前100还不知道有没有,这难
: 度就跟老李下一秒钟直接在MIT拿tenure差不多,话说回来就算本校四年提前tenure也
: 赚大发了,看来发考题现在很容易搞大家快上阿!
: Zhen (Jason) He
: Work Experience :
: Associate Professor, Via Department of Civil and Environmental
: Engineering, Virginia Tech, 2013-present.
: Adjunct Professor, Department of Civil Engineering and Mechanics,

avatar
h*i
20
我没用过,不过看上去不难,http://cljsrn.org/
但我的主要的论点,不是讨论具体的这个那个技术的问题,而是Clojure是个寄生性的
语言,不论什么技术流行,很大的可能性会有人来搞个Clojure的程序员界面。
golang? 有人搞个joker; unit3d? 有人搞个arcadia;deep learning? 多个Clojure的
库选项;k8s? 很多Clojure选项。
原因也说了,就是对于很多有经验的程序员,Clojure是他们最后一个语言。你可以把
Clojure看成是个普适的框架,你再也不用学新框架了,因为总会有人来把不论什么新
东西包装成你熟悉的Clojure的数据结构和函数,对你来说,都是一样的得心应手。
没有很多语言有这种“最后的语言”的地位。

web

【在 c*******v 的大作中提到】
: 实践上挺难。react native自己是不是能走下去也不清楚。
:
:
: 有过。不过现在大家用react native搞clojurescript,一个代码,同时用在web
: ,iOS
:
: 和android
:
:

avatar
m*1
21
3 NSF in 4 years, it should be excellent. especially in such his previous
univ.

【在 j***o 的大作中提到】
: 你们还没有tenure的赶紧跳槽不要等
: 我看见这位老哥,才在U of Wisconsin Milwaukee做了四年助理教授,直接被VT环境系
: 挖走给tenure,给副教授,人VT环境多年top 10,UWM专业前100还不知道有没有,这难
: 度就跟老李下一秒钟直接在MIT拿tenure差不多,话说回来就算本校四年提前tenure也
: 赚大发了,看来发考题现在很容易搞大家快上阿!
: Zhen (Jason) He
: Work Experience :
: Associate Professor, Via Department of Civil and Environmental
: Engineering, Virginia Tech, 2013-present.
: Adjunct Professor, Department of Civil Engineering and Mechanics,

avatar
h*i
22
cursive我没用过,口碑很好,个人自用是免费的,公司用要收费。
我司目前都是用Spacemacs的。
这之前,我用了几年vim的fireplace。但我以前也有实习生用sublime的。
不论用什么编辑器,最关键的是要有以REPL为中心的运行环境,意思是说,在编辑器里
面写代码,然后能用快捷键evaluate代码,有了这种立即的反馈,才能体会到Clojure
的好处。

【在 x***4 的大作中提到】
: 借问问clojure用那个ide/editor好?不想用emacs。cursive怎样?
:
: 有。

avatar
p*x
23
这种跳槽之后还保留个adjunct professor是个什么意思
avatar
n*p
24
Cursive + ideaVim 够用了。
Spacemacs有时候比较慢

Clojure

【在 h*i 的大作中提到】
: cursive我没用过,口碑很好,个人自用是免费的,公司用要收费。
: 我司目前都是用Spacemacs的。
: 这之前,我用了几年vim的fireplace。但我以前也有实习生用sublime的。
: 不论用什么编辑器,最关键的是要有以REPL为中心的运行环境,意思是说,在编辑器里
: 面写代码,然后能用快捷键evaluate代码,有了这种立即的反馈,才能体会到Clojure
: 的好处。

avatar
e*g
25
这哥们挺牛,除了nsf外,还有不少其他的钱,
估计过两年又可以跳到位置更好的地方了。

【在 q******g 的大作中提到】
: 黑家堡科比匹兹堡差得远了去了,老李估计不稀罕。
avatar
d*r
26
看着大牛的介绍,还挺想学下, 不过工作中貌似挺难碰到 Clojure shop. 除了工作,一
般还有啥机会用?
不过我也有点理解Lisp原教旨为啥要反对加[]{}, 他们是不是觉得前置运算符也能做这
个?
Lisp minimal 的语法结构, 本身就是为了达到: 你基本只用前置运算符直接写
Abstract Syntax Tree
传统 OOP 确实很蠢笨, 尤其以鼓励 继承+design patterns 那一套, 笨死了.

,

【在 h*i 的大作中提到】
: Clojure不是仅仅是Lisp,更多是这个数据为中心的编程风格。
: 我认为Clojure最重要的特征,就是几种基本的immutable data structure作为核心的
: 语法结构。在传统的list ()之外,加上vector [],map {} 和 set #{}作为基本的
: 语法结构,这些数据结构本身还可以当函数用。这就从Lisp传统的code is data特性,
: 扩展到了data is also code特性。"In Clojure, code is data and data is code",
: data和code就完全是同一个东西了,把data oriented programming发展到了极致。
: 事实上,很多Lisp卫道士拒不承认Clojure是Lisp,就是因为加了这两对符号,[]和{}
: ,貌似小改变,其实把编程风格完全改变了。
: 这种数据结构同时也是代码本身的编程风格,是非常独特的。Clojure编程往往不需要
: OOP,因为一个map其实就可以当Object用。不像OOP的oboject,其操作方法是特殊的,

avatar
m*1
27
in order to graduate existing students at the last univ...

【在 p**x 的大作中提到】
: 这种跳槽之后还保留个adjunct professor是个什么意思
avatar
d*r
28
这个不错啊,还可以放到 JetBrains 里
https://cursive-ide.com/

Clojure

【在 h*i 的大作中提到】
: cursive我没用过,口碑很好,个人自用是免费的,公司用要收费。
: 我司目前都是用Spacemacs的。
: 这之前,我用了几年vim的fireplace。但我以前也有实习生用sublime的。
: 不论用什么编辑器,最关键的是要有以REPL为中心的运行环境,意思是说,在编辑器里
: 面写代码,然后能用快捷键evaluate代码,有了这种立即的反馈,才能体会到Clojure
: 的好处。

avatar
m*1
29
without CAREER, how can you say 牛?
-- Levis

【在 e****g 的大作中提到】
: 这哥们挺牛,除了nsf外,还有不少其他的钱,
: 估计过两年又可以跳到位置更好的地方了。

avatar
d*r
30
我也觉得 Lisp like 语言可以作为最强寄生语言, 因为 minimal syntax
没想到现在 Clojure community 就是在往这个方向发展?

Clojure的

【在 h*i 的大作中提到】
: 我没用过,不过看上去不难,http://cljsrn.org/
: 但我的主要的论点,不是讨论具体的这个那个技术的问题,而是Clojure是个寄生性的
: 语言,不论什么技术流行,很大的可能性会有人来搞个Clojure的程序员界面。
: golang? 有人搞个joker; unit3d? 有人搞个arcadia;deep learning? 多个Clojure的
: 库选项;k8s? 很多Clojure选项。
: 原因也说了,就是对于很多有经验的程序员,Clojure是他们最后一个语言。你可以把
: Clojure看成是个普适的框架,你再也不用学新框架了,因为总会有人来把不论什么新
: 东西包装成你熟悉的Clojure的数据结构和函数,对你来说,都是一样的得心应手。
: 没有很多语言有这种“最后的语言”的地位。
:

avatar
j*o
31
lab网页上最下面一条,人家愣是4年tenure,还跳了槽
August, 2013
- Our paper "Advancing membrane bioelectrochemical reactor (MBER) with
hollow-fiber membranes installed in the cathode compartment" has been
accepted for publication in Journal of Chemical Technology and Biotechnology.
- Dr. He received a NSF GOALI grant to work on membrane bioelectrochemical
reactors (MBERs) for wastewater treatment.
- Jim was selected to receive a Pratt Fellowship from the Via Department.
Congrats!
- The EBBL has moved to Virginia Tech, and Dr. He joined the Via Department
of Civil and Environmental Engineering as an Associate Professor (with
tenure).

【在 g******6 的大作中提到】
: How do you know that he has tenure at VT?
avatar
d*r
32
"其实这和JSON成了事实上的数据标准一个道理,Clojure感觉就是用JSON来编程,
这个JSON同时又是是活的代码,而不是死数据,可以随意操控。"
当年使劲用 Node.js 的时候, 觉得 JSON 编程还是相当爽的,哈哈
不过 Node.js 这个 community 的人做的东西太 fragile, 后来就弃坑了

,

【在 h*i 的大作中提到】
: Clojure不是仅仅是Lisp,更多是这个数据为中心的编程风格。
: 我认为Clojure最重要的特征,就是几种基本的immutable data structure作为核心的
: 语法结构。在传统的list ()之外,加上vector [],map {} 和 set #{}作为基本的
: 语法结构,这些数据结构本身还可以当函数用。这就从Lisp传统的code is data特性,
: 扩展到了data is also code特性。"In Clojure, code is data and data is code",
: data和code就完全是同一个东西了,把data oriented programming发展到了极致。
: 事实上,很多Lisp卫道士拒不承认Clojure是Lisp,就是因为加了这两对符号,[]和{}
: ,貌似小改变,其实把编程风格完全改变了。
: 这种数据结构同时也是代码本身的编程风格,是非常独特的。Clojure编程往往不需要
: OOP,因为一个map其实就可以当Object用。不像OOP的oboject,其操作方法是特殊的,

avatar
a*8
33
我觉得career本来就不是award,不应该作为牛不牛的评判标准。这个early promotion
的faculty工作做得挺不错的,record也很好。而且原来学校也不是太好,应该是自己
很有本事,就是所谓的有potential的人,能被挖走也不奇怪了。

【在 m****1 的大作中提到】
: without CAREER, how can you say 牛?
: -- Levis

avatar
d*r
34
大牛能说说在实际应用中, Lisp 的各个方言, 一般用来干啥么?
比如 Comman Lisp, Scheme, Clojure
Clojure 看样子一般用来做数据处理会比较爽?

,

【在 h*i 的大作中提到】
: Clojure不是仅仅是Lisp,更多是这个数据为中心的编程风格。
: 我认为Clojure最重要的特征,就是几种基本的immutable data structure作为核心的
: 语法结构。在传统的list ()之外,加上vector [],map {} 和 set #{}作为基本的
: 语法结构,这些数据结构本身还可以当函数用。这就从Lisp传统的code is data特性,
: 扩展到了data is also code特性。"In Clojure, code is data and data is code",
: data和code就完全是同一个东西了,把data oriented programming发展到了极致。
: 事实上,很多Lisp卫道士拒不承认Clojure是Lisp,就是因为加了这两对符号,[]和{}
: ,貌似小改变,其实把编程风格完全改变了。
: 这种数据结构同时也是代码本身的编程风格,是非常独特的。Clojure编程往往不需要
: OOP,因为一个map其实就可以当Object用。不像OOP的oboject,其操作方法是特殊的,

avatar
m*a
35
扯,附近车程1小时的就有个机场。我从来没听过有人去richmond和夏洛特坐飞机的
你真去过VT?

【在 d***y 的大作中提到】
: 第一次VT的时候俺的手机连信号都没有。那个地方超级Boring。做个飞机要么去夏洛特
: 要么去richmond 都是好几个小时的车程。

avatar
h*i
36
最近的调查60%以上的Clojure用户是用在工作中。很多公司都有用Clojure的部门。大
公司如Apple, Cisco, Walmart,小公司就很多了,现在初创公司用Clojure算是一个保
守的选项。
Clojure是个很简单的语言,所以招人的时候,不会说“需要多少年的Clojure经验“,
都是招好的程序员,招来再现学。一般2个礼拜就可以干点事了,3个月完全胜任了。
Clojure主要是个工作语言,是一个consultant设计来给consultant用的语言,目的是
用最少的时间来干出更好更多的活,以得到更大的利润。如果目的不同,其实不一定合
适。

【在 d*******r 的大作中提到】
: 看着大牛的介绍,还挺想学下, 不过工作中貌似挺难碰到 Clojure shop. 除了工作,一
: 般还有啥机会用?
: 不过我也有点理解Lisp原教旨为啥要反对加[]{}, 他们是不是觉得前置运算符也能做这
: 个?
: Lisp minimal 的语法结构, 本身就是为了达到: 你基本只用前置运算符直接写
: Abstract Syntax Tree
: 传统 OOP 确实很蠢笨, 尤其以鼓励 继承+design patterns 那一套, 笨死了.
:
: ,

avatar
L*s
37
我没说,他说的。我啥时候说过没有CARERR就不牛了?

promotion

【在 a*********8 的大作中提到】
: 我觉得career本来就不是award,不应该作为牛不牛的评判标准。这个early promotion
: 的faculty工作做得挺不错的,record也很好。而且原来学校也不是太好,应该是自己
: 很有本事,就是所谓的有potential的人,能被挖走也不奇怪了。

avatar
h*i
38
Clojure设计的第一天就是要作一个拥抱宿主的寄生语言。

【在 d*******r 的大作中提到】
: 我也觉得 Lisp like 语言可以作为最强寄生语言, 因为 minimal syntax
: 没想到现在 Clojure community 就是在往这个方向发展?
:
: Clojure的

avatar
L*s
39
难说吧。往前20跳的谁没有不少钱啊。这时候钱不重要了。

【在 e****g 的大作中提到】
: 这哥们挺牛,除了nsf外,还有不少其他的钱,
: 估计过两年又可以跳到位置更好的地方了。

avatar
h*i
40
不知道其他的Lisp方言。我是从C, Java过来的,以前没接触过Lisp,以下是我知道的
一点点。
scheme过去主要是用来教学的。曾几何时,scheme是美国各CS名校的入门课程,SICP是
大名鼎鼎的教科书。可惜现在都改成了用python,我觉得这是造成美国最近的CS毕业生
质量直线下降的直接原因。老实说,在我们这些老人眼里,只会python的人根本就不算
会编程的人。不教SICP这套系统思维,是不能成为良好的软件工程师的。
Common Lisp主要是用在AI上吧,Lisp的兴起和衰落在早期主要和AI的兴起和衰落同步
。y combinator的创始人就是用common lisp起家的,作为秘密武器,他写的一系列的
Lisp软文,也帮助了Clojure的兴起。
Clojure算是第一个与AI完全无关的,比较有广泛应用的Lisp,当然借助了它的寄生性
,还有就是它的创造人是个很好的技术推销员,作的talk总是能引起广泛的注意和追捧
,有自己的粉丝团:
https://github.com/tallesl/Rich-Hickey-fanclub
https://changelog.com/posts/rich-hickeys-greatest-hits
Clojure是个数据为中心的编程语言,主要适用场合是所谓的in situ的商业编程,就是
我常说的,用来对付各种乱七八糟混乱且不合逻辑的经常改变的商业需求。这其实是绝
大部分程序员每天干的事。如果你很幸运,不属于这绝大部分可怜的程序员,比如你是
为Google工作的,不需要对付这些,那Clojure没有什么你需要的东西。
当然了,Rich Hickey自己说得更好,你还是看他的talk吧:https://www.youtube.com
/watch?v=VSdnJDO-xdg

【在 d*******r 的大作中提到】
: 大牛能说说在实际应用中, Lisp 的各个方言, 一般用来干啥么?
: 比如 Comman Lisp, Scheme, Clojure
: Clojure 看样子一般用来做数据处理会比较爽?
:
: ,

avatar
j*o
41
是时候了,你可以暗示一下CMU来挖人了,明年夏天正好上班

【在 L***s 的大作中提到】
: 难说吧。往前20跳的谁没有不少钱啊。这时候钱不重要了。
avatar
d*r
42
多谢解答,涨知识了

【在 h*i 的大作中提到】
: 不知道其他的Lisp方言。我是从C, Java过来的,以前没接触过Lisp,以下是我知道的
: 一点点。
: scheme过去主要是用来教学的。曾几何时,scheme是美国各CS名校的入门课程,SICP是
: 大名鼎鼎的教科书。可惜现在都改成了用python,我觉得这是造成美国最近的CS毕业生
: 质量直线下降的直接原因。老实说,在我们这些老人眼里,只会python的人根本就不算
: 会编程的人。不教SICP这套系统思维,是不能成为良好的软件工程师的。
: Common Lisp主要是用在AI上吧,Lisp的兴起和衰落在早期主要和AI的兴起和衰落同步
: 。y combinator的创始人就是用common lisp起家的,作为秘密武器,他写的一系列的
: Lisp软文,也帮助了Clojure的兴起。
: Clojure算是第一个与AI完全无关的,比较有广泛应用的Lisp,当然借助了它的寄生性

avatar
d*u
43
Seems his main job is to produce trash papers.

【在 j***o 的大作中提到】
: 你们还没有tenure的赶紧跳槽不要等
: 我看见这位老哥,才在U of Wisconsin Milwaukee做了四年助理教授,直接被VT环境系
: 挖走给tenure,给副教授,人VT环境多年top 10,UWM专业前100还不知道有没有,这难
: 度就跟老李下一秒钟直接在MIT拿tenure差不多,话说回来就算本校四年提前tenure也
: 赚大发了,看来发考题现在很容易搞大家快上阿!
: Zhen (Jason) He
: Work Experience :
: Associate Professor, Via Department of Civil and Environmental
: Engineering, Virginia Tech, 2013-present.
: Adjunct Professor, Department of Civil Engineering and Mechanics,

avatar
d*c
44
clojure 的edn可以看成更好的json. json 问题很多。
https://github.com/edn-format/edn
我之前总觉得clojure代码读起来比较费劲,看到edn的描述之后明白了一些

【在 d*******r 的大作中提到】
: "其实这和JSON成了事实上的数据标准一个道理,Clojure感觉就是用JSON来编程,
: 这个JSON同时又是是活的代码,而不是死数据,可以随意操控。"
: 当年使劲用 Node.js 的时候, 觉得 JSON 编程还是相当爽的,哈哈
: 不过 Node.js 这个 community 的人做的东西太 fragile, 后来就弃坑了
:
: ,

avatar
j*o
45
大牛来踢场子也!

【在 d******u 的大作中提到】
: Seems his main job is to produce trash papers.
avatar
d*r
46
Marked, 多谢

【在 d******c 的大作中提到】
: clojure 的edn可以看成更好的json. json 问题很多。
: https://github.com/edn-format/edn
: 我之前总觉得clojure代码读起来比较费劲,看到edn的描述之后明白了一些

avatar
d*u
47
I am not 大牛, but I am working on membranes.

【在 j***o 的大作中提到】
: 大牛来踢场子也!
avatar
h*i
48
edn就是Clojure 代码,Clojure代码就是edn。
同一个edn,如果eval它,那它就是Clojure程序,如果read它,那它就是edn数据。
Clojure代码其实跟数据结构是一样的,没有什么特殊的操作符号,或者statement什么
的,这对不熟悉Lisp的程序员来说,这个mental model是很alien的。
甚至可能会反感。有个脚本语言叫tcl/tk,也有类似特性,我记得很多年前我有点反感
它,觉得有点把世界搅乱了的感觉,没有明确的编译前和编译后的界限。
现在才知道,这其实是power。
所以年轻人,keep open mind很重要。

【在 d******c 的大作中提到】
: clojure 的edn可以看成更好的json. json 问题很多。
: https://github.com/edn-format/edn
: 我之前总觉得clojure代码读起来比较费劲,看到edn的描述之后明白了一些

avatar
l*1
49
Levis, tenured offer from Cal Tech only will be considered by him from now,
CMU nor MIT is out of
his consideration...

【在 j***o 的大作中提到】
: 是时候了,你可以暗示一下CMU来挖人了,明年夏天正好上班
avatar
c*v
50
求一个未化简的多项式f(x)的常数项,有两个办法。
一个是当作字符串语法分析,收集以及合并系数。
另一个是eval f(0)。
现在DL走的是后者。原因是没有Lisp机器,所以前者
速度不行。
eval在 C也可以有。
按Ken Thompson的说法,用escape分辨
字符串(数据)和程序就可以了。
Cpp模板什么的本身是functional的。应该更方便
就可以搞出来。

【在 h*i 的大作中提到】
: edn就是Clojure 代码,Clojure代码就是edn。
: 同一个edn,如果eval它,那它就是Clojure程序,如果read它,那它就是edn数据。
: Clojure代码其实跟数据结构是一样的,没有什么特殊的操作符号,或者statement什么
: 的,这对不熟悉Lisp的程序员来说,这个mental model是很alien的。
: 甚至可能会反感。有个脚本语言叫tcl/tk,也有类似特性,我记得很多年前我有点反感
: 它,觉得有点把世界搅乱了的感觉,没有明确的编译前和编译后的界限。
: 现在才知道,这其实是power。
: 所以年轻人,keep open mind很重要。

avatar
j*o
51
Levis, will consider MIT's offer a tenured chair professor to him and a
title professor to him wife together!

,

【在 l**********1 的大作中提到】
: Levis, tenured offer from Cal Tech only will be considered by him from now,
: CMU nor MIT is out of
: his consideration...

avatar
T*x
52
嗯,edn是很好,跟json也很相似,python也有同样的数据结构。java的数据结构就很
不方便了。
你前面说map作为object,我怎么觉得是list作为object,而map作为list processing?

【在 h*i 的大作中提到】
: edn就是Clojure 代码,Clojure代码就是edn。
: 同一个edn,如果eval它,那它就是Clojure程序,如果read它,那它就是edn数据。
: Clojure代码其实跟数据结构是一样的,没有什么特殊的操作符号,或者statement什么
: 的,这对不熟悉Lisp的程序员来说,这个mental model是很alien的。
: 甚至可能会反感。有个脚本语言叫tcl/tk,也有类似特性,我记得很多年前我有点反感
: 它,觉得有点把世界搅乱了的感觉,没有明确的编译前和编译后的界限。
: 现在才知道,这其实是power。
: 所以年轻人,keep open mind很重要。

avatar
j*o
53
赞内幕

【在 d******u 的大作中提到】
: I am not 大牛, but I am working on membranes.
avatar
h*i
54
你说的map是map这个函数把?
我说的map是{},这是实用Clojure里面最常用的数据结构,当object用来作为世界模型
的。
注意到我说80%用例就够了的数据结构的时候,我只说了两个:map{} and vector [].
list其实很少用来作为模拟世界的数据,因为list是特殊的,是有“运行”的概念的,
有很多的麻烦,经常需要quote起来,不适合用来作数据,所以Clojure严格区分list和
vector。
数据驱动的DSL,比如hiccup,主要由vector和map构成。还有一种更像程序的DSL, 这
些里面会有一些list来定义可执行的东西,defxyz,defabc, 之类,也仅限于此。
不是FP的话,其实显式的数据结构用处不大。
因为如果数据是mutable的话, 其实真正不变的只是个内存地址,变量表示的是个内存
地址,而不是其内容,所以python有数据结构也不能当JSON来用,一个显式结构只能初
始化用一下,更重要的还是那个变量名。

processing?

【在 T*******x 的大作中提到】
: 嗯,edn是很好,跟json也很相似,python也有同样的数据结构。java的数据结构就很
: 不方便了。
: 你前面说map作为object,我怎么觉得是list作为object,而map作为list processing?

avatar
f*7
55
MIT没有大华和小肥羊吧?看来是非Caltech不可了

【在 j***o 的大作中提到】
: Levis, will consider MIT's offer a tenured chair professor to him and a
: title professor to him wife together!
:
: ,

avatar
h*i
56
呵呵,非Lisp的语言,你可以有这个也可以有那个,但只能是half assed,就是魏老师
说的,不闭环。
因为你的语法太复杂了,人类不能用它来作Lisp能作的事情,神族也许可以,人类不行。
就这怎么简单个事。
Greenspun's tenth rule: Any sufficiently complicated C or Fortran program
contains an ad-hoc, informally-specified, bug-ridden, slow implementation of
half of Common Lisp.

【在 c*******v 的大作中提到】
: 求一个未化简的多项式f(x)的常数项,有两个办法。
: 一个是当作字符串语法分析,收集以及合并系数。
: 另一个是eval f(0)。
: 现在DL走的是后者。原因是没有Lisp机器,所以前者
: 速度不行。
: eval在 C也可以有。
: 按Ken Thompson的说法,用escape分辨
: 字符串(数据)和程序就可以了。
: Cpp模板什么的本身是functional的。应该更方便
: 就可以搞出来。

avatar
L*s
57
拿我开心很有趣么?

【在 l**********1 的大作中提到】
: Levis, tenured offer from Cal Tech only will be considered by him from now,
: CMU nor MIT is out of
: his consideration...

avatar
T*x
58
对,我说的是map-reduce的map。对,list我也主要是指vector,map。

【在 h*i 的大作中提到】
: 你说的map是map这个函数把?
: 我说的map是{},这是实用Clojure里面最常用的数据结构,当object用来作为世界模型
: 的。
: 注意到我说80%用例就够了的数据结构的时候,我只说了两个:map{} and vector [].
: list其实很少用来作为模拟世界的数据,因为list是特殊的,是有“运行”的概念的,
: 有很多的麻烦,经常需要quote起来,不适合用来作数据,所以Clojure严格区分list和
: vector。
: 数据驱动的DSL,比如hiccup,主要由vector和map构成。还有一种更像程序的DSL, 这
: 些里面会有一些list来定义可执行的东西,defxyz,defabc, 之类,也仅限于此。
: 不是FP的话,其实显式的数据结构用处不大。

avatar
l*1
59
Apologize ! Spread runor over 501 times will be catched
even in HKG SAR soon...

【在 L***s 的大作中提到】
: 拿我开心很有趣么?
avatar
s*r
60
News flash: each of your posts presents stiff challenge to my mental
capability, making me doubt my English comprehension skill each time.:)))

★ 发自iPhone App: ChineseWeb 7.8

【在 l**********1 的大作中提到】
: Apologize ! Spread runor over 501 times will be catched
: even in HKG SAR soon...

avatar
d*y
61
俺几个师兄都是那里来的。俺自己去过好几次,因为有合作。 当然是三年多以前的事
情了。

【在 m********a 的大作中提到】
: 扯,附近车程1小时的就有个机场。我从来没听过有人去richmond和夏洛特坐飞机的
: 你真去过VT?

avatar
h*o
62
paper多啊,也有几篇ES&T了,才注意到现在都有ES&TL了。。。

【在 d******u 的大作中提到】
: Seems his main job is to produce trash papers.
avatar
j*o
63
做膜的人文章多引用多,貌似如果发明一种膜能把水分子放过去把有害分子挡住,人类
就可以饮用马桶里的水了,海水立马变淡水,所以能忽悠到钱啊

【在 h**********o 的大作中提到】
: paper多啊,也有几篇ES&T了,才注意到现在都有ES&TL了。。。
avatar
g*t
64
astronaut喝的就是这样的水吧

【在 j***o 的大作中提到】
: 做膜的人文章多引用多,貌似如果发明一种膜能把水分子放过去把有害分子挡住,人类
: 就可以饮用马桶里的水了,海水立马变淡水,所以能忽悠到钱啊

avatar
b*c
65
我觉得regular grant比career更难拿,毕竟career只是和AP比。我们领域career有15%
中奖率,regular只有6%。

【在 m****1 的大作中提到】
: without CAREER, how can you say 牛?
: -- Levis

avatar
s*r
66
也不一定,我就知道一哥们儿在拿career 前拿了三个regular.

15%
★ 发自iPhone App: ChineseWeb 7.8

【在 b*********c 的大作中提到】
: 我觉得regular grant比career更难拿,毕竟career只是和AP比。我们领域career有15%
: 中奖率,regular只有6%。

avatar
a*8
67
的确是,所以说career的确不能算评判一个人牛不牛。其实说到底,拿多少grant都不
能说这个人牛不牛,funding 只是input而已,还得看工作的影响力,做的东西是不是
有开创性。

15%

【在 b*********c 的大作中提到】
: 我觉得regular grant比career更难拿,毕竟career只是和AP比。我们领域career有15%
: 中奖率,regular只有6%。

avatar
p*g
68
什么样的work叫开创性呢?
超牛的方法解决一个大家解决不了的问题,还是一般的方法解决一个大家都没去解决的
问题?

【在 a*********8 的大作中提到】
: 的确是,所以说career的确不能算评判一个人牛不牛。其实说到底,拿多少grant都不
: 能说这个人牛不牛,funding 只是input而已,还得看工作的影响力,做的东西是不是
: 有开创性。
:
: 15%

avatar
s*r
69
都算

★ 发自iPhone App: ChineseWeb 7.8

【在 p*****g 的大作中提到】
: 什么样的work叫开创性呢?
: 超牛的方法解决一个大家解决不了的问题,还是一般的方法解决一个大家都没去解决的
: 问题?

avatar
m*1
70
Yitang says Hi...

【在 p*****g 的大作中提到】
: 什么样的work叫开创性呢?
: 超牛的方法解决一个大家解决不了的问题,还是一般的方法解决一个大家都没去解决的
: 问题?

avatar
l*1
71
merci,
heading one cover of flying pan then escape from here...

【在 s***r 的大作中提到】
: News flash: each of your posts presents stiff challenge to my mental
: capability, making me doubt my English comprehension skill each time.:)))
:
: ★ 发自iPhone App: ChineseWeb 7.8

avatar
e*g
72
有开创性和影响力的工作,那都是得清史留名的,
这个要求太高了,对于跳槽来说,

【在 a*********8 的大作中提到】
: 的确是,所以说career的确不能算评判一个人牛不牛。其实说到底,拿多少grant都不
: 能说这个人牛不牛,funding 只是input而已,还得看工作的影响力,做的东西是不是
: 有开创性。
:
: 15%

avatar
L*s
73
话说你那个文章中了么?

【在 e****g 的大作中提到】
: 有开创性和影响力的工作,那都是得清史留名的,
: 这个要求太高了,对于跳槽来说,

avatar
e*g
74
这种垃圾也值得惦记么,这种话题还是不要在版上提起了。

【在 L***s 的大作中提到】
: 话说你那个文章中了么?
avatar
L*s
75
也算是我在生医领域第一篇么。

【在 e****g 的大作中提到】
: 这种垃圾也值得惦记么,这种话题还是不要在版上提起了。
avatar
L*s
76
你healthcare打算写啥啊?我觉得现在那东西写的人太多了。

【在 e****g 的大作中提到】
: 这种垃圾也值得惦记么,这种话题还是不要在版上提起了。
avatar
e*g
77
还没有空想,最近忙其他的事情。

【在 L***s 的大作中提到】
: 你healthcare打算写啥啊?我觉得现在那东西写的人太多了。
avatar
j*o
78
发考题们你们能不能干点严肃的学问?

【在 L***s 的大作中提到】
: 你healthcare打算写啥啊?我觉得现在那东西写的人太多了。
avatar
d*u
79
ES&TL is nothing. We need Science.

【在 h**********o 的大作中提到】
: paper多啊,也有几篇ES&T了,才注意到现在都有ES&TL了。。。
avatar
h*o
80
做这行的有几个能发Science的啊。。。

【在 d******u 的大作中提到】
: ES&TL is nothing. We need Science.
avatar
d*u
81
many: Benny freeman, Michael Tsapatsis, Henry Foley, etc.

【在 h**********o 的大作中提到】
: 做这行的有几个能发Science的啊。。。
avatar
b*6
82
ROA 40min
你是八十年代去的?

【在 d***y 的大作中提到】
: 第一次VT的时候俺的手机连信号都没有。那个地方超级Boring。做个飞机要么去夏洛特
: 要么去richmond 都是好几个小时的车程。

avatar
e*g
83
ROA太小了吧,

【在 b********6 的大作中提到】
: ROA 40min
: 你是八十年代去的?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。