Dr. Dobb's Excellence in Programming Awards are presented annually to individuals who, in the spirit of innovation and cooperation, have made significant contributions to the advancement of software development.
The recipients of the 1999 Dr. Dobb's Excellence in Programming Awards are no less outstanding when it comes to technical innovation and support of open communication in the programming community. As creator of the Python programming language, Guido van Rossum has given software developers a tool that addresses many of the shortcomings of more well-known and mainstream languages. On the systems side, Donald Becker has contributed extensively to Linux's networking code and played a pivotal role in advancing low-cost, high-performance parallel computing as the chief investigator of the Beowulf Project.
Python, an interpreted, interactive, object-oriented programming language, has its roots in a language called "ABC." (For the curious, the moniker "Python" derives from "Monty Python.") ABC, which Van Rossum helped develop in the 1980s, was originally created to teach novices how to program and as an effective tool for occasional programmers. Although it was freely available and elegant, ABC never caught on, in part, Van Rossum speculates, because of the difficulty in adding new primitive operations. Consequently, when Van Rossum decided to build an interpreter for a new scripting language in 1989, his first design decision was to avoid this kind of mistake.
Still, Python inherits many of ABC's features that make it an approachable language for programmers of all levels. In short, Python's major features include its support for object-oriented development and powerful programming constructs, extendible and embeddable architecture, and clear syntax. Python makes it extremely easy to build complex data structures out of objects, lists, dictionaries, and the like. It is particularly useful for system administration, building GUIs, scripting, database programming, and rapid prototyping. Python is portable, running on UNIX, Windows, Macintosh, Amiga, BeOS, and other systems. And it is freely available.
Van Rossum started developing Python while working at CWI, the National Research Institute for Mathematics and Computer Science in the Netherlands. While there, he worked on the Amoeba project, a distributed operating system that was the brainchild of Andrew Tanenbaum and jointly developed by CWI and the Computer Systems Group of the Department of Computer Science of the Free University of Amsterdam. It was at this time that Van Rossum started Python development.
Van Rossum is currently a group leader and system architect for the Corporation for National Research Initiatives (CNRI), a nonprofit organization in the U.S. that undertakes research and development for the National Information Infrastructure. At CNRI, he is working on a system for mobile agents called "Knowbots" (http://www.cnri.reston.va.us/home/koe/) that uses Python as its main programming language. CNRI currently supports Python development, including coordinating the Python Software Association (http://www.psa.org/) and Python Consortium (http://www.python.org/). Van Rossum is also the coauthor (with Aaron Watters and Jim Ahlstrom) of Internet Programming With Python (IDG Boooks, 1996). Much of his recent interest involves JPython, a complete Python implementation written in 100 percent pure Java which compiles Python source code directly to Java bytecode. The resulting class files can be run in any browser that is JDK 1.1 compliant.
One of the challenges in the realm of scientific computing is to efficiently and affordably handle large data sets. This is precisely the problem faced by researchers participating in the Earth and Space Sciences Project at the Goddard Space Flight Center. To tackle the problem, Donald Becker and Thomas Sterling launched the Beowulf Project (http://beowulf.gsfc.nasa.gov/beowulf.html), a cluster computer consisting of high-performance PCs built from off-the-shelf components, connected via Ethernet, and running under Linux. Ultimately, the goal of the Beowulf approach was to achieve supercomputer (gigaflop) performance at PC prices.
To implement such a system, however, Becker, who is a staff scientist with the Center of Excellence in Space Data and Information Sciences (or CESDIS, part of the University Space Research Association, a nonprofit consortium of universities that sponsors space-related research), had to come to grips with Linux's unstable networking capabilities, and the lack of Linux support for off-the-shelf network cards. Consequently, Becker ended up writing enhancements to the kernel network subsystem to support faster I/O on high-speed networks, device drivers for countless Ethernet cards (see http://cesdis.gsfc.nasa.gov/linux/drivers/index.html), and a distributed shared memory package.
Becker wasn't a stranger to Linux, networking, or parallel computing when he launched into Beowulf, however. After receiving a degree in electrical engineering and computer science from the Massachusetts Institute of Technology, he worked for Harris Corp. as an engineer performing parallel computing research. From there he moved to the Institute for Defense Analysis's Supercomputer Research Center where he first encountered Linux and its lack of network support. Then in 1994, Becker joined CESDIS where he began his Beowulf work.
Although much of his initial work was in support of Beowulf, the entire computing community ultimately benefited from Becker's efforts. Linux would not have achieved the level of success and acceptance it has today had it not been for Becker's work, which resulted in a Linux with robust, stable networking and support for "every shipping Fast Ethernet chipset." As for Beowulf, dozens of university and research groups have now built their own Beowulf clusters, ranging from the original 16-node cluster running on Intel DX4 processors connected by channel-bonded 10-Mbits/sec Ethernet, to Avalon, a 19-gigaflop cluster of 140 Alpha processors that was built by the Los Alamos National Laboratory and that cost only $150,000.
Along with other members of his team at Excellence in Space Data and Information Sciences, Becker was the recipient of the IEEE Computer Society 1997 Gordon Bell Prize for Price/Performance "in recognition of their superior effort in practical parallel-processing research." Becker is the coauthor, along with Thomas L. Sterling, John Salmon, and Daniel F. Savarese of the recently published How to Build a Beowulf: A Guide to the Implementation and Application of PC Clusters (MIT Press, 1999).
Please join us in honoring Guido van Rossum and Donald Becker. Once again, they remind us that a mix of technology, innovation, vision, and cooperative spirit continue to be fundamental to advancement in software development.
Recipients of previous Dr. Dobb's Excellence in Programming Awards include:
- Alexander Stepanov, developer of the C++ Standard Template Library.
- Linus Torvalds, the force behind the Linux operating system.
- Larry Wall, the author of the Perl programming language.
- James Gosling, chief architect of Java.
- Ronald Rivest, an educator, author, and cryptographer.
- Gary Kildall, a computer pioneer in the areas of operating systems, programming languages, and user interfaces.
- Erich Gamma, Richard Helm, John Vlissides, and Ralph Johnson, authors of the seminal Design Patterns: Elements of Reusable Object-Oriented Software.
Jonathan is editor-in-chief of DDJ and can be contacted at [email protected].