`
zuroc
  • 浏览: 1307797 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

关于"Google限制Python"事件我的看法

阅读更多
本来做一个勤勤恳恳的码农我应该学习佩雷尔曼前辈的作风 --- "佩雷尔曼反复说他已经退出了数学界,不再认为自己是职业数学家了。"

不过鉴于Gtalk跳出很多朋友 -- 写PHP的和写Java的 -- 很高兴的告诉我伟大的CSDN上出现了一条新闻:
[独家]Google将限制Python语言的应用 开发社区热议 http://news.csdn.net/a/20091116/214803.html

加上很多菜鸟们无知的写到"看得心都碎了。"

我这颗不甘寂寞的心久久不能平静。

还是写一点东西吧。

不过,先做一个广告,我在卖python空间 http://stdyun.com/vhost

同时有一个论坛 http://groups.google.com/group/stdyun-vhost?hl=zh-cn

也欢迎大家加入。

11月11号开始小规模出售,目前已经卖出11个,预定几个,距离一台机器卖50个目标还很遥远,不过距离卖出30个新增另一个机房第二台服务器已经很接近了:)

鉴于CSDN编辑翻译的非常非常非常糟糕 -- 断章取义,词不及义,加上不懂Python。

大家还是先去看看原帖 http://groups.google.com/group/unladen-swallow/browse_thread/thread/4edbc406f544643e

原帖在Unladen Swallow的论坛上。Unladen Swallow是Python的一个分支,由Google的一组开发人员组成。

我来翻译一小段:

kgn
I'm told that Google employees are being discouraged from using Python for new projects,
which seems silly given how much Python code and Python support comes out of Google.
I've hunted for more information but haven't found any.
Do you know any details, or is this just a rumor?

我听说Google不鼓励员工在新项目中用Python。
Google把如此多是Python代码和Python支持挪走听起来很傻。
我想再八卦一下,可惜没找到什么爆料。
你了解更多细节吗,又或者只是谣传。


Collin Winter 

Well, simple common sense is going to limit Python's applicability  when operating at Google's scale:
     it's not as fast as Java or C++,  threading sucks, memory usage is higher, etc.
One of the design constraints we face when designing any new system is,
"
  what happens  when the load goes up by 10x or 100x?
  What happens if the whole planet thinks your new service is awesome?
"
Any technology that makes satisfying that constraint harder -- and I think Python falls into this category -- *should* be discouraged if it doesn't have a very strong case made in its favor on other merits.

You have to balance Python's strengths with its weaknesses:
    your engineers may be more productive using Python,
    but if they have to work around more platform-level performance/scaling limitations as volume increases, do you come out ahead?
    etc.

恩,显而易见,一些缺陷将限制Google在做大规模时使用Python:

    没Java或是C++那么快,糟糕的线程,高的内存占用,等等。

我们开始设计任何一个新系统时,我们需要面对的问题是:

    当负载增加了10倍或者100倍系统会怎样?

    当全世界都赞叹你的新应用令人难忘时会怎么样?

在这样有高难度的挑战面前,什么技术都很难让人满意 -- 并且,我认为Python也是属于这类 -- 如果没有什么特别的应用场景,在其他方面使其将功赎罪的话,"应该"不被鼓励使用。

你需要权衡Python的优缺点:
   
    你的工程师用Python生产力会更高。

    但是,随着压力膨胀,当你不得不去面对更多平台级别的性能/可扩展性时,你能领先(问题)一步吗?
  
    等等

--------------------------------------------------------------------

点评:

到此为止,大家可以看到,其实这两人就是在随便扯扯 -- 大意就是,Python不是万能,一切都是要权衡的  -- 与那标题党的标题基本没有什么关系 。

这简直就是废话 -- 从来没有一个 Pythoner 认为 Python 是万能的 -- Python是我们伟大的胶水 -- 倒是有很多Cpper和Javaer认为自己的神是万能的。

--------------------------------------------------------------------

接着看下面的邮件,CSDN的编辑不懂Python,没搞懂Cython是什么,把它和CPython混淆了。

CPython是python的官方解释器。

Cython是用类似Python语法,给Python写C扩展的方式。

    Cython is a language that makes writing C extensions for the Python language as easy as Python itself. Cython is based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.

    Cython是一种语言,让用C给Python写扩展和写Python一样容易。Cython从广为人知的Pyrex的基础上发展起来,但有更多的转换函数和优化。


事实上,Python+Cython是一种很爽的组合方式,如同 Tom Machinski  所说

"""
Specifically, if an engineer wishes to pursue a performance-intensive
project in Python, why not tell him to use Cython (or Python with some
C extensions) rather than force him to a completely different language
like Java or C++.

An engineer who picks Python as his first choice is probably familiar
enough with the language to utilize Cython / C-extension effectively,
and would probably rather do that than use any of those completely
different languages. As a bonus, Google gets a tool that's probably
easier to maintain than your common C++ codebase.

确切地说,如果一个工程师希望在Python的项目中追求性能,为什么不告诉他如何使用Cython(或蟒蛇和一些C扩展),而不是强迫他一个完全不同的语言:如Java或C + +。
  
一个Pythoner的程序员,不难熟悉运用Cython / C扩展来追求效率。而且这样做或许会比用其他完全不同的语言更合适。

同时,Google也能得到一个比C++代码库更容易维护工具。
"""

当然,一般而言,普通代码用Cython优化没什么明显效果,用它封装一些瓶颈的函数就可以了 -- 更多时候是用来把C库变成Python的库 。

=====================================

好吧,大家就不要扯淡了。

庄子逍遥游有云:

    且夫水之积也不厚,则其负大舟也无力。
   
    覆杯水于坳堂之上,则芥为之舟;
   
    置杯焉则胶,水浅而舟大也。
   
    风之积也不厚,则其负大翼也无力。
   
    故九万里则风斯在下矣,
   
    而后乃今培风;背负青天而莫之夭阏者,而后乃今将图南。

有资格去设计这么大应用的时候再去指手画脚吧,Python写网站抗个日PV几KW还是很小case的。

Google怎么做,只是用来吹牛的聊资罢了,何况Python之父还在Google呢。

现在 -- 该干嘛干嘛去。

再批判一下CSDN,当年误导我钻研C++ Template,浪费了一年半载的光阴。

唉,我又浪费青春在口水战中了。。。


分享到:
评论
22 楼 jasongreen 2010-01-21  
写的好啊。

关注你,多冒点泡吧。
21 楼 xuyao 2009-12-16  
I'm told that Google employees are being discouraged from using Python for new projects,
which seems silly given how much Python code and Python support comes out of Google.
应该这样翻译吧:我听说gooogle不鼓励员工对新项目使用Python,这听起来很傻,google是用多少的python代码和支持开发搞出来的。
20 楼 jamiesun 2009-12-01  
呵呵,顺便说一声,我现在也是张jiaozhu的fans了。
19 楼 lijihuai 2009-11-27  
走自己的路,让别人去说吧
18 楼 zuroc 2009-11-24  
时光荏苒,岁月留痕
17 楼 mamimoluo 2009-11-24  
呵呵,当年我大学的时候学VC,看过楼主的一片用VC写的绘制曲线的demo。
时间过真快啊,现在你我都毕业了,你又成了python大牛了,呵呵。
16 楼 poshboytl 2009-11-24  
google做应用最考虑的就是性能。。。 它可以为了性能用更多的人更多的钱。。。
而作为startup和普通公司, 考虑最多的是 快速,低成本,敏捷。。 你不用第一天就考虑如果有1亿人访问怎么办。。。。 如果有幸,你真有一天要考虑这个了,那就太恭喜你了, 重写又何妨?
15 楼 zuroc 2009-11-23  

@jythoner 
加论坛聊吧
http://groups.google.com/group/stdyun-vhost?hl=zh-cn

14 楼 jythoner 2009-11-23  
开始卖空间了啊,招聘小工么,免费的:)
我对如何把一个服务器弄成虚拟主机很感兴趣,但是又不知道从何学起,不如我给你们打工,让我学习学习吧
13 楼 Ultraman84 2009-11-22  
最大的可能性
google搞自己的语言
为他的app engine服务
进而为它chrome os服务 实现云计算平台 我认为是这样的
12 楼 poster214 2009-11-21  
从来没有一个 Pythoner 认为 Python 是万能的 -- Python是我们伟大的胶水 -- 倒是有很多Cpper和Javaer认为自己的神是万能的。
在此請教一下,你一個人代表了所有的pythoner?我還說沒有javaer或者cpper認為自己的神是萬能的呢?!
11 楼 yejienihao 2009-11-19  
写自己的代码,让别人瞎扯去吧
10 楼 七猫 2009-11-19  
samwalt 写道
zuroc 写道


再批判一下CSDN,当年误导我钻研C++ Template,浪费了一年半载的光阴。

唉,我又浪费青春在口水战中了。。。




为什么说钻研C++ Template,是浪费青春呢?


学习的成本,带来的代码可阅读性和维护调试的困难有时候超过了他的便利
9 楼 neodoxy 2009-11-19  
会看看CSDN的博客,从不看CSDN新闻
8 楼 andyyehoo 2009-11-19  
这篇新闻真是一惊一乍的,这年头,看新闻都要留心才行的,尤其是csdn的,不然很容易被误导,zuroc同学严谨的作风很好哈
7 楼 zuroc 2009-11-18  
"任何一种(使得开发者)满足这些约束更困难的技术--我认为python就是这一类--都不应该被鼓励使用,除非有什么特别的应用场景,在其他方面使其将功赎罪"
6 楼 hu7363 2009-11-18  
你翻译也有错。
5 楼 samwalt 2009-11-18  
zuroc 写道


再批判一下CSDN,当年误导我钻研C++ Template,浪费了一年半载的光阴。

唉,我又浪费青春在口水战中了。。。




为什么说钻研C++ Template,是浪费青春呢?
4 楼 hhlux 2009-11-18  
beckrabbit 写道
动态语言是为程序员服务的 能够简单快速的写出复杂的应用 都是以牺牲性能为代价的 必须被用在特定的场合 而不是任何场合

学习了.
3 楼 beckrabbit 2009-11-18  
动态语言是为程序员服务的 能够简单快速的写出复杂的应用 都是以牺牲性能为代价的 必须被用在特定的场合 而不是任何场合

相关推荐

    google的python编码规范.pdf

    Google Python 编码规范 本文档是 Google 公司的 Python 编码规范,旨在为 Python 程序员提供一个详细的编码风格指南。该指南涵盖了 Python 语言规则、 Python 风格规则、代码编写风格、注释、类、字符串、TODO ...

    python下载谷歌瓦片地图

    在Python编程领域,下载谷歌瓦片地图是一项常见的任务,尤其对于地理信息系统的开发和数据分析工作。这个场景中,我们关注的是使用Python下载带有标签的谷歌卫星地图,这涉及到地图切片(瓦片)的概念,以及如何利用...

    Python编码规范(Google)

    ### Python编码规范详解(基于Google风格指南) #### 一、概览 Python作为一种广泛使用的高级编程语言,其编码规范对于确保代码的可读性和一致性至关重要。Google作为业界领先的公司之一,发布了一份详细的Python...

    Google SDK Enging for Python

    在IT行业中,Google SDK Engine for Python是一个至关重要的工具,它为开发者提供了与Google的各种服务进行交互的能力。Python作为一门广泛使用的编程语言,以其简洁、易读的语法深受开发者喜爱,而Google SDK ...

    Google+Python+Style+Guide中文版.pdf

    标题《Google Python Style Guide中文版》指的是谷歌公司为Python编程语言编写的一套编码规范。这个规范广泛被Python开发者社区所认可和遵循,它详细规定了代码的格式、排版、命名、注释等方面的规则。这本指南有助...

    Python版我的世界.zip

    《Python版我的世界》是一个基于Python编程语言实现的模拟游戏项目,它允许用户通过编程来构建和探索一个像素化的3D世界,类似于流行的沙盒游戏《我的世界》。在这个项目中,你将学习到如何利用Python的基础知识以及...

    Google Python Style中文版(Google Python编码规范)

    网上收集的Goolge Python编码规范。包含两个版本,Google Python Style Guide中文版_li3p.pdf,Google-python-style-guide中文版_guoqiao.pdf。两份文档内容基本一致,guoqiao翻译的格式比较好,而且带详细书签。

    google python风格规范

    google python风格指南,http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/

    python毕业设计基于事理图谱的事件推理系统项目源码+全部数据.zip

    python毕业设计基于事理图谱的事件推理系统项目源码+全部数据.zip 主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设...

    基于python实现中文事件触发词抽取-命名实体识别项目源码.zip

    基于python实现中文事件触发词抽取-命名实体识别项目源码.zip 代码完整下载可用,确保可以运行。 基于python实现中文事件触发词抽取-命名实体识别项目源码.zip 代码完整下载可用,确保可以运行。基于python实现...

    基于Python的离线Google地图操作实现.pdf

    根据文件信息,本文主要讨论了如何利用Python语言实现对离线Google地图瓦片数据文件的操作,内容涵盖了地图瓦片拼接、视图切换、平移、缩放、鼠标响应和轨迹显示等功能。文中所指的离线地图瓦片,通常是指存储在本地...

    Python-P一种异步事件驱动的编程语言

    Python的GIL(全局解释器锁)限制了同一时刻只能有一个线程执行,所以Python的多线程并不能实现真正意义上的并行。然而,通过协程实现的异步编程可以在单个线程中实现并发,提高系统资源利用率。 6. **异步编程实践...

    google python 教学 课程

    google python 教学 课程,odt 类型文件LibreOffice可以打开(开源免费的office软件,windows上也可以安装),微软的office没有试过能不能打开。

    python我的世界小游戏源代码

    《Python我的世界小游戏源代码》是一款基于Python编程语言和Pygame库开发的模拟"我的世界"风格的游戏。Pygame是Python的一个扩展库,专门用于创建2D游戏和多媒体应用程序。这个项目展示了如何利用Python和Pygame来...

    Google Python 编程规范 PDF(官网整理版)

    Google Python编程规范是一份由Google提供的官方编程风格指南,旨在统一Python编程实践,提升代码的可读性和可维护性。文档包括了对于Python语言规范的详细说明,以及一些编程习惯上的最佳实践。在文档中,对于代码...

    Python中使用PyHook监听鼠标和键盘事件实例

    PyHook是一个基于Python的“钩子”库,主要用于监听当前电脑上鼠标和键盘的事件。这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在Windows平台,所以PyHook也只能运行在Windows平台。 关于...

    python实现调用google

    python实现调用google,里面包含js代码段,python代码段,建议用第三方开发工具pycharm;里面有第三方依赖包,使用前请先pip安装所依赖的安装包,调用入口function.py,直接运行function.py即可

    使用Python 和 Google搜索制作的聊天机器人_python

    在本文中,我们将深入探讨如何使用Python开发一个聊天机器人,并将其与Google搜索功能结合,以增强机器人的应答能力。这个项目将涵盖Python编程、Web接口设计以及利用API进行网络数据检索的基础知识。 首先,Python...

    Python库 | google_api_python_client-1.7.0-py2.py3-none-any.whl

    《Python库:google_api_python_client-1.7.0-py2.py3-none-any.whl详解》 在Python的世界里,库是开发者的重要工具,它们提供了丰富的功能,帮助程序员高效地完成各种任务。今天我们将深入探讨一个名为`google_api...

Global site tag (gtag.js) - Google Analytics