作者 Bruce Eckel 翻譯 喜來(lái)樂(lè)哈哈
原文 http://www.artima.com/weblogs/viewpost.jsp?thread=196792
在這里您可以找到大會(huì)的所有報(bào)告。把鼠標(biāo)停在某個(gè)報(bào)告上,將顯示一個(gè)說(shuō)明框,里面可能會(huì)有它的筆記,錄音或者錄像。要是您沒(méi)有看到,可能您還要等幾天或者幾個(gè)星期。
一孩子一筆記本電腦(One Laptop Per Child)
Ivan Krstic是一位軟件構(gòu)架師和哈佛大學(xué)的研究員。他主管一孩子一筆記本電腦項(xiàng)目中的信息和安全體系結(jié)構(gòu)。 他向大家介紹了這個(gè)項(xiàng)目, 介紹了他們面對(duì)的一個(gè)又一個(gè)幾乎不可能克服的困難,以及他們?cè)鯓涌朔@些困難。他帶來(lái)了幾臺(tái)電腦,大家可以參觀筆記本電腦的具體樣子。
除了一些底層驅(qū)動(dòng)類的代碼,這個(gè)項(xiàng)目的所有軟件都是用Python寫(xiě)的。包括文件系統(tǒng)。通過(guò)按鍵盤(pán)上的一個(gè)"查看源代碼"按鈕,小孩可以查看各種程序的源代碼,甚至修改源代碼。
Ivan正在尋找可以幫助他們的人,全職的或者實(shí)習(xí)的都可以,他們計(jì)劃8月份開(kāi)始交貨。我很想抽出幾個(gè)星期的時(shí)間去幫助這個(gè)項(xiàng)目。我認(rèn)為這是一個(gè)改變時(shí)間的項(xiàng)目。
在接下來(lái)的一個(gè)早上,Adelle Goldberg (著名的Smalltalk專家)報(bào)告了美國(guó)教育界和世界教育界面臨的困難。它混亂的超出我的想象。一孩子一筆記本電腦項(xiàng)目將幫助孩子更好的學(xué)習(xí),即使教育系統(tǒng)是如此的混亂。我希望這個(gè)項(xiàng)目可以促進(jìn)世界上的教育系統(tǒng)的改進(jìn)。您可以讀讀Neal Stephenson的小說(shuō)"The Diamond Age"(個(gè)人認(rèn)為它比"Snow Crash"更好),您會(huì)更深刻的理解這個(gè)項(xiàng)目的意義。
Adelle介紹的奇聞之一是,一個(gè)學(xué)校有的班級(jí)有兩臺(tái)電腦,有的只有一臺(tái)電腦. 學(xué)生輪著到電腦室里練習(xí)。他們發(fā)現(xiàn)只有一臺(tái)電腦的學(xué)生做的要更好一些。因?yàn)橹挥幸慌_(tái)電腦的班級(jí)是兩個(gè)學(xué)生一塊練習(xí),他們會(huì)相互幫助。Adelle指出在很多情況下我們現(xiàn)有的教育體系沒(méi)有培養(yǎng)甚至抑制了學(xué)生相互幫助的能力。哎. 這一點(diǎn)讓我們想到,很多管理層和程序員經(jīng)常認(rèn)為結(jié)對(duì)編程(pair programming)是不可能的。
譯者注:
一孩子一筆記本電腦是MIT和一些公司(包括Google)發(fā)起一個(gè)非盈利項(xiàng)目,目的是制造10億臺(tái)價(jià)值約100美元的筆記本電腦,主要是幫助一些貧窮國(guó)家里6歲以上的孩子學(xué)習(xí)電腦。通過(guò)組裝現(xiàn)有的硬件和軟件,建立教育學(xué)習(xí)平臺(tái)XO。除了部分硬件,其他硬件和所有軟件都來(lái)之開(kāi)源社區(qū)。一個(gè)修剪過(guò)的Linux內(nèi)核(基于Red Hat的Fedora),用Python開(kāi)發(fā)的GUI和窗口管理器,所有的應(yīng)用軟件都是用Python寫(xiě)的。
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://m.tkk7.com/xilaile/archive/2007/03/19/104645.html