打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Why Python is the Last Language You'll Have To Learn

This week, for part of a textbook I'm helping to write,I spent some time reading and researching the history of Python asa scientific computing tool. I had heard bits and pieces of this in the past,but it was fascinating to put it all together and learn about how all theindividual contributions that have made Python what it is today.All of this got me thinking: for most of us, Python was a replacement forsomething: IDL, MatLab, Java, Mathematica, Perl... you name it.But what will replace Python?Ten years down the road, what language will people be espousing inblogs with awkwardly-alliterated titles? As I thought it through, Ibecame more and more convinced that, at least in the scientific computingworld, Python is here to stay.

Now I’m not simply talking about inertia. Javascript has inertia, and that'sa main reason that web admins still begrudgingly use it. But Python is different. Yes, it's everywhere, and yes, something so ubiquitous ishard to shake. But look at the 1970s: punch card programming waseverywhere, and now it's nothing but a footnote. Inertia can be overcomewith time. But I think Python’s hold is much deeper than that: I think itwill remain relevant long into the future. Here’s why:

GitHub

The first reason Python will be around for a while isGitHub. GitHub has done wonders both for Pythonand for the broader open source community. It has replaced the clunky Trac system ofsubmitting static patches to projects, and removed the contribution barrierfor the core scientific python projects. Numpy, Scipy, and Matplotlib wereall moved to GitHub in late 2010, and the results have been impressive.I did some quick data mining of the commit logs on GitHub to learnabout the rate of new author contributions to core python projects withtime, and this is what I found:

See it? The late 2010 transition to GitHub is extremely apparent,and this reflects the first reason that NumPy, SciPy, Matplotlib,and Python will remain relevant far into the future.Python not only has an astoundingly large user-base; thanks to GitHub,it has an astoundingly large and ever-increasing developer base.And that means Python is well-poised to evolve as the needs of users change.

Julia

The second reason Python will be around for a while is Julia. This statement may strike some as strange:Julia is a language which aims to improve on many of Python’s weaknesses.It uses JIT compilation and efficient built-in array support to beat Python on nearly every benchmark. It seems a likely candidate to replace Python, not a support for my assertion that Python will remain relevant. But this is the thing: Python’s strength lies in community, and that community is incredibly difficult to replicate.

A recentthreadon the julia-dev list highlights what I’m talking about:in it, Dag Seljebotn, a core developer of Cython, contrasts thestrengths of Python (large user- and developer-base, large collection oflibraries) with the strengths of Julia (state-of-the-art performance,JIT compilation). Heproposes that the two languages should work together, each drawing from thestrengths of the other. The response from the Julia community was incrediblypositive.

The Julia developers know that Julia can’t succeed as a scientificcomputing platform without building an active community, and currently thebest way to do that is to work hand-in-hand with Python. After this threadon julia-dev, the Julia developers were invited to give a talk at the Scipy2012 conference,and I think many would say that some good bridges were built.I'm extremely excited about the prospects of Julia as a scientific computingplatform, but it will only succeed if it can embrace Python, and if Pythoncan embrace it.

The next Travis Oliphant

The third reason Python will be around for a while is this: there will be another Travis Oliphant. What do I mean by this? Well, if you go back ten years or so, the Python scientific community was looking a bit weak.Numeric was a well-established array interface, and the beginnings of SciPy were built upon it. But Numeric was clunky, so some folks got together and built Numarray. Numarray fixed some of the problems, but had its own weaknesses.The biggest problem, though, was that it split the community:when the core of your platform has divided allegiances, neither side wins.Travis realized this, and against the advice of many, audaciously set out on a quest to unify the two. The result was NumPy, which is now the unrivaled basis for nearly all scientific tools in Python.

Python faces a similar crisis today: it is split in the area ofHigh-performance and parallel computing. There is an alphabet soup of packages which aim to address this:Cython, PyPy, Theano, Numba, Numexpr, and more. But here’s the thing: someone will come along who has the audacity to strikeout and unify them. I love this recenttweet by Dave Warde-Farley:

Somebody is going to do this: somebody will be the next Travis Oliphantand create NumTron to re-unite the community.Maybe Dave will be the next Travis Oliphant: he's done some great work onTheano.But then again, the merging of Python and LLVM in Travis'Numba project ispretty exciting:maybe Travis Oliphant will be the next Travis Oliphant --he’s done it before, after all. Or perhaps it will be someonewe’ve never heard of, who as we speak is brewing a new idea inan unwatched GitHub repository. Time will tell,but I’m confident that it will happen.

Conclusion

Maybe I’ve convinced you, maybe I haven’t. But I’m going to continue using Python, and I predict you will too. We'll see what the future holds for scientific computing, but in my mind, Python remains a pretty solid bet.

Finally, a brief post-script on the history of Python:some of the most interesting sources I found werethis interview with Guido Van Rossum,the official Scipy history page, theScipy2012 talkJohn Hunter gave this summer shortly before his sudden passing,and the numpy-discussion postJohn referenced in his talk. If you use Python regularly and have sometime, I’d highly recommend browsing these: it’s incredible to seehow the unwavering vision of folks throughout the years has led to what wehave today: an unmatched open-source environment for scientific computing.

Edit: also check out theHistory of Python blog. Thanks toFernando for the tip.

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
1001种玩法 | Python 学习指南资源
Installing scientific Python on Mac OS X
可以替代Matlab的几款开源科学计算软件
2021,什么数据分析技能最重要?
Julia编程04:Julia调用R和Python
被设计为以一御万的“朱莉娅”之诞生记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服