Dynamic Languages Symposium 2008  ECOOP 2008

Co-located with ECOOP 2008

In cooperation with AITO

In cooperation with ACM SIGPLAN

Paphos, Cyprus, July 8, 2008


Invited talks

The Clojure Programming Language
Rich Hickey (Independent Software Designer)

Customers and stakeholders have substantial investments in, and are comfortable with the performance, security and stability of, industry-standard platforms like the JVM and CLR. While Java and C# developers on those platforms may envy the succinctness, flexibility and productivity of dynamic languages, they have concerns about running on customer-approved infrastructure, access to their existing code base and libraries, and performance. In addition, they face ongoing problems dealing with concurrency using native threads and locking. Clojure is an effort in pragmatic dynamic language design in this context. It endeavors to be a general-purpose language suitable in those areas where Java is suitable. It reflects the reality that, for the concurrent programming future, pervasive, unmoderated mutation simply has to go. Clojure meets its goals by: embracing an industry-standard, open platform - the JVM; modernizing a venerable language - Lisp; fostering functional programming with immutable persistent data structures; and providing built-in concurrency support via software transactional memory and asynchronous agents. The result is robust, practical, and fast. This talk will focus on the motivations, mechanisms and experiences of the implementation of Clojure.

Rich Hickey, the author of Clojure, is an independent software designer, consultant and application architect with over 20 years of experience in all facets of software development. Rich has worked on scheduling systems, broadcast automation, audio analysis and fingerprinting, database design, yield management, exit poll systems, and machine listening, in a variety of languages.

Language Design: Back to the Future?
Laurence Tratt (Bournemouth University)

Programming languages are the medium used to express our wishes to a computer. Unlike human languages, we can alter, destroy, and create them at will. Despite this, mainstream programming languages are surprisingly homogeneous with the differences between them often amounting to little more than surface syntax issues. New ideas rarely get a toe-hold in the marketplace and those that do have typically been used for decades by a sizeable minority (e.g. dynamic typing). In this talk the speaker will suggest reasons for the inherent conservativeness of programming languages, their designers, and their users. He will look back at some largely forgotten languages - some older than others - that introduced distinctive language features, and offer thoughts on their successes and failures. He will show how a series of seemingly outlandish ideas scavenged from such languages can be blended together to form part of a coherent modern language - one that also aims to try and inject a few new memes of its own into the languages pool.

Laurence Tratt is a Senior Lecturer at Bournemouth University and software consultant. He is the chief designer of the Converge programming language. His research interests include programming languages, domain specific languages, and software modelling.

The Lively Kernel - Just for Fun, Let's Take JavaScript Seriously
Dan Ingalls (Sun Microsystems Laboratories)

The Sun Labs Lively Kernel is a new approach to Web programming. It provides a complete platform for Web applications, including dynamic graphics, network access, and development tools, and requires nothing more than available web browsers. We call the system "lively" for three reasons.It comes live off a web page. There is no installation. The entire system is written in JavaScript, and it becomes active as soon as the page is loaded by a browser. It can change itself and create new content. The Lively Kernel includes a basic graphics editor that allows it to alter and create new graphical content, and also a simple IDE that allows it to alter and create new applications. It comes with a basic library of graphical and computational components, and these, as well as the kernel, can be altered and extended on the fly. It can save new artifacts, even clone itself, onto new web pages. The kernel includes WebDAV support for browsing and extending remote file systems, and thus has the ability to save its objects and "worlds" (applications) as new active Web pages. The Lively Kernel uses only existing Web standards. The implementation and user language is JavaScript, known by millions and supported in every browser. The graphics APIs are built upon SVG (Scalable Vector Graphics), also available in major browsers. The network protocols used are asynchronous HTTP and WebDAV. The speaker will demonstrate the Lively Kernel and discuss various aspects of JavaScript as a programming language.

Dan Ingalls has been the principal architect of five generations of Smalltalk environments. He designed the byte-coded virtual machine that made Smalltalk practical in 1976. He also invented BitBlt, the general-purpose graphical operation that underlies most bitmap graphics systems today, as well as pop-up menus. He has received the ACM Grace Hopper Award for Outstanding Young Scientist, and the ACM Software Systems Award. Dan is currently at Sun Microsystems where he is working on Lively, a new kernel for JavaScript, that will offer the reflective capabilities needed for proper development support, as well as in-browser support for other high-level languages.