At Asana, weβre building a Collaborative Information Manager that we believe will make it radically easier for groups of people to get work done. Writing a complex web application, we experienced pain all too familiar to authors of βWeb 2.0β software (and interactive software in general): there were all kinds of extremely difficult programming tasks that we were doing over and over again for every feature we wanted to write. So weβre developing Lunascript β an in-house programming language for writing rich web applications in about 10% of the time and code you can today.
Update: For now weβve tabled using the custom DSL syntax in favor of a set of Javascript idioms and conventions on top of the βLunaβ runtime. So while the contents of this post still accurately present the motivation and capabilities of the Luna framework, weβre using a slightly more cumbersome (JavaScript) syntax than what you see below, in exchange for having more control over the βobject codeβ (primarily for hand-tuning performance).