这篇文章有点长,这并非声明观点,只是对我一路走来的反思。我很久以前就离开了Python世界,但我从没机会说个再见。 在我多年前离开Python的时候,无限感慨,不太承认我不会再回来。当我对PyCon2013的提议被拒绝时,我非常泄气并且感觉到我不再是Python社区的一员了。 Python社区是我第一个也是唯一一个参与的开源社区。参与到Python里是经过深思熟虑的决定。在大学里我对Scheme和Smalltalk感兴趣。这些语言很高端大气很有意思,但是很难找到实际用户。Scheme的库一直不太完善,社区也不太活跃。而与之相反,Smalltalk是能实际应用的,它是为喜欢创造东西的人创造出来的。但是Smalltalk从原来知道现在一直是它自己的世界。它在文化和技术上是前互联网,前开源和前在线社区。尽管Smalltalk环境和语言有好的东西,可是它仍然无法满足这些富有潜力的需求,尽管它试着去适应。 在我大学生涯的尾声,我有意识的去寻找一个新的钻研方向。我折腾了Perl和C,但它们不适合我。然后我发现了Python,它足够好了我也就没有去找更好的语言了。我并没有像原来喜欢Scheme和Smalltalk那样喜欢Python——Scheme就像是为我打开了世界的大门,而Smalltalk是一个神秘的世界,就像突然从远古的废墟来到先进的文明。Python相对比较实用——我在那时候并不是兴致勃勃的,我想要做点东西出来。 然后我用Python做了很多东西。我当时在做web开发,而我的热情更多的是创造一个工具来做项目而不是直接做项目。我在那段时间做了一些很酷的产品,不只是库,但是因为一些原因,我只想一些更小的模块。并且我发现了一个Python里的社区。 想当年我贡献了Webware,感觉跟现在Python Web开发完全不是一个时代的东西。我写了SQLObject,这是我的第一个感觉到:我去!有人居然在用它,而我不太确定对它的感觉的这么一个库。但是SQLObject探索了很多元编程的概念并且这在当时的Python世界里是相当新奇的。与此同时,维护它是个沉重的负担。花了我太多经历的来解决问题,当我的兴趣完全消退之后,我把它交给Oleg来更好的维护它。这后来成为了我一个经常做事的模式。SQLObject帮助了下一代的ORM库SQLAlchemy的产生,这对我来说已经够不错了。 接下来就是WSGI,它精巧的功能基础让我很兴奋。我在Paste里创建了整个Web框架工具集。只有很少人理解我用Paste在做什么。一些人喜欢Ben Bangert能够看到代码的本质,并将其以可用工具的方式把它带到世界上。Python Web框架在那时候还很糟糕,最后使用一个统一的方法是更加成功的技术,而不是像我在做Paste的时候自己造轮子。我还不确定从那有什么样的教训。没有总的教训,但是对使用场景有了更多的理解。并且理解了你对一个问题能够做些什么。我感觉我现在理解了丰富的技术视野和远见的重要性,我还更加学到了如何在正确的环境里组合与协调一群对的人来走向成功。 话说回来我感觉我达到了使用Python编码10000小时的标准。我写了WebOb,从Paste里吸取了教训对于设计库有了更好的直觉。我仍然觉得它在将HTTP映射为Python方面是最棒的。其他的库包含更多的Web开发方面的东西,或者有更好的文档和更多的用户,但从一个特别的角度来看,我仍然为WebOb感到骄傲。它对于很多人在构建Web框架的探索中是很重要的一块。其他与它同时期的库有lxmlhtml,比较小的如WebTest,ScriptTest,MiniMock,Tempita。那段时间就像是清空了我的系统,上传了一堆我的想法。 但我最成功的工具是virtualenv和pip。这是我投入了最多感情的作品。它们是关于:处理部署时的麻烦(virtualenv),pip能让人不再抱怨setuptools 里的easy_install。我不确定我是否埋怨这些工具在使用率上的很不容易的成功,或者它们在某种意义上是用户可见的工具而不是库,亦或是我不喜欢做这样的东西因为别人也同样不喜欢所以才会有这样的空白让我来填补。 |