Skip to content
richhickey edited this page Jul 16, 2011 · 12 revisions

Rationale

Javascript's Reach

There are many environments (e.g. browsers) in which Javascript is the only programmable technology. There are others (e.g. mobile) where Javascript is the most portable development approach. And Javascript is widely used as an extension or scripting language, e.g. as an extension or indexing language in a database.

Javascript is not Robust

However, even Javascript's proponents will acknowledge its shortcomings. There are many dark corners in the language semantics. It is not particularly concise, and it's not well suited for metaprogramming or extension. Most troubling is that writing robust Javascript programs, while possible, requires a combination of extensive discipline and convention, and conventions differ between development shops, communities and libraries.

Client-service applications are on the rise

Initial use of Javascript was oriented around adding interaction to document/page oriented sites closely aligned to the linked hypertext design of the web. Increasingly Javascript is being used to construct client-service applications (e.g. Google's apps), where the Javascript represents an ongoing piece of logic, data, and UI connected to one or more network accessible services. Such applications place much greater demands on their Javascript hosted portions.

Javascript Engines Gain Power

As Javascript has been called upon to do more and more, Javascript engines have moved from simple interpreters to quite sophisticated and high performance execution platforms involving native code generation and classic and novel dynamic language optimizations. The engines, in the large, are specifically oriented around Javascript semantics and execution, i.e. they are not as general as the JVM and CLR.

Google Leads the Way

As the leading purveyor of client-service applications, with tremendous resources and a vested interest in web-hosted applications, Google has cutting-edge technology in this area. From the V8 JS engine to the whole-program optimizing symbiotic pair of Closure library and the Closure compiler, Google has open sourced the most advanced technology available in this area. It is worthwhile to understand and leverage what they have provided.

Opportunity

A development platform with extensive reach, portability, multi-vendor support, an optimization arms race, sophisticated tools, implemented an all new devices, and a call for richer and more sophisticated applications - what more could developers want? - A better language, that's what.

You can't significantly improve something with extensive reach in a timely manner - your improved version won't have the reach for a long time.

More TDB

Clone this wiki locally