Do you still expect ECMA-262 to be ready by October 2008? Do you expect the new version to be backwards incompatible at all?
If you mean the 4th Edition of ECMA-262, no: we do not expect that in 2008, and right now the technical committee responsible (Ecma TC39) is working together to harmonize proposals for both a near-term (Spring 2009) "3.1" edition of ECMAScript, and a more expansive (but not too big) follow-on edition, which we've been calling the 4th edition.
Has the evolution and popularity of JS surprised you in anyway?
The popularity has surprised me. I was resigned for a long time to JS being unpopular due to those annoying popups, but more: due to its unconventional combination of functional and prototype-based object programming traditions. But it turns out that programmers, some who started programming with JS, others seasoned in the functional and dynamic OOP languages of the past, actually like this unconventional mix.
What are you proudest of in JavasScript's initial development and continuing use?
The combination of first-class functions and object prototypes. I would not say it's perfect, especially as standardized (mistakes were added, as well as amplified, by standardization). But apart from the glitches and artifacts of rushing, the keystone concepts hang together pretty well after all these years.
Where do you see computer programming languages heading in the future, particularly in the next 5 to 20 years?
There are two big problems facing all of us which require better programming languages:
* Multicore/massively-parallel computers that are upon us even now, on the desktop, and coming soon to mobile devices. Computer scientists are scrambling to make up for the lack of progress in the last 15 years making parallel computing easier and more usable. JS has its role to play in addressing the multicore world, starting with relatively simple extensions such as Google Gears' worker pools -- "shared nothing" background threads with which browser JS communicates by sending and receiving messages.
* Security. A programming language cannot create or guarantee security by itself, since security is a set of "end to end" or "system" properties, covering all levels of abstraction, including above and below the language. But a programming language can certainly give its users better or worse tools for building secure systems and proving facts about those security properties that can be expressed in the language.
Do you have any advice for up-and-coming programmers?
Study the classics: Knuth, Wirth, Hoare. Computer science is a wheel, which rotates every 10-20 years in terms of academic research focus. Much that was discovered in the early days is still relevant. Of course great work has been done more recently, but from what I can tell, students get more exposure to the recent stuff, and almost none to the giants of the past.
Is there anything else you'd like to add?
Not now, I'm out of time and have to get back to work!