V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zachguo
V2EX  ›  Python

Python 2017 年这一年有什么值得一提的新东西吗?

  •  1
     
  •   zachguo · 2017-12-20 09:06:20 +08:00 · 7913 次点击
    这是一个创建于 2290 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 新的好的改动?
    • 值得称道的包?(除了 deep learning 相关的)
    • 包管理比之前有什么进步吗?

    Python 倒是越来越火了,这多亏了 deep learning 和培训班 CS101 吧。。

    公司的 python 后端除了一些有关机器学习的倒是都已经迁移到 node、go、java 了,哎。

    68 条回复    2017-12-21 17:26:36 +08:00
    SevnChen
        1
    SevnChen  
       2017-12-20 09:09:42 +08:00
    PyTorch
    neosfung
        2
    neosfung  
       2017-12-20 09:19:11 +08:00 via iPhone
    PyTorch
    newbieo0O
        3
    newbieo0O  
       2017-12-20 09:21:34 +08:00
    被我国列入大学教材。也算是推动今后国内的发展吧
    designer
        4
    designer  
       2017-12-20 09:23:37 +08:00 via iPhone
    最后两句话咋感觉在唱衰 Python 呢。
    SnowEidolon
        5
    SnowEidolon  
       2017-12-20 09:24:38 +08:00
    本质的还真没啥新东西
    janxin
        6
    janxin  
       2017-12-20 09:29:50 +08:00   ❤️ 1
    pipenv,django2.0。其他的中规中矩了。

    迁移是招聘考虑,你随便招个前端,java,只要要求不高简历一大把经常能到手软,还是能挑到几个不错的。

    你随便招招 Python 后端试试?
    neosfung
        7
    neosfung  
       2017-12-20 09:33:50 +08:00 via iPhone
    我软的 LightGBM
    zachguo
        8
    zachguo  
    OP
       2017-12-20 09:54:26 +08:00
    @SevnChen
    @neosfung
    还是 deep learning 相关的😂,GitHub 上 python trending 基本都是 deep learning 的东西。
    zhengxiaowai
        9
    zhengxiaowai  
       2017-12-20 09:56:39 +08:00
    诶,讲真今年都是 deep learning 的东西
    zachguo
        10
    zachguo  
    OP
       2017-12-20 09:56:42 +08:00
    @janxin 还真不是,都是生态、性能、架构、维护考虑。除了处理数据的,py 真没啥优势了。。
    jtsai
        11
    jtsai  
       2017-12-20 10:02:08 +08:00 via Android
    @zachguo Python 一直追求的都是效率
    ZiLong
        12
    ZiLong  
       2017-12-20 10:05:25 +08:00
    @jtsai 缺啥补啥
    jhdxr
        13
    jhdxr  
       2017-12-20 10:08:54 +08:00   ❤️ 1
    @zachguo 性能从来都不是 Python 的优势。生态才是,ML 这块不大可能有一个语言,不管是新的还是老的去逆袭了。
    其他方面 Python 也就那样了,不温不火。
    XIVN1987
        14
    XIVN1987  
       2017-12-20 10:16:12 +08:00
    python 最大的问题是性能,,几乎是所有编程语言里面最慢的,,
    老板一想到用 Python 得多买几台服务器就肉疼,,所有就选 JAVA、Go、Node、PHP、C#去了 (╯︵╰)
    ty89
        15
    ty89  
       2017-12-20 10:20:11 +08:00
    1,被选入了某些小学的教材
    2,被选入计算机二级考试
    codeyung
        16
    codeyung  
       2017-12-20 10:38:36 +08:00
    所以 Python 现在就是机器学习嘛 我看有些朋友也是 后端写着写着用了 JAVA Go 和 C#

    请教下 之前没事看 Python 现在暂停了~QAQ
    est
        17
    est  
       2017-12-20 10:44:54 +08:00   ❤️ 3
    @XIVN1987 如果贵厂性能在 python 上,要么老板毛都不懂,要么贵厂业务已经上了规模了。
    zachguo
        18
    zachguo  
    OP
       2017-12-20 10:54:14 +08:00 via Android
    @jhdxr 要是哪个语言能出个和 numpy 抗衡的包。。。😂
    toalec
        19
    toalec  
       2017-12-20 10:54:26 +08:00   ❤️ 1
    @XIVN1987 python 性能差主要体现在计算密集的情况下吧,一般 web 这种 IO 密集比较多的情况下,性能也没那么重要。
    zachguo
        20
    zachguo  
    OP
       2017-12-20 11:07:05 +08:00 via Android
    @neosfung 还是 ml 哪天试一下
    congeec
        21
    congeec  
       2017-12-20 11:36:53 +08:00
    @zachguo fortran 性能完爆 numpy,不过我才不想碰 fortran 呢
    jjx
        22
    jjx  
       2017-12-20 12:09:18 +08:00
    @toalec

    这个事情要这么看, 以 sql 为例子, 如果直接使用 raw sql 差距不明显(但也有差距)

    但如果你一用 orm, 差距就很明显了, 不过反过来说, 像 go 这样的 , 其实这么多年, 一个像样的 orm 都找不出来, 业务类开发的效率可想而知
    janxin
        23
    janxin  
       2017-12-20 12:09:22 +08:00
    @zachguo 你确定生态和架构有问题?
    维护其实就是招人问题,性能还是那样子,能遇到性能问题的都是中型以上了,转型我觉得没毛病
    UN2758
        24
    UN2758  
       2017-12-20 12:16:16 +08:00
    @XIVN1987 你们对于 python 性能瓶颈部分难道不用 c++做优化的吗?
    northisland
        25
    northisland  
       2017-12-20 12:23:35 +08:00
    过了 12 月 31 日,
    离 python2 被开发团队停止支持,还有 2 年吧~
    ericls
        26
    ericls  
       2017-12-20 12:25:00 +08:00 via iPhone
    @jhdxr 性能不是效率……
    zachguo
        27
    zachguo  
    OP
       2017-12-20 12:25:03 +08:00 via Android
    @janxin py 除了数据真的没啥可留念的了,大型的求性能不会用它,小的 microservice/后端胶水也不会用它,就面试新人算法题用了。
    northisland
        28
    northisland  
       2017-12-20 12:26:18 +08:00
    当前进展不了解,但我今年 get 了 boost::python 这个新技能,感觉真心厉害~
    northisland
        29
    northisland  
       2017-12-20 12:27:00 +08:00
    pyspark 怎么样?
    Technetiumer
        30
    Technetiumer  
       2017-12-20 12:28:25 +08:00 via Android   ❤️ 2
    微软要在 excel 支持 Python
    zachguo
        31
    zachguo  
    OP
       2017-12-20 12:29:11 +08:00 via Android
    doubleflower
        32
    doubleflower  
       2017-12-20 12:31:05 +08:00 via Android
    其实我觉得 js 写起来比 py 舒服,包似乎也更多,速度也更快
    janxin
        33
    janxin  
       2017-12-20 12:33:20 +08:00
    @zachguo 后端胶水选什么都一样吧...只是最开始你也没把 python 放在选项里而已
    northisland
        34
    northisland  
       2017-12-20 12:36:38 +08:00   ❤️ 2
    架构,消息框架,都有 python 接口。耗时模块的用 C++甚至 Cuda 实现,boost::python 封装接口。


    刨去上述功能,剩下的代码,是什么 B 样,离垃圾桶多远,自己没个数么?




    所以吧人生苦短,为啥不用 python ?
    whwq2012
        35
    whwq2012  
       2017-12-20 12:38:40 +08:00 via Android
    为啥都说性能差呢,感觉用 pypy 的话,虽然比 c 语言差很多,但是离 java 不远了啊
    northisland
        36
    northisland  
       2017-12-20 12:39:55 +08:00 via iPhone
    @zachguo 对的
    congeec
        37
    congeec  
       2017-12-20 12:41:05 +08:00   ❤️ 1
    janxin
        38
    janxin  
       2017-12-20 12:47:48 +08:00
    @whwq2012 pypy 也不是完全没有其他问题,比如库兼容问题,与 CPython 的实现区别问题
    zachguo
        39
    zachguo  
    OP
       2017-12-20 13:00:29 +08:00 via Android
    @northisland c binding 也确实是 py 的优势,这也是为什么 numpy 能独霸一方吧。不过你处理的问题比较底层,对比其他高层语言写业务相关的东西,只能摊手了。🤷‍♂️
    northisland
        40
    northisland  
       2017-12-20 13:04:44 +08:00 via iPhone
    @zachguo 确实是的,上述观点仅代表一个做算法的,对系统的理解😬
    whatcall
        41
    whatcall  
       2017-12-20 13:07:07 +08:00 via Android
    realkenshinji
        42
    realkenshinji  
       2017-12-20 13:08:38 +08:00
    @XIVN1987 相比 ruby ?
    duobei
        43
    duobei  
       2017-12-20 13:47:47 +08:00
    Jupyter Lab
    ivechan
        44
    ivechan  
       2017-12-20 13:51:55 +08:00
    @northisland boost.python 有点难用, pybind11 不错.
    ivechan
        45
    ivechan  
       2017-12-20 13:53:29 +08:00
    @UN2758 可能是因为招一个熟悉 C++又熟悉 Python 的程序员, 还不如直接招一个 Java 程序员吧.
    zachguo
        46
    zachguo  
    OP
       2017-12-20 13:55:43 +08:00 via Android
    @duobei 感觉有些 atom 和 vscode 插件已经实现这个了
    XIVN1987
        47
    XIVN1987  
       2017-12-20 14:45:21 +08:00
    @toalec
    性能确实不是非常重要,,可是 Python 动不动就慢十几甚至几十倍、上百倍,,这也太慢了

    我也很喜欢 Python,,但速度快总是有点吧,还有嫌执行速度快的吗??
    XIVN1987
        48
    XIVN1987  
       2017-12-20 14:46:42 +08:00
    @realkenshinji
    这俩一对儿难兄难弟,,都很慢,,而且还都有 GIL,,半斤对八两
    liverpool08
        49
    liverpool08  
       2017-12-20 16:56:06 +08:00
    @XIVN1987 都不要比了 php 最慢
    jhdxr
        50
    jhdxr  
       2017-12-20 17:52:16 +08:00
    @ericls 我没有提到效率,你回复错人了?


    @northisland 如果耗时的模块是一个常年不需要变更的,用 C 写还能接受;不然,我为什么不用 Java ?架构、消息框架之类的 Java 比 Python 完善的多


    @Technetiumer 前几天那帖子只是个调查而已吧?


    @whwq2012 pypy 与 cpython 的兼容并不是那么好,而且到现在也才支持到 3.5 吧?只不过说实话我是支持 GIL 的,去掉它肯定会有一堆小白不知道该怎么处理。。。


    @liverpool08 如果指的是运算性能的话,在大多数场景下 php 比 Python 快很多
    northisland
        51
    northisland  
       2017-12-20 18:06:24 +08:00
    @jhdxr 你理解耗时的模块有几种情况?
    wcsjtu
        52
    wcsjtu  
       2017-12-20 19:40:29 +08:00
    @XIVN1987 python 最大的问题还是动态类型带来的负作用, 难以组织大项目,后期维护困难。 效率什么的,看你是什么需求了。单纯做 web 而言,python 效率的影响,根本不是关键所在。
    1314258
        53
    1314258  
       2017-12-20 19:57:07 +08:00 via iPhone
    管你们怎么说好和不好,我就只用 python 了。
    menc
        54
    menc  
       2017-12-20 20:01:21 +08:00
    @zachguo matlab 和 R,计算上都比 numpy 要好
    hsuan
        55
    hsuan  
       2017-12-20 20:08:04 +08:00 via Android
    @wcsjtu 现在可以声明类型了
    owenliang
        56
    owenliang  
       2017-12-20 20:48:51 +08:00 via Android
    python 最大的问题是出了个晦涩的 async io,在我看来傻 逼到不行。
    121121121
        57
    121121121  
       2017-12-20 20:52:56 +08:00 via Android
    python 适合非计算机人士简单编程使用,建模后计算机人士可以改成 c++或者 java
    Wicked
        58
    Wicked  
       2017-12-20 21:42:47 +08:00 via iPhone
    @XIVN1987 你怎么得出的数据? Pyhon 逻辑用 C++重写最多快 3 ~ 5 倍
    你说的情况,要么就是 python 乱写的,要么就是重度的计算密集型,后者本来就不应该用脚本来写
    workwonder
        59
    workwonder  
       2017-12-20 21:47:30 +08:00 via Android
    @owenliang asyncio 有什么问题?
    janxin
        60
    janxin  
       2017-12-20 22:09:44 +08:00
    @workwonder asyncio 抽象度太低,整体晦涩,包括一些异步与同步的混合写法都比较蛋疼
    PythonAnswer
        61
    PythonAnswer  
       2017-12-20 23:11:50 +08:00 via Android
    我用的包全部 3k 了,开心
    iyaozhen
        62
    iyaozhen  
       2017-12-21 00:39:58 +08:00
    @liverpool08 关键是 Python 没有大的改进,PHP7 那提升,直接给 PHP 续了几年,之后又要上 jit,又能续几年。

    Python 虽然也出了个 asyncio 但是太底层、晦涩了,很难用起来
    zachguo
        63
    zachguo  
    OP
       2017-12-21 01:44:46 +08:00 via Android
    @menc 很多年前我是靠这俩编程语言入门的哈,但是除了科学计算就废了😂 都不算普适性高的高层语言。
    lrxiao
        64
    lrxiao  
       2017-12-21 01:55:49 +08:00   ❤️ 1
    rogwan
        65
    rogwan  
       2017-12-21 07:55:29 +08:00 via Android
    项目老板不懂技术不码的,肯定是要选 PHP,JAVA 吧,万一跟换技术人员,项目还可以续命。用 Python 应该是项目 leader 自己带头会码的,求大干快上,挂了就算了,不想熬久才知道考不考铺。
    inflationaaron
        66
    inflationaaron  
       2017-12-21 11:59:31 +08:00 via iPhone
    @menc 何以见得呢?就速度而言 numpy 不输啊
    menc
        67
    menc  
       2017-12-21 14:21:02 +08:00
    @inflationaaron R 语言相当于内置了 numpy + pandas,只用 numpy 不用 pandas 的话,其实易用性还挺差的
    TesterCC
        68
    TesterCC  
       2017-12-21 17:26:36 +08:00
    Django 2.0 吧,机器学习那些包一年都在看各种推广,然而目前做的项目根本用不到啊!希望来年有人能给 Python 再多续续命
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3943 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 10:22 · PVG 18:22 · LAX 03:22 · JFK 06:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.