p*2
2 楼
一年之前被考虑过scala,当时很容易决定不上
1. 感觉太复杂,没有信心能handle
2. 开发速度不敢保证
3. node用了一段时间,感觉很好用,开发效率很高
4. 学了一下Clojure,发觉比scala简单很多,上scala不如上clojure
这样我们的storm上了clojure,web server 和 backend上了node。我们的service可以
handle 5M RPM,server response time 5 ms.
有了一年多的coffee/JS和clojure的经验,再回过头来看scala已经觉得比较容易了。
另外Spark很明显是未来的趋势也是使用scala的一大直接推动力。
我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了,因此
我这段时间主要研究寻找另外一种支持高并发的语言。选Scala有一下几个原因
1. 当然是spark了, spark streaming 可以替代storm,因此scala一个语言就可以搞
定了
2. go的语言设计实在是不符合我们的胃口,虽然并发做的很吸引人
3. haskell的并发看样子相当牛逼,但是纯FP还是太不方便了
4. Scala有actor,STM,future等等,做并发的手段相当丰富
5. Clojure有STM,Scala也有,Clojure copy了Go的CSP模式,但是是个半成品,感觉
用处还是不太大
Scala的主要问题就是太复杂了,所以下一步就需要搞清楚,什么用,什么不用,如何
规范了。
补充一下:不选择Java的原因也很直接,Java不适合我们team的culture。我们的路径
是Ruby->Coffee->Clojure->Scala。我们是favor functional的。当然Java8也加入了
更多的支持,这个还需要观察一下。
1. 感觉太复杂,没有信心能handle
2. 开发速度不敢保证
3. node用了一段时间,感觉很好用,开发效率很高
4. 学了一下Clojure,发觉比scala简单很多,上scala不如上clojure
这样我们的storm上了clojure,web server 和 backend上了node。我们的service可以
handle 5M RPM,server response time 5 ms.
有了一年多的coffee/JS和clojure的经验,再回过头来看scala已经觉得比较容易了。
另外Spark很明显是未来的趋势也是使用scala的一大直接推动力。
我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了,因此
我这段时间主要研究寻找另外一种支持高并发的语言。选Scala有一下几个原因
1. 当然是spark了, spark streaming 可以替代storm,因此scala一个语言就可以搞
定了
2. go的语言设计实在是不符合我们的胃口,虽然并发做的很吸引人
3. haskell的并发看样子相当牛逼,但是纯FP还是太不方便了
4. Scala有actor,STM,future等等,做并发的手段相当丰富
5. Clojure有STM,Scala也有,Clojure copy了Go的CSP模式,但是是个半成品,感觉
用处还是不太大
Scala的主要问题就是太复杂了,所以下一步就需要搞清楚,什么用,什么不用,如何
规范了。
补充一下:不选择Java的原因也很直接,Java不适合我们team的culture。我们的路径
是Ruby->Coffee->Clojure->Scala。我们是favor functional的。当然Java8也加入了
更多的支持,这个还需要观察一下。
B*5
3 楼
可以
d*r
4 楼
"我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了"
二爷再具体说说呗,是因为有大量计算吧
二爷再具体说说呗,是因为有大量计算吧
p*2
5 楼
一个是算法,算法复杂了以后callback还是很难表达
另外一个是并发模式,node只有一个cluster模式,想解决的事情复杂了以后,感觉不
是太够用
我们最近做一个任务,把240G的数据从HDFS倒到cassandra,要求在10分钟之内,这样
一台机器基本不够用,必须上districuted,这样的话,无论akka还是spark都可以完成
这个任务,但是node就很难了,当然也不是不可能,不过估计要花我一些时间去做个
distributed app。
总之,Node的优势是做web service,或者startup/小项目的full stack。真正的大数
据的解决方案还是要在JVM上解决。
【在 d*******r 的大作中提到】
: "我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了"
: 二爷再具体说说呗,是因为有大量计算吧
w*z
6 楼
直接用Java 不行吗?
【在 p*****2 的大作中提到】
:
: 一个是算法,算法复杂了以后callback还是很难表达
: 另外一个是并发模式,node只有一个cluster模式,想解决的事情复杂了以后,感觉不
: 是太够用
: 我们最近做一个任务,把240G的数据从HDFS倒到cassandra,要求在10分钟之内,这样
: 一台机器基本不够用,必须上districuted,这样的话,无论akka还是spark都可以完成
: 这个任务,但是node就很难了,当然也不是不可能,不过估计要花我一些时间去做个
: distributed app。
: 总之,Node的优势是做web service,或者startup/小项目的full stack。真正的大数
: 据的解决方案还是要在JVM上解决。
【在 p*****2 的大作中提到】
:
: 一个是算法,算法复杂了以后callback还是很难表达
: 另外一个是并发模式,node只有一个cluster模式,想解决的事情复杂了以后,感觉不
: 是太够用
: 我们最近做一个任务,把240G的数据从HDFS倒到cassandra,要求在10分钟之内,这样
: 一台机器基本不够用,必须上districuted,这样的话,无论akka还是spark都可以完成
: 这个任务,但是node就很难了,当然也不是不可能,不过估计要花我一些时间去做个
: distributed app。
: 总之,Node的优势是做web service,或者startup/小项目的full stack。真正的大数
: 据的解决方案还是要在JVM上解决。
d*3
8 楼
好贴,顶!
g*g
9 楼
akka是线程之间有复杂的依赖关系的时候好用,多见于纯后端的dispatcher一类应用。
看你的需求只是并发大而已。Java应该没啥问题。
看你的需求只是并发大而已。Java应该没啥问题。
c*e
12 楼
三个月以前你不是还死顶clojure吗?按你当时的逻辑,backend直接上clojure不就行
了,方便好懂.还是spark说服教育能力强。话说回来,看你这个发问的发散程度,你真
是你们team stack的decision maker?
了,方便好懂.还是spark说服教育能力强。话说回来,看你这个发问的发散程度,你真
是你们team stack的decision maker?
l*s
13 楼
好帖!
p*2
14 楼
到现在我也认为clojure比scala设计更优美
上边已经说过了 关键是解决问题 语言是次要的
clojure做后台没啥问题 但是spark对scala确实推动很大 这个很多帖子也解释过了吧
? eco system更重要
我的学习方式就是发散然后归纳 这个有什么不妥吗?
我从来不死抱一种语言 scala还是有很多问题 这个还需要一段时间去梳理 这个过程中
可能还会思维发散
【在 c****e 的大作中提到】
: 三个月以前你不是还死顶clojure吗?按你当时的逻辑,backend直接上clojure不就行
: 了,方便好懂.还是spark说服教育能力强。话说回来,看你这个发问的发散程度,你真
: 是你们team stack的decision maker?
上边已经说过了 关键是解决问题 语言是次要的
clojure做后台没啥问题 但是spark对scala确实推动很大 这个很多帖子也解释过了吧
? eco system更重要
我的学习方式就是发散然后归纳 这个有什么不妥吗?
我从来不死抱一种语言 scala还是有很多问题 这个还需要一段时间去梳理 这个过程中
可能还会思维发散
【在 c****e 的大作中提到】
: 三个月以前你不是还死顶clojure吗?按你当时的逻辑,backend直接上clojure不就行
: 了,方便好懂.还是spark说服教育能力强。话说回来,看你这个发问的发散程度,你真
: 是你们team stack的decision maker?
N*m
15 楼
不错,真正分享hand-on经验的帖子都应该马克
【在 p*****2 的大作中提到】
: 一年之前被考虑过scala,当时很容易决定不上
: 1. 感觉太复杂,没有信心能handle
: 2. 开发速度不敢保证
: 3. node用了一段时间,感觉很好用,开发效率很高
: 4. 学了一下Clojure,发觉比scala简单很多,上scala不如上clojure
: 这样我们的storm上了clojure,web server 和 backend上了node。我们的service可以
: handle 5M RPM,server response time 5 ms.
: 有了一年多的coffee/JS和clojure的经验,再回过头来看scala已经觉得比较容易了。
: 另外Spark很明显是未来的趋势也是使用scala的一大直接推动力。
: 我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了,因此
【在 p*****2 的大作中提到】
: 一年之前被考虑过scala,当时很容易决定不上
: 1. 感觉太复杂,没有信心能handle
: 2. 开发速度不敢保证
: 3. node用了一段时间,感觉很好用,开发效率很高
: 4. 学了一下Clojure,发觉比scala简单很多,上scala不如上clojure
: 这样我们的storm上了clojure,web server 和 backend上了node。我们的service可以
: handle 5M RPM,server response time 5 ms.
: 有了一年多的coffee/JS和clojure的经验,再回过头来看scala已经觉得比较容易了。
: 另外Spark很明显是未来的趋势也是使用scala的一大直接推动力。
: 我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了,因此
h*a
16 楼
赞大牛,这么多buzz words看得眼花缭乱。:)
【在 p*****2 的大作中提到】
: 一年之前被考虑过scala,当时很容易决定不上
: 1. 感觉太复杂,没有信心能handle
: 2. 开发速度不敢保证
: 3. node用了一段时间,感觉很好用,开发效率很高
: 4. 学了一下Clojure,发觉比scala简单很多,上scala不如上clojure
: 这样我们的storm上了clojure,web server 和 backend上了node。我们的service可以
: handle 5M RPM,server response time 5 ms.
: 有了一年多的coffee/JS和clojure的经验,再回过头来看scala已经觉得比较容易了。
: 另外Spark很明显是未来的趋势也是使用scala的一大直接推动力。
: 我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了,因此
【在 p*****2 的大作中提到】
: 一年之前被考虑过scala,当时很容易决定不上
: 1. 感觉太复杂,没有信心能handle
: 2. 开发速度不敢保证
: 3. node用了一段时间,感觉很好用,开发效率很高
: 4. 学了一下Clojure,发觉比scala简单很多,上scala不如上clojure
: 这样我们的storm上了clojure,web server 和 backend上了node。我们的service可以
: handle 5M RPM,server response time 5 ms.
: 有了一年多的coffee/JS和clojure的经验,再回过头来看scala已经觉得比较容易了。
: 另外Spark很明显是未来的趋势也是使用scala的一大直接推动力。
: 我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了,因此
f*t
29 楼
赞干货
【在 p*****2 的大作中提到】
: 一年之前被考虑过scala,当时很容易决定不上
: 1. 感觉太复杂,没有信心能handle
: 2. 开发速度不敢保证
: 3. node用了一段时间,感觉很好用,开发效率很高
: 4. 学了一下Clojure,发觉比scala简单很多,上scala不如上clojure
: 这样我们的storm上了clojure,web server 和 backend上了node。我们的service可以
: handle 5M RPM,server response time 5 ms.
: 有了一年多的coffee/JS和clojure的经验,再回过头来看scala已经觉得比较容易了。
: 另外Spark很明显是未来的趋势也是使用scala的一大直接推动力。
: 我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了,因此
【在 p*****2 的大作中提到】
: 一年之前被考虑过scala,当时很容易决定不上
: 1. 感觉太复杂,没有信心能handle
: 2. 开发速度不敢保证
: 3. node用了一段时间,感觉很好用,开发效率很高
: 4. 学了一下Clojure,发觉比scala简单很多,上scala不如上clojure
: 这样我们的storm上了clojure,web server 和 backend上了node。我们的service可以
: handle 5M RPM,server response time 5 ms.
: 有了一年多的coffee/JS和clojure的经验,再回过头来看scala已经觉得比较容易了。
: 另外Spark很明显是未来的趋势也是使用scala的一大直接推动力。
: 我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了,因此
h*i
33 楼
R我用的很多,这不是一个程序员的语言。
搞Clojure的人不可能来写个R的解释器的,因为R的作者自己都后悔没把R搞成Lisp(见
此文:Back to the Future: Lisp as a Base for a Statistical Computing System
。 https://www.stat.auckland.ac.nz/~ihaka/downloads/Compstat-2008.pdf)。所以
搞Clojure的人很早就搞了个叫incanterhttp://incanter.org/的东东,试图来实现R的原作者的这个Lisp型的R的愿望。
不过R在统计界的地位已经不可动摇了,所以我觉得incanter不会成功。renjin这种也
不行,光有R的解释器没用,因为R不是一个语言,而是一个生态环境。这些JVM上的R模
拟器只要不能直接用R的库,就没有用处,因为用R的一个原因,就是库应有尽有,而且
新的统计文章出来,必然配有相应的R代码,这个没法比。
【在 z****e 的大作中提到】
: 才一个吗?
: renjin就是都用scala写的
: clojure要有人用来写jvm上r的impl,我就闭嘴
: r最近上升势头很猛,对统计需求增加很多
搞Clojure的人不可能来写个R的解释器的,因为R的作者自己都后悔没把R搞成Lisp(见
此文:Back to the Future: Lisp as a Base for a Statistical Computing System
。 https://www.stat.auckland.ac.nz/~ihaka/downloads/Compstat-2008.pdf)。所以
搞Clojure的人很早就搞了个叫incanterhttp://incanter.org/的东东,试图来实现R的原作者的这个Lisp型的R的愿望。
不过R在统计界的地位已经不可动摇了,所以我觉得incanter不会成功。renjin这种也
不行,光有R的解释器没用,因为R不是一个语言,而是一个生态环境。这些JVM上的R模
拟器只要不能直接用R的库,就没有用处,因为用R的一个原因,就是库应有尽有,而且
新的统计文章出来,必然配有相应的R代码,这个没法比。
【在 z****e 的大作中提到】
: 才一个吗?
: renjin就是都用scala写的
: clojure要有人用来写jvm上r的impl,我就闭嘴
: r最近上升势头很猛,对统计需求增加很多
d*r
34 楼
这个长知识
Lisp 威武
System
【在 h*i 的大作中提到】
: R我用的很多,这不是一个程序员的语言。
: 搞Clojure的人不可能来写个R的解释器的,因为R的作者自己都后悔没把R搞成Lisp(见
: 此文:Back to the Future: Lisp as a Base for a Statistical Computing System
: 。 https://www.stat.auckland.ac.nz/~ihaka/downloads/Compstat-2008.pdf)。所以
: 搞Clojure的人很早就搞了个叫incanterhttp://incanter.org/的东东,试图来实现R的原作者的这个Lisp型的R的愿望。
: 不过R在统计界的地位已经不可动摇了,所以我觉得incanter不会成功。renjin这种也
: 不行,光有R的解释器没用,因为R不是一个语言,而是一个生态环境。这些JVM上的R模
: 拟器只要不能直接用R的库,就没有用处,因为用R的一个原因,就是库应有尽有,而且
: 新的统计文章出来,必然配有相应的R代码,这个没法比。
Lisp 威武
System
【在 h*i 的大作中提到】
: R我用的很多,这不是一个程序员的语言。
: 搞Clojure的人不可能来写个R的解释器的,因为R的作者自己都后悔没把R搞成Lisp(见
: 此文:Back to the Future: Lisp as a Base for a Statistical Computing System
: 。 https://www.stat.auckland.ac.nz/~ihaka/downloads/Compstat-2008.pdf)。所以
: 搞Clojure的人很早就搞了个叫incanterhttp://incanter.org/的东东,试图来实现R的原作者的这个Lisp型的R的愿望。
: 不过R在统计界的地位已经不可动摇了,所以我觉得incanter不会成功。renjin这种也
: 不行,光有R的解释器没用,因为R不是一个语言,而是一个生态环境。这些JVM上的R模
: 拟器只要不能直接用R的库,就没有用处,因为用R的一个原因,就是库应有尽有,而且
: 新的统计文章出来,必然配有相应的R代码,这个没法比。
z*3
37 楼
现在做的不就是努力让jvm直接用上r的script嘛
这样可以不用改动r文件,直接就丢给jvm去搞了
其实你的第一句话
基本上可以套用在所有的脚本上
sql, r, js等等
其实脚本都不能算是一个程序员的语言
脚本解决的问题都相对狭隘一点
一旦换一个领域,就要换语言
System
【在 h*i 的大作中提到】
: R我用的很多,这不是一个程序员的语言。
: 搞Clojure的人不可能来写个R的解释器的,因为R的作者自己都后悔没把R搞成Lisp(见
: 此文:Back to the Future: Lisp as a Base for a Statistical Computing System
: 。 https://www.stat.auckland.ac.nz/~ihaka/downloads/Compstat-2008.pdf)。所以
: 搞Clojure的人很早就搞了个叫incanterhttp://incanter.org/的东东,试图来实现R的原作者的这个Lisp型的R的愿望。
: 不过R在统计界的地位已经不可动摇了,所以我觉得incanter不会成功。renjin这种也
: 不行,光有R的解释器没用,因为R不是一个语言,而是一个生态环境。这些JVM上的R模
: 拟器只要不能直接用R的库,就没有用处,因为用R的一个原因,就是库应有尽有,而且
: 新的统计文章出来,必然配有相应的R代码,这个没法比。
这样可以不用改动r文件,直接就丢给jvm去搞了
其实你的第一句话
基本上可以套用在所有的脚本上
sql, r, js等等
其实脚本都不能算是一个程序员的语言
脚本解决的问题都相对狭隘一点
一旦换一个领域,就要换语言
System
【在 h*i 的大作中提到】
: R我用的很多,这不是一个程序员的语言。
: 搞Clojure的人不可能来写个R的解释器的,因为R的作者自己都后悔没把R搞成Lisp(见
: 此文:Back to the Future: Lisp as a Base for a Statistical Computing System
: 。 https://www.stat.auckland.ac.nz/~ihaka/downloads/Compstat-2008.pdf)。所以
: 搞Clojure的人很早就搞了个叫incanterhttp://incanter.org/的东东,试图来实现R的原作者的这个Lisp型的R的愿望。
: 不过R在统计界的地位已经不可动摇了,所以我觉得incanter不会成功。renjin这种也
: 不行,光有R的解释器没用,因为R不是一个语言,而是一个生态环境。这些JVM上的R模
: 拟器只要不能直接用R的库,就没有用处,因为用R的一个原因,就是库应有尽有,而且
: 新的统计文章出来,必然配有相应的R代码,这个没法比。
t*r
39 楼
1年过去了 2爷的scala在组里用的怎么样了
【在 p*****2 的大作中提到】
: 一年之前被考虑过scala,当时很容易决定不上
: 1. 感觉太复杂,没有信心能handle
: 2. 开发速度不敢保证
: 3. node用了一段时间,感觉很好用,开发效率很高
: 4. 学了一下Clojure,发觉比scala简单很多,上scala不如上clojure
: 这样我们的storm上了clojure,web server 和 backend上了node。我们的service可以
: handle 5M RPM,server response time 5 ms.
: 有了一年多的coffee/JS和clojure的经验,再回过头来看scala已经觉得比较容易了。
: 另外Spark很明显是未来的趋势也是使用scala的一大直接推动力。
: 我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了,因此
【在 p*****2 的大作中提到】
: 一年之前被考虑过scala,当时很容易决定不上
: 1. 感觉太复杂,没有信心能handle
: 2. 开发速度不敢保证
: 3. node用了一段时间,感觉很好用,开发效率很高
: 4. 学了一下Clojure,发觉比scala简单很多,上scala不如上clojure
: 这样我们的storm上了clojure,web server 和 backend上了node。我们的service可以
: handle 5M RPM,server response time 5 ms.
: 有了一年多的coffee/JS和clojure的经验,再回过头来看scala已经觉得比较容易了。
: 另外Spark很明显是未来的趋势也是使用scala的一大直接推动力。
: 我们的数据量越来越多,算法越来越复杂,node这个情况已经不太适合做后台了,因此
g*e
44 楼
大牛 听说g只有200工程师 真的假的?
T*7
50 楼
結果1年之后2爷跑路了。
不知道跟强推scala有没有关系
不知道跟强推scala有没有关系
d*r
51 楼
这坟挖的,好像二爷去了 Uber? 那现在应该天天用 Node.js, Python 了吧,说说开发
体验?
体验?
d*r
56 楼
二爷对这个Go的帖子怎么看?
http://www.mitbbs.com/article_t/Programming/31447257.html
里面对 Go error handling 的吐槽,跟你的观点类似啊.
【在 p*****2 的大作中提到】
:
: 2, 以后应该转go了。
http://www.mitbbs.com/article_t/Programming/31447257.html
里面对 Go error handling 的吐槽,跟你的观点类似啊.
【在 p*****2 的大作中提到】
:
: 2, 以后应该转go了。
p*2
57 楼
go的语言很烂呀。go的优势真的不在语言。
【在 d*******r 的大作中提到】
: 二爷对这个Go的帖子怎么看?
: http://www.mitbbs.com/article_t/Programming/31447257.html
: 里面对 Go error handling 的吐槽,跟你的观点类似啊.
h*b
58 楼
觉得发掘node本身的潜力可能会更好。
我觉得你开发起来爽的语言,就是好语言。 其实很多东西在于程序员本身的修养还有
项目架构本身,语言只是很小一部分。
哪怕php这么老的语言,都是学无止境,参考facebook。 你们能把node弄到5M / 5ms
,感觉已经很强了,没必要放弃。
我觉得你开发起来爽的语言,就是好语言。 其实很多东西在于程序员本身的修养还有
项目架构本身,语言只是很小一部分。
哪怕php这么老的语言,都是学无止境,参考facebook。 你们能把node弄到5M / 5ms
,感觉已经很强了,没必要放弃。
d*r
59 楼
感觉二爷忙了不少,最近来灌水少了
p*r
70 楼
请教一下楼主,啥是storm?
相关阅读
发布一个数独游戏软件请教register编程面试题Do the two statements cost the same amount of time?A question related to pipeA C++ question "initializer fails to determine size of 'data'."C++文件读取数值问题能解释一下binary dump吗?c++ template question:F# language一个奇怪的问题一身汗。。。 printf的问题question about socket programming为什么不能成功排序两个看来相似的问题c++ template question:这个图问题的复杂度是多少呢私有成员不能用类成员函数修改?O(n^2)怎么念