I thought I already posted about this, but apparently I was only going to... The Lively project team has written about their experience of using javascript as a real programming language and I think it makes an interesting read, specially in light of the current ES4 politics.
I've been following lots of comments and opinions posted since that draft ECMAScript 4 Overview was published and all hell broke loose on the es4-discuss mailing list .
Although I prefer the dynamic and flexible nature of Javascript to be taken even further instead of tying things down with classes, strict types and non-mutable built-ins, I see why ES4 is a good next step for ES as the "universal scripting language". ES should be able to bend all the way to where it becomes similar to a strict compile-time language. In a sense, the ability to be strict becomes the proof of its ultimate flexibility.
On the other side, I hope we can still get more features into ES4 that increase its dynamic nature. Maybe some of what Doug Crockford has up his sleeve with ES3.1 can still go into ES4 *in addition* to what the majority of TG1 is already proposing. Yes, that would make ES4 an even bigger revision. After the amount of time that has passed since the evolution of Javascript has cooled down with the end of the browser war, a big revision is overdue. Client-side technology has again become a focus. As a result of the Ajax hype, Adobe's AIR and MS's Silverlight, the client-side is again becoming a battle ground.
So, churn TG1, churn. Bring us new ECMAScript revisions quickly. Don't hesitate to split things up into multiple specs, like you've done in the past with Ecma-327 and Ecma-357 . For example, a more flexible, less secure mode allowing embeddings to opt-out of the non-mutability for built-in types, offering macros and allowing even built-in keywords to be overridden can all make sense in some environments. So would a much more limited, more secured ECMAScript subset, defined as a separate opt-in standard, that could provide a jailed eval to embeddings that need it.
The use case in browsers is only a small part of the entire ECMAScript universe. Outside the world of browsers, maximizing flexibility can also mean to allow embeddings to run in different modes or to not require them to implement all ECMAScript subsets. So, not everything that is standardized under the name "ECMAScript" actually has to end up in web browsers!
29.11.2007, 10:00