|
p****o 发帖数: 1340 | 2 就冲着hci说过的“clojure没有坑”这句话,我就试水了一下clojure,写了几个小程
序。现在给大家汇报一些使用体会。
1. 包管理超强。程序猿可以集中注意在编程,而不是其他乱七八糟的东西上。
2. 作为一种 FP 语言, clojure 有个性,在很多问题上强迫你转换思维。
3. clojure 非常简练,没有废话。
4. 库质量很高,即使是 github 上的三方库的问题都很少。这和 clojure 的语言设计
有关系的,当然用 clojure 的 nerds 水平相应也比较高。
5. clojure 的 FP 设计使得写程序很方便。具体例子,有两次使用的库没有我需要的
功能。看了库的代码后,自己就搞了functor,嵌入到库的framework上了。这在
python 或者 R 上是非常困难滴。
6. clojure 嵌入别的语言很容易,比如用来写网页,无论是HTML还是js。这一点对别
的语言的马工可能不太容易理解,这和 clojure/lisp 的 macro 有关。用 clojure 生
成一个 domain specific language 相对容易,而且自然。... 阅读全帖 |
|
r*****3 发帖数: 143 | 3 中文名: Clojure编程乐趣
原名: The Joy of Clojure
作者: Michael Fogus
Chris Houser
图书分类: 软件
资源格式: PDF
版本: 英文文字版
出版社: Manning
书号: 9781935182641
发行时间: 2011年
地区: 美国
语言: 英文
简介:
内容介绍:
If you've seen how dozens of lines of Java or Ruby can dissolve into just a
few lines of Clojure, you'll know why the authors of this book call it a "
joyful language." Clojure is a dialect of Lisp that runs on the JVM. It
combines the nice features of a scripting language with the powerful
features of a production environment—feat... 阅读全帖 |
|
h*i 发帖数: 3446 | 4 不是大牛,我学Clojure以前没有接触过任何LISP。所以不懂scheme, 据我听说,
Clojure不是很纯粹的LISP, 除了list之外,还引入了其他核心数据结构,map, vector
, set,就是{}, [], #{}, 不像其他LISP只用(),所以把数据弄来弄去的倒腾很容易,
很直观;没有reader macro, 社区也不鼓励用macro, macro主要是高手们用来作轮子用
的,一般应用程序猿基本不用宏,所以有些LISP程序员不喜欢Clojure。不过Clojure的
用户也不是他们,而是我们这种本来用Java的人。
其他的,主要就是Clojure的数据缺省是强制性immutable的,没有变量的存在,scheme
应该不是这样的。这样的话,一般程序员学Clojure一开始,可能会觉得自己都不会编
程了,因为不能用for loop啥的。Clojure的for是list comprehension, 和for loop
完全不同, Clojure的loop recur倒是有点像for loop, 不过也是被皱眉头的。
当然Clojure用熟了,核心的那些map,... 阅读全帖 |
|
h*i 发帖数: 3446 | 5 Clojure一般自建系统,比如搞deeplearning有cortex,等等,不用Clojure的话也不会
知道。
当然也有一些系统是给大家用的,比如metabase, riemann,还有以前的Storm。
Clojure是糙快猛,因为一两个人可以干其他语言十几个人甚至更多人干的事。
比如我的最早的付费用户一直以为我司有几十个人,其实就我一个人加上三个实习生在
写Clojure代码。这些实习生来之前都没听说过Clojure,三个月后完成一个大项目,从
UI设计到数据库,全部用Clojure/Clojurescript实现了,你说是不是糙快猛?
以前我不用Clojure的时候,我觉得搞个DSL很高大上,现在觉得很自然很容易。我两个
星期搞出一个我司现在核心的DSL, compiler, runtime都有了,一个月就加上个Web
based IDE。这些不用Clojure是不可能的。 |
|
t**r 发帖数: 3428 | 6 在java里用clojure的immutable data collection, 比如persistentHashMap.
这样用好处是immutable?具体来说immutable能解决多线程的问题?
compound operation还是得自己保护吧?
package persistent;
import clojure.lang.IPersistentMap;
import clojure.lang.IPersistentSet;
import clojure.lang.IPersistentVector;
import clojure.lang.PersistentHashMap;
import clojure.lang.PersistentHashSet;
import clojure.lang.PersistentVector;
public class PersistentTest {
public static void main(String[] args) {
IPersistentMap m = PersistentHashMap.create("... 阅读全帖 |
|
h*i 发帖数: 3446 | 7 很多Clojure书的第一章会比较clojure和java的括号层数,结论是一样多,无非是括号
位置不同,Java其实是把同样的金字塔拉长。而增加代码行数会减少代码可读性。实验
研究表明只有代码行数是和可读性直接成负相关的,和语法无关。这是为什么理解一个
Clojure包的最简单办法是读代码,而理解Java包的最简单办法不是读代码,而是读文
档。
Clojure一般用2个字符缩进,没有人用4个字符缩进。
Clojure可以用->, ->>, as->宏来把代码搞平,比如下面的代码:
(defn bag-of-words
[docs]
(->> (r/map remove-hashtag-screenname docs)
(r/map tokenize)
r/flatten
(r/remove #(= "" %))
(r/map s/lower-case)
r/foldcat))
这是我们产品里面的代码,干什么的一眼就看明白了吧。r/xyz是Clojure reducer包里
面的函数版本,用来并发提速的。
O... 阅读全帖 |
|
h*i 发帖数: 3446 | 8 I am not sure.
Clojure is one of those languages that once you go there, you will not go
back. I doubt a Clojure shop will be using Clojure "in addition to Java".
Once Clojure is used in a team, there is simply no benefit of using Java for
this team any more. Because whatever Java delivers, Clojure delivers better
. OOP? Check; Ecosystem? Check;
The only thing prevent Clojure from being adopted is the FUD that some old
guards are tirelessly spreading around. It does not matter. Old guards die. |
|
h*i 发帖数: 3446 | 9 用武之地很多,前后端都可以用。可以做到前后用一样的语言,很适合小团队做一个完
整的产品。数据分析型初创公司用Clojure的很多。
大公司的新产品也开始有用Clojure的, 比如现在Walmart打印出来的每张recipt后端
都要走Clojure的code path (https://www.youtube.com/watch?v=av9Xi6CNqq4)。
Walmart这个项目算典型的Clojure大项目,大量使用Clojure的OOP特性,用各种
protocol和component。我自己的创业公司的clojure code也是写成这样的。这其实和
Java Spring的项目结构差不多。 |
|
h*i 发帖数: 3446 | 10 1. 先设好Clojure的编程环境。编辑器(emacs;vim用fireplace)或者IDE(IntelliJ
用cursive; Eclipse用CCW;还有lighttable)啥的,根据自己的喜好设置好,必要的
LISP插件装好,比如paredit啥的,不要闹“数括号”的笑话。最终目的是在这个环境
里能方便地(一个快捷键)用REPL跑代码。Clojure程序是从下到上,一个小函数一个
小函数的用REPL试出来的。
2. 我个人觉得刷4clojure是必须的。自己作完了一个题,再看看高手的代码(跟几个
高手就行了),可以提高很快。等核心的函数基本上记住了(大概作了一百道题之后吧
),也就差不多了。然后就看你想干什么了,上手做项目就行了。
3. 做项目要学会用lein。读lein的example project.clj很有用。
Clojure是反框架的,所以不要期望有什么大而全的框架可以学,都是各种各样的小库
,需要的时候github上找。一般常用功能都能找到几个库,根据自己的喜好和库的情况
选一个,如果github一年都没更新过的库,那就算了。一般的库都没啥文档,看代码就
行了... 阅读全帖 |
|
h*i 发帖数: 3446 | 11 来自主题: _FunctionalProgramming版 - Clojure After almost a year, I think I can call myself a Clojure programmer now.
Yes, I have all 4 clojure books on the market. Joy of Clojure is the one I
like the most. Practical Clojure is pretty good too. But what really got my
going is actually doing Clojure programming exercise in a functional style.
4clojure.com is a good place to try. Project Euler is good too, there's a
euler-clojure wiki where people share their solutions.
and
OnLisp |
|
h*i 发帖数: 3446 | 12 我觉得Clojure发展算很快的了,已经算进入半主流了。现在公司做新项目用Clojure已
经很平常了, 纯用Clojure的公司也多起来了,特别是作数据分析类的公司。
Clojure去年已经在Gartner PL index排15位了,作为这么年轻的语言,这个上升速度
是蛮可以的了,更何况还是一个LISP。
Language Gartner 2014 Programming Language Index Rating
Java 1
JavaScript 2
Python 3
C 4
PHP 5
C++ 6
Ruby 7
C# 8
Perl 9
Objective-C 10
Scala 11
Haskell 12
Matlab 13
R 13
Clojure 15
Lua 16
CoffeeScript 17
Shell 18
D 19
Groovy 20
F# 21
Dart 22
Erlang ... 阅读全帖 |
|
h*i 发帖数: 3446 | 13 Rich Hickey在今年JavaOne会议上的talk,算是他最新的也是最明确的对Clojure的宣
传了。不了解Clojure的程序员,特别是Java程序员,如果有一个小时空闲的话,可以
看看:
http://youtu.be/VSdnJDO-xdg
Clojure经过这么多年的应用,现在社区对Clojure的真正优势有了共识,他这个
Talk算是在阐述这个共识:那就是Clojure是一个以数据为中心的语言。 |
|
h*i 发帖数: 3446 | 14 说明Clojure成熟了,不再是个hippie语言了。
我说过了,Clojure适合某些类型的老程序员,会成为这些人的最后一个语言。每一代
的程序员里面都会出现相当数量的这种人。这些人会发现它,并且发誓只用它。这种宗
教热情,在别的语言可能比较少见。
而且因为Clojure是寄生型的,会适应环境,所以Clojure会一直存在下去,在各种地方
都会出现。 |
|
O***b 发帖数: 104 | 15 这个提法还真是第一次听到,safe option for startup,确实是很关键的一个评价标
准。
我曾经让学生用 Clojure seesaw 做了一个 GUI 来练手,主要用途是让使用者听一段
录音,然后对录音内容做出匹配选择。这个学生没什么编程功底,但是捣鼓捣鼓几个礼
拜也就做出来了,而且分发出去大家用得都挺顺手。当然了,界面是基于Swing 的所以
丑了点。虽然 GUI不是Clojure /JVM 的主攻方向,但是它出活的速度和质量,我还是
很满意的。
总体而言我觉得 Clojure/Clojurescript 很适合小团队创业用。如果这套东西的趋势
真的是聚拢到创业小团队上,那么Clojure 在后端的整体占比不再增加恐怕也是正常的。 |
|
h*i 发帖数: 3446 | 16 number crunching其实不管用什么语言,底层的东西都是BLAS这类,或者用GPU,所以
没有什么Clojure不适合的道理。
Clojure非常适合处理数据,是所谓data oriented programming。
所以看你想干什么。
如果想要自己实现算法,Clojure很合适。我以前在这儿说过,用Clojure实现number
crunching算法非常方便,我自己实现过不少,基本就是按文章上的伪代码翻译。因为
人写的number crunching的伪代码,其实都是用FP的风格, 即使他自己实现的时候用的
C++,用imperative风格来实现的,但他描述这个算法的时候,不用FP风格的话,文章
的小篇幅是讲不清楚的。
如果你想用现成的东西,那Clojure是没有啥可用的(其实Java也没啥可用的),你不
如用R用python来得方便。 |
|
d*******r 发帖数: 3299 | 17 Clojure Storm 用在生产环境中到底如何,简单可靠吗,坑多不多...?
我们组里讨论完,老板同意试用 Clojure Storm 来做做数据分析。
我呆在中部地区一个做Sports视频直播的小公司(农村人民特喜欢Sports, 我们还有不
少用户),公司从视频录制, 到上传到我们AWS的servers 上,再到最后分发 streaming
到 终端player,都是我们自己在写。
现在需要较快地分析大量从 终端player 软件上返回的各种信息, 比如直播效果和广告
的信息。
大家讨论说 hadoop2.0 是不是太慢太复杂,干脆去看看能用 Clojure Storm 不 --
其实我们组在这方面都是些菜菜,大家瞎折腾... :D
大牛们有在实际生产中用 Storm 相关的经验吗? 用这东西主要要注意哪些坑?还有,
我们都是些主用 Python 的菜菜,如果组里先不用 Clojure,只用 Python 能玩得动
Storm 不?
我们现在需求还有点模糊,等回头做了一阵可能再来请教大家。 |
|
h*i 发帖数: 3446 | 18 是的,LISP好学。语法简单,就没有什么语法。
在过去只有单色显示器的时候,括号太多可能是个可读性问题。现代的编辑器都是彩色
的,每层括号都有不同的颜色,就不存在这个问题了。而且LISP程序员读LISP代码的时
候是看不见括号的,代码的缩进更重要,这个和其他语言没有什么区别(python?)。
而在写代码的时候,有括号是有很大的帮助的,用paredit这种类型的工具,感觉不是
在编辑一串文本符号,而是在操作一个个代码的语义单位。总的来说,感觉更接近人的
高层思维一些。
我个人觉得Clojure最大的好处是对数据的处理非常的直观,不像其他编程语言,数据
的模型是放在程序员的脑袋里的,需要自己去想象数据长啥样,而在Clojure里面,所
有数据结构都是可视化的,和JSON差不多:
比如()是表,和其他LISP不同,Clojure里面很少直接用表来作数据结构,一般用
vector和map, 也就是[]和 {}。比如在代码里面直接就写
[{:id "hci" :work nil :location "CA"}
{:id "goodbug" :work "netflix" :location "... 阅读全帖 |
|
h*i 发帖数: 3446 | 19 static typing, dynamic type, 这是永远扯不清的。
我个人没觉得static typing对我写程序有多大帮助,从static的Java换到dynamic的
Clojure,我没有觉得缺少了什么东西。大概static typing的好处我没感受到吧。你说
的IDE的这些方便东东, dynamic语言也能做到,实现的方法不同而已,比如用王垠那种
东西。对用户来说,如何实现的不值得关心,一样的用就行了。Clojure的ligthtable,
cursive等等据说都是很好的IDE,应该也有这些自动补全的功能。
个人的编程风格不同,我没要试图说服你。我以前是Java程序员,Java对我来说是has
been,你这些说法对我没什么用,所以也不要试图来说服我。
统计表明,大部分Clojure程序员以前是Java程序员,很少有FP背景的人变为Clojure程
序员的,因为那些人都很恨JVM,哈哈。 |
|
n******7 发帖数: 12463 | 20 谢谢建议
今天看了一个比较scala和clojure的blog也说这个community的问题
The Community
Ok, so Scala gets a 3.5 star rating. I deducted 1 star from Scala because
Martin Odensky doesn’t attend it. I asked how people got in touch with him
and I got comments like “He contacted me on Skype once”, “He uses white
rats as messengers” etc. He’s not involved and interacting with the
community in the same way Rich Hickey (author of Clojure) is and that really
makes all the difference. The last 0.5 star I deducted was because I
act... 阅读全帖 |
|
h*i 发帖数: 3446 | 21 三周完全够了。其实4clojure那种“自己实现某核心函数“的题有点误导,完成这些题
往往需要recursion。但在真正的项目中,很少用到recursion,基本上就是直接用各种
核心函数组合起来,很适合ad hoc数据处理。
等你翻过了坎,做了一些项目,就会意识到,从本质上说,Clojure其实是很
imperative的,真正项目的大部分代码都是在隐含包在do里面,比如在let,doseq等等
里面,这其实都是在一步一步执行的。所以用Clojure实现算法的pseudo-code往往觉得
是行行对应的。
总的来说,Clojure是一个实用性的语言,口味是追求简单实用的,并不追求什么纯粹
性, 这和haskell完全不同。比如我完全不懂什么是monad,但一点也不妨碍我用
Clojure。 |
|
h*i 发帖数: 3446 | 22 现实。
这其实是个机器执行性能和人的生产力的矛盾,平衡点在哪里要看用例,这是一个CTO
技术眼光的问题。
haskell这些编译成优化的机器码的当然性能不错,但生态环境要差点。Clojure直接用
Java的生态环境,出东西快,而且稍微费点功夫去优化代码(比如用array而不用seq,
用unchecked math, 用type hint,等等),也可以做到和Java一样的性能。
关键就看值不值得去优化。一般Web应用,瓶颈在网络,所以大家用Clojure不怎么优化
也觉得就够了。有的应用,比如数值分析,那Java也不行,还得调用原生的Fortran库
,这个Clojure也能作。
总之Clojure的哲学是让方便的东西方便,简单的东西简单,需要优化的地方可能优化
,尽量把语言本身带来的复杂性去掉,留下问题本身的复杂性让人来解决。 |
|
g*****g 发帖数: 34805 | 23 这个需要我怕吗?你丫鼓吹了clojure好几年,clojure牛逼了吗?你丫喜欢clojure,
没什么不行。但成天自我安慰啥clojure这种语言才是未来,就是不敢面对现实被现实
生生打脸
,根本不用我来。也不撒泡尿照照镜子,看看谁是活宝。
呵。 |
|
O***b 发帖数: 104 | 24 我在 LA 的时候经常去 Clojure meetup ,组织者都是 Factual 公司的人,这个公司
是比较死忠的 Clojure shop,很核心的基础设施都是Clojure搭的。不知道这几年
Factual发展怎么样了,他家在我的认知当中是一个标杆企业。 |
|
h*i 发帖数: 3446 | 25 Factual是个大数据公司,可能也就那样了,最后不卖掉的话,可能也不能做得太大。
发展如何我不太清楚。他们SF办公室的Zack Tellman已经走了几年了。
现在初创公司用Clojure已经算是一个安全的选择了。很多Clojure公司都exit了。
初创公司,技术选择的重要性主要体现在对资源的要求不同,选Clojure主要是为了少
花钱,多办事。 |
|
p*****2 发帖数: 21240 | 26 【 以下文字转载自 Programming 讨论区 】
发信人: peking2 (clojure), 信区: Programming
标 题: 中国人应该学习Clojure
发信站: BBS 未名空间站 (Sun Nov 17 18:47:16 2013, 美东)
Clojure的Logo就是中国古老的阴阳鱼。 |
|
g*******o 发帖数: 156 | 27 clojure挺有意思的。有时候会有错觉,感觉clojure coding就象以前做数学证明和推
导,哈哈~~
话说回来写ruby也挺爽,就是效率不如clojure。。。 |
|
|
c******o 发帖数: 1277 | 29 there is no problem to use either.
the key is what project you gonna do.
you should use clojure for prototype/fast project/not known project
for long term/big team/well understood project, i definitely say scala.
clojure has one way to do things and very clean. but that way is not the
best for everything.
scala is very complex if you want to use all powers. but it really the only
thing you can use like a Haskell and at the same time use like a clean power
Java. a good plan IMO can make scala co... 阅读全帖 |
|
p*****2 发帖数: 21240 | 30 发现无论使用什么语言的大牛到了评论Clojure的时候都赞不绝口。连zhaoce这样对语
言极端挑剔的大牛也对Clojure钟爱不已。
看来学习Clojure才是王道呀。 |
|
m******t 发帖数: 635 | 31 just use the built-in Clojure.test?
玩票Clojure也一年多了,以前都是自己的toy project,这次第一次要上生产系统,写
测试的话,用哪个库比较好,还是就用clojure.test就可以了?
二爷给点建议呗 |
|
n*****3 发帖数: 1584 | 32 请教一下· CLOJURE DataManipulation/Data munging 好写吗? 我觉得 CLOJURE
没 dataframe 这东西啊。。。
我们组 要 用 CLOJURE 把 R 写 的 Data munging/FEATURE ENGINEERING code
重写, move everything to JVM |
|
h*i 发帖数: 3446 | 33 你说的flat无非就是给一个东西一个名字,这个方式在小范围是有效的,在Clojure里
面,一般用let来实现:
(let [place (.rise sun)]
(.go goodbug place))
问题是如果只有这么一种flat的办法,用在一切地方,就过分的,成了kingdom of
nouns.
clojure的办法就多一些,一是数据的直白化,二是用常用的宏来扁平化,三是在合适
的地方用名字。
不同的人喜欢不同的风格吧,比如我写Java的时候也是从来不用debugger的,从来不设
断点,喜欢打印式debug。我喜欢clojure也不奇怪。 |
|
h*i 发帖数: 3446 | 34 其他的FP语言我不知道。在Clojure这个生态环境里面,目前我还没有发现有啥缺了没
人作的东东。JVM上啥没有?Clojure只是JVM上薄薄的一层。想用一个FooClass类上的
method1和方法method2?
(doto (FooClass. "bar" 1)
(.method1 arg1)
(.method2 arg2))
就这么简单。
我不用IDE而已,我看那些用IDE的Clojure程序员也很高兴,没觉得缺了啥。我是从IDE
党转成vi党的,这又怎么说? |
|
f******x 发帖数: 98 | 35 完全同意,我也是在做完4clojure上的题目后才真正理解和认同Clojure的philosophy。
编程不学LISP,纵写亿行也枉然
Clojure,Clojure,不用赋值最牛逼, |
|
l*********s 发帖数: 5409 | 36 programing clojure and clojure programming, + the joy of clojure |
|
h*i 发帖数: 3446 | 37 Emerick, Carper & Grand, Clojure Programming, O'Reilly, 2012. 比较系统和全面
,适合从头学习。
Fogus & Houser, The Joy of Clojure, 2nd Edition, Mannings, 2015
更深一些,写得比较chatty, 但是对掌握Clojure的思想精髓很有帮助,没事可以读读
玩。
还有就是做题, 4clojure.com |
|
h*i 发帖数: 3446 | 38 That's because you are not a Clojure user. Clojure's not for everyone. But
for people who like it, there's no reason to choose Java over Clojure. That'
s the truth.
You don't like it, that's fine. But denying that truth doesn't work. Because
you are not one of those people who like it.
The static vs. dynamic debate is like a religious wars, It doesn't make
sense for static people to bash dynamic people. For example, I never felt
what the static language does for me is useful. Because most of the... 阅读全帖 |
|
h*i 发帖数: 3446 | 39 I am talking a subset of people who use clojure, who have adopted Clojure as
their main language and call themselves Clojurian, Clojorist, or something
similar. For those people, there is no point using Java over Clojure. That's
my point. It's a fact.
You have nothing to say against the above point, yet you still managed to
say "it's wrong". I call that FUD. Maybe not intentional, but it is FUD
nevertheless. |
|
c******o 发帖数: 1277 | 40 Someone insist on using Clojure is fine, their choices, but what you said:
"Once Clojure is used in a team, there is simply no benefit of using Java
for
this team any more. Because whatever Java delivers, Clojure delivers better
. OOP? Check; Ecosystem? Check; "
is wrong statement. It is a general statement that is wrong. |
|
c******o 发帖数: 1277 | 41 Why they have to abandon? I said java has benefit for team use clojure. Why
should they abandon clojure?
I write code in scala/clojure/java 8 daily, some more, some less. |
|
h*i 发帖数: 3446 | 42 1. 先设好Clojure的编程环境。编辑器(emacs, vim用fireplace)或者IDE(IntelliJ
用cursive, Eclipse用CCW, 还有lighttable)啥的,根据自己的喜好设置好,必要的
LISP插件装好,比如paredit,rainbow啥的,不要闹“数括号”的笑话。最终目的是在
这个环境里能方便地(一个快捷键)用REPL跑代码。Clojure程序是从下到上,一个小
函数一个小函数的来码出来的。
2. 我个人觉得刷4clojure是必须的。自己作完了一个题,再看看高手的代码(跟几个
高手就行了),可以提高很快。等核心的函数基本上记住了(大概作了一百道题之后吧
),也就差不多了。然后就看你想干什么了,上手做项目就行了。
3. 做项目要学会用lein。读lein的example project.clj很有用。
Clojure是反框架的,所以不要期望有什么大而全的框架可以学,都是各种各样的小库
,需要的时候github上找。一般常用功能都能找到几个库,根据自己的喜好和库的情况
选一个,比如github一年都没更新过的库,那就算了。 |
|
|
h*i 发帖数: 3446 | 44 pixie还没有Beta。不过看进展的速度(从最开始到现在也就一年时间),可能今年底
就可用了。有了这个,Clojure程序员搞native也没有问题了,比较看好。看实现细节
,基本上是偷了各种目前最好的东东,RPython, node.js, C++ boost template, 都
用上了,哈哈。
pixie的作者是Cognitect(Rich Hickey的公司)的雇员,写Clojure core.async的,
要是pixie比较成功的话(现在github都有1200多星了),cognitect可能会把它纳入
Clojure的系列中吧,看他们两个人能不能达成什么样的协议。 |
|
h*i 发帖数: 3446 | 45 As long as Rich Hickey lives, Clojure will be alive.
Clojure is supported by Hickey's company, Cognitect, where he's the CTO.
The company's main product is Datomic, a commercial database. They also sell
consulting services to companies who use Clojure, e.g. WalmartLabs, Boeing,
etc. |
|
n*****3 发帖数: 1584 | 46 我个人觉得都很少, 很小众
clojure is cool , 但缺乏杀手级应用, like
spark, aka, Kafka for closure
很适合 小start up , clojure, clojure script takes care everything |
|
h*i 发帖数: 3446 | 47 我对Scala没研究过,但从一些人的评论来看,Scala是一种很复杂的语言,OOP, FP,
什么都想要,所以不是我的菜,没有一丁点的兴趣。这是个口味问题,当年我面临C++
和Java的选择,我选了Java。所以Scala与Clojure,必然是选Clojure啊。
也有人在搞llvm上的Clojure |
|
|
h*i 发帖数: 3446 | 49 在招人的时候,会发现很多这样的老程序员,他们找工作的一个重要标准就是“我能够
天天写Clojure么?“。他们从一个failed starup转战到下一个failed starup,完全
不管挣多少钱的事,就是为了继续写Clojure。
过了我的技术面试的人里面,一半是这样的老程序员,另一半是刚毕业的中国留学生。
哈哈。 |
|
h*i 发帖数: 3446 | 50 JVM主要是用来做企业应用的,Clojure也是。你说的这些统计ML之类,如果是搞来玩,
学术用用的话,JVM基本没有什么可用的。因为这些玩意,老实说企业应用很少需要的
,听起来很火,其实没啥用。真要用到统计ML之类,基本上都是自己搞,作一些简单实
用的算法。大体上都是线下训练,用R, python之类来训练,线上用自己写的生产代码
。现在DL很火,其实企业用的地方也很少。
Clojure现在有一些原生线性代数的库,比如neanderthal,可以直接调BLAS和LAPACK,
也可以直接用GPU,所以性能和别的语言差不多。
DL也有Clojure的框架,比如有个小公司搞了个叫cortex的,可以看看。
programming |
|