As always Joel Spolsky offers an interesting read. Yesterday, he posted on where Ajax development might be headed, based on history repeating itself (as it often does in the software world). His section on a portable programming language resonated with me...
What's going to happen? The winners are going to do what worked at Bell Labs in 1978: build a programming language, like C, that's portable and efficient. It should compile down to "native" code (native code being JavaScript and DOMs) with different backends for different target platforms, where the compile writers obsess about performance so you don't have to. It'll have all the same performance as native JavaScript with full access to the DOM in a consistent fashion, and it'll compile down to IE native and Firefox native portably and automatically. And, yes, it'll go into your CSS and muck around with it in some frightening but provably-correct way so you never have to think about CSS incompatibilities ever again. Ever. Oh joyous day that will be.
I couldn't help but smile as I read this last night. The coincidence is that I had quite literally the same conversation earlier in the morning with some Microsoft folks.
My thoughts around the possibility of a compilation approach came about at roughly the same time I started to "actually learn" Javascript back when I first started work on Atlas. This led to Script# a few months down the road which takes your higher level language (C# in my case), and compiles it down to script that works against some DOM (either HTML or Silverlight currently). It does some minimal IE/FF abstraction, doesn't attempt to do magic with CSS for now, and has a minimal framework, but it is very much based on the belief around building on JavaScript as a universal runtime/lower-level target language that happens to give you great reach for your applications.
In fact, this is what I wrote in a script# thinkweek paper last year:
The driving philosophy behind Script# is one that states “JavaScript is the assembly language of the Web”. Not only is JavaScript ubiquitous, ... it is an amazingly flexible language that allows one to model multiple type systems and programming styles ... script provides a wealth of building blocks, or high-level instructions, that are well suited to be consumed by a higher-level compiler.
I borrowed the quote from Danny Thorpe's presentation titled "Paradoxes in Web Development" from the Lang.NET '06 conference. I am sure Bruce Johnson and the folks on GWT share similar thoughts. So this line of thinking has certainly been going around a bit as Ajax continues to become more and more commonplace.
Posted on Wednesday, 9/19/2007 @ 9:07 AM
| #
Ajax