由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 从心底讨厌scala
相关主题
易写性,易维护和执行效率综合来看data science如何进阶?
别人说做Python的并行还不如去学C++,我不同意。如果不用很高级的feature,C++/Scala是否值得一战?
Python至少还能管3年把python当成通用script来学,哪些module需要熟练?
Python大牛说说那本书比较经典呢?python要把@当作矩阵乘法算符
java很快吗?比python 能快多少?求python大牛指路
有人上Spark用python API的么阅读scala中
今天的学习成果Anaconda装起来会跟已有的python dist有什么冲突吗?
data.table谁用过? 有那么神吗?python在2009年差点死掉,后来为什么起死回生了?
相关话题的讨论汇总
话题: python话题: scala话题: gil话题: java话题: c++
进入Programming版参与讨论
1 (共1页)
g*********9
发帖数: 1285
1
俺这里好的IT公司很少,最近发现一个弯曲不错的公司在这里有个分舵,blog上的文章
很牛,看来里面有高人,但仔细一看,公司主导scala, 还让一堆人在网页上说scala如
何如何好,马上感觉象吃了老鼠屎一样。
functional programming本来就是搞数学的用的,非用在generic programming上,程
序变成了一堆数学符号,写得快,可读性几乎没用,写并发容易?Java把concurrency
加在语言里,已经很容易了(和c++比),说Java写并发不容易的,那是水平不到位。一
帮子Java multithreading都不太明白的程序员,用scala写并发,能写出什么来?
Java 8里面的lamba也很恶心,整个一误入歧途。
p*****2
发帖数: 21240
2
Scala可以完全写OOP
p*****2
发帖数: 21240
3
Scala可以完全写OOP
c*******9
发帖数: 9032
4
做逻辑复杂的应用 functional programming很方便。你觉得没用是因为你以前的项目
比较简单。
Java 8的lamba语法太啰嗦。

concurrency

【在 g*********9 的大作中提到】
: 俺这里好的IT公司很少,最近发现一个弯曲不错的公司在这里有个分舵,blog上的文章
: 很牛,看来里面有高人,但仔细一看,公司主导scala, 还让一堆人在网页上说scala如
: 何如何好,马上感觉象吃了老鼠屎一样。
: functional programming本来就是搞数学的用的,非用在generic programming上,程
: 序变成了一堆数学符号,写得快,可读性几乎没用,写并发容易?Java把concurrency
: 加在语言里,已经很容易了(和c++比),说Java写并发不容易的,那是水平不到位。一
: 帮子Java multithreading都不太明白的程序员,用scala写并发,能写出什么来?
: Java 8里面的lamba也很恶心,整个一误入歧途。

q*c
发帖数: 9453
5
为啥我周围的人都觉得看 FP 的程序就是困难呢? 逻辑复杂了, 各种 map 嵌套在一
起, 那是相当的难读。
难道是因为大家都比较傻?
我一直认为,语言的功能是交流。 好的计算机语言, 就和好的人类语言一样, 要看
/听起来容易理解, 而不是说/写的快.
我宁可叫计算机多花 10M bytes 硬盘存储, 多写 2 倍长的程序, 也不想拧自己的
脑子, 把自己当计算机语言 parser.

【在 c*******9 的大作中提到】
: 做逻辑复杂的应用 functional programming很方便。你觉得没用是因为你以前的项目
: 比较简单。
: Java 8的lamba语法太啰嗦。
:
: concurrency

c*******9
发帖数: 9032
6
什么东西不是一开始困难。你们在java上花多少时间。
什么人类语言好也是仁者见仁。我认为文言文比现代文精简,表达力强。文言文的弃用
不是因为人的智力无法驾驭,而是
政治原因。

【在 q*c 的大作中提到】
: 为啥我周围的人都觉得看 FP 的程序就是困难呢? 逻辑复杂了, 各种 map 嵌套在一
: 起, 那是相当的难读。
: 难道是因为大家都比较傻?
: 我一直认为,语言的功能是交流。 好的计算机语言, 就和好的人类语言一样, 要看
: /听起来容易理解, 而不是说/写的快.
: 我宁可叫计算机多花 10M bytes 硬盘存储, 多写 2 倍长的程序, 也不想拧自己的
: 脑子, 把自己当计算机语言 parser.

x***4
发帖数: 1815
7
我觉得scala写fp style的业务逻辑还是挺清楚的。但是强烈建议简化语言,什么 +:,
::, :=的实在太疯狂。还有就是implicit创造了很多mystery,不深入某个lib的source
code的话非常难理解。

【在 c*******9 的大作中提到】
: 什么东西不是一开始困难。你们在java上花多少时间。
: 什么人类语言好也是仁者见仁。我认为文言文比现代文精简,表达力强。文言文的弃用
: 不是因为人的智力无法驾驭,而是
: 政治原因。

h*i
发帖数: 3446
8
FP要更高层,更接近人的思维一些。
举一个手头上的例子,我正在用Clojure实现一个今年新出的文章里面的一个
clustering算法,写完发现,我写的Clojure代码和文章里的假代码完全是一一对应的
,非常好懂。而原作者自己实现的的C++代码长很多倍不说,外人是完全不可能读懂的。
更奇怪的是,文章里的假代码完全是按imperative编程的写法写的,到处都是for loop
,mutation,assignment,但转成FP完全就是几乎行行对应,只需要把for loop变成
Clojure sequence functions (map, reduce, iterate, etc)就行了。呵呵。

【在 q*c 的大作中提到】
: 为啥我周围的人都觉得看 FP 的程序就是困难呢? 逻辑复杂了, 各种 map 嵌套在一
: 起, 那是相当的难读。
: 难道是因为大家都比较傻?
: 我一直认为,语言的功能是交流。 好的计算机语言, 就和好的人类语言一样, 要看
: /听起来容易理解, 而不是说/写的快.
: 我宁可叫计算机多花 10M bytes 硬盘存储, 多写 2 倍长的程序, 也不想拧自己的
: 脑子, 把自己当计算机语言 parser.

b******y
发帖数: 9224
9

也是,程序不好维护的话,做research可以,但做大规模开发就不合算了。

【在 q*c 的大作中提到】
: 为啥我周围的人都觉得看 FP 的程序就是困难呢? 逻辑复杂了, 各种 map 嵌套在一
: 起, 那是相当的难读。
: 难道是因为大家都比较傻?
: 我一直认为,语言的功能是交流。 好的计算机语言, 就和好的人类语言一样, 要看
: /听起来容易理解, 而不是说/写的快.
: 我宁可叫计算机多花 10M bytes 硬盘存储, 多写 2 倍长的程序, 也不想拧自己的
: 脑子, 把自己当计算机语言 parser.

p*****2
发帖数: 21240
10

scala大规模开发根本找不到那么多人

【在 b******y 的大作中提到】
:
: 也是,程序不好维护的话,做research可以,但做大规模开发就不合算了。

相关主题
有人上Spark用python API的么data science如何进阶?
今天的学习成果如果不用很高级的feature,C++/Scala是否值得一战?
data.table谁用过? 有那么神吗?把python当成通用script来学,哪些module需要熟练?
进入Programming版参与讨论
d****r
发帖数: 300
11
是啊,谁想到东岸当scala程序员,给我投个条

【在 p*****2 的大作中提到】
:
: scala大规模开发根本找不到那么多人

T*****e
发帖数: 361
12
东岸哪儿呀?我有兴趣,就怕你们看不上……

【在 d****r 的大作中提到】
: 是啊,谁想到东岸当scala程序员,给我投个条
d******e
发帖数: 2265
13
T家?

【在 T*****e 的大作中提到】
: 东岸哪儿呀?我有兴趣,就怕你们看不上……
d******e
发帖数: 2265
14
今天比较了一下python 和scala.
scala有些功能还是真的蛋疼多余,有些语法糖还不够

,
source

【在 x***4 的大作中提到】
: 我觉得scala写fp style的业务逻辑还是挺清楚的。但是强烈建议简化语言,什么 +:,
: ::, :=的实在太疯狂。还有就是implicit创造了很多mystery,不深入某个lib的source
: code的话非常难理解。

p*****2
发帖数: 21240
15

什么功能多余?

【在 d******e 的大作中提到】
: 今天比较了一下python 和scala.
: scala有些功能还是真的蛋疼多余,有些语法糖还不够
:
: ,
: source

q*c
发帖数: 9453
16
你知道左派搞死美好社会的最大武器是啥?
抹杀程度区别。
你的言论就是这个调调。
"文言文的弃用不是因为人的智力无法驾驭,而是政治原因。"
真是胡扯八道。 罔顾基本历史事实。 历史事实是文盲都能说白话文, 那是人类自然
就能形成的。 但是要多年训练才能正确交流文言文。
左派的另一个特点就是毫无人性, 根本不管别人, 只要自己爽到, 就是全人类爽了
, 呵呵。 :)

【在 c*******9 的大作中提到】
: 什么东西不是一开始困难。你们在java上花多少时间。
: 什么人类语言好也是仁者见仁。我认为文言文比现代文精简,表达力强。文言文的弃用
: 不是因为人的智力无法驾驭,而是
: 政治原因。

q*c
发帖数: 9453
17
implicit 最典型不过的表明了这个语言设计的基本思想:
看着美丽, 爽, 比真的用户使用愉快, 要更重要。
共产主义不就是这样的吗? 这是这帮左派偏偏要别人去享受, 自己就是死也不去北朝
鲜去享受皮鞭铁丝。
实在是精神分裂啊。
尼玛scala, 经常IDE 自动去掉一个 (unused) import, 马上无法编译, 还有要弄个函
数进来, 照抄都不 work...例子里几十上百的 import 就只能一个个看过去, 看看哪
个是缺了的 implicit.

,
source

【在 x***4 的大作中提到】
: 我觉得scala写fp style的业务逻辑还是挺清楚的。但是强烈建议简化语言,什么 +:,
: ::, :=的实在太疯狂。还有就是implicit创造了很多mystery,不深入某个lib的source
: code的话非常难理解。

q*c
发帖数: 9453
18
人脑又不是宇宙里面最高层的东西, 不是啥玩意越高层越好。
宇宙真理, 万物无我最高层, 你喜欢?

的。
loop

【在 h*i 的大作中提到】
: FP要更高层,更接近人的思维一些。
: 举一个手头上的例子,我正在用Clojure实现一个今年新出的文章里面的一个
: clustering算法,写完发现,我写的Clojure代码和文章里的假代码完全是一一对应的
: ,非常好懂。而原作者自己实现的的C++代码长很多倍不说,外人是完全不可能读懂的。
: 更奇怪的是,文章里的假代码完全是按imperative编程的写法写的,到处都是for loop
: ,mutation,assignment,但转成FP完全就是几乎行行对应,只需要把for loop变成
: Clojure sequence functions (map, reduce, iterate, etc)就行了。呵呵。

h*i
发帖数: 3446
19
我是学心理学出身的,我还真觉得人脑是已知的宇宙里面最高层的东西。
要不你说说还有什么更高层的?
佛教的“万物无我”的想法是人脑产生的,对不对?就连数学也一样是人脑产生的。
数学可以这样被定义:“Mathematics is the study of mental objects with
reproducible properties.” 见《Mathematics under microscope》http://www.maths.manchester.ac.uk/~avb/micromath
没想过吧?

【在 q*c 的大作中提到】
: 人脑又不是宇宙里面最高层的东西, 不是啥玩意越高层越好。
: 宇宙真理, 万物无我最高层, 你喜欢?
:
: 的。
: loop

w***g
发帖数: 5958
20
scala代码非常短小精悍,jvm世界里用来做数据处理一天要试三五种算法,90%以上
的代码最终要丢进垃圾框的这种,我觉得还真是非scala莫属。
等用java写出来,黄花菜都凉了。我前一阵要上spark学过一阵scala,
现在已经忘光了。scala虽然恶心,总比perl好点。

concurrency

【在 g*********9 的大作中提到】
: 俺这里好的IT公司很少,最近发现一个弯曲不错的公司在这里有个分舵,blog上的文章
: 很牛,看来里面有高人,但仔细一看,公司主导scala, 还让一堆人在网页上说scala如
: 何如何好,马上感觉象吃了老鼠屎一样。
: functional programming本来就是搞数学的用的,非用在generic programming上,程
: 序变成了一堆数学符号,写得快,可读性几乎没用,写并发容易?Java把concurrency
: 加在语言里,已经很容易了(和c++比),说Java写并发不容易的,那是水平不到位。一
: 帮子Java multithreading都不太明白的程序员,用scala写并发,能写出什么来?
: Java 8里面的lamba也很恶心,整个一误入歧途。

相关主题
python要把@当作矩阵乘法算符Anaconda装起来会跟已有的python dist有什么冲突吗?
求python大牛指路python在2009年差点死掉,后来为什么起死回生了?
阅读scala中Python pandas 是坑不?
进入Programming版参与讨论
d****i
发帖数: 4809
21
做数据处理为什么要没事找事的用从来都不用来做这个的jvm啊?Python, R, Matlab不
是专门用来做这个的吗?实在不会编程的话excel都可以啊。

【在 w***g 的大作中提到】
: scala代码非常短小精悍,jvm世界里用来做数据处理一天要试三五种算法,90%以上
: 的代码最终要丢进垃圾框的这种,我觉得还真是非scala莫属。
: 等用java写出来,黄花菜都凉了。我前一阵要上spark学过一阵scala,
: 现在已经忘光了。scala虽然恶心,总比perl好点。
:
: concurrency

w***g
发帖数: 5958
22
目前的几个大数据处理的不都是jvm的?scala还是有它的market的,不然怎么会有vc给
投钱?
这个就是牛人影响历史的例子。如果有个更牛的用basic写出来一个比spark更牛的轮子,
用basic的人自然会多。当年google的gfs/mapreduce如果开源了,根本就不会有hadoop
啥事,也就不会有后来java在大数据处理上称王称霸的现状。在我看来,java跟basic
基本上就是一个水平。

【在 d****i 的大作中提到】
: 做数据处理为什么要没事找事的用从来都不用来做这个的jvm啊?Python, R, Matlab不
: 是专门用来做这个的吗?实在不会编程的话excel都可以啊。

c******o
发帖数: 1277
23
因为运行慢。
我们现在每天distilled/condensed key data是18GB, 计算很多时候要把前面的40TB
的一起用。
单个游戏没有处理的raw data每天那是不得了,1-2 TB per day.
我们这些都还是算小的。
当然,要是有能力,用写OS的人才(c/c++)写数据处理也可以,肯定更好,更快。但是
那人力资源和耗时,比起scala on spark就是不可同日而语了。

【在 d****i 的大作中提到】
: 做数据处理为什么要没事找事的用从来都不用来做这个的jvm啊?Python, R, Matlab不
: 是专门用来做这个的吗?实在不会编程的话excel都可以啊。

g*****g
发帖数: 34805
24
难道不是Python才是DS最爱?

【在 w***g 的大作中提到】
: scala代码非常短小精悍,jvm世界里用来做数据处理一天要试三五种算法,90%以上
: 的代码最终要丢进垃圾框的这种,我觉得还真是非scala莫属。
: 等用java写出来,黄花菜都凉了。我前一阵要上spark学过一阵scala,
: 现在已经忘光了。scala虽然恶心,总比perl好点。
:
: concurrency

d****i
发帖数: 4809
25
Python不是可以在hadoop上跑吗?不一定非得用jvm吧。再说所谓的“大数据”,其实
是伪命题,归根到底还是“数据”,大不大其实和实际的算法无关,都是是吹出来的。
Java还是比Basic要强多了,至少有了C的syntax,看上去美观一些。

子,
hadoop
basic

【在 w***g 的大作中提到】
: 目前的几个大数据处理的不都是jvm的?scala还是有它的market的,不然怎么会有vc给
: 投钱?
: 这个就是牛人影响历史的例子。如果有个更牛的用basic写出来一个比spark更牛的轮子,
: 用basic的人自然会多。当年google的gfs/mapreduce如果开源了,根本就不会有hadoop
: 啥事,也就不会有后来java在大数据处理上称王称霸的现状。在我看来,java跟basic
: 基本上就是一个水平。

h*i
发帖数: 3446
26
Production还是JVM
R才是DS的最爱。python四不像,我真不看好。

【在 g*****g 的大作中提到】
: 难道不是Python才是DS最爱?
c******o
发帖数: 1277
27
scale matters, otherwise, most of us on this board will not have a job.

【在 d****i 的大作中提到】
: Python不是可以在hadoop上跑吗?不一定非得用jvm吧。再说所谓的“大数据”,其实
: 是伪命题,归根到底还是“数据”,大不大其实和实际的算法无关,都是是吹出来的。
: Java还是比Basic要强多了,至少有了C的syntax,看上去美观一些。
:
: 子,
: hadoop
: basic

w***g
发帖数: 5958
28
python比scala慢100倍,scala用一台机器算,相同的时间用python算就要100台机器
甚至更多。如果数据小,当然是直接用python/C++,还有spark啥事。从语言上看,
python其实也是一坨屎,设计上可能比scala还不如,用python不过也是为了有轮子
写起来快。小规模的机器学习,python的轮子比scala多得多。matlab license太贵,
不在考虑范围内。R只能做统计,python还可以做NLP,图像处理,可以爬网页,写
网站,我觉得没啥理由不选python选R。要说语言设计得漂亮,imperative类的要属
pascal,FP要属haskell,没有轮子,语言设计得再好也没用。顺便攻击一下GO,
这个基本上停留在前C++/java时代,类似于C+和java-的混合物,如果是20年前设计
出来的,似乎还值得一提,现在再看,实在是有点太原始了。
我自己的pet project,需要精雕细琢的,核心代码一律用C++。干活拿钱的,啥语言
有轮子出货快质量有保证就用啥语言。萝卜白菜各有所爱,非要说出个非此不可的理
由,原也是说不出来的。

【在 d****i 的大作中提到】
: Python不是可以在hadoop上跑吗?不一定非得用jvm吧。再说所谓的“大数据”,其实
: 是伪命题,归根到底还是“数据”,大不大其实和实际的算法无关,都是是吹出来的。
: Java还是比Basic要强多了,至少有了C的syntax,看上去美观一些。
:
: 子,
: hadoop
: basic

d****i
发帖数: 4809
29
无所谓拉,都是离线的东西,用用Python和R或者别的脚本语言都可以啦。在线的东西
如果算法复杂要求高性能的话肯定是清一色的C/C++。

【在 c******o 的大作中提到】
: scale matters, otherwise, most of us on this board will not have a job.
c******o
发帖数: 1277
30
我们是在线的,虽然不是完全实时,delay也都是常数,而且有streaming,
interactive query.
这些离线做不了。
要是都用C/C++,公司不用开了,还不如卖C/C++做出来的东西。

【在 d****i 的大作中提到】
: 无所谓拉,都是离线的东西,用用Python和R或者别的脚本语言都可以啦。在线的东西
: 如果算法复杂要求高性能的话肯定是清一色的C/C++。

相关主题
Pandas问题不少啊...别人说做Python的并行还不如去学C++,我不同意。
发现还是得用RPython至少还能管3年
易写性,易维护和执行效率综合来看Python大牛说说那本书比较经典呢?
进入Programming版参与讨论
h*i
发帖数: 3446
31
python的问题是写的code不能进production, 要重写。python能作的,JVM上的脚本语
言也能做,做了不用重写,直接进production,这是我为什么用Clojure的原因。

【在 w***g 的大作中提到】
: python比scala慢100倍,scala用一台机器算,相同的时间用python算就要100台机器
: 甚至更多。如果数据小,当然是直接用python/C++,还有spark啥事。从语言上看,
: python其实也是一坨屎,设计上可能比scala还不如,用python不过也是为了有轮子
: 写起来快。小规模的机器学习,python的轮子比scala多得多。matlab license太贵,
: 不在考虑范围内。R只能做统计,python还可以做NLP,图像处理,可以爬网页,写
: 网站,我觉得没啥理由不选python选R。要说语言设计得漂亮,imperative类的要属
: pascal,FP要属haskell,没有轮子,语言设计得再好也没用。顺便攻击一下GO,
: 这个基本上停留在前C++/java时代,类似于C+和java-的混合物,如果是20年前设计
: 出来的,似乎还值得一提,现在再看,实在是有点太原始了。
: 我自己的pet project,需要精雕细琢的,核心代码一律用C++。干活拿钱的,啥语言

w***g
发帖数: 5958
32
为啥不能进production。我们有一个系统用了好几年了,python 2.6.x,还用得好好的。

【在 h*i 的大作中提到】
: python的问题是写的code不能进production, 要重写。python能作的,JVM上的脚本语
: 言也能做,做了不用重写,直接进production,这是我为什么用Clojure的原因。

h*i
发帖数: 3446
33
看性能要求吧。如果慢点没关系,那可以用python,性能有要求的话,还是得上JVM。
还有deployment, ops更喜欢JVM,一个jar就搞定了,对不对? 你那python系统不怎么
需要upgrade吧?这些都是很真实的问题。我做CTO的话,是不允许python的。

的。

【在 w***g 的大作中提到】
: 为啥不能进production。我们有一个系统用了好几年了,python 2.6.x,还用得好好的。
q*c
发帖数: 9453
34
显然你根本不懂什么是 “万物无我”
"我"都没有了, 人脑在哪里? 人脑怎么可能产生这样的真理?

【在 h*i 的大作中提到】
: 我是学心理学出身的,我还真觉得人脑是已知的宇宙里面最高层的东西。
: 要不你说说还有什么更高层的?
: 佛教的“万物无我”的想法是人脑产生的,对不对?就连数学也一样是人脑产生的。
: 数学可以这样被定义:“Mathematics is the study of mental objects with
: reproducible properties.” 见《Mathematics under microscope》http://www.maths.manchester.ac.uk/~avb/micromath
: 没想过吧?

d****i
发帖数: 4809
35
你这个是胡说了,Python的production系统多如牛毛数不清,人家OpenStack作为云系
统都是用Python的,更别提Django为首的一大堆web framework了。

【在 h*i 的大作中提到】
: python的问题是写的code不能进production, 要重写。python能作的,JVM上的脚本语
: 言也能做,做了不用重写,直接进production,这是我为什么用Clojure的原因。

q*c
发帖数: 9453
36

这种论调真实怪异 -- 写程序的速度竟然是敲键盘的速度决定的?
不知道你在什么愉快的地方工作, 真是天堂一样美好的地方啊。

【在 w***g 的大作中提到】
: scala代码非常短小精悍,jvm世界里用来做数据处理一天要试三五种算法,90%以上
: 的代码最终要丢进垃圾框的这种,我觉得还真是非scala莫属。
: 等用java写出来,黄花菜都凉了。我前一阵要上spark学过一阵scala,
: 现在已经忘光了。scala虽然恶心,总比perl好点。
:
: concurrency

w***g
发帖数: 5958
37
我随便给你几段程序。不是多敲一两个字母的问题,而是多敲几倍字母的问题。
敲的同时脑子还需要处理各种和程序逻辑无关的exception handling问题。
(我这个比较的前提是程序用来做数据处理,尝试新算法,最终90%的代码都会
被扔掉。)
java:
try (BufferedReader reader = Files.newBufferedReader(file, charset)) {
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException x) {
System.err.format("IOException: %s%n", x);
}
scala:
for(line <- Source.fromPath("myfile.txt").getLines())
println(line)
python:
for line in open("myfile.txt"):
print line

【在 q*c 的大作中提到】
:
: 这种论调真实怪异 -- 写程序的速度竟然是敲键盘的速度决定的?
: 不知道你在什么愉快的地方工作, 真是天堂一样美好的地方啊。

h*i
发帖数: 3446
38
有不说明就好啊。
所以说openstack有病嘛。不是都快完蛋了么,好几个openstack startups都完蛋了。
AWS就用Java写,多好。
Django做个小网站玩玩可以,性能有要求的网站就不行了。比如goodbug东家不可能用
python吧?

【在 d****i 的大作中提到】
: 你这个是胡说了,Python的production系统多如牛毛数不清,人家OpenStack作为云系
: 统都是用Python的,更别提Django为首的一大堆web framework了。

h*i
发帖数: 3446
39
我是不懂,但这不懂的东西说来说去也是人话而已,不也是人脑产生的么?
还真理,那不都是人说的话么?ISIS说你那不是真理,把你脑袋割了,看你还有没有你
的真理, 笑死人了.

【在 q*c 的大作中提到】
: 显然你根本不懂什么是 “万物无我”
: "我"都没有了, 人脑在哪里? 人脑怎么可能产生这样的真理?

q*c
发帖数: 9453
40
这个例子没啥意义
1, 你java handle exception scala 就没有。 你 java 不 handle 不就行了?
2. 有的是 lib 把一个文件一下读进来称为 string[].
String[] lines = new FileArrayProvider().readLines("filename");
for(String s : lines) println(s)...
结果差别很小。
而且主要的时间是思考, 找数据, 找 dependency 等, 这几行程序算啥。

【在 w***g 的大作中提到】
: 我随便给你几段程序。不是多敲一两个字母的问题,而是多敲几倍字母的问题。
: 敲的同时脑子还需要处理各种和程序逻辑无关的exception handling问题。
: (我这个比较的前提是程序用来做数据处理,尝试新算法,最终90%的代码都会
: 被扔掉。)
: java:
: try (BufferedReader reader = Files.newBufferedReader(file, charset)) {
: String line = null;
: while ((line = reader.readLine()) != null) {
: System.out.println(line);
: }

相关主题
Python大牛说说那本书比较经典呢?今天的学习成果
java很快吗?比python 能快多少?data.table谁用过? 有那么神吗?
有人上Spark用python API的么data science如何进阶?
进入Programming版参与讨论
q*c
发帖数: 9453
41
人话只是指月亮的手指,你这是抓着手指当月亮了

【在 h*i 的大作中提到】
: 我是不懂,但这不懂的东西说来说去也是人话而已,不也是人脑产生的么?
: 还真理,那不都是人说的话么?ISIS说你那不是真理,把你脑袋割了,看你还有没有你
: 的真理, 笑死人了.

g*****g
发帖数: 34805
42
Java无数类库,比如guava。 跟你这下面不就差不多嘛。IOException在function上扔
掉就是。
for(String line : Files.readLines(new File("myTxt"), charset))
System.out.println(line);

【在 w***g 的大作中提到】
: 我随便给你几段程序。不是多敲一两个字母的问题,而是多敲几倍字母的问题。
: 敲的同时脑子还需要处理各种和程序逻辑无关的exception handling问题。
: (我这个比较的前提是程序用来做数据处理,尝试新算法,最终90%的代码都会
: 被扔掉。)
: java:
: try (BufferedReader reader = Files.newBufferedReader(file, charset)) {
: String line = null;
: while ((line = reader.readLine()) != null) {
: System.out.println(line);
: }

w***g
发帖数: 5958
43
你这个给的好。我还真不知道。

【在 g*****g 的大作中提到】
: Java无数类库,比如guava。 跟你这下面不就差不多嘛。IOException在function上扔
: 掉就是。
: for(String line : Files.readLines(new File("myTxt"), charset))
: System.out.println(line);

h*i
发帖数: 3446
44
本体论,认识论,blah blah, 这些玩意都是当年我在念心理系的时候玩烂了的东东。
当年宿舍里跟我辩论这些东东辩论不过我的哥们都成了哲学系教授了,你就不要跟我扯
这些蛋了。我在宗教版“玩弄智慧”的时候,佛教徒都不敢上来过手的,在自己版里面
自己撸就行了。

【在 q*c 的大作中提到】
: 人话只是指月亮的手指,你这是抓着手指当月亮了
J**0
发帖数: 1634
45
太对了。。scala就是闲着无聊才搞出来的东西
p*****2
发帖数: 21240
46

顺便攻击一下GO
大牛能单开一贴攻击吗?

【在 w***g 的大作中提到】
: python比scala慢100倍,scala用一台机器算,相同的时间用python算就要100台机器
: 甚至更多。如果数据小,当然是直接用python/C++,还有spark啥事。从语言上看,
: python其实也是一坨屎,设计上可能比scala还不如,用python不过也是为了有轮子
: 写起来快。小规模的机器学习,python的轮子比scala多得多。matlab license太贵,
: 不在考虑范围内。R只能做统计,python还可以做NLP,图像处理,可以爬网页,写
: 网站,我觉得没啥理由不选python选R。要说语言设计得漂亮,imperative类的要属
: pascal,FP要属haskell,没有轮子,语言设计得再好也没用。顺便攻击一下GO,
: 这个基本上停留在前C++/java时代,类似于C+和java-的混合物,如果是20年前设计
: 出来的,似乎还值得一提,现在再看,实在是有点太原始了。
: 我自己的pet project,需要精雕细琢的,核心代码一律用C++。干活拿钱的,啥语言

d******e
发帖数: 2265
47
implicit class,大多数oop这种玩意。
string.decodeItemId能让大多数java程序员疯掉
其实 ParamaterHandler.getdecodeItemId(string)真的没复杂多少。
另外,foreach map组合 qxc疯了吧。其实你换成python generator, for loop和
coroutine做数据pipeline也不差多少。但是大多数程序员可以很快掌握,至少不那么抗拒

【在 p*****2 的大作中提到】
:
: 顺便攻击一下GO
: 大牛能单开一贴攻击吗?

p*****2
发帖数: 21240
48

抗拒
现在java8也是map,foreach这些了,有什么可怕的?
implicit class是想模仿type class,有些时候很有用。
oop你指的是什么?

【在 d******e 的大作中提到】
: implicit class,大多数oop这种玩意。
: string.decodeItemId能让大多数java程序员疯掉
: 其实 ParamaterHandler.getdecodeItemId(string)真的没复杂多少。
: 另外,foreach map组合 qxc疯了吧。其实你换成python generator, for loop和
: coroutine做数据pipeline也不差多少。但是大多数程序员可以很快掌握,至少不那么抗拒

z****e
发帖数: 54598
49
当你还不会用eclipse等ide的时候
你谈java如何verbose就是个joke

【在 w***g 的大作中提到】
: scala代码非常短小精悍,jvm世界里用来做数据处理一天要试三五种算法,90%以上
: 的代码最终要丢进垃圾框的这种,我觉得还真是非scala莫属。
: 等用java写出来,黄花菜都凉了。我前一阵要上spark学过一阵scala,
: 现在已经忘光了。scala虽然恶心,总比perl好点。
:
: concurrency

A*******e
发帖数: 2419
50
会不会是原作者C++代码写的不好呢?贴出来看看?

的。
loop

【在 h*i 的大作中提到】
: FP要更高层,更接近人的思维一些。
: 举一个手头上的例子,我正在用Clojure实现一个今年新出的文章里面的一个
: clustering算法,写完发现,我写的Clojure代码和文章里的假代码完全是一一对应的
: ,非常好懂。而原作者自己实现的的C++代码长很多倍不说,外人是完全不可能读懂的。
: 更奇怪的是,文章里的假代码完全是按imperative编程的写法写的,到处都是for loop
: ,mutation,assignment,但转成FP完全就是几乎行行对应,只需要把for loop变成
: Clojure sequence functions (map, reduce, iterate, etc)就行了。呵呵。

相关主题
如果不用很高级的feature,C++/Scala是否值得一战?求python大牛指路
把python当成通用script来学,哪些module需要熟练?阅读scala中
python要把@当作矩阵乘法算符Anaconda装起来会跟已有的python dist有什么冲突吗?
进入Programming版参与讨论
z****e
发帖数: 54598
51
c++代码开源了有啥用?
谁去读?
gfs的idea很简单
也不是没有人用c++重构了一遍
问题在于,最后还是yahoo的java版最管用
因为源代码可读性强,看得懂
看不懂别人在写什么,光开源是没有意义的
你看你那个项目,下面已经有人在讨论用c++11了
c++大项目的陷阱你就快遇到了,c++的特性多,很容易吵成一锅
这就是为什么以前人们选择了java,现在google内部又搞了go的原因

子,
hadoop
basic

【在 w***g 的大作中提到】
: 目前的几个大数据处理的不都是jvm的?scala还是有它的market的,不然怎么会有vc给
: 投钱?
: 这个就是牛人影响历史的例子。如果有个更牛的用basic写出来一个比spark更牛的轮子,
: 用basic的人自然会多。当年google的gfs/mapreduce如果开源了,根本就不会有hadoop
: 啥事,也就不会有后来java在大数据处理上称王称霸的现状。在我看来,java跟basic
: 基本上就是一个水平。

z****e
发帖数: 54598
52
少来,慢10倍就是一个小时和一个晚上的区别
wdong的慢100倍,可以等上一周
一个小时和一周的差异还是很明显的
你们做硬件的计算量太小,没有概念

【在 d****i 的大作中提到】
: 无所谓拉,都是离线的东西,用用Python和R或者别的脚本语言都可以啦。在线的东西
: 如果算法复杂要求高性能的话肯定是清一色的C/C++。

z****e
发帖数: 54598
53

敲键盘跟写程序速度呈正比的话
说明写这些程序纯粹就是体力活
没有什么技术含量可言

【在 q*c 的大作中提到】
: 人话只是指月亮的手指,你这是抓着手指当月亮了
z****e
发帖数: 54598
54
你应该多问问古德霸
我总感觉他比你省力很多
用俗话说就是,他会用轮子
但是你连轮子都不会用
所以很多方法都是很苦力的方法
包括ide的使用这些

【在 w***g 的大作中提到】
: 你这个给的好。我还真不知道。
z****e
发帖数: 54598
55
cocoa发的那个看不懂的swift的帖子里面应该就是一个fp的currying
:D

【在 q*c 的大作中提到】
: 为啥我周围的人都觉得看 FP 的程序就是困难呢? 逻辑复杂了, 各种 map 嵌套在一
: 起, 那是相当的难读。
: 难道是因为大家都比较傻?
: 我一直认为,语言的功能是交流。 好的计算机语言, 就和好的人类语言一样, 要看
: /听起来容易理解, 而不是说/写的快.
: 我宁可叫计算机多花 10M bytes 硬盘存储, 多写 2 倍长的程序, 也不想拧自己的
: 脑子, 把自己当计算机语言 parser.

n******7
发帖数: 12463
56
对这个我有个很外行的疑问: java读取一个文件这么啰嗦,怎么不提供一个func包装
一下?或者自己写一个也就一劳永逸了。这应该不算语言本质区别吧
前几年就试图用java,看教材看了上百页还没明白怎么file IO就放弃了

【在 w***g 的大作中提到】
: 我随便给你几段程序。不是多敲一两个字母的问题,而是多敲几倍字母的问题。
: 敲的同时脑子还需要处理各种和程序逻辑无关的exception handling问题。
: (我这个比较的前提是程序用来做数据处理,尝试新算法,最终90%的代码都会
: 被扔掉。)
: java:
: try (BufferedReader reader = Files.newBufferedReader(file, charset)) {
: String line = null;
: while ((line = reader.readLine()) != null) {
: System.out.println(line);
: }

n******7
发帖数: 12463
57
DS到底是干什么活的?
我感觉R总体比python慢10倍,小数据还好,计算量稍微大点就不行了
R是搞统计的为了方便牺牲性能的产物

【在 h*i 的大作中提到】
: Production还是JVM
: R才是DS的最爱。python四不像,我真不看好。

n******7
发帖数: 12463
58
python用上numpy scipy pandas还是比scala慢100倍吗?觉得不可能啊

【在 w***g 的大作中提到】
: python比scala慢100倍,scala用一台机器算,相同的时间用python算就要100台机器
: 甚至更多。如果数据小,当然是直接用python/C++,还有spark啥事。从语言上看,
: python其实也是一坨屎,设计上可能比scala还不如,用python不过也是为了有轮子
: 写起来快。小规模的机器学习,python的轮子比scala多得多。matlab license太贵,
: 不在考虑范围内。R只能做统计,python还可以做NLP,图像处理,可以爬网页,写
: 网站,我觉得没啥理由不选python选R。要说语言设计得漂亮,imperative类的要属
: pascal,FP要属haskell,没有轮子,语言设计得再好也没用。顺便攻击一下GO,
: 这个基本上停留在前C++/java时代,类似于C+和java-的混合物,如果是20年前设计
: 出来的,似乎还值得一提,现在再看,实在是有点太原始了。
: 我自己的pet project,需要精雕细琢的,核心代码一律用C++。干活拿钱的,啥语言

n*****3
发帖数: 1584
59
都不并行的话,
R with dplyr , data.table, 一定比
python 快 的多。
网上你可查查 bench mark
并行的话, R is so so
Python is practical impossible

【在 n******7 的大作中提到】
: DS到底是干什么活的?
: 我感觉R总体比python慢10倍,小数据还好,计算量稍微大点就不行了
: R是搞统计的为了方便牺牲性能的产物

B********r
发帖数: 397
60
连 java multithreading 都搞不懂的写什么都一样烂,跟scala有毛关系?
楼主文科生?

concurrency

【在 g*********9 的大作中提到】
: 俺这里好的IT公司很少,最近发现一个弯曲不错的公司在这里有个分舵,blog上的文章
: 很牛,看来里面有高人,但仔细一看,公司主导scala, 还让一堆人在网页上说scala如
: 何如何好,马上感觉象吃了老鼠屎一样。
: functional programming本来就是搞数学的用的,非用在generic programming上,程
: 序变成了一堆数学符号,写得快,可读性几乎没用,写并发容易?Java把concurrency
: 加在语言里,已经很容易了(和c++比),说Java写并发不容易的,那是水平不到位。一
: 帮子Java multithreading都不太明白的程序员,用scala写并发,能写出什么来?
: Java 8里面的lamba也很恶心,整个一误入歧途。

相关主题
python在2009年差点死掉,后来为什么起死回生了?发现还是得用R
Python pandas 是坑不?易写性,易维护和执行效率综合来看
Pandas问题不少啊...别人说做Python的并行还不如去学C++,我不同意。
进入Programming版参与讨论
g*********9
发帖数: 1285
61
说的太经典了, 数据处理是典型的体力活,没啥技术含量,用scala搞搞还可以. 逻辑
稍微复杂一点的,用scala一点优势都没有

【在 z****e 的大作中提到】
: cocoa发的那个看不懂的swift的帖子里面应该就是一个fp的currying
: :D

c*********e
发帖数: 16335
62
这个跟perl一样,語言是好語言,但是太抽象,自己写的perl code,2个星期回来看,
自己都看不懂自己写的什么。这样的語言做出来的project,怎么维护?
所以,出来了php,比perl好懂多了。所以,php能支撑到现在。

concurrency

【在 g*********9 的大作中提到】
: 俺这里好的IT公司很少,最近发现一个弯曲不错的公司在这里有个分舵,blog上的文章
: 很牛,看来里面有高人,但仔细一看,公司主导scala, 还让一堆人在网页上说scala如
: 何如何好,马上感觉象吃了老鼠屎一样。
: functional programming本来就是搞数学的用的,非用在generic programming上,程
: 序变成了一堆数学符号,写得快,可读性几乎没用,写并发容易?Java把concurrency
: 加在语言里,已经很容易了(和c++比),说Java写并发不容易的,那是水平不到位。一
: 帮子Java multithreading都不太明白的程序员,用scala写并发,能写出什么来?
: Java 8里面的lamba也很恶心,整个一误入歧途。

n******7
发帖数: 12463
63
慢10倍是我的实际经验,特别是data量大的时候.我现在只用R做些统计画图的事情.另
外,python的user base比R大很多,很多东西python可以直接拿来用(e.g. Spark),R
则太局限于统计这一块了
要想具体benchmark很难,特别是很多时候是在比较python、R的包
就你说的这两个包,data.table我用过,load large file比纯R快起码两个数量级
我查了一下data.table vs pandas
这里是pandas快
https://stackoverflow.com/questions/8991709/why-are-pandas-merges-in-python-
faster-than-data-table-merges-in-r
这里是data.table > pandas > dplyr
https://github.com/Rdatatable/data.table/wiki/Benchmarks-:-Grouping
要比较纯语言的话,可以看看julia的benchmark,去除两个用了numpy的测试,python
还是比R快很多
http://julialang.org/benchmarks/
并行你是说GIL吧?其实应该说CPython有GIL,而不是python。我之前研究过一下,其
实也还好:
http://programmers.stackexchange.com/questions/186889/why-was-p
The GIL can be released by C extensions. Python's standard library releases
the GIL around each blocking i/o call. Thus the GIL has no consequence for
performance of i/o bound servers. You can thus create networking servers in
Python using processes (fork), threads or asynchronous i/o, and the GIL will
not get in your way.
Numerical libraries in C or Fortran can similarly be called with the GIL
released. While your C extension is waiting for an FFT to complete, the
interpreter will be executing other Python threads. A GIL is thus easier and
faster than fine-grained locking in this case as well. This constitutes the
bulk of numerical work. The NumPy extension releases the GIL whenever
possible.
Threads are usually a bad way to write most server programs. If the load is
low, forking is easier. If the load is high, asynchronous i/o and event-
driven programming (e.g. using Python's Twisted framework) is better. The
only excuse for using threads is the lack of os.fork on Windows.
The GIL is a problem if, and only if, you are doing CPU-intensive work in
pure Python. Here you can get cleaner design using processes and message-
passing (e.g. mpi4py). There is also a 'processing' module in Python cheese
shop, that gives processes the same interface as threads (i.e. replace
threading.Thread with processing.Process).
SCIPY也有说明:
http://wiki.scipy.org/ParallelProgramming
The exceptions are few but important: while a thread is waiting for IO (for
you to type something, say, or for something to come in the network) python
releases the GIL so other threads can run. And, more importantly for us,
while numpy is doing an array operation, python also releases the GIL.
...
It is possible to share memory between processes, including numpy arrays.
This allows most of the benefits of threading without the problems of the
GIL. It also provides a simple Pool() interface, which features map and
apply commands similar to those found in the Cookbook/Multithreading example.

【在 n*****3 的大作中提到】
: 都不并行的话,
: R with dplyr , data.table, 一定比
: python 快 的多。
: 网上你可查查 bench mark
: 并行的话, R is so so
: Python is practical impossible

z****e
发帖数: 54598
64
怎么会没有?而且名字多容易记
FileReader啊
只不过教材里面多套了一层Buffer而已
其实不要也没什么大不了的,写教材的书呆子总喜欢把东西说得很全面

【在 n******7 的大作中提到】
: 对这个我有个很外行的疑问: java读取一个文件这么啰嗦,怎么不提供一个func包装
: 一下?或者自己写一个也就一劳永逸了。这应该不算语言本质区别吧
: 前几年就试图用java,看教材看了上百页还没明白怎么file IO就放弃了

m******t
发帖数: 635
65
顶一下大牛,顺便搭车讨教下。
一直在折腾股票自动交易系统,主要是数据挖掘和机器学习,目前用的是Python/
Pandas/Numpy/Scikit这套方案,全市场回测的时候用日线数据数据量小(大概每个市场
几千个文件约2GB大小)的时候,就已经开始吃力了,要一个小时。现在需要用分钟数
据回测的时候(每天每个市场小200MB,全市场约小50GB每年),有想死的冲动。一直在
考虑scala的方案,去年底初步学过scala半个月,没有深入做过大项目,有Clojure小
型项目经验,不知道用scala来作数据挖掘和机器学习怎么样?
能否给粗略介绍下基于scala的方案,比如对应pandas的库,对应scikit的库? 成熟程
度如何?

【在 w***g 的大作中提到】
: python比scala慢100倍,scala用一台机器算,相同的时间用python算就要100台机器
: 甚至更多。如果数据小,当然是直接用python/C++,还有spark啥事。从语言上看,
: python其实也是一坨屎,设计上可能比scala还不如,用python不过也是为了有轮子
: 写起来快。小规模的机器学习,python的轮子比scala多得多。matlab license太贵,
: 不在考虑范围内。R只能做统计,python还可以做NLP,图像处理,可以爬网页,写
: 网站,我觉得没啥理由不选python选R。要说语言设计得漂亮,imperative类的要属
: pascal,FP要属haskell,没有轮子,语言设计得再好也没用。顺便攻击一下GO,
: 这个基本上停留在前C++/java时代,类似于C+和java-的混合物,如果是20年前设计
: 出来的,似乎还值得一提,现在再看,实在是有点太原始了。
: 我自己的pet project,需要精雕细琢的,核心代码一律用C++。干活拿钱的,啥语言

d******e
发帖数: 2265
66
股票我有经验
你这个连新闻基本面数据都没有测那么多日线数据根本没有用
也就是验证有效市场假设吧

【在 m******t 的大作中提到】
: 顶一下大牛,顺便搭车讨教下。
: 一直在折腾股票自动交易系统,主要是数据挖掘和机器学习,目前用的是Python/
: Pandas/Numpy/Scikit这套方案,全市场回测的时候用日线数据数据量小(大概每个市场
: 几千个文件约2GB大小)的时候,就已经开始吃力了,要一个小时。现在需要用分钟数
: 据回测的时候(每天每个市场小200MB,全市场约小50GB每年),有想死的冲动。一直在
: 考虑scala的方案,去年底初步学过scala半个月,没有深入做过大项目,有Clojure小
: 型项目经验,不知道用scala来作数据挖掘和机器学习怎么样?
: 能否给粗略介绍下基于scala的方案,比如对应pandas的库,对应scikit的库? 成熟程
: 度如何?

m******t
发帖数: 635
67
如果市场真的是绝对有效的,我们也不用炒股了对吧。条条大路通罗马,你管我是基本
面,技术分析,事件驱动或者别的什么的,只要能稳定赚钱就行
咱们在编程版讨论这个有点跑题,就此打住吧。你要是感兴趣可以去股票版开个帖子。

【在 d******e 的大作中提到】
: 股票我有经验
: 你这个连新闻基本面数据都没有测那么多日线数据根本没有用
: 也就是验证有效市场假设吧

1 (共1页)
进入Programming版参与讨论
相关主题
python在2009年差点死掉,后来为什么起死回生了?java很快吗?比python 能快多少?
Python pandas 是坑不?有人上Spark用python API的么
Pandas问题不少啊...今天的学习成果
发现还是得用Rdata.table谁用过? 有那么神吗?
易写性,易维护和执行效率综合来看data science如何进阶?
别人说做Python的并行还不如去学C++,我不同意。如果不用很高级的feature,C++/Scala是否值得一战?
Python至少还能管3年把python当成通用script来学,哪些module需要熟练?
Python大牛说说那本书比较经典呢?python要把@当作矩阵乘法算符
相关话题的讨论汇总
话题: python话题: scala话题: gil话题: java话题: c++