I have a love / hate relationship with Javascript – when I first started working in Javascript it was a crude language that lacked the debugging tools and suffered browser incompatibilities. So for the last several years I have focused on server side coding. While I was focusing on the server, Javascript has taken hold thanks largely to Javascript libraries. Web development has evolved (devolved?) to be browser intensive processing – breathing new life into the client server battles waged since the 80’s.
Of late I have been tinkering again with client side programming – and have tinkering with various javascript libraries. JQuery brings javascript to a new level, providing much better structure to javascript development. TinyMCE provides an great out-of-the-box rich text editor for Javascript, amazingly easy to plug into sites (My only complaint would be a lack of a decent image gallery manager – so I had to write my own). Did I mention these libraries are all free and well supported? Geeks love to share code, and the internet has driven the cost of software libraries to zero.
Now the next evolution of web development is on the horizon. Most techies would agree that Javascript is a weak language to base an architecture around, so new languages are being developed to replace Javascript.
CoffeeScript and Google Dart are the most interesting developments. These are languges that are a higher level than Javascript, but can be compiled down to Javascript. In the case of Google Dart, when a page running in the Chrome browser is viewed, it could run natively in Dart, however if the same page is viewed in IE or Safari, it could run a javascript version of the same Dart code. Pretty cool. In theory, you can write in the same language for coding on the server and the browser.
Here is a link to a great panel discussion on the merits of Coffeescript and Dart. A pretty heavy duty discussion but worth reading if you are thinking of picking up a new language.
And for a great comparison between CoffeeScript, Dart and JQuery, check out this post.
My hope is these languages will be the answer to the big problem in development right now – the cost of developing apps for the various mobile platforms. I dare to dream that Icould write code in one language that compiles to run in the different phone operating systems.
Its early in this evolution, but it will be interesting to see it play out. If you are a javascript Guru – it may be time to start tinkering with one of these languages.