由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 还在讨论Python 2.7 vs Python 3.x的看这个
相关主题
JavaScript 比python优雅很多大家难道全是半路出家?
受不了python了Node 完胜 Ruby呀
版上哪个大牛评论下python 3.5 gradual typing?看了一下C#的async await
Python是不是死了?Typescript是不是实际上反 functional programming 的?
也问问Python2和Python3.x的区别:并行计算有什么新进展这次node把python也给干了
python 2/python 3这是怎么一回事呀uber用的python作的api.不是java, php
想起隔壁组的ruby大牛python3 输入 菜鸟问题
难得好文,Linkedin如何用Node beat Python,Ruby,Javapython下怎么解决GIL?
相关话题的讨论汇总
话题: python话题: async话题: uvloop话题: asyncio话题: 语言
进入Programming版参与讨论
1 (共1页)
d********g
发帖数: 10550
1
https://github.com/google/grumpy/issues/1
现在Python新项目不用3.5+都不好意思和人打招呼,刚出的3.6更爽了。还守着2.7,这
是留着辫子不剪的节奏吗?
如果不是维护一个已经至少5年前的或者已废弃的项目,没有任何理由不用3.5+
对Python不熟的或者只看中文教程的另论
w***g
发帖数: 5958
2
从python2.7转出来是肯定的。但未必转入python3。
因为python2到python3的改进太incremental。光看语言和解释器,
其实还是拼不过julia和javascript。现在吸引人用python的,
根本就不是python这个语言,而是用python写的一堆legacy。
在我看来python3就是作死。等julia的轮子赶上了,
谁还用python?
if it ain't broke, don't fix it。
要没有python3,说不定python早统治地球了。

【在 d********g 的大作中提到】
: https://github.com/google/grumpy/issues/1
: 现在Python新项目不用3.5+都不好意思和人打招呼,刚出的3.6更爽了。还守着2.7,这
: 是留着辫子不剪的节奏吗?
: 如果不是维护一个已经至少5年前的或者已废弃的项目,没有任何理由不用3.5+
: 对Python不熟的或者只看中文教程的另论

d********g
发帖数: 10550
3
“等julia的轮子赶上了”本身就是个wishful thinking和伪命题呀,这说法适用于任
何语言包括Python 3,况且Python的ecosystem已经完成了3的全面兼容
如果你仔细看过Python 3.5、3.6的变化肯定不会这么说。3.4包括之前的Python 3.x和
3.5+都不是一回事
JavaScript和别的根本不冲突,如果说的是server那Node.js还远远不够。Node.js的看
家本领async性能现在都被Python 3 asyncio + uvloop爆菊了:
https://magic.io/blog/uvloop-blazing-fast-python-networking/
当然没有任何语言/框架可以一招鲜吃遍天

【在 w***g 的大作中提到】
: 从python2.7转出来是肯定的。但未必转入python3。
: 因为python2到python3的改进太incremental。光看语言和解释器,
: 其实还是拼不过julia和javascript。现在吸引人用python的,
: 根本就不是python这个语言,而是用python写的一堆legacy。
: 在我看来python3就是作死。等julia的轮子赶上了,
: 谁还用python?
: if it ain't broke, don't fix it。
: 要没有python3,说不定python早统治地球了。

x***4
发帖数: 1815
4
我觉得好找工作就三样:js java python

3.

【在 d********g 的大作中提到】
: “等julia的轮子赶上了”本身就是个wishful thinking和伪命题呀,这说法适用于任
: 何语言包括Python 3,况且Python的ecosystem已经完成了3的全面兼容
: 如果你仔细看过Python 3.5、3.6的变化肯定不会这么说。3.4包括之前的Python 3.x和
: 3.5+都不是一回事
: JavaScript和别的根本不冲突,如果说的是server那Node.js还远远不够。Node.js的看
: 家本领async性能现在都被Python 3 asyncio + uvloop爆菊了:
: https://magic.io/blog/uvloop-blazing-fast-python-networking/
: 当然没有任何语言/框架可以一招鲜吃遍天

N*****m
发帖数: 42603
5
很简单啊,用six好了

【在 w***g 的大作中提到】
: 从python2.7转出来是肯定的。但未必转入python3。
: 因为python2到python3的改进太incremental。光看语言和解释器,
: 其实还是拼不过julia和javascript。现在吸引人用python的,
: 根本就不是python这个语言,而是用python写的一堆legacy。
: 在我看来python3就是作死。等julia的轮子赶上了,
: 谁还用python?
: if it ain't broke, don't fix it。
: 要没有python3,说不定python早统治地球了。

d********g
发帖数: 10550
6
语法层面的兼容还不是最主要的。新feature太多了,Python 2.7早该死透了

【在 N*****m 的大作中提到】
: 很简单啊,用six好了
d********g
发帖数: 10550
7
前几年还在吹Ruby和RoR。事实证明Ruby死透了

【在 x***4 的大作中提到】
: 我觉得好找工作就三样:js java python
:
: 3.

x****u
发帖数: 44466
8
py3队友太坑没办法
比如mxnex网站说本库在py3上有很多坑,建议用py2,你怎么办?
opencv官网根本不支持py3,得找第三方

【在 d********g 的大作中提到】
: https://github.com/google/grumpy/issues/1
: 现在Python新项目不用3.5+都不好意思和人打招呼,刚出的3.6更爽了。还守着2.7,这
: 是留着辫子不剪的节奏吗?
: 如果不是维护一个已经至少5年前的或者已废弃的项目,没有任何理由不用3.5+
: 对Python不熟的或者只看中文教程的另论

x****u
发帖数: 44466
9
js的优势是fp加语法极简,这和python不是一个食物链的也不太可能互相取代
python是语法糖工具糖太多,以至于做任何事前我都google半天找个一句实现写法

【在 d********g 的大作中提到】
: “等julia的轮子赶上了”本身就是个wishful thinking和伪命题呀,这说法适用于任
: 何语言包括Python 3,况且Python的ecosystem已经完成了3的全面兼容
: 如果你仔细看过Python 3.5、3.6的变化肯定不会这么说。3.4包括之前的Python 3.x和
: 3.5+都不是一回事
: JavaScript和别的根本不冲突,如果说的是server那Node.js还远远不够。Node.js的看
: 家本领async性能现在都被Python 3 asyncio + uvloop爆菊了:
: https://magic.io/blog/uvloop-blazing-fast-python-networking/
: 当然没有任何语言/框架可以一招鲜吃遍天

d********g
发帖数: 10550
10
JS还极简?试试ES2015加React呵呵。JS本来就是和别的互补的,说取代的是指Node.js
感觉你第二句说的其实是Ruby才对

【在 x****u 的大作中提到】
: js的优势是fp加语法极简,这和python不是一个食物链的也不太可能互相取代
: python是语法糖工具糖太多,以至于做任何事前我都google半天找个一句实现写法

相关主题
python 2/python 3这是怎么一回事呀大家难道全是半路出家?
想起隔壁组的ruby大牛Node 完胜 Ruby呀
难得好文,Linkedin如何用Node beat Python,Ruby,Java看了一下C#的async await
进入Programming版参与讨论
x****u
发帖数: 44466
11
ruby库不够多啊
ES就算是JS的修正版吧,JS这玩意实际上就是非前缀表达式的lisp,语法和实现都简单

js

【在 d********g 的大作中提到】
: JS还极简?试试ES2015加React呵呵。JS本来就是和别的互补的,说取代的是指Node.js
: 感觉你第二句说的其实是Ruby才对

d********g
发帖数: 10550
12
我是说Ruby才会遇到语法糖太多不好选择的情况。Python一直都号称做一件事情只有一
个最佳方法

【在 x****u 的大作中提到】
: ruby库不够多啊
: ES就算是JS的修正版吧,JS这玩意实际上就是非前缀表达式的lisp,语法和实现都简单
:
: js

x****u
发帖数: 44466
13
是啊,所以你得搞清楚什么是最佳
你看网上那么多python例子,有几个写到极简了?

【在 d********g 的大作中提到】
: 我是说Ruby才会遇到语法糖太多不好选择的情况。Python一直都号称做一件事情只有一
: 个最佳方法

d********g
发帖数: 10550
14
我们说的是一件事吗?举个例子呢?

【在 x****u 的大作中提到】
: 是啊,所以你得搞清楚什么是最佳
: 你看网上那么多python例子,有几个写到极简了?

x****u
发帖数: 44466
15
比如with,for list之类的东西,很多人根本不用
很多事情本来有库,却有人重新实现一遍

【在 d********g 的大作中提到】
: 我们说的是一件事吗?举个例子呢?
d********g
发帖数: 10550
16
所以说Python是容易入门也容易被误解的一门语言。小白花1小时就敢写到简历上说“
会Python”,不知道这个“会”和业界需要的真“会”差了十万八千里。还有个特点是
小白很喜欢写Python“教程”。别看这些所谓的“教程”

【在 x****u 的大作中提到】
: 比如with,for list之类的东西,很多人根本不用
: 很多事情本来有库,却有人重新实现一遍

x****u
发帖数: 44466
17
是的
看很多C程序员写的python,大数据就是直接for去操作list,然后这些人转身就骂
python效率低

【在 d********g 的大作中提到】
: 所以说Python是容易入门也容易被误解的一门语言。小白花1小时就敢写到简历上说“
: 会Python”,不知道这个“会”和业界需要的真“会”差了十万八千里。还有个特点是
: 小白很喜欢写Python“教程”。别看这些所谓的“教程”

d********g
发帖数: 10550
18
应该就像计算机二级和专业C码工的区别吧

【在 x****u 的大作中提到】
: 是的
: 看很多C程序员写的python,大数据就是直接for去操作list,然后这些人转身就骂
: python效率低

y****w
发帖数: 3747
19
用for干这事儿的那是根本没一点sense的垃圾程序员。有经验的从其他语言过来,但不
专业用python的,关注的还是通用语法加一些最常用的feature,那么多语法糖是被深
恶痛绝的。
你要每天都在这个语言上工作那是另外一回事儿。
没有多少需求的假扮酷没意思。就好象你就几台server,有几个通用脚本就可以管理的
很好,非得脑子抽抽去弄成puppet的provider,就是找抽,或者领导脑子抽抽了。

【在 x****u 的大作中提到】
: 是的
: 看很多C程序员写的python,大数据就是直接for去操作list,然后这些人转身就骂
: python效率低

b****b
发帖数: 656
20
自己维护的几个库,fork了个python2的branch,现在只维护python3了。新project都
是python 3 only。

【在 d********g 的大作中提到】
: https://github.com/google/grumpy/issues/1
: 现在Python新项目不用3.5+都不好意思和人打招呼,刚出的3.6更爽了。还守着2.7,这
: 是留着辫子不剪的节奏吗?
: 如果不是维护一个已经至少5年前的或者已废弃的项目,没有任何理由不用3.5+
: 对Python不熟的或者只看中文教程的另论

相关主题
Typescript是不是实际上反 functional programming 的?python3 输入 菜鸟问题
这次node把python也给干了python下怎么解决GIL?
uber用的python作的api.不是java, php2007年9月编程语言指数
进入Programming版参与讨论
w***g
发帖数: 5958
21
楼主请科普下python3最主要的特性。我被你种草了,可能要跳船了。
不过我认识的几个硅谷资深engineer大家一起写程序,上来就默契
python 2.7,关于用啥语言用啥版本不需要任何交流。
我要是python 3了岂不跟大家都不一样了? 我认识那些都是很靠
谱的人。

【在 d********g 的大作中提到】
: https://github.com/google/grumpy/issues/1
: 现在Python新项目不用3.5+都不好意思和人打招呼,刚出的3.6更爽了。还守着2.7,这
: 是留着辫子不剪的节奏吗?
: 如果不是维护一个已经至少5年前的或者已废弃的项目,没有任何理由不用3.5+
: 对Python不熟的或者只看中文教程的另论

N*****m
发帖数: 42603
22
我们的要求是用six,这样就没问题了

【在 w***g 的大作中提到】
: 楼主请科普下python3最主要的特性。我被你种草了,可能要跳船了。
: 不过我认识的几个硅谷资深engineer大家一起写程序,上来就默契
: python 2.7,关于用啥语言用啥版本不需要任何交流。
: 我要是python 3了岂不跟大家都不一样了? 我认识那些都是很靠
: 谱的人。

d********g
发帖数: 10550
23
3.4+主要是asyncio相关。Python 3.4开始内置asyncio,3.3还需要额外装库。3.5加入
async/await语法,3.6更是把async/await推广到其它地方比如generator:
https://docs.python.org/3/whatsnew/3.5.html
https://docs.python.org/3/whatsnew/3.6.html
3.6的dict也重新实现了,性能提升内存占用下降的同时,带来的一个副产品是dict现
在也可以直接当OrderedDict用了,虽然这个特性还没有正式在API上确认
在公司还用Python 2.7很正常,但是自己写新项目还用2.7就是自己给自己挖坑了。这
两个版本我都写,自己的非开源项目反而故意不要语法兼容(比如能用高版本async/
await的就绝对不用低版本兼容的yield),强制跟上3.x的升级,这样以后的维护坑会
更少
别的不说,Python 2.7里经常需要from __future__ import absolute_import,
unicode_literals等,这都是2.x设计缺陷导致的monkey patch,没注意就很容易掉坑里
3.x整个相对于2.7的更新那是太多了。之前有人列了10个比较重要的:
http://www.asmeurer.com/python3-presentation/slides.html
我个人很喜欢这样的signature:
def xxx(a, b, c, *args, x=None, y=None, z=None, **kwargs):
...
这可以保证a,b,c和x,y,z分别被当成args和kwargs,也就是防止x,y,z被误操作。2.7不
支持这样的语法

【在 w***g 的大作中提到】
: 楼主请科普下python3最主要的特性。我被你种草了,可能要跳船了。
: 不过我认识的几个硅谷资深engineer大家一起写程序,上来就默契
: python 2.7,关于用啥语言用啥版本不需要任何交流。
: 我要是python 3了岂不跟大家都不一样了? 我认识那些都是很靠
: 谱的人。

d********g
发帖数: 10550
24
是的。Django这样的大库,接下来1.11 LTS也会是最后一个支持Python 2.7的版本了,
因为Python 2.7本身到2020年就完全不维护了:
https://pythonclock.org
整个ecosystem已经在告别2.7,这是没有疑问的

【在 b****b 的大作中提到】
: 自己维护的几个库,fork了个python2的branch,现在只维护python3了。新project都
: 是python 3 only。

m*****n
发帖数: 3575
25
py3在网络方面的进步大
另外支持中文
当然你说你也就用它洗洗数据,懒得换新,我也无话可说
w***g
发帖数: 5958
26
是啊, 本来就是当他是个glue language用的。真货都在C++里。
C++要写的精致能维护,python的能跑起来就行,反正说不定
哪天就跳船了。我一直就是这么想的。

【在 m*****n 的大作中提到】
: py3在网络方面的进步大
: 另外支持中文
: 当然你说你也就用它洗洗数据,懒得换新,我也无话可说

i******e
发帖数: 24
27
这些东西 90%的程序根本用不到
python 3的问题是,不兼容,新的feature 又不是多离不开。

【在 d********g 的大作中提到】
: 3.4+主要是asyncio相关。Python 3.4开始内置asyncio,3.3还需要额外装库。3.5加入
: async/await语法,3.6更是把async/await推广到其它地方比如generator:
: https://docs.python.org/3/whatsnew/3.5.html
: https://docs.python.org/3/whatsnew/3.6.html
: 3.6的dict也重新实现了,性能提升内存占用下降的同时,带来的一个副产品是dict现
: 在也可以直接当OrderedDict用了,虽然这个特性还没有正式在API上确认
: 在公司还用Python 2.7很正常,但是自己写新项目还用2.7就是自己给自己挖坑了。这
: 两个版本我都写,自己的非开源项目反而故意不要语法兼容(比如能用高版本async/
: await的就绝对不用低版本兼容的yield),强制跟上3.x的升级,这样以后的维护坑会
: 更少

b****b
发帖数: 656
28
呵呵,第一次看见
def fun(*, a=1, b=2)
还吓了我一跳,琢磨了一会才知道怎么回事。

【在 d********g 的大作中提到】
: 3.4+主要是asyncio相关。Python 3.4开始内置asyncio,3.3还需要额外装库。3.5加入
: async/await语法,3.6更是把async/await推广到其它地方比如generator:
: https://docs.python.org/3/whatsnew/3.5.html
: https://docs.python.org/3/whatsnew/3.6.html
: 3.6的dict也重新实现了,性能提升内存占用下降的同时,带来的一个副产品是dict现
: 在也可以直接当OrderedDict用了,虽然这个特性还没有正式在API上确认
: 在公司还用Python 2.7很正常,但是自己写新项目还用2.7就是自己给自己挖坑了。这
: 两个版本我都写,自己的非开源项目反而故意不要语法兼容(比如能用高版本async/
: await的就绝对不用低版本兼容的yield),强制跟上3.x的升级,这样以后的维护坑会
: 更少

d*******r
发帖数: 3299
29
传言 Python 要加 optional static type? 这个啥时候能有消息

【在 d********g 的大作中提到】
: 3.4+主要是asyncio相关。Python 3.4开始内置asyncio,3.3还需要额外装库。3.5加入
: async/await语法,3.6更是把async/await推广到其它地方比如generator:
: https://docs.python.org/3/whatsnew/3.5.html
: https://docs.python.org/3/whatsnew/3.6.html
: 3.6的dict也重新实现了,性能提升内存占用下降的同时,带来的一个副产品是dict现
: 在也可以直接当OrderedDict用了,虽然这个特性还没有正式在API上确认
: 在公司还用Python 2.7很正常,但是自己写新项目还用2.7就是自己给自己挖坑了。这
: 两个版本我都写,自己的非开源项目反而故意不要语法兼容(比如能用高版本async/
: await的就绝对不用低版本兼容的yield),强制跟上3.x的升级,这样以后的维护坑会
: 更少

d********g
发帖数: 10550
30
只能说可能你的typical use case只是把Python当简单的脚本语言使用。脚本啥都行,
Ruby、shell随便使
Python 3已经不是5年前的状态了。不说老的库基本都搞定了3,如果现在的新开源库出
来不支持3那直接就是自杀
还是那句话,“会Python”是一个很模糊的概念。写个hello world有些人也认为会了
,谁让Python容易入门呢

【在 i******e 的大作中提到】
: 这些东西 90%的程序根本用不到
: python 3的问题是,不兼容,新的feature 又不是多离不开。

相关主题
现在是不是不该学python?受不了python了
Ruby and Python版上哪个大牛评论下python 3.5 gradual typing?
JavaScript 比python优雅很多Python是不是死了?
进入Programming版参与讨论
d********g
发帖数: 10550
31
3.5开始就有Type Hints了呀,虽然还是provisional的:
https://docs.python.org/3/library/typing.html
mypy也有支持:
http://mypy-lang.org
看吧让你们用2.7 :)

【在 d*******r 的大作中提到】
: 传言 Python 要加 optional static type? 这个啥时候能有消息
l*********s
发帖数: 5409
32
type hint对优化有帮助吗?

【在 d********g 的大作中提到】
: 3.5开始就有Type Hints了呀,虽然还是provisional的:
: https://docs.python.org/3/library/typing.html
: mypy也有支持:
: http://mypy-lang.org
: 看吧让你们用2.7 :)

d*******r
发帖数: 3299
33
哈哈,大牛见笑了, 我out了, 真没用过 Python3 写项目 :D

【在 d********g 的大作中提到】
: 3.5开始就有Type Hints了呀,虽然还是provisional的:
: https://docs.python.org/3/library/typing.html
: mypy也有支持:
: http://mypy-lang.org
: 看吧让你们用2.7 :)

s********k
发帖数: 6180
34
2.7的项目要port 到py 3,flask写的简单APP是不是也不需要太多工作?

【在 d********g 的大作中提到】
: 3.5开始就有Type Hints了呀,虽然还是provisional的:
: https://docs.python.org/3/library/typing.html
: mypy也有支持:
: http://mypy-lang.org
: 看吧让你们用2.7 :)

d********g
发帖数: 10550
35
Flask的port分分钟,它本身是支持的,就看你有没有写兼容代码。如果用了别的lib主
要是看那些

【在 s********k 的大作中提到】
: 2.7的项目要port 到py 3,flask写的简单APP是不是也不需要太多工作?
h**********c
发帖数: 4120
36
http://lucumr.pocoo.org/2016/10/30/i-dont-understand-asyncio/
tl;dr;
这篇谁看了,YC 索引的,给个中文摘要吧。
s********k
发帖数: 6180
37
ananconda现在是对2.7的支持好还是3.5+的支持好?

【在 d********g 的大作中提到】
: Flask的port分分钟,它本身是支持的,就看你有没有写兼容代码。如果用了别的lib主
: 要是看那些

d********g
发帖数: 10550
38
感觉数值方面的可能要安全些(比如int/float可以指定),其它也没用过
对IDE肯定更友好,不用那么费劲猜来猜去

【在 l*********s 的大作中提到】
: type hint对优化有帮助吗?
w*x
发帖数: 518
39
小弟在这里有一个不成熟的提议:
作为3年前从py27跳到py3k的人,我最大的感慨就是“用一下python 3试试看,不喜欢
大不了再换回去”。我跳了以后发现语法功能都舒畅了很多,再也没有回来;偶尔必须
用python 2的时候,也完全没有压力(写出兼容的程序真的很容易)。
还有一个对GIL的感觉:我的(以及我猜大部分人)工作中具体的heavy lifting都是用
C/C++/Fortran实现的,Python只不过胶水一下而已。在Python层面,fine grain
control真的那么必要吗,这个语言本身就不适合做这些,调用更底层的包然后让他们
multithreading就是了……
w*x
发帖数: 518
40
我最喜欢Python的地方除了它的ecosystem以外,当作胶水语言,语法简洁真的很爽。
BTW - 我是做材料测试和有限元仿真的工程师,所以虽然经常写一些需要重复或者给同
事使用的code,可能在大家的世界里也还是“大号的脚本”而不是production code…
…对于那一个领域我就不知道了……
相关主题
Python是不是死了?想起隔壁组的ruby大牛
也问问Python2和Python3.x的区别:并行计算有什么新进展难得好文,Linkedin如何用Node beat Python,Ruby,Java
python 2/python 3这是怎么一回事呀大家难道全是半路出家?
进入Programming版参与讨论
x****u
发帖数: 44466
41
我个人是认为py3好的,就好像认为世界语比英语好一样,问题是如果其他人不迁过去
,自己拼命填坑是不行的

【在 w*x 的大作中提到】
: 小弟在这里有一个不成熟的提议:
: 作为3年前从py27跳到py3k的人,我最大的感慨就是“用一下python 3试试看,不喜欢
: 大不了再换回去”。我跳了以后发现语法功能都舒畅了很多,再也没有回来;偶尔必须
: 用python 2的时候,也完全没有压力(写出兼容的程序真的很容易)。
: 还有一个对GIL的感觉:我的(以及我猜大部分人)工作中具体的heavy lifting都是用
: C/C++/Fortran实现的,Python只不过胶水一下而已。在Python层面,fine grain
: control真的那么必要吗,这个语言本身就不适合做这些,调用更底层的包然后让他们
: multithreading就是了……

w*x
发帖数: 518
42
是这个理。不过可能是因为大部分我用到的常用包裹都迁移过去了,我觉得这个坑已经
很小了。
确实也会遇到我用的包裹没有py3的时候,不过情况很少。

【在 x****u 的大作中提到】
: 我个人是认为py3好的,就好像认为世界语比英语好一样,问题是如果其他人不迁过去
: ,自己拼命填坑是不行的

d********g
发帖数: 10550
43
其实3.4因为asyncio的吸引力已经成功搞定了社区(3.3和之前的确实转不转没啥太大
实质性的好处)。其实也才两三年功夫,已经没啥坑了。这个趋势你可能没有太关注

【在 x****u 的大作中提到】
: 我个人是认为py3好的,就好像认为世界语比英语好一样,问题是如果其他人不迁过去
: ,自己拼命填坑是不行的

d********g
发帖数: 10550
44
py2/py3还分包的类型。比如Supervisor到现在是没搞定py3,但是不影响,因为大多数
人就是把它当一个工具使用,和systemd、launchd一个性质,很独立。需要搞定py3的
一般是dev用的,现在基本都没有坑了

【在 w*x 的大作中提到】
: 是这个理。不过可能是因为大部分我用到的常用包裹都迁移过去了,我觉得这个坑已经
: 很小了。
: 确实也会遇到我用的包裹没有py3的时候,不过情况很少。

d*******r
发帖数: 3299
45
对 IDE 友好,就帮助很大了, 赞一个.
大牛有在 production 代码中大量使用 type hint 么?
我以前最不爽 Python 的地方之一,就是 server 上跑出个错误,
一查 log 是 runtime type 错误 blablabla >_<

【在 d********g 的大作中提到】
: 感觉数值方面的可能要安全些(比如int/float可以指定),其它也没用过
: 对IDE肯定更友好,不用那么费劲猜来猜去

E***r
发帖数: 1037
46
dict默认ordered是向ruby看齐吧

【在 d********g 的大作中提到】
: 3.4+主要是asyncio相关。Python 3.4开始内置asyncio,3.3还需要额外装库。3.5加入
: async/await语法,3.6更是把async/await推广到其它地方比如generator:
: https://docs.python.org/3/whatsnew/3.5.html
: https://docs.python.org/3/whatsnew/3.6.html
: 3.6的dict也重新实现了,性能提升内存占用下降的同时,带来的一个副产品是dict现
: 在也可以直接当OrderedDict用了,虽然这个特性还没有正式在API上确认
: 在公司还用Python 2.7很正常,但是自己写新项目还用2.7就是自己给自己挖坑了。这
: 两个版本我都写,自己的非开源项目反而故意不要语法兼容(比如能用高版本async/
: await的就绝对不用低版本兼容的yield),强制跟上3.x的升级,这样以后的维护坑会
: 更少

E***r
发帖数: 1037
47
看了pypy网页
dict的新实现用了个动态整型数组
variable_int *sparse_array;
来标记NULL的dict entries
所以更省内存和cache友好了
默认oredered是新实现的副产品
生产环境不能依赖这一实现特征
而是应该继续使用OrederedDict
毕竟后者已经变成一个薄封装了

【在 d********g 的大作中提到】
: 3.4+主要是asyncio相关。Python 3.4开始内置asyncio,3.3还需要额外装库。3.5加入
: async/await语法,3.6更是把async/await推广到其它地方比如generator:
: https://docs.python.org/3/whatsnew/3.5.html
: https://docs.python.org/3/whatsnew/3.6.html
: 3.6的dict也重新实现了,性能提升内存占用下降的同时,带来的一个副产品是dict现
: 在也可以直接当OrderedDict用了,虽然这个特性还没有正式在API上确认
: 在公司还用Python 2.7很正常,但是自己写新项目还用2.7就是自己给自己挖坑了。这
: 两个版本我都写,自己的非开源项目反而故意不要语法兼容(比如能用高版本async/
: await的就绝对不用低版本兼容的yield),强制跟上3.x的升级,这样以后的维护坑会
: 更少

w***g
发帖数: 5958
48
async是反人类的编程模式。现在core那么多,massive threading
才是正道。Industry跟风的人太多,又折腾不出新鲜玩意儿才搞
async。

【在 d********g 的大作中提到】
: 其实3.4因为asyncio的吸引力已经成功搞定了社区(3.3和之前的确实转不转没啥太大
: 实质性的好处)。其实也才两三年功夫,已经没啥坑了。这个趋势你可能没有太关注

d********g
发帖数: 10550
49
也不能这么说,否则整个JavaScript社区集体躺枪

【在 w***g 的大作中提到】
: async是反人类的编程模式。现在core那么多,massive threading
: 才是正道。Industry跟风的人太多,又折腾不出新鲜玩意儿才搞
: async。

N*****m
发帖数: 42603
50
seastar就是async啊

【在 w***g 的大作中提到】
: async是反人类的编程模式。现在core那么多,massive threading
: 才是正道。Industry跟风的人太多,又折腾不出新鲜玩意儿才搞
: async。

相关主题
Node 完胜 Ruby呀这次node把python也给干了
看了一下C#的async awaituber用的python作的api.不是java, php
Typescript是不是实际上反 functional programming 的?python3 输入 菜鸟问题
进入Programming版参与讨论
w***g
发帖数: 5958
51
C/C++追求高性能用async没有问题。java用async也没问题。
python本来就是低性能语言,来掺和什么。

【在 N*****m 的大作中提到】
: seastar就是async啊
N*****m
发帖数: 42603
52
这个我同意,哈哈

【在 w***g 的大作中提到】
: C/C++追求高性能用async没有问题。java用async也没问题。
: python本来就是低性能语言,来掺和什么。

w***g
发帖数: 5958
53
刚刚我其实想到了这个笑话
在家里听到这样一个段子:市政协会议散会,几个身价十亿+的老板去打牌,某超市连
锁企业的老板也是身家过亿的政协委员,和他们一起开过几次会,也提出去一起玩。煤
老板们面面相觑,最后还是首富张嘴说话了: “我们哥几个一起玩,是因为我们都有
产业,你一个开小卖店的跟着我们凑什么热闹?”然后在凛冽的秋风中,超市老板悻悻
地回家了……

【在 N*****m 的大作中提到】
: 这个我同意,哈哈
d********g
发帖数: 10550
54
不是发过asyncio + uvloop已经完爆其他了吗,和go不相上下——这么说go也是低性能
语言了?

【在 w***g 的大作中提到】
: C/C++追求高性能用async没有问题。java用async也没问题。
: python本来就是低性能语言,来掺和什么。

w********m
发帖数: 1137
55
python做REPL没有更适合的,相当于匕首。
java和C++这些编译语言,相当于大刀。
一寸短,一寸险;一寸长,一寸强。
出去混,最好都要带着
N*****m
发帖数: 42603
56
能再贴一遍吗?

【在 d********g 的大作中提到】
: 不是发过asyncio + uvloop已经完爆其他了吗,和go不相上下——这么说go也是低性能
: 语言了?

d********g
发帖数: 10550
57
https://magic.io/blog/uvloop-blazing-fast-python-networking/
asyncio本身就已经和Node.js旗鼓相当了,再加上uvloop之后Node.js被甩开一百条街
Yury Selivanov是个神人,Python的核心开发者之一:
https://bugs.python.org/issue28544

【在 N*****m 的大作中提到】
: 能再贴一遍吗?
x****u
发帖数: 44466
58
关键不是我,是其它人离不开py27
惯性力量很大的,fortran都多少年了啊

【在 d********g 的大作中提到】
: 其实3.4因为asyncio的吸引力已经成功搞定了社区(3.3和之前的确实转不转没啥太大
: 实质性的好处)。其实也才两三年功夫,已经没啥坑了。这个趋势你可能没有太关注

x****u
发帖数: 44466
59
多线程不好写啊,90%C++多线程都有bug

【在 w***g 的大作中提到】
: async是反人类的编程模式。现在core那么多,massive threading
: 才是正道。Industry跟风的人太多,又折腾不出新鲜玩意儿才搞
: async。

w***g
发帖数: 5958
60
你这么说也对!

【在 x****u 的大作中提到】
: 多线程不好写啊,90%C++多线程都有bug
相关主题
python下怎么解决GIL?Ruby and Python
2007年9月编程语言指数JavaScript 比python优雅很多
现在是不是不该学python?受不了python了
进入Programming版参与讨论
s********k
发帖数: 6180
61
3.4以上如果起thread,默认就是异步模式?是不是GIL问题解决了?

【在 d********g 的大作中提到】
: 其实3.4因为asyncio的吸引力已经成功搞定了社区(3.3和之前的确实转不转没啥太大
: 实质性的好处)。其实也才两三年功夫,已经没啥坑了。这个趋势你可能没有太关注

d********g
发帖数: 10550
62
Python因为GIL导致thread不行,所以就只好asyncio啦。异步单线程

【在 s********k 的大作中提到】
: 3.4以上如果起thread,默认就是异步模式?是不是GIL问题解决了?
d********g
发帖数: 10550
63
thread和asyncio没啥关系。用thread还是会有GIL问题

【在 s********k 的大作中提到】
: 3.4以上如果起thread,默认就是异步模式?是不是GIL问题解决了?
E***r
发帖数: 1037
64

试装了一下uvloop,貌似只支持到 py35。py36 估计要等一阵子。
(py36) $ anaconda show anaconda-platform/uvloop
Using Anaconda API: https://api.anaconda.org
Name: uvloop
Summary:
Access: public
Package Types: conda
Versions:
+ 0.6.5
(py36): $ conda install --channel https://conda.anaconda.org/anaconda-
platform uvloop
Fetching package metadata ...........
Solving package specifications: .
UnsatisfiableError: The following specifications were found to be in
conflict:
- python 3.6*
- uvloop -> python 3.5* -> openssl 1.0.1*
- uvloop -> python 3.5* -> xz 5.0.5

【在 d********g 的大作中提到】
: https://magic.io/blog/uvloop-blazing-fast-python-networking/
: asyncio本身就已经和Node.js旗鼓相当了,再加上uvloop之后Node.js被甩开一百条街
: Yury Selivanov是个神人,Python的核心开发者之一:
: https://bugs.python.org/issue28544

E***r
发帖数: 1037
65

uvloop-0.7.0 以后貌似支持 py36 了,看来只能从 pip 装了
https://github.com/MagicStack/uvloop/issues/69

【在 E***r 的大作中提到】
:
: 试装了一下uvloop,貌似只支持到 py35。py36 估计要等一阵子。
: (py36) $ anaconda show anaconda-platform/uvloop
: Using Anaconda API: https://api.anaconda.org
: Name: uvloop
: Summary:
: Access: public
: Package Types: conda
: Versions:
: + 0.6.5

x***4
发帖数: 1815
66
所以还是actor reactor好。自己写的code是单线程的。多线程异步的工作留给
framework。

【在 x****u 的大作中提到】
: 多线程不好写啊,90%C++多线程都有bug
m*****n
发帖数: 3575
67
请问你试过python编Gui么?
感觉PyQt的信号/槽思维方式虽然方便,但是处处和python不兼容啊

【在 x****u 的大作中提到】
: 多线程不好写啊,90%C++多线程都有bug
d********g
发帖数: 10550
68
signal/slot那是Qt自己的事,PyQt只是一个wrapper而已

【在 m*****n 的大作中提到】
: 请问你试过python编Gui么?
: 感觉PyQt的信号/槽思维方式虽然方便,但是处处和python不兼容啊

s********k
发帖数: 6180
69
但是asyncio还是难写不少,就是说3.4以上不提倡用thread,还以为GIL解决了。
比如我这个,怎么改写成 async合适
try:
thr = Thread(target=func, args=(func——args,))
thr.daemon = True
thr.start()
except Exception, e:
threadErrors.append([repr(e), current_thread.name]) # append a list
of info
raise # re-raise the exception or use sys.exit(1) to let the thread
die and free resources

【在 d********g 的大作中提到】
: thread和asyncio没啥关系。用thread还是会有GIL问题
x****u
发帖数: 44466
70
python不合适吧,做ui需要异步方便才行,比如javascript

【在 m*****n 的大作中提到】
: 请问你试过python编Gui么?
: 感觉PyQt的信号/槽思维方式虽然方便,但是处处和python不兼容啊

相关主题
受不了python了也问问Python2和Python3.x的区别:并行计算有什么新进展
版上哪个大牛评论下python 3.5 gradual typing?python 2/python 3这是怎么一回事呀
Python是不是死了?想起隔壁组的ruby大牛
进入Programming版参与讨论
d********g
发帖数: 10550
71
这……Win32时代的UI不都这么做的?消息循环就是上古时代的async,这和语言有啥关系
现在的这些asyncio只是说做到语言特性里去了

【在 x****u 的大作中提到】
: python不合适吧,做ui需要异步方便才行,比如javascript
d********g
发帖数: 10550
72
关键是你具体想要做什么,threads之间有互动吗还是都单独的?
asyncio的基本思路就是把I/O都弄成异步,任何I/O不要阻塞当前loop。Python的
threading因为最后要经过GIL所以还是相当于单线程的,不如直接就asyncio
没什么难写的,写法和sync的差不多,只是记得要await I/O之类的,其实比threading
还更简单。JS也在说要加入async/await语法了
传统处理异步也可以靠架构,用外部的queue。Python这一类用Celery的很多

list
thread

【在 s********k 的大作中提到】
: 但是asyncio还是难写不少,就是说3.4以上不提倡用thread,还以为GIL解决了。
: 比如我这个,怎么改写成 async合适
: try:
: thr = Thread(target=func, args=(func——args,))
: thr.daemon = True
: thr.start()
: except Exception, e:
: threadErrors.append([repr(e), current_thread.name]) # append a list
: of info
: raise # re-raise the exception or use sys.exit(1) to let the thread

s********k
发帖数: 6180
73
3.4+ PY还是用coroutine和yield这样来写?比如我这个就是简单单独的thread,没有
任何互动,怎么写比较合适?

threading

【在 d********g 的大作中提到】
: 关键是你具体想要做什么,threads之间有互动吗还是都单独的?
: asyncio的基本思路就是把I/O都弄成异步,任何I/O不要阻塞当前loop。Python的
: threading因为最后要经过GIL所以还是相当于单线程的,不如直接就asyncio
: 没什么难写的,写法和sync的差不多,只是记得要await I/O之类的,其实比threading
: 还更简单。JS也在说要加入async/await语法了
: 传统处理异步也可以靠架构,用外部的queue。Python这一类用Celery的很多
:
: list
: thread

c*********e
发帖数: 16335
74
facebook, uber, airbnb都是用的php噢。话说,facebook竟然还用了cms.

【在 x***4 的大作中提到】
: 我觉得好找工作就三样:js java python
:
: 3.

d*******r
发帖数: 3299
75
uber, airbnb 用 php?

【在 c*********e 的大作中提到】
: facebook, uber, airbnb都是用的php噢。话说,facebook竟然还用了cms.
c*********e
发帖数: 16335
76
对啊。才知道?

【在 d*******r 的大作中提到】
: uber, airbnb 用 php?
x****u
发帖数: 44466
77
Win32不是这么做的啊
点个存盘系统死机半天的是从Win16开始代码就没动过的notepad,word的存盘都是异步
的了,点击按钮就把按钮disable掉,然后用MTA的COM组件存盘,完成之后再把窗口关
掉,这样UI在任何时候都有相应
不过写异步的COM基本需要精通COM机制了,所以MS出了些简单的模板和语法糖。

关系

【在 d********g 的大作中提到】
: 这……Win32时代的UI不都这么做的?消息循环就是上古时代的async,这和语言有啥关系
: 现在的这些asyncio只是说做到语言特性里去了

a9
发帖数: 21638
78
async的最大问题是认为只有I/O是耗时大的,实际上耗时大的还有很多。

threading

【在 d********g 的大作中提到】
: 关键是你具体想要做什么,threads之间有互动吗还是都单独的?
: asyncio的基本思路就是把I/O都弄成异步,任何I/O不要阻塞当前loop。Python的
: threading因为最后要经过GIL所以还是相当于单线程的,不如直接就asyncio
: 没什么难写的,写法和sync的差不多,只是记得要await I/O之类的,其实比threading
: 还更简单。JS也在说要加入async/await语法了
: 传统处理异步也可以靠架构,用外部的queue。Python这一类用Celery的很多
:
: list
: thread

d********g
发帖数: 10550
79
那是它自己代码没写好,又不怪语言。本来这都是交给SDK做的,Win里编程最典型一个
要弹一个progress bar同时又要支持响应就不能用modal,因为modal是blocking的。大
多数语言本身最开始都是sync的,要实现async不是在语言层面。JavaScript是个例外
因为最开始它的主要目的就是为了浏览器UI的简单交互
语言层面是说比如C++11加入的async、Python 3加入的yield from、async/await等
PyQt不是在语言层面,就是SDK的事

【在 x****u 的大作中提到】
: Win32不是这么做的啊
: 点个存盘系统死机半天的是从Win16开始代码就没动过的notepad,word的存盘都是异步
: 的了,点击按钮就把按钮disable掉,然后用MTA的COM组件存盘,完成之后再把窗口关
: 掉,这样UI在任何时候都有相应
: 不过写异步的COM基本需要精通COM机制了,所以MS出了些简单的模板和语法糖。
:
: 关系

x****u
发帖数: 44466
80
你不了解来龙去脉啊
为啥过去语言和SDK轻易不搞异步,是因为在30多年历史里抢占式多任务的线程都是昂
贵的,如果app流行开线程线程池会严重影响OS的性能,必须加以限制。
最近多核烂大街了,异步就成了时尚了。
Win32单线程存盘不阻塞UI是不可能的,退一步就算你用了异步IO,把数据编码成文件
格式也会造成延迟。

【在 d********g 的大作中提到】
: 那是它自己代码没写好,又不怪语言。本来这都是交给SDK做的,Win里编程最典型一个
: 要弹一个progress bar同时又要支持响应就不能用modal,因为modal是blocking的。大
: 多数语言本身最开始都是sync的,要实现async不是在语言层面。JavaScript是个例外
: 因为最开始它的主要目的就是为了浏览器UI的简单交互
: 语言层面是说比如C++11加入的async、Python 3加入的yield from、async/await等
: PyQt不是在语言层面,就是SDK的事

相关主题
难得好文,Linkedin如何用Node beat Python,Ruby,Java看了一下C#的async await
大家难道全是半路出家?Typescript是不是实际上反 functional programming 的?
Node 完胜 Ruby呀这次node把python也给干了
进入Programming版参与讨论
d********g
发帖数: 10550
81
假设A、B、C三步,B比较耗时
原始sync代码:
1. 干A
2. 干B
3. 干C
3.4 async代码:
@coroutine
def
1. 干A
2. yield from 干B
3. 干C
3.6 async代码:
async def
1. 干A
2. await 干B
3. 干C
async的只是再需要弄一个loop而已。写法基本和sync的兼容,这不比JS那种恶心的写
法好多了吗?

【在 s********k 的大作中提到】
: 3.4+ PY还是用coroutine和yield这样来写?比如我这个就是简单单独的thread,没有
: 任何互动,怎么写比较合适?
:
: threading

d********g
发帖数: 10550
82
我说的是你这句话呀:
“python不合适吧,做ui需要异步方便才行,比如javascript”
Win32的UI就不是UI啦?都是C++写出来的,C++那时候不是和Python一样都没有语言支
持的异步吗?JavaScript流行之前我们不都用了那么多年的Windows啦 :)

【在 x****u 的大作中提到】
: 你不了解来龙去脉啊
: 为啥过去语言和SDK轻易不搞异步,是因为在30多年历史里抢占式多任务的线程都是昂
: 贵的,如果app流行开线程线程池会严重影响OS的性能,必须加以限制。
: 最近多核烂大街了,异步就成了时尚了。
: Win32单线程存盘不阻塞UI是不可能的,退一步就算你用了异步IO,把数据编码成文件
: 格式也会造成延迟。

d********g
发帖数: 10550
83
而且我说了PyQt本来就是个wrapper。Qt本身是C++写的

【在 d********g 的大作中提到】
: 我说的是你这句话呀:
: “python不合适吧,做ui需要异步方便才行,比如javascript”
: Win32的UI就不是UI啦?都是C++写出来的,C++那时候不是和Python一样都没有语言支
: 持的异步吗?JavaScript流行之前我们不都用了那么多年的Windows啦 :)

x****u
发帖数: 44466
84
Win32做异步老麻烦了,COM就没几个能写对的

【在 d********g 的大作中提到】
: 我说的是你这句话呀:
: “python不合适吧,做ui需要异步方便才行,比如javascript”
: Win32的UI就不是UI啦?都是C++写出来的,C++那时候不是和Python一样都没有语言支
: 持的异步吗?JavaScript流行之前我们不都用了那么多年的Windows啦 :)

d********g
发帖数: 10550
85
肯定不是所有地方都无脑搞async,async一个考虑不周就容易全堵

【在 a9 的大作中提到】
: async的最大问题是认为只有I/O是耗时大的,实际上耗时大的还有很多。
:
: threading

e****t
发帖数: 17914
86
尼玛 不想跳3啊


【在 d********g 的大作中提到】
: 是的。Django这样的大库,接下来1.11 LTS也会是最后一个支持Python 2.7的版本了,
: 因为Python 2.7本身到2020年就完全不维护了:
: https://pythonclock.org
: 整个ecosystem已经在告别2.7,这是没有疑问的

m*****n
发帖数: 3575
87
那除了 Qt之外,还有没有其它做GUI客户端的可选项?
我需要做网络交互程序,最主要的要求是线程间交互不会互相呛死,在此基础上越易编
写越好
Qt最牛逼之处是只要按照规矩写,永远不会死。做出来的程序比IE之流稳定多了。

【在 d********g 的大作中提到】
: 而且我说了PyQt本来就是个wrapper。Qt本身是C++写的
x****u
发帖数: 44466
88
IE也有永远不会写死的规矩
最近做跨平台GUI的话,最时髦的方案算是电子了吧

【在 m*****n 的大作中提到】
: 那除了 Qt之外,还有没有其它做GUI客户端的可选项?
: 我需要做网络交互程序,最主要的要求是线程间交互不会互相呛死,在此基础上越易编
: 写越好
: Qt最牛逼之处是只要按照规矩写,永远不会死。做出来的程序比IE之流稳定多了。

m*****n
发帖数: 3575
89
“IE已经停止工作”的这个毛病我在编Qt客户端时从来没遇到过
你说的是electron么?

【在 x****u 的大作中提到】
: IE也有永远不会写死的规矩
: 最近做跨平台GUI的话,最时髦的方案算是电子了吧

m*****n
发帖数: 3575
90
Postgresql 的 pgAdmin就是用wx体系写的,经常由于任务同时的多了直接挂了。
IE其实也有这个毛病。Windows系的Excel之类,Foxit Reader之类都产生过这种直接死
掉。
Qt体系只要老老实实做QThread,再忙从来不死,绝对稳。我用类似于黑客式的密集消
息做过压力测试。
相关主题
uber用的python作的api.不是java, php2007年9月编程语言指数
python3 输入 菜鸟问题现在是不是不该学python?
python下怎么解决GIL?Ruby and Python
进入Programming版参与讨论
x****u
发帖数: 44466
91
看个人水平了
IE停止工作的错合格码农也不出啊

【在 m*****n 的大作中提到】
: “IE已经停止工作”的这个毛病我在编Qt客户端时从来没遇到过
: 你说的是electron么?

x****u
发帖数: 44466
92
IE你老实起worker thread会死机么?

【在 m*****n 的大作中提到】
: Postgresql 的 pgAdmin就是用wx体系写的,经常由于任务同时的多了直接挂了。
: IE其实也有这个毛病。Windows系的Excel之类,Foxit Reader之类都产生过这种直接死
: 掉。
: Qt体系只要老老实实做QThread,再忙从来不死,绝对稳。我用类似于黑客式的密集消
: 息做过压力测试。

m*****n
发帖数: 3575
93
大哥,我说的是微软的IE,有时候看几个网页自己就挂了。这难道不是微软的毛病么?

【在 x****u 的大作中提到】
: IE你老实起worker thread会死机么?
x****u
发帖数: 44466
94
插件的毛病

【在 m*****n 的大作中提到】
: 大哥,我说的是微软的IE,有时候看几个网页自己就挂了。这难道不是微软的毛病么?
1 (共1页)
进入Programming版参与讨论
相关主题
python下怎么解决GIL?也问问Python2和Python3.x的区别:并行计算有什么新进展
2007年9月编程语言指数python 2/python 3这是怎么一回事呀
现在是不是不该学python?想起隔壁组的ruby大牛
Ruby and Python难得好文,Linkedin如何用Node beat Python,Ruby,Java
JavaScript 比python优雅很多大家难道全是半路出家?
受不了python了Node 完胜 Ruby呀
版上哪个大牛评论下python 3.5 gradual typing?看了一下C#的async await
Python是不是死了?Typescript是不是实际上反 functional programming 的?
相关话题的讨论汇总
话题: python话题: async话题: uvloop话题: asyncio话题: 语言