你所需要的,不仅仅是一个好用的代理。
在PayPal的编程文化中存在着大量的语言多元化。除了长期流行的C++和Java,越来越多的团队选择JavaScript和Scala,Braintree的收购也推出了成熟的Ruby社区。
有一种特别的语言,它在eBay和PayPal有很长的历史,在开发者心中的地位也在日渐提高,这种语言就是:Python。
多年来,Python一直得到eBay开发人员的广泛使用和支持。甚至在官方管理层支持以前,技术人员就开始使用Python,并从中受益。多年前,我加入PayPal,并选择Python来编写内部应用程序,但我发现在PayPal的一些产品中,Python代码存在已有15年之久了。
现在,Python掌控了超过50个项目,包括:
eBay/PayPal的Python社区,2011年只有25名工程师,而2014年这个数字已经超过了260。接下来的一系列文章,我会详细介绍促进Python社区发展的举措和技术。对于这篇介绍性文章,我会专注于人们对Python的10个误解,它们中大多数,我都已经在eBay和PayPal的企业级环境中对它的真相予以揭穿。
误解1: Python是一门新的语言
今天,伴随着大多初创企业使用的使用,同时儿童也在进行学习,我们不难发现这种误解仍然在持续。事实上,Python已经有超过23年的历史了,它的第一个公开版本发布于1991年,比HTTP 1.0早了5年,比JAVA早了4年。Python一个著名的早期使用的例子是1996年Google的第一个成功的网络爬虫。
如果你对Python悠久的历史感到好奇,Python语言的创立者吉多·范罗苏姆(Guido van Rossum)会向你详细讲述关于Python的整个故事。
误解2:Python没有被编译
Python不像C++需要单独的编译器工具链,它更像Java和其它编译型语言,会将代码编译成字节码。进一步的编译步骤,如果有的话,是在程序运行时决定的,并由CPython, PyPy, Jython/JVM, IronPython/CLR或其它进程虚拟机来完成。更多信息参见误解#6。
PayPal和其它地方的一般原则是,安全不能依靠编译状态的代码,更重要的是使运行环境更安全。因为在本质上,每种语言都有反汇编器或可以被破解的特性,这一特性会破坏程序的保护状态。看一看下一个误解,我们能够了解更多Python的安全内容。
误解 3:Python不安全
Python与轻量级的密切关系也许不会让它看起来非常强大,但恰恰是这种直觉会给人误解。安全的一个核心原则是尽可能小的呈现目标。大系统趋向于过度集中化的行为,以及对开发者理解力的削弱,使得它是反安全的。Python的简单高效轻松的解决了这个问题。此外,CPython通过简单的、稳定的和易于审计的虚拟机来解决这些问题。事实上,在Coverity软件最近的一个分析中,CPython得到了最高的质量评价。
Python还具有一系列广泛开源的、行业标准的安全库。在PayPal,我们对安全和信任丝毫不敢马虎。我们发现,将hashlib,PyCrypto和OpenSSL结合在一起,通过PyOpenSSL,以及我们自定义的捆绑,已经覆盖了PayPal的各种安全和性能需求。
综合这些原因,我们已经可以看到一些在PayPal(eBay)的应用安全组中使用Python并被快速采用的例子。下面给出一些在PayPal最重要的环境中利用Python的基于安全应用的例子。
另外,很多由Python构建的以运营为导向的系统都暗含安全特性,例如防火墙和连接管理。将来,我们肯定会尝试将PayPal python的安全事项进行深入结合。
误解4:Python是一门脚本语言
Python确实可以作为脚本语言使用,而且还是这个领域的先行者之一,因为它语法简单,支持跨平台,并且普遍存在于Linux,Macs和其它Unix机器中。
事实上,Python可能是通用编程语言中最灵活的技术之一。下面列出一部分例子:
更不用说大量的网站和网络服务器。事实上,PayPal工程师似乎都有一个嗜好,喜欢从事一些基于Python的门户网站的开发,如YuTube和Yelp。从官方的名单中,可以列举出更多关于Python成功的应用。
误解 5: Python是弱类型的
强大的动态类型是Python类型系统的特点。维基百科上有更详细的解释。
这不是比赛,但做为一个有趣的事实,Python具有比Java更强的类型系统。Java的原语和对象有各自的类型系统,Null存在于一种灰色地带。而另一方面,Python有一个统一的强类型系统,None这种类型也有明确的定义。此外,Java虚拟机本身也是动态类型,它可以追溯到SUN公司收购的Smaltalk虚拟机的实现。
Python的类型系统非常友好,但对于企业的使用,还有更需要关注的问题。