前言

关于 Harri PasanenRobin Dunn 以及wxPython的传奇故事确切的开始时间是1995年。本书的合著者之一,Robin 写下了下面这段关于wxPython 的文字,而我们决定让故事由参与者自己来讲述,而不是籍由旁人加以引述:

  • 1995年,我所进行的一个项目需要在HP-UX系统上部署一个图形用户界面,但我的老板却同时希望在几周后的一个内部展示会上通过Windows3.1掌上电脑来进行一些演示。因此,我开始搜寻跨平台的C++ GUI开发包来进行原型开发。在那个时候,因为没有Google,要完成这样的工作实非易事。但我还是发现了一些商业化的可选开发 包(今天已经无一幸存)和大量的免费开发包。

    当我正在评估分析哪个免费开发包符合当前的紧急需求,并决定哪个商业产品能够满足我们的长期需求时,我偶然看到了 wxWidgets 网站的术语“Python绑定”(这里“绑定”一词指Python语言和wxWidgets开发包之间的联系。)由于对如何将软件开发包“绑定”到爬虫动物(在此之前,我从来没有听说过Python语言)充满好奇,我顺着这个链接一个个的点击,直到看到“Python 1.2 入门文档”。三个小时后,我从当地的C++倡导者变成了Python的传播者,不断叨扰周边的开发者,向他们展示我的最新发现。

    我开始和芬兰的Harri Pasanen一起致力于推进PythonwxWidgets的绑定(在Edward Zimmerman的协助下,最终形成了众所周知的wxPython 0.2),而不是继续我的原型开发。发行声明的邮件列表归档于此处 我们使它的功能强大到多足以让我能够用Python为老板建造一个原型。但是wxPython的维护和改进工作却是一个噩梦,因为每件事情(包括C++扩展模块代码、Python代理模块、编译系统等等)都是手工完成的,wxWidget的一点点改进都会导致要修改多处wxPython代码,以确保wxPython得到改进或修订。当代码增加上几万行时,这种工作方式变得非常笨拙和琐碎。另一个客观事实是:缺乏一个中心源代码库(那是SourceForge出现之前的时代),因此我们不得不通过电子邮件互相发送代码更新,你可以想象得到这其中的难度。

    大约在此时,我不得不“真正”开始主项目的开发了。在我的支配下,项目开发者们一起进行设计会晤、设定开发期限,从眼中的灵光一现开始,完成整个项目的开发。尽管还可以用Python来进行一些编译及项目的测试脚本,我发现自己又完全回到了C++世界。Harri 也无法在上面投入任何时间了,因此wxPython的开发变得比“爬行”还慢,有时甚至进入了停滞状态。

    1997年,我发现了SWIG(简单封装和接口产生器),并意识到它可以帮助我们解决wxPython项目中困扰已久的所有维护问题。在三、四周的业余时间里,通过使用SWIG,我几乎将wxPython的全部重新实现了一遍,而在此前用手工完成这项工作耗用了我几周的全天时间以及Harri几个月的兼职时间。在转向其他项目一段时间后,我发现wxWidgets 2.0正在积极开发中,而且有了一个全新的架构,因此我不得不重新完成这项工作。但这次,新的架构简化了大量的工作,我仅用了一周的业余时间就完成了!因此,在1998年夏天,第一个“现代版本”的wxPython顺利发布,并从此一直处于活跃开发状态。第一份声明归档于:此处 正如他们所说的,剩下的部分就是传奇故事了。

    必须特别说明的是:SWIG 使得我能够轻松创建和维护成千上百行的代码,因此wxPython的多种功能特性必须感谢David Beazley以及其他项目参与者对SWIG的贡献。

通过此书,我们希望能够与您分享对于wxPython的热情,在轻松开发图形用户界面应用程序方面,它是真正的独一无二的开发包。我们写作的初衷是不但为初学者,也为专业人员建造一项有用的资源。

results matching ""

    No results matching ""