At Friam today we discussed the latest buzz about javascript and it's renaissance in the computing world. Here are some notes folks asked for.

Theme: Chrome, Firefox, Safari etc are building much more sophisticated javascript implementations, including developer tools for debugging and DOM (Document Object Model) browsing. The DOM is the xml hierarchy internal to all web pages, and accessible by JS. This sophistication, coupled with JS being the most widely deployed language on the planet (in every browser and most phones too), is building interest in JS as the most interesting programming environment for a wide variety of uses.

Books: The recent book, JavaScript the Good Parts, has raised the awareness of just how nifty a language JS is, including Closures and Prototypal inheritance. JavaScript: The Definitive Guide, provides the reference that coupled with the first book builds a complete foundation for learning JS.

Architecture: JS is not only in the browser, it now is available standalone as a desktop shell (Rhino, Spidermonkey, etc), letting you try JS phrases easily. SSJS (Server Side JS) is blossoming too, letting the same language be used on the client and server. This is very important considering Rails (Ruby server, JS client) Django (Python server, JS client) is confusing for most programmers. One on both sides would be better, and with Rhino on the server, you can access all of Java via the Rhino-Java bridge. To complete this, the AJAX communication can also move from XML to JSON, the JavaScript Object Notation .. just JS data structures. Thus the Web 2.0 complexity goes from (Ruby/Python/.. XML JS) to (JS JS JS).

Libraries: JS libraries are flourishing, new ones daily! There are JS libraries for building AppleScript widgets. JS is the scripting language for Flex, Flash, AIR, and a host of others. Prototype and jQuery and others provide a base level library for browser interoperability. Many visual libraries exist, even processing.js which implements our popular Processing system. And here's the sweetest part: the libraries are delivered as URLs! That's right, you don't have to build a bundle including the libraries you plan to use. Instead you include a URL reference in your HTML header or SSJS load statements.

Frameworks: Rails, Django and other systems are now receiving competition that are entirely in JS .. again blurring the difference between client and server. JS even has optional templating which can occur on either the server or client. Jaxer, from Aptana, moves this even further: any DOM traversal can occur on the client or the server! .. it keeps a full copy of the browser's environment on the server side, using Firefox spidermonkey. Whew!

IDEs: Eclipse and Aptana Studio (build on eclipse) provide integrated HTML,CSS,JS,DOM programming and debugging. Aptana Studio includes a local Jaxer server as well. Jaxer is open source and can be deployed on non-Aptana ISPs. Komodo and IDEA are for-pay systems that are also liked by many. There are several Eclipse based plug-ins that are also popular, a few for pay. The hard part is factoring HTML,CSS,JS,DOM nicely.

Cloud: Aptana provides a scalable cloud site, including Jaxer and a soon to be completed Rails-like framework called ActiveJS. Google App Engine (GAE) supports Java now, including Rhino JS. A Google engineer is working on Rhino on Rails! Helma is another JS/Rhino framework. Trimpath/Junction is another Google code SSJS framework. Joyent bought Reasonably Smart (GIT/JS Software as a Service) and they are rolling out a JS/Cloud framework.

This is just the tip of the iceberg. I could go on about XMPP JSON encapsulation, HTML canvas and SVG graphics, KML/GIS, JS Lint, JS Pythonic extensions, PhoneGap, Axiom Stack, Lively Kernel, Google Docs API, Google Maps, ... and more, but the point here is that I think the JavaScript ecology is really interesting and worth looking into. Although the technologies I mention may seem overwhelming, its just the reverse. Its a single language and its methodology everywhere. This is a vast simplification.

    -- Owen



============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org

Reply via email to