avatar
NIBS最新的nature文章# Biology - 生物学
w*r
1
【 以下文字转载自 LoveNLust 讨论区 】
发信人: windking (Mr Doctor), 信区: LoveNLust
标 题: 戏曲小品《蟠桃会》:我都快被雷翻了 (转载)
发信站: BBS 未名空间站 (Mon Mar 12 04:05:27 2012, 美东)
发信人: windking (Mr Doctor), 信区: Xiqu
标 题: 戏曲小品《蟠桃会》:我都快被雷翻了
发信站: BBS 未名空间站 (Mon Mar 12 04:04:52 2012, 美东)
avatar
l*n
2
【 以下文字转载自 Military 讨论区 】
发信人: zhaoce (米高蜥蜴), 信区: Military
标 题: 感觉python的前途堪忧
发信站: BBS 未名空间站 (Thu Feb 4 03:40:38 2016, 美东)
现在工业界越来越不屌python了
一个重要原因就是python的modules虽然多
但是包的质量很差,很难投放生产
大部分只是学术界自娱自乐的toy而已
而且工业界现在有groovy了
语法上比python只更简单,轮子依托mvn,比py的modules多了十倍还不止
而且groovy及时挂靠在了apache foundation名下
抱住了大腿,加上jvm在工业界是主流
groovy的前景比python会更加光明
vert.x在选择支持脚本的时候,选择了js, ruby和groovy
不是没有理由的,python的支持到现在还迟迟不出来
而且对比jruby的如火如荼,jython有越做越差的架势
avatar
s*m
3
内行的能不能给解释一下为什么这个文章能在nature发呢?
感觉相关的结构也解了很多
这个分辨率也不算是很高
是不是就是因为有substrate在结构里呢?
谢谢!
avatar
l*n
4
vert.x点睛了
avatar
T*1
5
总是担忧python会死在3上

【在 l**********n 的大作中提到】
: vert.x点睛了
avatar
N*m
6
不用担心吧
spark之后,python更火了

【在 T***1 的大作中提到】
: 总是担忧python会死在3上
avatar
f*2
7
赵老师怎么堕落到自带干粮的地步了?看来netflix真是折磨人啊

【在 l**********n 的大作中提到】
: vert.x点睛了
avatar
d*e
8
scala.能抢走一些data sciences
但是,运维, test, statistics这些基本盘几乎不回被冲击。

【在 N*****m 的大作中提到】
: 不用担心吧
: spark之后,python更火了

avatar
w*g
9
python马上就要超过C#成为TIOBE第四大语言了。
而且是已经factor in python2/3的不兼容性。
一个人只会python是可以找到工作的。多会一个鸡毛语言
基本上没用。

【在 l**********n 的大作中提到】
: 【 以下文字转载自 Military 讨论区 】
: 发信人: zhaoce (米高蜥蜴), 信区: Military
: 标 题: 感觉python的前途堪忧
: 发信站: BBS 未名空间站 (Thu Feb 4 03:40:38 2016, 美东)
: 现在工业界越来越不屌python了
: 一个重要原因就是python的modules虽然多
: 但是包的质量很差,很难投放生产
: 大部分只是学术界自娱自乐的toy而已
: 而且工业界现在有groovy了
: 语法上比python只更简单,轮子依托mvn,比py的modules多了十倍还不止

avatar
d*r
10
Python 基本盘好得很.
除了计算和数据那一块, 以前做系统的传统公司,很多新项目比如SDN什么的也用
Python.
Python党很多也用一些 Go, 不冲突.
倒是Java党很多用点Ruby, Groovy, 可能跟Grails这些"邪门歪道"有关. :D
avatar
f*2
11
工作上基本就是
something + python
所以python will be fine

【在 d*******r 的大作中提到】
: Python 基本盘好得很.
: 除了计算和数据那一块, 以前做系统的传统公司,很多新项目比如SDN什么的也用
: Python.
: Python党很多也用一些 Go, 不冲突.
: 倒是Java党很多用点Ruby, Groovy, 可能跟Grails这些"邪门歪道"有关. :D

avatar
d*r
12
还有些做web+数据的朋友,公司基本就是Python加一点Java

【在 f******2 的大作中提到】
: 工作上基本就是
: something + python
: 所以python will be fine

avatar
d*e
13
忘了说潜入式了。
树莓什么的,都是大市场。
火星车也是python写的。

【在 d*******r 的大作中提到】
: Python 基本盘好得很.
: 除了计算和数据那一块, 以前做系统的传统公司,很多新项目比如SDN什么的也用
: Python.
: Python党很多也用一些 Go, 不冲突.
: 倒是Java党很多用点Ruby, Groovy, 可能跟Grails这些"邪门歪道"有关. :D

avatar
N*m
14
本来是认为spark的兴起,会让scala占领data science的市场
现在的结果是spark对python支持的不错
原来在ipython写的东西,可以大规模并行化运行到Spark上
所以,python在这个领域反而更火了

【在 d******e 的大作中提到】
: scala.能抢走一些data sciences
: 但是,运维, test, statistics这些基本盘几乎不回被冲击。

avatar
N*m
15
对,基本上是glue语言的首选

【在 f******2 的大作中提到】
: 工作上基本就是
: something + python
: 所以python will be fine

avatar
b*s
16
金融里面python越来越受欢迎了

【在 w***g 的大作中提到】
: python马上就要超过C#成为TIOBE第四大语言了。
: 而且是已经factor in python2/3的不兼容性。
: 一个人只会python是可以找到工作的。多会一个鸡毛语言
: 基本上没用。

avatar
k*d
17
Python的GIL很头疼,效率不行。金融大公司用Python 写production system的基本上
都被抱怨系统太慢了,有些很简单的操作响应都要很久。所以总觉得在写prod system
方面是不是scala更有优势些
avatar
d*e
18
金融大公司的中层以上基本上都是不知道自己干什么,吃几碗干饭的。合格的架构师几
乎咩有。
和他们聊过几次,想做一点新的东西,但是思路怪异,或者说死扣底层,几乎没法交流。

system

【在 k*******d 的大作中提到】
: Python的GIL很头疼,效率不行。金融大公司用Python 写production system的基本上
: 都被抱怨系统太慢了,有些很简单的操作响应都要很久。所以总觉得在写prod system
: 方面是不是scala更有优势些

avatar
w*z
19
devop 大部分都用 Python 吧。

【在 d******e 的大作中提到】
: scala.能抢走一些data sciences
: 但是,运维, test, statistics这些基本盘几乎不回被冲击。

avatar
d*r
20
现在还有些 Ruby, 不过感觉前景不如 Python.
总觉得像 Ruby, Scala 这种太自我的语言,工程化代价总是比较大.

【在 w**z 的大作中提到】
: devop 大部分都用 Python 吧。
avatar
l*n
21
Ruby特别适合devop,python的语法多丑陋啊,ruby的表现力不是python能比的。

【在 d*******r 的大作中提到】
: 现在还有些 Ruby, 不过感觉前景不如 Python.
: 总觉得像 Ruby, Scala 这种太自我的语言,工程化代价总是比较大.

avatar
c*1
22
personal preference.
我熟悉10种热门语言(c/c++, c#/java, python, html, sql, javascript, php, VB,
vba)
Ruby is the language I don't want to learn.

【在 l**********n 的大作中提到】
: Ruby特别适合devop,python的语法多丑陋啊,ruby的表现力不是python能比的。
avatar
d*r
23
Ruby 不仅语法乱,各种 tool 也非常 fragile

【在 l**********n 的大作中提到】
: Ruby特别适合devop,python的语法多丑陋啊,ruby的表现力不是python能比的。
avatar
l*n
24
语法乱说明你还一知半解

【在 d*******r 的大作中提到】
: Ruby 不仅语法乱,各种 tool 也非常 fragile
avatar
c*1
25
I could code python after learning python for a half day.
I could not code Ruby after learning Ruby for one day.

【在 l**********n 的大作中提到】
: 语法乱说明你还一知半解
avatar
c*f
26
ruby比python更OO python比ruby好理解 但是区别真没很大 都是属于那种拿着cheat
sheet写几次就会的 但是大型框架来说 rails要比django难很多
语言的区别真没那么大 无非是你用的多用得顺手 知道的类库多 知道的技巧多
avatar
d*r
27
Ruby说语法,需要考虑时不时从某个gem冒出来的DSL.
因为用Ruby干活,就是需要面对这些. 那绝对就一个乱.

【在 l**********n 的大作中提到】
: 语法乱说明你还一知半解
avatar
w*m
28
感觉java程序员只会调JVM,找轮子,对kernel完全不懂呀
linux的nptl不如fork好用
开线程的开销还不如进程
赵老师抱怨python没有多线程,估计是在windows上的故事吧
web concurrence里面,asnyc比多线程重要
赵老师估计都没听过epoll,kqueue,select,/dev/poll,
你要他做asycn programming,只有呵呵了
avatar
c*f
29

这个看语言的设计 并不是async就比concurrent效率高的
2个列子 go routine和 Erlang 的process

【在 w********m 的大作中提到】
: 感觉java程序员只会调JVM,找轮子,对kernel完全不懂呀
: linux的nptl不如fork好用
: 开线程的开销还不如进程
: 赵老师抱怨python没有多线程,估计是在windows上的故事吧
: web concurrence里面,asnyc比多线程重要
: 赵老师估计都没听过epoll,kqueue,select,/dev/poll,
: 你要他做asycn programming,只有呵呵了

avatar
l*n
30
【 以下文字转载自 Military 讨论区 】
发信人: zhaoce (米高蜥蜴), 信区: Military
标 题: 感觉python的前途堪忧
发信站: BBS 未名空间站 (Thu Feb 4 03:40:38 2016, 美东)
现在工业界越来越不屌python了
一个重要原因就是python的modules虽然多
但是包的质量很差,很难投放生产
大部分只是学术界自娱自乐的toy而已
而且工业界现在有groovy了
语法上比python只更简单,轮子依托mvn,比py的modules多了十倍还不止
而且groovy及时挂靠在了apache foundation名下
抱住了大腿,加上jvm在工业界是主流
groovy的前景比python会更加光明
vert.x在选择支持脚本的时候,选择了js, ruby和groovy
不是没有理由的,python的支持到现在还迟迟不出来
而且对比jruby的如火如荼,jython有越做越差的架势
avatar
l*n
31
vert.x点睛了
avatar
T*1
32
总是担忧python会死在3上

【在 l**********n 的大作中提到】
: vert.x点睛了
avatar
N*m
33
不用担心吧
spark之后,python更火了

【在 T***1 的大作中提到】
: 总是担忧python会死在3上
avatar
f*2
34
赵老师怎么堕落到自带干粮的地步了?看来netflix真是折磨人啊

【在 l**********n 的大作中提到】
: vert.x点睛了
avatar
d*e
35
scala.能抢走一些data sciences
但是,运维, test, statistics这些基本盘几乎不回被冲击。

【在 N*****m 的大作中提到】
: 不用担心吧
: spark之后,python更火了

avatar
w*g
36
python马上就要超过C#成为TIOBE第四大语言了。
而且是已经factor in python2/3的不兼容性。
一个人只会python是可以找到工作的。多会一个鸡毛语言
基本上没用。

【在 l**********n 的大作中提到】
: 【 以下文字转载自 Military 讨论区 】
: 发信人: zhaoce (米高蜥蜴), 信区: Military
: 标 题: 感觉python的前途堪忧
: 发信站: BBS 未名空间站 (Thu Feb 4 03:40:38 2016, 美东)
: 现在工业界越来越不屌python了
: 一个重要原因就是python的modules虽然多
: 但是包的质量很差,很难投放生产
: 大部分只是学术界自娱自乐的toy而已
: 而且工业界现在有groovy了
: 语法上比python只更简单,轮子依托mvn,比py的modules多了十倍还不止

avatar
d*r
37
Python 基本盘好得很.
除了计算和数据那一块, 以前做系统的传统公司,很多新项目比如SDN什么的也用
Python.
Python党很多也用一些 Go, 不冲突.
倒是Java党很多用点Ruby, Groovy, 可能跟Grails这些"邪门歪道"有关. :D
avatar
f*2
38
工作上基本就是
something + python
所以python will be fine

【在 d*******r 的大作中提到】
: Python 基本盘好得很.
: 除了计算和数据那一块, 以前做系统的传统公司,很多新项目比如SDN什么的也用
: Python.
: Python党很多也用一些 Go, 不冲突.
: 倒是Java党很多用点Ruby, Groovy, 可能跟Grails这些"邪门歪道"有关. :D

avatar
d*r
39
还有些做web+数据的朋友,公司基本就是Python加一点Java

【在 f******2 的大作中提到】
: 工作上基本就是
: something + python
: 所以python will be fine

avatar
d*e
40
忘了说潜入式了。
树莓什么的,都是大市场。
火星车也是python写的。

【在 d*******r 的大作中提到】
: Python 基本盘好得很.
: 除了计算和数据那一块, 以前做系统的传统公司,很多新项目比如SDN什么的也用
: Python.
: Python党很多也用一些 Go, 不冲突.
: 倒是Java党很多用点Ruby, Groovy, 可能跟Grails这些"邪门歪道"有关. :D

avatar
N*m
41
本来是认为spark的兴起,会让scala占领data science的市场
现在的结果是spark对python支持的不错
原来在ipython写的东西,可以大规模并行化运行到Spark上
所以,python在这个领域反而更火了

【在 d******e 的大作中提到】
: scala.能抢走一些data sciences
: 但是,运维, test, statistics这些基本盘几乎不回被冲击。

avatar
N*m
42
对,基本上是glue语言的首选

【在 f******2 的大作中提到】
: 工作上基本就是
: something + python
: 所以python will be fine

avatar
b*s
43
金融里面python越来越受欢迎了

【在 w***g 的大作中提到】
: python马上就要超过C#成为TIOBE第四大语言了。
: 而且是已经factor in python2/3的不兼容性。
: 一个人只会python是可以找到工作的。多会一个鸡毛语言
: 基本上没用。

avatar
k*d
44
Python的GIL很头疼,效率不行。金融大公司用Python 写production system的基本上
都被抱怨系统太慢了,有些很简单的操作响应都要很久。所以总觉得在写prod system
方面是不是scala更有优势些
avatar
d*e
45
金融大公司的中层以上基本上都是不知道自己干什么,吃几碗干饭的。合格的架构师几
乎咩有。
和他们聊过几次,想做一点新的东西,但是思路怪异,或者说死扣底层,几乎没法交流。

system

【在 k*******d 的大作中提到】
: Python的GIL很头疼,效率不行。金融大公司用Python 写production system的基本上
: 都被抱怨系统太慢了,有些很简单的操作响应都要很久。所以总觉得在写prod system
: 方面是不是scala更有优势些

avatar
w*z
46
devop 大部分都用 Python 吧。

【在 d******e 的大作中提到】
: scala.能抢走一些data sciences
: 但是,运维, test, statistics这些基本盘几乎不回被冲击。

avatar
d*r
47
现在还有些 Ruby, 不过感觉前景不如 Python.
总觉得像 Ruby, Scala 这种太自我的语言,工程化代价总是比较大.

【在 w**z 的大作中提到】
: devop 大部分都用 Python 吧。
avatar
l*n
48
Ruby特别适合devop,python的语法多丑陋啊,ruby的表现力不是python能比的。

【在 d*******r 的大作中提到】
: 现在还有些 Ruby, 不过感觉前景不如 Python.
: 总觉得像 Ruby, Scala 这种太自我的语言,工程化代价总是比较大.

avatar
c*1
49
personal preference.
我熟悉10种热门语言(c/c++, c#/java, python, html, sql, javascript, php, VB,
vba)
Ruby is the language I don't want to learn.

【在 l**********n 的大作中提到】
: Ruby特别适合devop,python的语法多丑陋啊,ruby的表现力不是python能比的。
avatar
d*r
50
Ruby 不仅语法乱,各种 tool 也非常 fragile

【在 l**********n 的大作中提到】
: Ruby特别适合devop,python的语法多丑陋啊,ruby的表现力不是python能比的。
avatar
l*n
51
语法乱说明你还一知半解

【在 d*******r 的大作中提到】
: Ruby 不仅语法乱,各种 tool 也非常 fragile
avatar
c*1
52
I could code python after learning python for a half day.
I could not code Ruby after learning Ruby for one day.

【在 l**********n 的大作中提到】
: 语法乱说明你还一知半解
avatar
c*f
53
ruby比python更OO python比ruby好理解 但是区别真没很大 都是属于那种拿着cheat
sheet写几次就会的 但是大型框架来说 rails要比django难很多
语言的区别真没那么大 无非是你用的多用得顺手 知道的类库多 知道的技巧多
avatar
d*r
54
Ruby说语法,需要考虑时不时从某个gem冒出来的DSL.
因为用Ruby干活,就是需要面对这些. 那绝对就一个乱.

【在 l**********n 的大作中提到】
: 语法乱说明你还一知半解
avatar
w*m
55
感觉java程序员只会调JVM,找轮子,对kernel完全不懂呀
linux的nptl不如fork好用
开线程的开销还不如进程
赵老师抱怨python没有多线程,估计是在windows上的故事吧
web concurrence里面,asnyc比多线程重要
赵老师估计都没听过epoll,kqueue,select,/dev/poll,
你要他做asycn programming,只有呵呵了
avatar
c*f
56

这个看语言的设计 并不是async就比concurrent效率高的
2个列子 go routine和 Erlang 的process

【在 w********m 的大作中提到】
: 感觉java程序员只会调JVM,找轮子,对kernel完全不懂呀
: linux的nptl不如fork好用
: 开线程的开销还不如进程
: 赵老师抱怨python没有多线程,估计是在windows上的故事吧
: web concurrence里面,asnyc比多线程重要
: 赵老师估计都没听过epoll,kqueue,select,/dev/poll,
: 你要他做asycn programming,只有呵呵了

avatar
g*n
57
请教大牛们一个问题,认真学习golang值不值?我最近有个机会做一个golang的项目。
人老了, 又没钱。希望学的东西将来再找工作用得上。

【在 c****f 的大作中提到】
:
: 这个看语言的设计 并不是async就比concurrent效率高的
: 2个列子 go routine和 Erlang 的process

avatar
t*r
58
go lang在狗内部也不太流行 要慎重

【在 g********n 的大作中提到】
: 请教大牛们一个问题,认真学习golang值不值?我最近有个机会做一个golang的项目。
: 人老了, 又没钱。希望学的东西将来再找工作用得上。

avatar
s*x
59
正在学习Python, 感觉确实是一堆屎,当然跟人水平高低也有关系。
写个小程序没问题,低手用Python 写大的程序可维护性基本等于零。
估计再火个七八年后,会被彻底拼弃。
avatar
p*2
60
现在还火吗?

【在 s**x 的大作中提到】
: 正在学习Python, 感觉确实是一堆屎,当然跟人水平高低也有关系。
: 写个小程序没问题,低手用Python 写大的程序可维护性基本等于零。
: 估计再火个七八年后,会被彻底拼弃。

avatar
w*m
61
python报上大腿了 没办法
上次是Web
现在deep learning
七八年后,像tensorflow的库肯定不行了
不过那时候python估计又换大腿了

【在 s**x 的大作中提到】
: 正在学习Python, 感觉确实是一堆屎,当然跟人水平高低也有关系。
: 写个小程序没问题,低手用Python 写大的程序可维护性基本等于零。
: 估计再火个七八年后,会被彻底拼弃。

avatar
w*g
62
deep learning只是一小块。
python是少有的各个方向都有轮子的语言。
比如做大数据, 可以选python,竞争对手是java和scala,主要是scala(R也有发展)。
如果不想用spark,用graphlab,也支持python。
比如做单机数据分析,可以选python,竞争对手是R和matlab。
同时要做上面两个,python基本上就是不二选择了。
以前做图像的用matlab多,现在也都全面转python了。
如果做网站,稍微和上面这些沾点边的,python的好处立刻就显示出来了。
要等python完蛋,可能得等x86架构完蛋。
当时谁知道x86+Linux会一直统治世界到现在,java的跨架构跨平台的优势并不大。
不是换大腿的问题。一个新的大腿出来要占领市场,除了大腿自己的语言以外
python肯定是第一个被支持的。
我自己也在越来越多地用python。

【在 w********m 的大作中提到】
: python报上大腿了 没办法
: 上次是Web
: 现在deep learning
: 七八年后,像tensorflow的库肯定不行了
: 不过那时候python估计又换大腿了

avatar
N*m
63
越来越火了

【在 p*****2 的大作中提到】
: 现在还火吗?
avatar
w*g
64
千老逆袭码农的结果。

★ 发自iPhone App: ChineseWeb 11

【在 N*****m 的大作中提到】
: 越来越火了
avatar
N*m
65
科学计算可能是
其他方面,比如在运维,一直都很火

【在 w*****g 的大作中提到】
: 千老逆袭码农的结果。
:
: ★ 发自iPhone App: ChineseWeb 11

avatar
w*g
66
运维=janitorial!

★ 发自iPhone App: ChineseWeb 11

【在 N*****m 的大作中提到】
: 科学计算可能是
: 其他方面,比如在运维,一直都很火

avatar
N*m
67
现在云计算,一大半资源都用在运维了

【在 w*****g 的大作中提到】
: 运维=janitorial!
:
: ★ 发自iPhone App: ChineseWeb 11

avatar
w*m
68
python是个很古老的语言,91年的,比什么Java那是老多了。
一个社区推的语言,现在还很热,不容易了。
不像javascript,钱和人都在那里。
ES6一出,各路人马哭着喊着抢着写transpiler。
python 2和3这么多年,没钱没人写transpiler。
以前有个2to3的script,很快死掉。
现在写2/3兼容的程序还是要动动脑筋的。
python就是抱大腿抱的准。
早期给google做爬虫。
Lamp时代,取代PHP做网站。
现在主攻data。
运维方向其实也不错。跟ruby一半一半吧。Ansible和salt。
不过运维不是好方向。责任重,钱少。
大数据都是java吧。
全都是log。
mine点东西出来不容易。
去个spark的meetup,一看来的都是做java想转行的。

【在 w***g 的大作中提到】
: deep learning只是一小块。
: python是少有的各个方向都有轮子的语言。
: 比如做大数据, 可以选python,竞争对手是java和scala,主要是scala(R也有发展)。
: 如果不想用spark,用graphlab,也支持python。
: 比如做单机数据分析,可以选python,竞争对手是R和matlab。
: 同时要做上面两个,python基本上就是不二选择了。
: 以前做图像的用matlab多,现在也都全面转python了。
: 如果做网站,稍微和上面这些沾点边的,python的好处立刻就显示出来了。
: 要等python完蛋,可能得等x86架构完蛋。
: 当时谁知道x86+Linux会一直统治世界到现在,java的跨架构跨平台的优势并不大。

avatar
m*t
69
Python 不错,表现比较全面,不像Ruby偏科。
最近Python用的比较多,感觉还行,要是性能再快点就好了
avatar
l*n
70
要性能python这边太多选择了

【在 m******t 的大作中提到】
: Python 不错,表现比较全面,不像Ruby偏科。
: 最近Python用的比较多,感觉还行,要是性能再快点就好了

avatar
n*g
71
but still slower than java or C++

【在 l******n 的大作中提到】
: 要性能python这边太多选择了
avatar
j*g
72
C++比汇编慢,也不会激励我去用汇编。
用长处。

【在 n******g 的大作中提到】
: but still slower than java or C++
avatar
x*u
73
C++在大多数情况比汇编快,java在大多数情况比C++快,这就是现代优化技术的魔术。
当然也有一些场合非要用C/C++不可就是,但速度不是理由。

【在 j********g 的大作中提到】
: C++比汇编慢,也不会激励我去用汇编。
: 用长处。

avatar
l*s
74
in most cases? mind posting your benchmark?

【在 x****u 的大作中提到】
: C++在大多数情况比汇编快,java在大多数情况比C++快,这就是现代优化技术的魔术。
: 当然也有一些场合非要用C/C++不可就是,但速度不是理由。

avatar
w*g
75
编译器没那么神。我在C++里嵌过汇编,速度提高还是很明显的。
gcc的vectorization还有非常大的余地可以提高,可能需要应用人工智能。
Nervana的neon比别的系统快几乎一倍,也就是关键处的汇编语言写得牛逼。
一般来说,脚本语言开发的是不在乎性能部分。
java可以做到O(n),有常数级的差别。这个是boxed type以及type removal这些
语言的局限所致。除非内嵌C++,这个常数级的差别无法突破。
(如果C++全都用需类指针,container里全都存指针,则性能就下降到和java一致。
但C++程序员不会这么写程序。你见到的benchmark估计就是这么来的。)
java和脚本语言之所以现在应用这么广泛,一个大前提是性能敏感部分全都放到
数据库去做了。用java和C++写数据库的性能区别参考这个
http://www.scylladb.com/technology/cassandra-vs-scylla-benchmar
C++可以做到跨平台的最优。但是如果要利用平台特性,比如充分发挥SSD和AVX
指令的性能,基本上就得手工写汇编了。用汇编写的轮子我只见过BLAS库,FFT库
以及各种音视频编解码库。

【在 x****u 的大作中提到】
: C++在大多数情况比汇编快,java在大多数情况比C++快,这就是现代优化技术的魔术。
: 当然也有一些场合非要用C/C++不可就是,但速度不是理由。

avatar
d*e
76
gcc就是性能差的源头吧。换llvm swift优化10年应该可以秒杀C++, java.

【在 w***g 的大作中提到】
: 编译器没那么神。我在C++里嵌过汇编,速度提高还是很明显的。
: gcc的vectorization还有非常大的余地可以提高,可能需要应用人工智能。
: Nervana的neon比别的系统快几乎一倍,也就是关键处的汇编语言写得牛逼。
: 一般来说,脚本语言开发的是不在乎性能部分。
: java可以做到O(n),有常数级的差别。这个是boxed type以及type removal这些
: 语言的局限所致。除非内嵌C++,这个常数级的差别无法突破。
: (如果C++全都用需类指针,container里全都存指针,则性能就下降到和java一致。
: 但C++程序员不会这么写程序。你见到的benchmark估计就是这么来的。)
: java和脚本语言之所以现在应用这么广泛,一个大前提是性能敏感部分全都放到
: 数据库去做了。用java和C++写数据库的性能区别参考这个

avatar
n*t
77
你就吹吧。
搞得和snake oil一樣。最後搞臭了,想老老實實做事都沒機會了。

【在 x****u 的大作中提到】
: C++在大多数情况比汇编快,java在大多数情况比C++快,这就是现代优化技术的魔术。
: 当然也有一些场合非要用C/C++不可就是,但速度不是理由。

avatar
h*c
78
- “如果C++全都用需类指针“,这句话没太理解。
- 在java performance 一书中有指出,streamlined gc实际的CPU benchmark要比c/c+
+的 free, delete做的好。这实际是virtual machine作用,目前还没有基于c/c++的VM
,以前很看好QT(也没有VM,但有mirror, mock)觉得有点意思。但糟蹋在微软手里了
。python要搞VM,实际上VM还是得用c/c++开发,简直是人傻钱多烧得。
- 免费得C/C++ IDE这么多年都不如emacs, notepad++进步。visual c++对于stanard c
++还是不bird.
- VM 提供security manager, java 服务器比c++服务器少很多 exploit,纯粹java得多
线程同步最少我本人写不出一个hell 来。
- 在本版举过一个java 日期函数得例子,实际上socket,压缩,string, ...
这些库java得实现非常稳定,有大量测试。相反linux社区甚至核心代码很多小锅炉,
土法炼钢。昨天看一个文章,fb搞ipv6,结论是linux kernel is not ready (sourcing
yourself).当然java对ipv6怎么支持,我知道如何绑定,多了也没有。

【在 w***g 的大作中提到】
: 编译器没那么神。我在C++里嵌过汇编,速度提高还是很明显的。
: gcc的vectorization还有非常大的余地可以提高,可能需要应用人工智能。
: Nervana的neon比别的系统快几乎一倍,也就是关键处的汇编语言写得牛逼。
: 一般来说,脚本语言开发的是不在乎性能部分。
: java可以做到O(n),有常数级的差别。这个是boxed type以及type removal这些
: 语言的局限所致。除非内嵌C++,这个常数级的差别无法突破。
: (如果C++全都用需类指针,container里全都存指针,则性能就下降到和java一致。
: 但C++程序员不会这么写程序。你见到的benchmark估计就是这么来的。)
: java和脚本语言之所以现在应用这么广泛,一个大前提是性能敏感部分全都放到
: 数据库去做了。用java和C++写数据库的性能区别参考这个

avatar
l*s
79
what is so special about swift? I doubt there is any language could beat c++
in performance term.

【在 d******e 的大作中提到】
: gcc就是性能差的源头吧。换llvm swift优化10年应该可以秒杀C++, java.
avatar
d*e
80
转帖:
克里斯可以说是天才少年和好学生的代名词,他在2000年本科毕业之后,继续攻读计算
机硕士和博士。但克里斯并不是宅男,学习之余他手捧「龙书」游历世界,成为德智体
美劳全面发展的好学生。之后就是一篇又一篇的发表论文,硕士毕业论文即提出了一套
完整的运行时编译思想,奠定了 LLVM 的发展基础,读博期间 LLVM 编译框架在他的领
导下得到了长足的发展,已经可以基于 GCC 前端编译器的语义分析结果进行编译优化
和代码生成,所以克里斯在2005年毕业的时候已经是业界知名的编译器专家了。
注:很多计算机专业的大学生经常问我在大学里学点什么好,看看克里斯就行了。以目
前的科技信息开放程度,如果你在自己感兴趣的领域里用心耕耘,再加上那么一点点天
分,毕业时成为某一个专有领域的专家应该不是问题。那时就不是你满世界去找工作了
,而是工作满世界来找你!
克里斯毕业的时候正是苹果为了编译器焦头烂额的时候,因为苹果之前的软件产品都依
赖于整条 GCC 编译链,而开源界的这帮大爷并不买苹果的帐,他们不愿意专门为了苹
果公司的要求优化和改进 GCC 代码,所以苹果一怒之下将编译器后端直接替换为 LLVM
,并且把克里斯招入麾下。克里斯进入了苹果之后如鱼得水,不仅大幅度优化和改进
LLVM 以适应 Objective-C 的语法变革和性能要求,同时发起了 CLang 项目,旨在全
面替换 GCC。这个目标目前已经实现了,从 OS X10.9和 XCode 5开始,LLVM+GCC 已经
被替换成了 LLVM+Clang。
Swift 是克里斯在 LLVM 和 Clang 之后第三个伟大的项目!
关于语言
2007年之前,Objective-C 一直是苹果自家院落的小众语言,但是 iOS 移动设备的爆
发让这门语言的普及率获得了火箭一般的蹿升速度,截止到今天,Objective-C 在编程
语言排行榜上排名第三,江湖人称三哥,大哥二哥分别是 C 和 Java 这样的老牌语言
。同时,苹果在2012年和2013年分别对 Objective-C 进行了大规模的优化和升级改进
,增加了各种现代语言的特性,让编写 App 更加容易,更多的程序员投入到了 App
Store 的生态圈里……
在这种情况下,苹果公司为什么会发布一门新语言呢?
这个问题没有标准答案,不过我们可以试着去分析一下,谈谈苹果的心路历程……
Objective-C 是80年代初 Brad Cox 和 Tom Love 发明的,1988年乔布斯的 Next 公司
获得了这门编程语言语言的授权,并开发出了Objective-C 的语言库和NEXTSTEP的开发
环境。后来 Next 被苹果收购,Objective-C 阴差阳错成了苹果的当家语言。掐指一算
,三十年倏忽而过,OC 也成长为爷爷辈儿的编程语言了。
为了伺候好这位「爷爷」,苹果煞费苦心,把 GCC 的编译链先替换成 LLVM +GCC,又
替换成 LLVM+Clang,做语法简化、自动引用计数、增加 Blocks 和 GCD 多线程异步处
理技术……终于,OC 在30年后重新焕发出勃勃生机,并占据了兵器谱排名第三的位置
。但是,苹果却有点烦了,OC 改进了这么多年,怎么看都像是在修修补补,用 Blocks
去实现一个类似 Python 的 lambda 闭包功能,看起来总是那么别扭。好吧,既然已
经全盘掌握了 LLVM 和 Clang,为什么我们不去基于现在的编译器设计一门全新的语言
呢?一门属于苹果的语言!你看,邻居谷歌家里叫做 Go 的孩子不是玩耍正酣么?
于是 Swift 诞生了……
当然,事实的真相也可能是行动缓慢的乔老爷子把克里斯拉到一边说:
「I want to be swift to……」
「 行了,您别说了,不就是想要 swift 吗,我这就给您做一个去」
于是 Swift 诞生了……
语法
Swift 是一门博采众长的现代语言,在设计的过程中,克里斯参考了Objective-C,
Rust,Haskell,Ruby,Python,C#等优秀语言的特点,最终形成了目前 Swift 的语法
特性。我在阅读了官方教程和做了些代码实验之后,自我感觉会喜欢上这门语言,在这
里简单谈点感想,更深入的内容需要你们自己去深入学习。
1、Swift 是面向 Cocoa 和 Cocoa Touch 的编程语言,编译型语言,生产环境的代码
都需要 LLVM 编译成本地代码才能执行,但是Swift又具备很多动态语言的语法特性和
交互方式。
2、Swift 是一门类型安全的语言,可以帮助开发者清楚的掌控代码片段中的值类型。
如果你期望输入的是字符串,类型安全的特性会阻止开发者错误地为其传递一个整数。
这一切使得开发者能够更早的发现和修复错误。?
3、支持各种高级语言特性,包括闭包、泛型、面向对象、多返回值、类型接口、元组
、集合等。
4、Swift 能与 Objective-C 进行混合编程,但代码分属不同的文件。
5、全面的Unicode支持,你甚至可以用一只????作为变量名,实现以下操作:
let ???? = “大狗菠萝”
for n in ????{
println( n )
}
控制台会输出「大狗菠萝」四个字。
6、编程语句取消了大部分语言使用的「;」分隔符,只有一行写多条语句时才需要分号。
7、很多人简单阅读了 Swift 的数据类型,就认为 Swift 没有类似 Set、List 这样的
数据结构,其实Swift 提供了两种 Collection 的数据类型:数组(Array)和字典(
Dictionary),两个数据类型的表达式都用中括号标识。其中数组可以存储任意类型的
变量,也可以强制声明存储同一种类型的变量。同时数组提供了类似 Set 功能,你可
以修改、追加、替换和删除数据的元素。另外,Swift 还提供了元组(Tuple)的功能
支持函数多返回值。?
8、Swift 没有提供显式的指针,参数传递根据数据类型的不同分为值类型和引用类型
,值传递进行内存拷贝,引用传递最终传递的是一个指向原有对象的指针。这一点和
Java 的参数传递是类似的。需要注意的一点是,Swift 里的数组和字典虽然都是结构
体(struct),但在参数传递过程中处理方式却不一样,默认 Array 是引用传递,
Dictionary 是值传递。而在 Java 中,由于数组和 Map 都是对象,所以传递的都是指
针。?
在 Swift 中,如果你不想传递数组引用,可以用 copy() 方法先复制一份出来,另外
,也可以用 unshare() 表示,本变量不传递指针。
9、闭包,Swift 终于提供了一种优雅的闭包解决方案,比如在排序函数 sort 中进行
函数传递:
let names = ["D", "B", "R", "C", "A"]
func backwards(s1: String, s2: String) -> Bool {
return s1 > s2
}
var rnames = sort(names, backwards)
事实上更简单的写法是:
var rnames = sort( ["D", "B", "R", "C", "A"] ) { $0 > $1 }
10、可选变量(Optional)的引入主要是为了应对一个变量可能存在也可能是 nil 的
情况,这种情况在很多高级语言里都存在。比如你想使用String的toInt方法将String
转化为 Int 类型,但是你并不知道这个转化是否正常,这时候系统会返回一个可选变
量,如果转换成功就返回正常值,转换失败就返回 nil,如下:
let str = “123A”
let nn = str.toInt()
这是 nn 就是可选变量,想得到 nn 的值,可以通过 if 进行判断并通过追加感叹号获
取变量值,如下:
if nn {
println(nn!)
}
可选变量的引入解决了大部分需要显式处理的异常,这部分工作也扔给编译器去做了。
想了解更多可选变量的用法,请阅读苹果的官方文档。
11、Swift 中的 nil 和 Objective-C 种的 nil 不同。在 Objective-C 中,nil 是指
向不存在对象的指针,而在 Swift 里,nil 不是指针,它表示特定类型的值不存在。
所有类型的可选值都可以被设置为nil,不仅仅是对象类型。?
12、Swift 没有从语言层面支持异步和多核,不过可以直接在 Swift 中复用 GCD 的
API 实现异步功能。另外没看到 Swift 的异常处理机制,可能有了可选变量,异常的
使用会非常少吧。
关于语法相关的内容,先写这么几点吧。
给大家推荐一篇王巍 (@onevcat)写的「行走于 Swift 的世界中」,深入阅读必有收获。
基本上,Swift 绝对不是玩具语言,而是一门可以被大众接受的工业级编程语言。相信
假以时日,Swift 必将在 App 开发领域大放异彩。
性能
Swift 在 WWDC 上展示出来的性能还是让人非常吃惊的,在进行复杂对象排序时,OC
的性能是 Python 的2.8倍,Swift 是 Python 的3.9倍;在实现 RC4加密算法的时候,
OC 的性能是 Python 的127倍,Swift 是 Python 的220倍。总之 Python 在某一个深
坑里膝盖中箭了,OC 也没好到哪去,而 Swift,就是快啊就是快!
对于这一点我并不是很理解,首先是 WWDC 上展示的语言层面的基准测试过于简单了,
另外,OC 和 Swift 都是被 LLVM 编译成本地代码执行的,理论上针对 Swift 的优化
同样可以应用于 OC,但是 Swift 居然比 OC 快那么一点点,难道 LLVM 单独针对
Swift 做了优化么?我表示不明觉厉。
当然,还有更较真的程序员,他在第一时间针对于循环、递增、数组、字符串拼接等功
能进行了测试,发现 Swift 的性能比 OC 还是差那么一点点的(http://www.splasmata.com/?p=2798 )。
无论这些测试数据是否准确,我觉得性能是我们最不需要担心的问题,苹果已经全盘掌
握了这个语言的方方面面,从底层编译框架到编译器再到语言设计,优化之路才刚刚开
始,我们只要给这门新语言一点耐心就可以了。

++

【在 l*********s 的大作中提到】
: what is so special about swift? I doubt there is any language could beat c++
: in performance term.

avatar
n*t
81
llvm編譯結果性能並沒有比gcc強,很多時候還稍微差點。
llvm的優勢是編譯效率。但是我本來就不是c++的fan,所以對我沒用。

【在 d******e 的大作中提到】
: gcc就是性能差的源头吧。换llvm swift优化10年应该可以秒杀C++, java.
avatar
x*u
82
你要仔细看看c++和java最新优化是做什么的
现代cpu上最快的程序,理论上是人无法手写的

【在 l*********s 的大作中提到】
: in most cases? mind posting your benchmark?
avatar
x*u
83
你既然嵌入,那肯定有嵌入的合适理由。。。
我说的一般情况,指的是编译器干了很多脏活满足处理器变态要求,手动做不到。

【在 w***g 的大作中提到】
: 编译器没那么神。我在C++里嵌过汇编,速度提高还是很明显的。
: gcc的vectorization还有非常大的余地可以提高,可能需要应用人工智能。
: Nervana的neon比别的系统快几乎一倍,也就是关键处的汇编语言写得牛逼。
: 一般来说,脚本语言开发的是不在乎性能部分。
: java可以做到O(n),有常数级的差别。这个是boxed type以及type removal这些
: 语言的局限所致。除非内嵌C++,这个常数级的差别无法突破。
: (如果C++全都用需类指针,container里全都存指针,则性能就下降到和java一致。
: 但C++程序员不会这么写程序。你见到的benchmark估计就是这么来的。)
: java和脚本语言之所以现在应用这么广泛,一个大前提是性能敏感部分全都放到
: 数据库去做了。用java和C++写数据库的性能区别参考这个

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