Dynamic Languages Symposium 2005  OOPSLA 2005

Co-located with OOPSLA 2005

In cooperation with ACM SIGPLAN

San Diego, California, USA, October 18, 2005



Invited talks

Why Programming is a Good Medium for Expressing Poorly Understood and Sloppily Formulated Ideas
Gerald Sussman

I have stolen my title from the title of a paper given by Marvin Minsky in the 1960s, because it most effectively expresses what I will try to convey in this talk.

We have been programming universal computers for about 50 years. Programming provides us with new tools to express ourselves. We now have intellectual tools to describe "how to" as well as "what is". This is a profound transformation: it is a revolution in the way we think and in the way we express what we think.

For example, one often hears a student or teacher complain that the student knows the "theory" of some subject but cannot effectively solve problems. We should not be surprised: the student has no formal way to learn technique. We expect the student to learn to solve problems by an inefficient process: the student watches the teacher solve a few problems, hoping to abstract the general procedures from the teacher's behavior on particular examples. The student is never given any instructions on how to abstract from examples, nor is the student given any language for expressing what has been learned. It is hard to learn what one cannot express. But now we can express it!

Expressing methodology in a computer language forces it to be unambiguous and computationally effective. The task of formulating a method as a computer-executable program and debugging that program is a powerful exercise in the learning process. The programmer expresses his/her poorly understood or sloppily formulated idea in a precise way, so that it becomes clear what is poorly understood or sloppily formulated. Also, once formalized procedurally, a mathematical idea becomes a tool that can be used directly to compute results.

I will defend this viewpoint with examples and demonstrations from electrical engineering and from classical mechanics.

Gerald Jay Sussman is the Matsushita Professor of Electrical Engineering at the Massachusetts Institute of Technology. He received the S.B. and the Ph.D. degrees in mathematics from the Massachusetts Institute of Technology in 1968 and 1973, respectively. He has been involved in artificial intelligence research at M.I.T. since 1964. His research has centered on understanding the problem- solving strategies used by scientists and engineers, with the goals of automating parts of the process and formalizing it to provide more effective methods of science and engineering education. Sussman has also worked in computer languages, in computer architecture and in VLSI design.

Sussman is a fellow of the Institute of Electrical and Electronics Engineers (IEEE). He is a member of the National Academy of Engineering (NAE), a fellow of the American Association for the Advancement of Science (AAAS), a fellow of the American Association for Artificial Intelligence (AAAI), a fellow of the Association for Computing Machinery (ACM), a fellow of the American Academy of Arts and Sciences, and a fellow of the New York Academy of Sciences (NYAS). He is also a bonded locksmith, a life member of the American Watchmakers-Clockmakers Institute (AWI), a member of the Massachusetts Watchmakers-Clockmakers Association, a member of the Amateur Telescope Makers of Boston (ATMOB), and a member of the American Radio Relay League (ARRL).

Invited talks

Objects as Software Services
Gilad Bracha

Software services seek to combine the advantages of traditional client applications and web services. Software services go beyond web services in supporting rich interaction when networks are slow, unreliable or nonexistent. At the same time, software services retain the advantages associated with web services: they are always available and always up to date. We discuss the advantages of dynamic object oriented language principles in facilitating the design of an object based platform for software services.

Invited talks

Common Lisp: A Dynamic Language for a Dynamic World: You Don't Have to Sacrifice Performance for Programmer Productivity
Jans Aasman

Lisp programmers claim that they can build a production quality program five to ten times faster in Lisp as compared to other languages. The challenge for Lisp proponents has always been in supporting these claims with reproducible metrics. The Lisp community is also faced with the perception from the general programming community which maintains a 1980’s belief that pigeon-holes lisp as an esoteric and outdated research language due to huge memory requirements and slow execution speeds.

To address these points of view we need a broad range of programs that are used by many people for serious work where we have both C (Java, .Net) and Lisp implementations so we can compare lines of code and time to implement. Preferably a standardized benchmark would be available for these programs so that we can compare execution speed and memory footprint. As part of Lisp community, Franz has started a process to collect such data. In the last few years Franz has built a number of programs that have a (mostly) C equivalent and where there are benchmarks available to really compare results.

As part of my presentation I will discuss Franz’s IMAP server, AllegroServe http server, NFS server, Perl regular expression parser, XML parsing tools, B+Tree implementations and Prolog to show how they compare in lines of code and execution speed.

In summary, a case will be set forth that Lisp is a fast, efficient and modern language that is perfect for solving today’s real world computing challenges.

Jans Aasman started out as an experimental and cognitive psychologist. He earned his Ph.D in cognitive science with a detailed model of car driver behavior using Lisp and Soar. He spent most of his professional life in telecommunications research, specializing in intelligent user interfaces and applied artificial intelligence projects. From 1995 to 2004 he was also a part-time professor in the Industrial Design department of the Technical University of Delft. Jans joined Franz Inc. in 2004, and is currently its Director of Engineering.

Invited talks

I Have Nothing to Declare but My Genius
Brian Foote

With mainstream language design mired in ennui and retreating into formalism, the field has been effectively ceded to a ragtag, de-facto coalition of old-school dynamic stalwarts, scripting language designers, and ad-hoc domain specific API architects. A generation of research in this area can be distilled down into three overarching ideas, the rest is filigree.

This talk will explore these ideas, examine how and why these currents are converging, and show why the large scale, dispersed, heterogeneous, polyglot world of 21st century computing demands nothing less than this degree of commitment to dynamism.

Brian Foote has been programming professionally since the dawn of the Carter Administration, mostly in the service of academic researchers of various stripes. His association with the academy has enabled him to dabble extensively in research. His interests include objects, programming, programming language design, reflection, metalevel architecture, patterns, and software devolution. His exposure to Smalltalk during his impressionable formative years indelibly shaped his attitudes towards software architecture and design. Brian is one of five people to have attended every OOPSLA conference to-date. He is the author of a forthcoming self-help volume entitled "Late Binding as a Philosophy of Life".