现在的位置: 首页 > 综合 > 正文

PyCon 2007回顾

2013年01月10日 ⁄ 综合 ⁄ 共 2851字 ⁄ 字号 评论关闭
 这篇Blog是我在从Pycon返回的飞机上写的。我真有些筋疲力尽的感觉,不过这是一个令人振奋的星期。本次大会远远超出了我(包括其它人)的所有预期:出席的人数增加了40%、精彩的基调演讲和不可思议的"嗡嗡声"(译注:buzz,不知所指为何)。

除了基调演讲,我没有听太多的报告,但是我听说有许多不错的。我参加得最多的报告是由Jim Hugunin所作的关于IronPython项目的进展。(IronPython是Jim为微软CLR平台所做的Python实现,这个项目是Jim在加入微软前创建的开源项目,现在由一个小团队进行开发。它是微软仅有的几个开源项目之一。)很感谢巫师莫林的缺席(译注:原文The wizard Merlin was thankfully absent),他的地方被一些有意思的演示所替代,Jim通过Python脚本来控制一个乐高(Lego)机器人。IronPython 1.1 Beta已经发布了,它与Python 2.4兼容,并且通过命令行的开关加入了部分2.5的兼容特性。

星期五早晨的基调演讲人Ivan Krstic对非盈利的OLPC(One Laptop Per Child)项目作了汇报,这个项目的目标是生产一亿台成本在100美元的笔记本电脑,将它们发给那些贫穷国家6岁以上的孩子们(with the cooperation and at the expense of participating countries)。第一批笔记本(用于相对比较小的试验性项目,如象巴西这样的地方,我想还有泰国)希望可以在八月份装运。这个项目是由MIT和许多工业伙伴(包括 Google)来发起的,它把现成的硬件和定制的软件组件结合成一个教育平台,称之为XO。尽管一些XO的硬件是私有的,但是所有的软件都是开源的:底层是由一个裁剪过的Linux版本构成,在它上面,用Python开发了一个新的GUI和窗口管理器,并且教育应用软件也是用Python写的。XO的硬件设计集中在极其的坚固、稳定和低耗上。预期的使用环境不能很好的为笔计机提供支持,并且环境会经常变得恶劣:温度高于50度,没有正常(经常没有)的电力供应。

Krstic赠送了几台机器(它们是早期测试产品),并且我是其中一名幸运儿。我很有可能会给它做个框挂在墙上。不过鼠标板件存在问题,它会造成忽略一些“向上”的包,使得它相当难用(这个问题当然会在下一代产品中被解决)。与现今商用笔记本(价格是10倍)相比,它毫无竞争力。几乎它的每件东西都很小:键盘(只适合孩子的小指头)、屏幕(不过分辨率足够,并且有双模式用于大白天观看)、内存(我的有120M,是最终产品的一半)和闪存(500M)。处理器至少运行在400MHz。不错的方面,它运行了一个完整的Linux内核,这个内核带有许多实用工具,拥有自配置的WiFi无线网,三个USB插槽,数码像机、麦克、立体声扬声器、音频输入输出端口,并且(一旦他们调节好电源管理)预计一次充电可以运行22个小时。重量小于1公斤!

软件离完成还差得很远。只有GUI和窗口管理器的早期版本可用,还有几个小应用演示程序:聊天室软件、视频软件、两个游戏、和Web浏览器,就这些。计划将要使用Python来编写所有的应用程序(除了Web浏览器),并且有一个“查看源码”的按钮将用来显示当前正在运行的应用程序的Python源代码。在Smalltalk的传统中(Alan Kay在OLPC委员会,已经同意这个项目使用Python),用户能够编辑运行中的应用程序的任何部分,并且在应用程序的行为中立即看到修改效果。(一个版本管理仓库可以从灾难的修改中回滚。)这就是Krstic希望我帮忙的地方:他希望我可以为Python实现这个特性。在大会期间我就开始了,我重新实现了python的reload()函数,它可以在合适的地方为类和函数打补丁。尽管这个小组件还有很长的路要走,这项工作进度的检查点(checkpoint)我已经提交到Py3K标准库的svn中去了。没有什么其它的OLPC工作需要描述的了。他们使用GIT进行源码的版本控制,所以我还要学一学。

这个基调演讲有着强烈的教育主题:在星期六早晨,Adele Goldberg作了一场热情洋溢的关于改进美国教育系统的答辩会。40年前,美国是世界的No. 1,但在今天是第19名。公共学校系统卡在了政治僵局之中,改变几乎不可能实施,这是由于它被强加了许多的限制,而这些限制来源于联邦法规、担心且好打官司的父母、恐吓、资金缺乏,和其它许多负面因素。而且似乎让人觉得在课堂上的大多数计算机的使用变成了灾难:在许多学校计算机实验背后的高手们并不理解普通课堂的情形。例如,计算机没有足够电源地暴露,很有可能被偷,或锁在一个安全的地方而不是被使用!学校彻底地害怕互联网,而互联网被看成黄毒和不良影响的来源。我希望Adele可以把她的幻灯放在网上,里面有许多有意思的数据。

在星期日早晨,Robert Lefkowitz奉献给我们涉及各个年龄阶段读写能力的历史,并且(作为他的习惯)提出的问题要多于答案。

对我个人来说,这场大会意味着Python 3000项目(即Py3K或Python 3.0)的到来。然而在去年关于这个主题的基调,我主要展示了相关的提案、过程和计划。而今年我可以展示许多已完成(包括一些未完成或有争议)的特性,包括alpha和最终发布日期(分别为2007年六月和2008年)的具体时间表,并且最重要的是有一个定义良好的迁移策略。迁移还是我在大会上所作的几个热点讨论的主题,例如与一组Twisted开发者(由Glyph Lefkowitz率领和Steve Holden进行调节)一起讨论实现象Twisted这类项目的转换的最好的方法,这类项目必须要支持几个不同的Python版本(当前是2.3, 2.4和2.5)。最好的策略是当2.6出来时,开始增加2.6到支持版本中,然后逐渐地放弃对老版本的支持并增加对3.0的支持。2.6的使用(将在2008年四月左右发布,也就是在3.0之前)将是这一策略的关键。

Python 2.6将包含各种各样的兼容性特性,比如可选的运行时警告(当一个被使用的特性将被放弃或在3.0中改变时),还有从future中导入某种3.0特性(例如 from __future__ import dict_views,已经由Thomas Wouters在一个分支中实现了)的能力。一旦一个程序在2.6中被警告,一个可以识别语法结构但是不能执行类型推理或数据流分析的源码-源码转换工具可以用来将其转换为3.0语法,虽然不能象在从2.x转换到2.(x+1)那样不用修改代码,但很有可能在3.0下会运行正确。推荐的开发模式是:在2.6下开发,在定期的原则下,进行到3.0语法的自动转换并且在3.0下进行测试。当在3.0下发现问题时,应该可以修改传入转换工具的输入以便帮助它在3.0下进行正确地翻译。

我将在后面的片段中blog更多这方面的东西。

抱歉!评论已关闭.