Please join us in congratulating Larry Wall and James Gosling, recipients of the 1996 Dr. Dobb's Journal Excellence in Programming awards. Selected by a special Dr. Dobb's Journal editorial committee, Larry and James are being honored for the significant contributions they've made to the advancement of software development.
Befitting this month's focus on computer languages, both individuals are being recognized for their efforts in developing languages used by millions of programmers worldwide. Larry is the author of Perl (short for "Practical Extraction and Report Language"), and James is the chief architect of Java.
Perl, the general-purpose scripting language Larry created nearly a decade ago, has been described as the "Swiss-Army chain saw" of UNIX tools. Over time, it has become the language of choice among system administrators for quickly cobbling utility programs together. However, it is the dramatic popularity of the Internet and World Wide Web that has thrust Perl into the forefront of professional programming. Much of the back-end processing on Web servers is done with CGI scripts written in Perl. Still, Perl's use in mission-critical applications ranging from financial transactions to aeronautical design is a far cry from Larry's original intent of using Perl simply as a tool for manipulating text, navigating files, invoking external commands to obtain dynamic data, and printing out easily formatted reports. Perl currently runs on DOS, Macintosh, Amiga, VMS, OS/2, Windows, and many flavors of UNIX.
Interestingly, Larry didn't start out as a programmer. He's a linguist by training, having attended both the University of California at Berkeley and UCLA. Larry has written many free programs, including the rn news reader and the patch program. He's also known for metaconfig, a program that writes Configure scripts. With Randal Schwartz, Larry authored the 1990 book Programming in Perl.
Larry's initial design allowed Perl to function as a data-reduction language, but Perl also became a convenient file-manipulation language, with facilities for file renaming, deleting, moving, and attribute-changing. As the language developed, Larry added features to make Perl a useful process-manipulation language: On the appropriate operating system, you can easily create and destroy processes and control the flow of data between them. Perl also became a powerful networking language allowing access to resources on local networks and on wide-area networks, including the Internet. A number of Web servers are written in Perl. The smallest Web server, TinyHttpd, consists of 190 lines of Perl. A full-featured server, Plexus, offers multithreading and authentication in 800 lines of Perl.
In addition to his duties as a Sun Fellow and corporate vice president, James Gosling was the lead engineer on the Java project. As Arthur van Hoff, author of the Java compiler, recounted in one of the first published articles on the language ("Java and Internet Programming," DDJ, August 1995), James and a small team of Sun engineers began work on what became Java in 1990. Originally, James was developing software for the consumer electronics market, but he quickly recognized that the new language also addressed many of the issues related to software distribution over the Internet.
Still, Java isn't James' only claim to fame. He is a legendary figure among UNIX programmers, having written the first C version of Emacs and for doing the Postscript-based dynamic windowing environment for SunOS known as "NeWS." As Ray Valdes observed in a Dr. Dobb's Developer Update (August 1995) article on Java, "the maturity and experience of Gosling's vision is apparent to those ... who've programmed extensively in Java. From the start, the heft and balance of the language feels right, and continues to wear well over time."
James first became involved in distributed computing upon his arrival in 1984 at Sun. Before joining Sun, he built a multiprocessor version of UNIX, the original Andrew window system and toolkit, and several compilers and mail systems. James received a BS in computer science from the University of Calgary, Canada, and a PhD from Carnegie-Mellon University.
Java is a simple, object-oriented, multithreaded, garbage-collected, secure, robust, architecture-neutral,
portable, high-performance, dynamic language that's similar to yet simpler than C and C++. In designing
the language, James has come up with some clever tricks to increase performance while preserving
platform independence; for example, a technique for the runtime binding of symbolic references to
numeric offsets by overwriting the bytecode stream with equivalent
Since its introduction last summer, Java has grown from being a language specification to a complete development environment that includes a compiler, interpreter, debugger, applet viewer, language run time, class libraries, and more. Although the Sun Java Development Kit only runs on Windows NT/95 and Solaris 2.3 (or higher) at this writing, the language itself has been ported to Linux, DEC Alpha, Amiga, NeXT, Windows, SunOS, and the like. Sun also has committed to porting Java to the Macintosh.
It is significant to the Dr. Dobb's editorial committee that both Perl and Java are, for the most part, based on the principles of openness and cooperation that embrace the guiding spirit of Dr. Dobb's Journal. Perl source code is freely available, under the terms of Larry's "Artistic License." Java binaries, on the other hand, can be redistributed free of charge in both commercial and noncommercial applications. Furthermore, the Java source is available at no charge for educational, research, evaluation, and noncommercial porting purposes.
In addition to being acknowledged at the Software Development '96 Conference in San Francisco, Dr. Dobb's Journal is granting $1000 scholarships in Larry and James' names to university programs of their choice. At Larry's behest, the grant will be given to the the computer-science department at Seattle Pacific University. James has requested that his award be granted to the University of Calgary Alumni Fund.
Please join us in congratulating both Larry and James. Through their work, they've reminded us that a mix of technology, innovation, vision, and a cooperative spirit continue to be fundamental software-development principles.