Redian新闻
>
有什么比较适合engineer用的语言吗?
avatar
有什么比较适合engineer用的语言吗?# Programming - 葵花宝典
j*3
1
【 以下文字转载自 WashingtonDC 讨论区 】
发信人: johnlee123 (no), 信区: WashingtonDC
标 题: 寻人:Hao Zhou
发信站: BBS 未名空间站 (Fri Dec 25 14:02:38 2009, 美东)
住 2111 Jefferson Davis Hwy, Arlington, VA 的 Hao Zhou 请与我联系。你有邮件
被邮局误投到我家来了。若有认识 Hao Zhou 的朋友请通知他一声。谢谢了!
avatar
l*e
2
神探亨特张到底好不好看?
avatar
s*k
3
一头巨蟒背上居然生着三排水晶般的鳞片,每块鳞片都有手掌大小,从蛇头一直延伸到
蛇尾。另一头巨蟒则只长着一排晶鳞。
在夜幕下,巨蟒的晶鳞闪耀着淡淡莹光,游动之际恍若一道光带在流转,异常神秘
美丽。
这是晶蟒,永夜大陆特有的一种凶兽,以毒雾著称,长出三排晶鳞的成年巨蟒有相
当于七八级人类战兵的战力。
千夜看着两条晶蟒,正在想要不要下去,结果那头小些的晶蟒先一步发现外面有人
,蟒头警惕地高高竖起,大口一张,顿时一团晶莹闪烁的雾气就喷了过来。
千夜侧身避过毒雾,不再犹豫,跃下山崖,刹那间已扑至晶蟒的巢穴内。
空中闪过一道艳红色的刀光,闪耀光牙刺穿了那头三排背鳞的晶蟒脑袋。千夜几乎
用了八成力量,才把短刀插进头骨的缝隙,可见这大家伙的脑袋之硬,按照这种强度,
就算是鹰击也无法一次轰爆它的头骨。
巨蟒生命力极度顽强,即使脑袋被刺穿,依然拼命翻滚,差点把千夜拍到洞壁上。
这一刻千夜终于找到了角力的对手,一手紧握闪耀光牙,另一手牢牢勒紧晶蟒不放,随
着蟒身的翻滚,不时在洞壁间纵跃,任晶蟒如何甩击都没被抛下。
角力进行了许久,晶蟒才趴下不动了。
旁边另一头单排背鳞的晶蟒被翻腾的劲气差点逼出洞穴外,这时才找到机会,倏然
飞窜过来,向千夜发起攻击。然而它的实力就差得远了,才四五级的样子,转眼间就死
在闪耀光牙下。
当夜色最深浓的时候,千夜重新攀回崖顶。他的背包鼓了许多,装满一片片手掌大
小的晶鳞。
晶蟒的鳞片早就被证实是水晶的一种,注入原力激发会幻化出美丽的光晕。因此晶
蟒的鳞片价格颇高,既是低级原力阵列的原料,也是上层大陆流行的一种珠宝材料。只
是两条晶蟒实在太大,千夜完全带不走那么多的鳞片,只挑了品质最好的装满一个背包
,还不到三分之一的数量。
千夜回到栖身的山洞,脸上忽然泛起一层浓浓的血色,呼吸之间都喷吐出一团团淡
红色雾气。
方才斩杀那头三排背鳞的晶蟒时,为防止它濒死反击,千夜把最后一刀直接刺进了
它的心脏,顿时有海量血气从闪耀光牙中涌入他体内,强度几乎相当于九级黑暗战士,
只是质量很差,杂质极多。
千夜第一次发现,居然还能从晶蟒这种黑暗属性的异兽身上汲取到血气,其中蕴含
的黑暗原力丰厚程度还在同级黑暗战士之上,而有宋氏古卷玄篇在,这种来自异兽的血
气是否精纯,根本不重要。
不过千夜有点疑惑,想到一个以往被他忽略了的细节,好象永夜大陆上绝大多数异
兽拥有的原力属性都偏向黑暗一侧?
接下来一段时间,千夜的行程辗转了数个战区,他按照魏家地图上的标识,去亲眼
看了看几处黑暗种族的预定战场,同时也观察了一番远征军、帝国主力军团和参战世族
私军们的军力。
如先前遇到白阀私军的情况也发生过几次,千夜用自己超远程狙击手的特长帮助帝
国战士们加快或者扳回战局,只不过战斗形式一明朗,他就很快离去,不再与那些世族
多做接触。
一个平常的早晨,永夜大陆北部边缘的银光平原上,一场惨烈大战刚刚结束。
以往这片一望无际的平原上长满了夜光草,在黑丝绒般的夜幕下,泛着淡淡银光,
远远望去,整座平原就象一个巨大会发光的湖泊,荡漾层层银色涟漪。这里曾经是永夜
大陆上一处景观,后来远征军在附近的几个重要据点丢失,银光平原上开始有黑暗种族
出没,也就没有人过来观光了。
而现在,整个银光平原已经变得面目全非,到处是腐蚀和烧灼的痕迹,有些爆炸形
成的巨坑方圆可达百米。银光草几乎全被烧光,裸露的褐色土壤中到处流淌着绿色细流
,那是蛛魔的体液,这种具有强烈腐蚀性的毒液会毁掉土壤的一切生机,再也生长不出
任何东西。
一队队远征军和帝国军团战士正在清理战场,把一具具尸体和遗物清理出来,然后
搬到指定的位置。从战场控制权看,这场惨烈战役应该是人类胜了。但是从站在战场边
缘一群帝国将军们的脸上,却看不到任何喜色。
在这群身着戎装的将军中,依旧一袭广袖宽袍的白凹凸显得特立独行。不过她也有
与众不同的资格,在包括三个郡的银光战区里,她就是坐镇的强者,必要时可以接管整
个战区军政大权。
银光战区虽然是一个二级战区,但这里也有一处黑暗种族的预设战场。并且在帝国
年轻一辈强者中,能够独立镇守一方的人目前还寥寥无几。
白凹凸素淡的衣衫上全是血迹,肩背破损多处,隐约可以看到血肉翻卷的伤口。她
面容苍白没有一点血色,气息也微弱不稳,显然受伤不轻。
她周围的帝国将军们大多数年纪比她大了一倍有余,然而所有人望向白凹凸的目光
都充满了敬佩和畏惧。这并不是给白阀的敬意,而是因为她实实在在的战绩,在刚刚结
束的那场大战中,白凹凸几乎是独力斩杀了对方的最强者,这才艰难扭转了战局。
看着惨烈的战场景象,一名须发斑白的老将军沉重地叹了口气,说:“我们这....
..算是赢了吧?”
另一名将军苦笑说:“黑暗种族败而不乱,撤退有序。我们只能算是小胜。”
老将军神色黯淡地道:“我的集团军全都打光了,回去之后可能要撤消番号了。”
一人安慰道:“不会,你们立下大功,帝国肯定会重建一三三集团军的。”
“希望如此。”老将军叹息摇头,仍旧一脸无奈。
这些将军自然知道,集团军虽然重建,但也会就此沦入三流之列,一支新军哪里比
得上自己多年带起来的队伍。
白凹凸低垂的双眼忽然睁开,说:“我们这边的总伤亡超过十万了吧?”
旁边一名将军急忙回道:“还在统计,不过依我估计,可能在十一万以上。”
白凹凸似是在自语:“黑暗种族那边正规战士伤亡近万,炮灰也死了十多万。他们
打这场仗,究竟是为什么?”
众将军面面相觑,谁都答不上来。这次战役极为惨烈,黑暗种族如潮水般涌来,前
赴后继,完全不畏生死,绝大多数都和帝国战士同归于尽,甚至不吝啬正规战士的伤亡
,几乎要让人怀疑黑暗种族此战目的就是为了拖着更多的帝国战士一起死。
将军们心中没底,谁也没敢多说话。
白凹凸忽然身形闪动,瞬间出现在数十米外,在一名远征军战士的尸体边蹲下,拔
出短刀,剖开了这名远征军的胸膛。
将军们都被她突然的举动弄呆了,然后纷纷跟了过去。白凹凸从不做没有意义的事
情,显然是发现了什么异常。
白凹凸指了指那名战士的遗体,皱眉道:“你们看,他是被高阶血族一剑刺穿眉心
而死,身体应该没受影响。但是现在他生机流失的格外地快,你们不觉得这很不正常吗
?”
这名战士刚刚战死不久,内脏就出现了枯萎迹象,并且这样的变化还在体内各个器
官中继续,用不了两天时间,他就会彻底变成一具干尸。
一名感知敏锐的将军突然一手插入地面,然后抓起一团泥土,用力一捏,从他的指
缝中竟然滴出的是鲜血!
看到这一幕,那名将军面色凝重,说:“看来这片土地有吸纳血气生机的作用。难
怪我总觉得动作有些沉重,这个地方不能久呆。”
不过若只是环境如此,那也没什么好怕的,在场众人都是强者,气血稳固强大,银
光平原这点吸摄力对他们来说没什么影响。
白凹凸双眉却锁得更紧,缓缓地道:“也许没这么简单,你们都别忘了,永夜议会
里那些老家伙,或许疯狂,却绝没有一个傻瓜。把军情图再拿给我看看。”
一名少将参谋长拿出最新的军情图,在白凹凸面前拉开。这张军情图上,一共标注
出十五处战场,包括银光平原在内,已经有七个地方发生过战争,人族三胜四负,略处
下风。
这是黑暗种族预设的战场,因此人族随之调兵时,从强者到军力安排都略有优势,
就算这样,居然还是输多赢少。
白凹凸盯着十五处战场,皱眉不语。
其实帝国军部早就对这十五处战场进行过透彻分析,包括各种连线绘图,可是得出
的全是没有意义的图案。也有多人用过推演秘法,连林熙棠都特意从西疆赶赴帝都,但
就是大衍天机诀也同样一无所获。
然而这个结果也不奇怪,黑暗一方据说来了好几个永夜议会巨头坐镇,有那些老家
伙在,怎么可能被人族秘法推衍出图谋来。
老将军这时道:“白小姐,现在才打了七场,后面还有八场大战要打。也许再多几
次,我们才能看出些端倪。”
avatar
k*5
4
主要是数据处理, 计算, plot, 有时候需要编译一下给非技术人员使用。
平时主要用c++和matlab。前者写得慢, 数据处理和plot都麻烦。后者太贵了,什么包都
要license, 而我们用network license, 有时候人太多了就不能checkout了。
avatar
c*i
5
入围的五部最佳影片一部也没有看过,现在稍微有点兴趣的是浮城谜事。
颁奖典礼你们看完了吗?白百合挺真性情的啊,她没得奖还表现得挺不高兴,即便不把
女主颁给桂纶镁,也不会轮到她啊,真有意思。
avatar
n*u
6
python, if you don't care about performance that much.
avatar
d*d
7
很喜欢的电影,就是镜头晃得利害.

【在 l*****e 的大作中提到】
: 神探亨特张到底好不好看?
avatar
x*u
8
也推荐Python。还建议一下Spyder 编辑器。Spyder的界面据说是和Matlab很像。几年
前Ipython (jupyter) Notebook没出来的时候用过。觉得不错。
新的JupyterLab看着很有前途,但现在还是alpha:
avatar
P*e
9
我一直没提起兴趣来看亨特张 现在考虑要不要看看
我还挺喜欢看杀生的 但是确实没注意到最佳女配的表现
反正我对表演奖总体上有点质疑
夺命金我是完全不觉得好看 刘青云的表现我看也就是中规中矩
我算挺喜欢桂纶镁的 但是她的表现我没看过 不好评价。。。
参选影片里 感觉还是最喜欢杀生
以后管虎拍片子 我应该都会看

【在 l*****e 的大作中提到】
: 神探亨特张到底好不好看?
avatar
n*7
10
同推荐python
numpy scipy pandas scikit-learn
不要碰R
avatar
c*3
11
顶一下。这个感恩节俺哪儿也没去,啥也没买,就坐家里补看电影了。看了好几部近一
两年的片子,最喜欢杀生。

【在 P*******e 的大作中提到】
: 我一直没提起兴趣来看亨特张 现在考虑要不要看看
: 我还挺喜欢看杀生的 但是确实没注意到最佳女配的表现
: 反正我对表演奖总体上有点质疑
: 夺命金我是完全不觉得好看 刘青云的表现我看也就是中规中矩
: 我算挺喜欢桂纶镁的 但是她的表现我没看过 不好评价。。。
: 参选影片里 感觉还是最喜欢杀生
: 以后管虎拍片子 我应该都会看

avatar
g*t
12
如果是做东西卖钱,有条件还是占个坑用matlab。
因为其他的开源工具,就算是最小二乘法,你也不知道有没有
没有填的坑。
如果是自己做研究,OCtave首选。因为它和matlab一样。GNU plot 够用了。
不用学新东西。
Python,R这些要一定学习成本。

主要是数据处理, 计算, plot, 有时候需要编译一下给非技术人员使用。

【在 k***5 的大作中提到】
: 主要是数据处理, 计算, plot, 有时候需要编译一下给非技术人员使用。
: 平时主要用c++和matlab。前者写得慢, 数据处理和plot都麻烦。后者太贵了,什么包都
: 要license, 而我们用network license, 有时候人太多了就不能checkout了。

avatar
r*y
13
杀生是不错啊,黄渤现在简直打通二脉,气场太大了。

【在 c*******3 的大作中提到】
: 顶一下。这个感恩节俺哪儿也没去,啥也没买,就坐家里补看电影了。看了好几部近一
: 两年的片子,最喜欢杀生。

avatar
m*r
14
说的太对了。 二语言很难学,即便学了, 对于处理数据(dirtywork)也没啥用。
争取把tutorial过一遍。

【在 n******7 的大作中提到】
: 同推荐python
: numpy scipy pandas scikit-learn
: 不要碰R

avatar
P*e
15
刚才看了俩新浪视频 感觉丫主持风格很一般 电影里气场确实强大

【在 r****y 的大作中提到】
: 杀生是不错啊,黄渤现在简直打通二脉,气场太大了。
avatar
w*g
16
她要编译给外行用,奈何!

★ 发自iPhone App: ChineseWeb 13

【在 n******7 的大作中提到】
: 同推荐python
: numpy scipy pandas scikit-learn
: 不要碰R

avatar
P*e
17
还有啥推荐的么?
最近还是比较敢看非欧美电影 呵呵

【在 c*******3 的大作中提到】
: 顶一下。这个感恩节俺哪儿也没去,啥也没买,就坐家里补看电影了。看了好几部近一
: 两年的片子,最喜欢杀生。

avatar
w*g
18
蟒蛇还好啊,如果不OOP,两周下来怎么也能排代码了。

★ 发自iPhone App: ChineseWeb 13

【在 g****t 的大作中提到】
: 如果是做东西卖钱,有条件还是占个坑用matlab。
: 因为其他的开源工具,就算是最小二乘法,你也不知道有没有
: 没有填的坑。
: 如果是自己做研究,OCtave首选。因为它和matlab一样。GNU plot 够用了。
: 不用学新东西。
: Python,R这些要一定学习成本。
:
: 主要是数据处理, 计算, plot, 有时候需要编译一下给非技术人员使用。

avatar
d*d
19
除了娄烨那片没看过之外,其他提名的都看过.最喜欢的是

【在 P*******e 的大作中提到】
: 我一直没提起兴趣来看亨特张 现在考虑要不要看看
: 我还挺喜欢看杀生的 但是确实没注意到最佳女配的表现
: 反正我对表演奖总体上有点质疑
: 夺命金我是完全不觉得好看 刘青云的表现我看也就是中规中矩
: 我算挺喜欢桂纶镁的 但是她的表现我没看过 不好评价。。。
: 参选影片里 感觉还是最喜欢杀生
: 以后管虎拍片子 我应该都会看

avatar
g*t
20
是的。python很快。

【在 w*****g 的大作中提到】
: 蟒蛇还好啊,如果不OOP,两周下来怎么也能排代码了。
:
: ★ 发自iPhone App: ChineseWeb 13

avatar
P*e
21
爱情片?

【在 d*****d 的大作中提到】
: 除了娄烨那片没看过之外,其他提名的都看过.最喜欢的是
avatar
n*7
22
为何是她?
做成docker image如何? 我还没用过docker,但是感觉用来做这个很合适啊

【在 w*****g 的大作中提到】
: 她要编译给外行用,奈何!
:
: ★ 发自iPhone App: ChineseWeb 13

avatar
p*z
23
如果在方便的同时还比较在乎暴力循环等的裸运算速度,那么我强力推荐Julia:
http://julialang.org/
https://en.wikipedia.org/wiki/Julia_(programming_language)
它的语法简洁表达力强(有点像Matlab和Python),因为应用了比较好的JIT技术并且
专门针对科学计算优化,所以速度很快,在函数模块都运行过一次被编译好了以后,可
以接近C/C++。它也支持class, 但是functional programming更突出,也符合现代语言
发展的潮流。我觉得唯一缺点是它很新,还在发展中,所以语言本身还可能会有变化,
还有就是开源库虽然也不少但还是远不能跟Python和R比。
我对Matlab和Python比较熟,R,Octave和Scilab则都用过一点。在碰到Julia之前最喜
欢Python,简洁方便库丰富,对于不是专门搞统计研究、而且需要general
programming language功能的(比如系统啊网络啊数据库啊之类),我个人觉得Python
是最好了。但是有两个大问题让我耿耿于怀:在没法向量化、非用循环不可的时候死慢
;另外class定义太随便,任何地方都可以随意给一个class加成员变量。
Julia这两个问题都没有,而且还有一些非常方便的语言特性。在Windows上,我测试它
的循环速度比Matlab和Java都快几倍,比C#稍快一点,比Python就要快差不多两个数量
级了(我相信R, Octave和Scilab跟Python差不太多或稍慢一点)。
从Julia调用Python或者C/C++的库非常容易,而且流行的Python库比如matplotlib.
pyplot和pandas这些都有port好的。这个就是后发优势了,写这个语言的团队开始就考
虑好了一定要很好的兼容Python和C系,最后搞到SciPy 2013和PyCon APAC 2015都请他
们去发言,在Python的会议上推销Julia :-)。
https://www.youtube.com/watch?v=Eb8CMuNKdJ0&ab_channel=Enthought
https://www.youtube.com/watch?v=6Se0GwaG1NQ&ab_channel=PyConTaiwan
avatar
n*7
24
又去看了一眼,他们的R benchmark code还是这么写的
## pi_sum ##
pisum = function() {
t = 0.0
for (j in 1:500) {
t = 0.0
for (k in 1:10000) {
t = t + 1.0/(k*k)
}
}
return(t)
}
这个问题被人指出好几年了,这些人就是装着没看见
随便改成矢量化操作,速度就是40X提高(实测)
根据他们的数据,就比Julia快4倍了
我是不会浪费时间在吹nb产品上的

【在 p**z 的大作中提到】
: 如果在方便的同时还比较在乎暴力循环等的裸运算速度,那么我强力推荐Julia:
: http://julialang.org/
: https://en.wikipedia.org/wiki/Julia_(programming_language)
: 它的语法简洁表达力强(有点像Matlab和Python),因为应用了比较好的JIT技术并且
: 专门针对科学计算优化,所以速度很快,在函数模块都运行过一次被编译好了以后,可
: 以接近C/C++。它也支持class, 但是functional programming更突出,也符合现代语言
: 发展的潮流。我觉得唯一缺点是它很新,还在发展中,所以语言本身还可能会有变化,
: 还有就是开源库虽然也不少但还是远不能跟Python和R比。
: 我对Matlab和Python比较熟,R,Octave和Scilab则都用过一点。在碰到Julia之前最喜
: 欢Python,简洁方便库丰富,对于不是专门搞统计研究、而且需要general

avatar
n*7
25
又看了下python code
都import numpy了
然后来个
def pisum():
sum = 0.0
for j in range(1, 501):
sum = 0.0
for k in range(1, 10001):
sum += 1.0/(k*k)
return sum
你说这是啥意思?

【在 p**z 的大作中提到】
: 如果在方便的同时还比较在乎暴力循环等的裸运算速度,那么我强力推荐Julia:
: http://julialang.org/
: https://en.wikipedia.org/wiki/Julia_(programming_language)
: 它的语法简洁表达力强(有点像Matlab和Python),因为应用了比较好的JIT技术并且
: 专门针对科学计算优化,所以速度很快,在函数模块都运行过一次被编译好了以后,可
: 以接近C/C++。它也支持class, 但是functional programming更突出,也符合现代语言
: 发展的潮流。我觉得唯一缺点是它很新,还在发展中,所以语言本身还可能会有变化,
: 还有就是开源库虽然也不少但还是远不能跟Python和R比。
: 我对Matlab和Python比较熟,R,Octave和Scilab则都用过一点。在碰到Julia之前最喜
: 欢Python,简洁方便库丰富,对于不是专门搞统计研究、而且需要general

avatar
k*5
26
多谢各位的推荐了。我还是从python弄起吧。其实以前学过一点点,但是写code的时候
几种语言都在用, syntax弄得自己都糊涂了。
请问python入门有什么推荐吗?到底是学python 2还是3? ide用什么?

【在 g****t 的大作中提到】
: 是的。python很快。
avatar
p*z
27
Julia的benchmark在这件事情上没有解释清楚,所以被不少人诟病。
用过Python和R的都知道,能矢量化的一定要矢量化;矢量化以后,就不是Python
或者R自己在执行算法了,底层算法其实都是调用下面的库,这些库一般是C/C++
或者Fortran写的,所以速度很快。对于常见的问题,流行的数值运算库也就那么几
个,大家用的都差不多。Julia也有包装好的这样的库,所以对矢量化的问题来说大
家都是一样的。
问题是我在实际工程应用中碰到很多情况不能矢量化。比方说计算一个非线性的传播
方程,需要把一段距离分成很多小段,每段的计算是依赖于前一段的结果的,而且这
个计算是非线性的,所以必须用循环一步一步算。
还有一些问题虽然能够矢量化,但是因为有各种特殊情况,如果矢量化的话需要很多
预处理。比如对时间序列做对齐和整理,剔除各种不合理情况。我自己觉得矢量化很
不自然,常常要考虑和试错很久,不如用循环写方便。
所以benchmark的初衷是用本语言实现循环,不用矢量化,来比较裸运算速度。
这个比较只有在问题不能或不变被矢量化时才公平。但是它用的例子不好,对于Python
和R,实际上只要能矢量化没有人会写暴力循环的,
我觉得Julia最好的地方就是,不用为了语言效率来改变编程风格。如果一个问题适合
用矢量化就用矢量化,如果适合用循环就用循环,或者甲习惯都用矢量化,乙习惯都用
循环,那就用自己习惯的。另外,在prototype稳定后,不需要为了加快运算速度而把程
序再改写成C/C++的,这可以省掉大量人力和时间,减少出错机会。
我以前都是Python的粉丝,公司里好几个同事都因为我的介绍开始学习用Python做工
程问题。但是几个月以前学习使用了Julia以后,我就变Julia的粉丝了。我只是觉得
有这个好东西很想告诉别人,但是语言这回事,各有所爱,所以我也不是要说服谁
Julia
一定跟好更合适他,各自根据自己的情况和喜好选择就好。

【在 n******7 的大作中提到】
: 又看了下python code
: 都import numpy了
: 然后来个
: def pisum():
: sum = 0.0
: for j in range(1, 501):
: sum = 0.0
: for k in range(1, 10001):
: sum += 1.0/(k*k)
: return sum

avatar
g*t
28
Python,R的优势是库多。
库不够的语言,如果新学一门,我个人觉得没什么
能比swift有优势。swift非常容易学。速度快开源,背后有大公司。
设计严谨。


: Julia的benchmark在这件事情上没有解释清楚,所以被不少人诟病。

: 用过Python和R的都知道,能矢量化的一定要矢量化;矢量化以后,就不是
Python

: 或者R自己在执行算法了,底层算法其实都是调用下面的库,这些库一般是C/C

: 或者Fortran写的,所以速度很快。对于常见的问题,流行的数值运算库也就那
么几

: 个,大家用的都差不多。Julia也有包装好的这样的库,所以对矢量化的问题来
说大

: 家都是一样的。

: 问题是我在实际工程应用中碰到很多情况不能矢量化。比方说计算一个非线性的
传播

: 方程,需要把一段距离分成很多小段,每段的计算是依赖于前一段的结果的,而
且这

: 个计算是非线性的,所以必须用循环一步一步算。

: 还有一些问题虽然能够矢量化,但是因为有各种特殊情况,如果矢量化的话需要
很多



【在 p**z 的大作中提到】
: Julia的benchmark在这件事情上没有解释清楚,所以被不少人诟病。
: 用过Python和R的都知道,能矢量化的一定要矢量化;矢量化以后,就不是Python
: 或者R自己在执行算法了,底层算法其实都是调用下面的库,这些库一般是C/C++
: 或者Fortran写的,所以速度很快。对于常见的问题,流行的数值运算库也就那么几
: 个,大家用的都差不多。Julia也有包装好的这样的库,所以对矢量化的问题来说大
: 家都是一样的。
: 问题是我在实际工程应用中碰到很多情况不能矢量化。比方说计算一个非线性的传播
: 方程,需要把一段距离分成很多小段,每段的计算是依赖于前一段的结果的,而且这
: 个计算是非线性的,所以必须用循环一步一步算。
: 还有一些问题虽然能够矢量化,但是因为有各种特殊情况,如果矢量化的话需要很多

avatar
A*e
29
小众,不如python

【在 p**z 的大作中提到】
: 如果在方便的同时还比较在乎暴力循环等的裸运算速度,那么我强力推荐Julia:
: http://julialang.org/
: https://en.wikipedia.org/wiki/Julia_(programming_language)
: 它的语法简洁表达力强(有点像Matlab和Python),因为应用了比较好的JIT技术并且
: 专门针对科学计算优化,所以速度很快,在函数模块都运行过一次被编译好了以后,可
: 以接近C/C++。它也支持class, 但是functional programming更突出,也符合现代语言
: 发展的潮流。我觉得唯一缺点是它很新,还在发展中,所以语言本身还可能会有变化,
: 还有就是开源库虽然也不少但还是远不能跟Python和R比。
: 我对Matlab和Python比较熟,R,Octave和Scilab则都用过一点。在碰到Julia之前最喜
: 欢Python,简洁方便库丰富,对于不是专门搞统计研究、而且需要general

avatar
A*e
30
用swift还不如继续c++

【在 g****t 的大作中提到】
: Python,R的优势是库多。
: 库不够的语言,如果新学一门,我个人觉得没什么
: 能比swift有优势。swift非常容易学。速度快开源,背后有大公司。
: 设计严谨。
:
:
: Julia的benchmark在这件事情上没有解释清楚,所以被不少人诟病。
:
: 用过Python和R的都知道,能矢量化的一定要矢量化;矢量化以后,就不是
: Python
:
: 或者R自己在执行算法了,底层算法其实都是调用下面的库,这些库一般是C/C
:
: 或者Fortran写的,所以速度很快。对于常见的问题,流行的数值运算库也就那

avatar
m*u
31
继续用C++吧,你所说的问题,用哪个语言你都会遇到。
avatar
w*g
32
朱丽娅没有严格意义上的Class叭,Type只是像c里的construct,然后函数有Multiple
dispatch。

★ 发自iPhone App: ChineseWeb 13

【在 p**z 的大作中提到】
: 如果在方便的同时还比较在乎暴力循环等的裸运算速度,那么我强力推荐Julia:
: http://julialang.org/
: https://en.wikipedia.org/wiki/Julia_(programming_language)
: 它的语法简洁表达力强(有点像Matlab和Python),因为应用了比较好的JIT技术并且
: 专门针对科学计算优化,所以速度很快,在函数模块都运行过一次被编译好了以后,可
: 以接近C/C++。它也支持class, 但是functional programming更突出,也符合现代语言
: 发展的潮流。我觉得唯一缺点是它很新,还在发展中,所以语言本身还可能会有变化,
: 还有就是开源库虽然也不少但还是远不能跟Python和R比。
: 我对Matlab和Python比较熟,R,Octave和Scilab则都用过一点。在碰到Julia之前最喜
: 欢Python,简洁方便库丰富,对于不是专门搞统计研究、而且需要general

avatar
w*g
33
程师用anaconda python distribution吧,几十,几百行的小计算器用自带的Jupyter
Notebook足够了

★ 发自iPhone App: ChineseWeb 13

【在 k***5 的大作中提到】
: 多谢各位的推荐了。我还是从python弄起吧。其实以前学过一点点,但是写code的时候
: 几种语言都在用, syntax弄得自己都糊涂了。
: 请问python入门有什么推荐吗?到底是学python 2还是3? ide用什么?

avatar
w*g
34
for (j in 1:500)
擦,这括弧放的的位置很奇葩啊。

★ 发自iPhone App: ChineseWeb 13

【在 n******7 的大作中提到】
: 又去看了一眼,他们的R benchmark code还是这么写的
: ## pi_sum ##
: pisum = function() {
: t = 0.0
: for (j in 1:500) {
: t = 0.0
: for (k in 1:10000) {
: t = t + 1.0/(k*k)
: }
: }

avatar
c*e
35
weidong和wdong是一个人吗?

Jupyter

【在 w*****g 的大作中提到】
: 程师用anaconda python distribution吧,几十,几百行的小计算器用自带的Jupyter
: Notebook足够了
:
: ★ 发自iPhone App: ChineseWeb 13

avatar
w*g
36
我是程狮,那个是程猿。

★ 发自iPhone App: ChineseWeb 13

【在 c*********e 的大作中提到】
: weidong和wdong是一个人吗?
:
: Jupyter

avatar
J*r
37
还是C++好,最好的编程语言。有C++的基础,学其他真的不费劲。

【在 m**u 的大作中提到】
: 继续用C++吧,你所说的问题,用哪个语言你都会遇到。
avatar
n*7
38
哪个更高级?
当年我还自己比较了一下才确认这不是一个人的。。

【在 w*****g 的大作中提到】
: 我是程狮,那个是程猿。
:
: ★ 发自iPhone App: ChineseWeb 13

avatar
p*z
39
是的,Julia的class叫做Type, 比较像C的struct,可以有constructor,abstract
class可以有inheritance(subtype)。但是,functions不属于class,code写在class
外面,scope缺省是本module。用multiple dispatch来实现polymorphism。
我一开始也非常不习惯,但是这样的设计有一定道理。传统OOP在class里面有method,
不同class有重名的method没关系,根据调用者object的类型调用各自的method,其实
是single-dispatch polymorphism。据我理解(如果有错请懂行的人纠正)在实现
时,其实就是把调用者的object作为第一个参数传进去的(在Python里这一点特别清楚,
因为在class下的function第一个参数都是self)。multiple dispatch就是single
dispatch的generalization,到底调用哪一个版本的函数是所有参数的类型共同决定的,
并不只限于第一个。这个听上去像静态类型语言的function overloading,但是Julia
是动态类型语言,函数参数类型是可以不提前声明的。multiple dispatch可以对每一种
类型组合都生成专门的优化版本(很多时候这是编译器自动做的),这是动态类型的
Julia可以达到接近静态类型语言的performance的重要原因之一。
Multiple dispatch在特定应用里也更加直观,具体例子可以见:
https://www.quora.com/Julia-programming-language-What-are-the-advantages-of-
multiple-dispatch
(请自己复制粘贴完整的链接到浏览器-论坛自动生成的链接会丢掉第二行的部分)

Multiple

【在 w*****g 的大作中提到】
: 朱丽娅没有严格意义上的Class叭,Type只是像c里的construct,然后函数有Multiple
: dispatch。
:
: ★ 发自iPhone App: ChineseWeb 13

avatar
A*e
40
都是屠龙之技。哪个新语言都有一堆牛逼功能说事。
工程师就应该用最大众化的。轻量级快速开发可以考虑Python,其他就是Java/C++/C#
三选一。swift搞搞果子应用就行了。

class
楚,
的,
Julia

【在 p**z 的大作中提到】
: 是的,Julia的class叫做Type, 比较像C的struct,可以有constructor,abstract
: class可以有inheritance(subtype)。但是,functions不属于class,code写在class
: 外面,scope缺省是本module。用multiple dispatch来实现polymorphism。
: 我一开始也非常不习惯,但是这样的设计有一定道理。传统OOP在class里面有method,
: 不同class有重名的method没关系,根据调用者object的类型调用各自的method,其实
: 是single-dispatch polymorphism。据我理解(如果有错请懂行的人纠正)在实现
: 时,其实就是把调用者的object作为第一个参数传进去的(在Python里这一点特别清楚,
: 因为在class下的function第一个参数都是self)。multiple dispatch就是single
: dispatch的generalization,到底调用哪一个版本的函数是所有参数的类型共同决定的,
: 并不只限于第一个。这个听上去像静态类型语言的function overloading,但是Julia

avatar
n*7
41
我明白你的意思了,很好的point
我倒是也希望有一种写的容易,跑的快,包还全的语言
所以之前了解过Julia,然后因为这个benchmark的问题很失望
他们是知道大家的这个疑问,但是故意不解释也不改进代码
起码他们应该给出一个不适合矢量化的例子,用来评估裸循环的速度
你说的这个问题我在R里面遇到很多
因为R里面循环的速度是超级超级的慢
一个说法是你的循环超过100次,你就应该想办法改进代码了
但是不是每个问题都适合或者很容易矢量化的
这也是我抛弃R的一个重要原因
Python比R的情况好,也有pypy,numba这样的JIT版本,还有Cython
搜了一下,
pypy似乎总体还是不如julia
http://stackoverflow.com/questions/10775510/julias-python-performance-example-in-pypy
但是Cython numba numpy这些工具还是挺给力的,8个benchmark6个比julia快,总体可
以算持平
https://www.ibm.com/developerworks/community/blogs/jfp/entry/Python_Meets_
Julia_Micro_Performance?lang=en
直接看summary就好
考虑到包支持,语言通用性,和信誉
我决定继续用python

【在 p**z 的大作中提到】
: Julia的benchmark在这件事情上没有解释清楚,所以被不少人诟病。
: 用过Python和R的都知道,能矢量化的一定要矢量化;矢量化以后,就不是Python
: 或者R自己在执行算法了,底层算法其实都是调用下面的库,这些库一般是C/C++
: 或者Fortran写的,所以速度很快。对于常见的问题,流行的数值运算库也就那么几
: 个,大家用的都差不多。Julia也有包装好的这样的库,所以对矢量化的问题来说大
: 家都是一样的。
: 问题是我在实际工程应用中碰到很多情况不能矢量化。比方说计算一个非线性的传播
: 方程,需要把一段距离分成很多小段,每段的计算是依赖于前一段的结果的,而且这
: 个计算是非线性的,所以必须用循环一步一步算。
: 还有一些问题虽然能够矢量化,但是因为有各种特殊情况,如果矢量化的话需要很多

avatar
p*z
42
我相信Python配合Cython和Numba使用,应该可以解决不少循环速度问题。我除了读
tutorial没有怎么太用过它们;印象是它们比较适合纯数值运算(循环内数据是简单数
据类型)。
我在应用中未来需要处理的情况是,程序主体就是多层嵌套大量循环,里面除了数值计
算还需要用到不少自定义的数据结构,而且要尽量把可以并行运算的循环扔到不同的
processor上面去;有些内层循环的计算可能要使用GPU提速。我的理解这种情况不适用
于Cython和Numba,但是我也没有仔细研究过它们所以不是100%确定。
大部分人可能没有这样的需求,用Python完全可以满足应用。
Julia的确太年轻,package数量远不如Python(目前官方注册package数是1101,http://pkg.julialang.org/;Python官方注册package数是87882,https://pypi.python.org/pypi)。Julia package的数目是在稳步增长中(http://pkg.julialang.org/pulse.html),我觉得将来在科学计算领域Julia有希望成为数一数二的选择。
目前对Julia采用得比较多的领域是金融(包括对冲基金和美联储都在用),好像大数
据、机器学习、计算生物学也有应用,在工程领域好像没怎么听说,但是我觉得在循环
次数很多的仿真应用上应该很有希望啊。:)

【在 n******7 的大作中提到】
: 我明白你的意思了,很好的point
: 我倒是也希望有一种写的容易,跑的快,包还全的语言
: 所以之前了解过Julia,然后因为这个benchmark的问题很失望
: 他们是知道大家的这个疑问,但是故意不解释也不改进代码
: 起码他们应该给出一个不适合矢量化的例子,用来评估裸循环的速度
: 你说的这个问题我在R里面遇到很多
: 因为R里面循环的速度是超级超级的慢
: 一个说法是你的循环超过100次,你就应该想办法改进代码了
: 但是不是每个问题都适合或者很容易矢量化的
: 这也是我抛弃R的一个重要原因

avatar
s*e
43
这里这么写的问题在哪里? 是因为(j in 1:500)这里么?什么意思?

【在 n******7 的大作中提到】
: 又去看了一眼,他们的R benchmark code还是这么写的
: ## pi_sum ##
: pisum = function() {
: t = 0.0
: for (j in 1:500) {
: t = 0.0
: for (k in 1:10000) {
: t = t + 1.0/(k*k)
: }
: }

avatar
f*x
44
非常支持Julia,我也是最近从Python转到Julia,非常enjoy Julia programming。我
预期Julia会迅速成熟起来,成为科学计算和data science领域的黑马。
我个人的体会,Julia 比 Python的优势,除了运行速度和效率之外,还有一个巨大优
势是语言的表达更加精炼简洁。Python已经是表达能力很强的高级语言,但是同样的逻
辑,Julia的程序比相应的python程序更加精悍,这得益于Julia的multi-dispatch和强
Functional的默认模式。
Julia唯一让我抓狂的是她继承了Matlab和Fortran的1 based array index,但是在新
的Julia版本0.5会支持arbitrary based array index,期待中。
avatar
w*g
45
还是不习惯属性和方法分开放,不好组织。

★ 发自iPhone App: ChineseWeb 13

【在 f******x 的大作中提到】
: 非常支持Julia,我也是最近从Python转到Julia,非常enjoy Julia programming。我
: 预期Julia会迅速成熟起来,成为科学计算和data science领域的黑马。
: 我个人的体会,Julia 比 Python的优势,除了运行速度和效率之外,还有一个巨大优
: 势是语言的表达更加精炼简洁。Python已经是表达能力很强的高级语言,但是同样的逻
: 辑,Julia的程序比相应的python程序更加精悍,这得益于Julia的multi-dispatch和强
: Functional的默认模式。
: Julia唯一让我抓狂的是她继承了Matlab和Fortran的1 based array index,但是在新
: 的Julia版本0.5会支持arbitrary based array index,期待中。

avatar
g*t
46
C 没那么容易学。仅就语法而言,
swift学起来和pyhton难度差不多。
Swift还不少functional什么的新特性。
组织的都不错。
另外c 归哪个大公司管?
没有大公司支持,后头很难的。


: 用swift还不如继续c



【在 A*******e 的大作中提到】
: 都是屠龙之技。哪个新语言都有一堆牛逼功能说事。
: 工程师就应该用最大众化的。轻量级快速开发可以考虑Python,其他就是Java/C++/C#
: 三选一。swift搞搞果子应用就行了。
:
: class
: 楚,
: 的,
: Julia

avatar
c*e
47
难怪你是搞硬件的。想当年,学networking的,最后一年的课,是和学programming第
一年的一起学c,而且还不懂很多东西。

【在 g****t 的大作中提到】
: C 没那么容易学。仅就语法而言,
: swift学起来和pyhton难度差不多。
: Swift还不少functional什么的新特性。
: 组织的都不错。
: 另外c 归哪个大公司管?
: 没有大公司支持,后头很难的。
:
:
: 用swift还不如继续c
:

avatar
n*7
48
for (k in 1:10000) {
t = t + 1.0/(k*k)
}
R 里面不会这么写
k = 1/1:10000
sum(k*k)
快几十倍

【在 s*****e 的大作中提到】
: 这里这么写的问题在哪里? 是因为(j in 1:500)这里么?什么意思?
avatar
n*7
49
Cython我也没实际用过
我一个同事用了几年了,他做图像处理
你的东西听着挺复杂的,我其实感觉python+C可能更好
我觉得新语言坑多,第三方工具的数量和质量都有限
适合小project,不适合大型工程
特别是高质量的包,没有一些年头的积累和大量user,很难做到的
不过你愿意折腾julia挺好的,人类需要你这种精神
我本来也是喜欢折腾,探索新玩法的人
不过年纪大了,还一事无成,只能务实一些了

【在 p**z 的大作中提到】
: 我相信Python配合Cython和Numba使用,应该可以解决不少循环速度问题。我除了读
: tutorial没有怎么太用过它们;印象是它们比较适合纯数值运算(循环内数据是简单数
: 据类型)。
: 我在应用中未来需要处理的情况是,程序主体就是多层嵌套大量循环,里面除了数值计
: 算还需要用到不少自定义的数据结构,而且要尽量把可以并行运算的循环扔到不同的
: processor上面去;有些内层循环的计算可能要使用GPU提速。我的理解这种情况不适用
: 于Cython和Numba,但是我也没有仔细研究过它们所以不是100%确定。
: 大部分人可能没有这样的需求,用Python完全可以满足应用。
: Julia的确太年轻,package数量远不如Python(目前官方注册package数是1101,http://pkg.julialang.org/;Python官方注册package数是87882,https://pypi.python.org/pypi)。Julia package的数目是在稳步增长中(http://pkg.julialang.org/pulse.html),我觉得将来在科学计算领域Julia有希望成为数一数二的选择。
: 目前对Julia采用得比较多的领域是金融(包括对冲基金和美联储都在用),好像大数

avatar
n*7
50
这不算奇葩
奇葩的是
if (){
} else {
}
能work
if (){
}
else {
}
就不work
真是屎一样的语言啊

【在 w*****g 的大作中提到】
: 还是不习惯属性和方法分开放,不好组织。
:
: ★ 发自iPhone App: ChineseWeb 13

avatar
w*g
51
啥预言这么奇葩?

【在 n******7 的大作中提到】
: 这不算奇葩
: 奇葩的是
: if (){
: } else {
: }
: 能work
: if (){
: }
: else {
: }

avatar
n*7
52
R
我前几天刚遇到这个问题
然后发现10年来很多人问过
给的解释是R解释器读到
if () {
}
这个}的时候,并不知道下面还有没有,所以默认是没有的
你要用else 必须得跟}在一行
我不知道为啥我没早注意这个
可能以前知道,好久没用忘记了

【在 w***g 的大作中提到】
: 啥预言这么奇葩?
avatar
h*u
53
有免费软件可以打包成exe

【在 w*****g 的大作中提到】
: 她要编译给外行用,奈何!
:
: ★ 发自iPhone App: ChineseWeb 13

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