Python超级程序员使用的开发工具
英文原文:Tools used by Python Super Stars
我以个人的身份采访了几个顶尖的 Python 程序员,问了他们以下 5 个简单的问题:
- 当前你的主要开发任务是什么?
- 你在项目中使用的电脑是怎样的?
- 你使用什么 IDE 开发?
- 你将来的计划是什么?
- 有什么给 Python 程序员的建议?
就是这几个问题,我找了几个顶尖的程序员和编程书籍作家,问他们这几个相同的问题。下面是他们的回答,希望在他们的回答中你能找到一些可以让你的开发更便捷的工具。
Alex Martelli
Alex Martelli
人物简介:Alex Martelli 是一位意大利计算机软件程序员,他是 Python 软件基金会的成员。从 2005 年初开始,他以“Über 技术首领”的身份在加利福尼亚景山谷歌总部工作。他拥有意大利 Bologna 大学电子工程学位(1980)。他是《Python in a Nutshell》一书的作者,他还和其他人合著了《Python Cookbook》,他还写了一些其它一些作品,大部分都是和 Python 相关的。因为他对 Python 社区杰出的贡献,他被授予的荣誉包括2002 Activators’ Choice Award和2006 Frank Willison award。
你可以通过他的博客了解更多关于他的信息。
问题一、当前你的主要开发任务是什么?
给我的老板(谷歌)开发商业软件,大部分是商业智能方面。
问题二、你在项目中使用的硬件机器是怎样的?
基本上都是谷歌的云服务器,通过谷歌 APP 引擎直接或间接的使用。有时候也使用一个 Unix 工作站或 Macbook Air,但很少。
问题三、你使用什么 IDE 开发?
vim, gvim, mvim; 偶尔用一下 iPython,但这好像不能算是 IDE 吧。
问题四、你将来的计划是什么?
应该还会待在谷歌——具体的研究方向那要看实际情况。
问题五、有什么给 Python 程序员的建议?
学习一下 App Engine (通过 webapp2 或 flask, jinja2, &c以及其它类似 django 的轻量级环境):它们大部分都会对你的 web 项目有很好的用处——如果你想在这些环境之外的地方部署 web 应用,Appscale 会是你最方便的选择。
Daniel Greenfeld
Daniel Greenfeld
人物简介: Daniel Greenfeld 是《Two Scoops of django》一书的合著人。他有超过 6 年的在 Django 领域的研究经验。之前他在美国宇航局做开发,就是在那里他开始了他的 Python 之旅,一直到现在。他目前是Cartwheel Web的负责人。
你可以通过他的 推ter: @pydanny 和他的博客获取他的更多信息。
问题一、当前你的主要开发任务是什么?
我现在的工作主要是客户端方面,基本上都是用 Python。内容服务方面有时候会用到 Django,但当前的主要工作基本上跟 web 无关。
问题二、你在项目中使用的硬件机器是怎样的?
硬件方面,我使用一个 2011 年的 Macbook Air。因为我的开发方式,像 Macbook Air 这样的超级本用起来非常舒服。可苹果的产品一般都很贵,我就自己配了一个,我打算所有的任务都用它来做。如果哪天我能有一个新的笔记本,我想试试 Linux 的超级本或 Window8 的平板(以前我是靠虚拟机运行 Windows 8)。
问题三、你使用什么 IDE 开发?
我使用 Sublime Text。我更喜欢文本编辑器,而不是 IDE,因为我喜欢深入研究程序库和它们的文档,而不是通过 IDE 工具来提示我。
问题四、你将来的计划是什么?
我未来的计划就是编程,锻炼,做我最擅长的事情。也许会去一个新地方旅游。我喜欢去没有去过的地方,认识新朋友,品尝没吃过的食物。但大部分我的旅游都是基于客户的需求,今年我不知道什么时候会有这样的机会。
问题五、有什么给 Python 程序员的建议?
我给 Python 程序员的建议是挑战极限。寻找新的代码库,研究它们,使用它们。它们有些会不是很好,不好的东西也会教会你一些东西(不该做的事情)。
Miguel Grinberg
Miguel Grinberg
人物简介: Miguel 是一个程序员,摄影师和电影制作人。生活在美国俄勒冈州。他目前正在写一本关于使用 Python 和 Flask 做 web 开发的书,将会由 O’Reilly Media出版。这本书的官方网站是 Flask Book.
你可以通过他的 推ter: @miguelgrinberg 和他的博客获取更多信息。
问题一、当前你的主要开发任务是什么?
也许你会吃惊,工作中我并不做 web 开发。我在为 Harmonic 做视频软件。C++是我在工作中使用的主要语言,但我们却使用了一个古老的用 Python 写的自动化单元测试框架,用起来很有趣。
空闲时间里我目前的第一大任务就是给O’Reilly 出版社写一本关于 Flask 为框架的书,基本上快写成了。
问题二、你在项目中使用的硬件机器是怎样的?
我的机器是一个双系统的台式机,装的是 Ubuntu 和 Windows 8.1。我还有一个 Mac OS X 笔记本。
我在跨平台方面有些变态。除了给 Arduino 这样的嵌入式系统写代码外,所有其它我写的代码(不管什么语言),都需要在三种平台上运行。为了达到这个目的,我会不断的在 Linux,Windows 和 OS X 机器间切换。
问题三、你使用什么 IDE 开发?
我有一些最爱。PyCharm 非常棒,在大型项目时我越来越依赖它,主要是因为它的交互式的调试工具。
在 Windows 平台上我会使用 Visual Studio 的一个 Python 插件,免费的,非常出色,我估计大部分人没听说过它。
我还经常使用 SublimeText,通常是在笔记本上使用它。
Notepad++是我在 Window 台式机上最顺手的工具。在我所有的电脑上都装有一个非常老的 Vim,即使在 Windows 上也使用 Cygwin 运行它。
问题四、你将来的计划是什么?
我在四月份的 PyCon 大会上会有一个关于 Flask 的演讲,我下一步开始着手准备材料,因为书已经快写好了。
我最近没怎么写博客,我很想写一点。我想能多腾出一些时间写博客。我已经拟了一份话题目录,准备按着这个清单写。如果需要的话,我可以把里面的一个关于 Flask 上的 web sockets 的文章提到最前面。
问题五、有什么给 Python 程序员的建议?
我对所有程序员——不光是 Python 爱好者——的建议是,多去实践,然后把它们分享给世界。分享很重要,从别人那获得反馈是让你提高的好方法。
而对于 Python 程序员我想说的是,如果我们只需要用嘴去讨论 Python2 和 Python3 的差别、而不需要花时间将众多的软件移植到 Python3,那该多好。玩笑。
说的太好了!
揭开其他程序员的面纱,窥视他们如何施展魔法工作,这很有用。你可以看到,他们使用的工具、技术,我们都可以采用,很多都是免费的。我很感谢他们能分享这些信息。