作者 Bruce Eckel 翻译 喜来乐哈哈
原文 http://www.artima.com/weblogs/viewpost.jsp?thread=196792
在这里您可以找到大会的所有报告。把鼠标停在某个报告上,将显示一个说明框,里面可能会有它的笔记,录音或者录像。要是您没有看到,可能您还要等几天或者几个星期。
一孩子一笔记本电脑(One Laptop Per Child)
Ivan Krstic是一位软件构架师和哈佛大学的研究员。他主管一孩子一笔记本电脑项目中的信息和安全体系结构。 他向大家介绍了这个项目, 介绍了他们面对的一个又一个几乎不可能克服的困难,以及他们怎样克服这些困难。他带来了几台电脑,大家可以参观笔记本电脑的具体样子。
除了一些底层驱动类的代码,这个项目的所有软件都是用Python写的。包括文件系统。通过按键盘上的一个"查看源代码"按钮,小孩可以查看各种程序的源代码,甚至修改源代码。
Ivan正在寻找可以帮助他们的人,全职的或者实习的都可以,他们计划8月份开始交货。我很想抽出几个星期的时间去帮助这个项目。我认为这是一个改变时间的项目。
在接下来的一个早上,Adelle Goldberg (著名的Smalltalk专家)报告了美国教育界和世界教育界面临的困难。它混乱的超出我的想象。一孩子一笔记本电脑项目将帮助孩子更好的学习,即使教育系统是如此的混乱。我希望这个项目可以促进世界上的教育系统的改进。您可以读读Neal Stephenson的小说"The Diamond Age"(个人认为它比"Snow Crash"更好),您会更深刻的理解这个项目的意义。
Adelle介绍的奇闻之一是,一个学校有的班级有两台电脑,有的只有一台电脑. 学生轮着到电脑室里练习。他们发现只有一台电脑的学生做的要更好一些。因为只有一台电脑的班级是两个学生一块练习,他们会相互帮助。Adelle指出在很多情况下我们现有的教育体系没有培养甚至抑制了学生相互帮助的能力。哎. 这一点让我们想到,很多管理层和程序员经常认为结对编程(pair programming)是不可能的。
译者注:
一孩子一笔记本电脑是MIT和一些公司(包括Google)发起一个非盈利项目,目的是制造10亿台价值约100美元的笔记本电脑,主要是帮助一些贫穷国家里6岁以上的孩子学习电脑。通过组装现有的硬件和软件,建立教育学习平台XO。除了部分硬件,其他硬件和所有软件都来之开源社区。一个修剪过的Linux内核(基于Red Hat的Fedora),用Python开发的GUI和窗口管理器,所有的应用软件都是用Python写的。
Python的它山之石
- Extension methods/Open classes
- Multicore Concurrency (like Erlang?)
- Better support for metaclass programming. It has gotten better in Python, but it still requires an intellectual leap -- to the point that many Ruby programmers don't think metaclass programming is possible in Python.
- XML Direct Support (or more trivial). Groovy has XML support that allows you to completely treat XML as an object tree -- you don't have to see or type a single angle brace. The inclusion of elementree has helped the situation, but I like the idea of being completely shielded from XML.
- Macros -- a'la Lisp. This might throw open the door to tremendous power. I've never seen a Lisp macro, but I've heard Lisp programmers wax poetic about them.
- Restricted Execution (sandbox). Similar to Java's applet sandbox. Might allow an applet-like mechanism for Python on the web.
- Forking Interpreter/Cached Interpreter. A potential way to deal with the concurrency issue, if it's very fast to start up a new interpreter in a separate process.
- Improve Interprocess Communication. (Posh?)
- Built in application packager. It would be really helpful to be able to have zero-configuration, one-button creation of an application distribution.
- Direct support for useful Idioms/Patterns. For example, the reactor pattern has direct support in the form of the asyncore library.
- Trigger SQL from SELECT, etc. Take inspiration from C# Linq query expressions, which look like list comprehensions for data selection. Database programming becomes fully integrated into the core of the programming language.
- Agents/Actors. This may have some support through Pygame extended agent. Apparently an agent framework on top of Pygame. Pyro -- Python Remote Objects -- apparently has some agent behavior.
- Precompiler for domain-specific languages -- library and other tools. It would be nice to have some kind of support for creating DSLs in the way Ruby does. This could be a precompiler, the aforementioned Lisp-style macros, or something else. IPython is embeddable, and something like that might be a good start.
其他记录
- Crunchy (formerly crunchy frog) is a very impressive way to create interactive tutorials that work inside a browser (for full functionality, requires Firefox).
- I saw a very impressive lightning talk about a new game and multimedia library from Pyglet. This apparently uses ctypes to directly connect to the built-in operating system facilities on Linux, Mac OS X and Windows. Looks quite promising.
- IronPython gets around the global interpreter lock. So you can create fully threaded programs that run in true parallel on multiple cores using IronPython. It also provides an easy interface to Windows Forms.
-
ctypes are built into Python 2.5. These allow fairly easy connection to C dlls. This provides a way to reuse C libraries, but it also seems like a good way for speed optimizations. Numpy supports ctypes. There's also COMtypes, which is a Win32 COM wrapper. Swig seems to have improved, as well (but doesn't support nested C++ classes).
- Bazaar-vcs.org. A new distributed version control system. The next step up from subversion.
- Trac (written in Python) has a plugin framework, might be useful as an example plugin architecture.
- Enthought: SciPy, visualization support.
- Itertools talk. Very powerful stuff here. Look for Itertools recipes. Talk slides at http://us.pycon.org/common/talkdata/PyCon2007/028/IteratorsInActionWithNotes.pdf
- It seems likely that TurboGears and Pylons will merge. This looks like a good thing.
- Pylab has good plotting support. Also Matplotlib.
- There's a 300-page book out soon about Numpy (Numerical python).
- Checking tools: Pychecker, Pylint, pyflakes.
- The Zeroconf Python library uses multicast DNS to broadcast configuration information among machines. Also see mod_rendevous.
- Guido's current project information can be found by looking him up on Google video.
- Pymock appears to be a very powerful mock object framework.
- Nose: discovers and runs unit tests. Eliminates unit test scaffolding. Also provides code coverage, and uses the hotshot profiler.
- Nosy: "cruise control" style system for Nose tests.
- Stackless python seems to have evolved significantly. Gained many benefits from PyPy project (Python written in Python). It doesn't seem to get around the global interpreter lock problem, and thus is a code organization technique rather than allowing true parallel programming on multiple processors.
- RPython allows you to write Python that is compiled to C, in order to execute 30-40 times faster.
Pycon 2008将于2008年3月14-18日在Chicago举行。
全文地址
http://www.blogjava.net/xilaile/archive/2007/03/19/104645.html