Python at Google
- oneleaf
- 论坛管理员
- 帖子: 10441
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
Python at Google
来自Google的Greg Stein谈了为什么Python是他们主要的开发语言之一(与C++/Java并列)。他们都觉得Python有高度的灵活性,易学,易于维护。他们使用的许多Python模块实际上都是用SWIG对C库的包装。"我们大量的使用SWIG"。
尽管目前只有一部分用户可见的服务是运行于Python之上的,比如groups.google.com, code.google.com,Python主要的还是广泛的用于基础维护部门。Google对一个管理员来说是一个富有挑战性的环境,因为他有着众多的服务器。"是的,许多服务器"。你认为有多少公司拥有上千台服务器?他们的开发环境是用Python写的:描述如何build软件的库,自动化单元测试的工具,在代码chenk in之前强制review的工具,还有打包系统。Python让他们的工具能象硬件升级一样进化。
成功checked-in的代码来到一个阶段性的服务器,然后进入"数据中心",在那里把它们push到产品服务器。所有的这一切都是Python来完成的。其它的一些Python脚本监视着产品服务器:它们正在运转吗?它们健康吗?硬盘和CPU温度正常吗?
Google已经对公众发布了一些Python代码,比如Goopy (一个函数编程的库,functional programming).。他们还计划发布更多的代码,但是比较慢和谨慎。Guido问道:"我们什么时候可以看到一个开源的build系统?"Greg回答说当他们确信可控的时候就会发布。
一个有趣的细节是当Google有大量的查询正在涌入时,他们可以只花费1%的带宽来试验新的服务和应用,看它们是否会失败。Steve Holden,PyCon的联络人,称这些大量的信息流为"令人恐惧的"。一些命令行的工具可以完成这些任务,理所当然的,它们是用Python写的。
http://blog.donews.com/changzheng/archi ... 80443.aspx
尽管目前只有一部分用户可见的服务是运行于Python之上的,比如groups.google.com, code.google.com,Python主要的还是广泛的用于基础维护部门。Google对一个管理员来说是一个富有挑战性的环境,因为他有着众多的服务器。"是的,许多服务器"。你认为有多少公司拥有上千台服务器?他们的开发环境是用Python写的:描述如何build软件的库,自动化单元测试的工具,在代码chenk in之前强制review的工具,还有打包系统。Python让他们的工具能象硬件升级一样进化。
成功checked-in的代码来到一个阶段性的服务器,然后进入"数据中心",在那里把它们push到产品服务器。所有的这一切都是Python来完成的。其它的一些Python脚本监视着产品服务器:它们正在运转吗?它们健康吗?硬盘和CPU温度正常吗?
Google已经对公众发布了一些Python代码,比如Goopy (一个函数编程的库,functional programming).。他们还计划发布更多的代码,但是比较慢和谨慎。Guido问道:"我们什么时候可以看到一个开源的build系统?"Greg回答说当他们确信可控的时候就会发布。
一个有趣的细节是当Google有大量的查询正在涌入时,他们可以只花费1%的带宽来试验新的服务和应用,看它们是否会失败。Steve Holden,PyCon的联络人,称这些大量的信息流为"令人恐惧的"。一些命令行的工具可以完成这些任务,理所当然的,它们是用Python写的。
http://blog.donews.com/changzheng/archi ... 80443.aspx
- leal
- 帖子: 1119
- 注册时间: 2005-08-29 14:49
- 来自: 杭州
- 联系:
-
- 帖子: 48
- 注册时间: 2006-01-02 12:40
-
- 帖子: 145
- 注册时间: 2006-09-20 14:36
-
- 帖子: 16
- 注册时间: 2006-12-21 18:05
使用python的公司是不算多,但我觉得学python其实可以融会贯通地学到很多概念性的东西,在学习使用其他语言的时候这些概念起到很大的帮助,我学python之前接触的主要是C/C++,Python让我轻松地接触到了垃圾收集,命名绑定,类和namespace之间的关系,初步的functional programming这些东西,C和C++的用户不是接触不到这些东西,但是这些都属于高级话题了。学完Python看Java,没有任何概念上的障碍。Peter Norvig说编程得学上十年,好的程序员至少得懂半打语言:
另外,实用上讲,Python的许多包就是Linux下类似的C库的一个wrapper,像线程、socket这些东西。如果直接去看C的接口,技术细节和他实现的概念常常混杂在一起。看完之后如果像自己写点东西,上手又很难,运行、调试都很困难。用Python来帮助自己掌握这些概念,就容易得多,而且自己觉得自己很有力量,可以写很多有趣、实用的东西。
我觉得学一种语言,除了因为它好用,主要是看里面有没有新鲜的概念,能不能让你头脑里既有的知识框架收到一点挑战,如果一种语言里的所有抽象都能换汤不换药地match到一个人头脑里现有的概念上去。其实什么都没学到。这和学外语的道理是一样的。Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal).
另外,实用上讲,Python的许多包就是Linux下类似的C库的一个wrapper,像线程、socket这些东西。如果直接去看C的接口,技术细节和他实现的概念常常混杂在一起。看完之后如果像自己写点东西,上手又很难,运行、调试都很困难。用Python来帮助自己掌握这些概念,就容易得多,而且自己觉得自己很有力量,可以写很多有趣、实用的东西。