The Future of AJAX and the Rich Web
jg21 writes "This AJAXWorld Magazine article indicates how far AJAX has come since devs complained here two years ago that it sucked all the time. Eight experts were asked what questions we should now all be asking about where AJAX is headed next. The suggested questions are refreshingly hard-headed, including: 'How are we to fix the web?'; 'When will AJAX development finally be easy?'; and 'Do we really need JavaScript 2.0? Won't it be somewhat irrelevant by the time it becomes commonplace and thus usable?' One of the most interesting questions came from Kevin Hakman, co-founder of TIBCO's General Interface: 'On what timeline will AJAX skills become commoditized like HTML skills became?'"
It already is. What is so hard about it?
i know alot of people here hate microsoft (duh!)
but i believe silverlight will be a large part of the rich web
now this is my personal opinion and heres why:
*it was designed with web applications in mind (XAML) unlike the current html/css/javascript mess
*its more or less crossplatform
*it brings C# to the clients browser (see javascript mess above)
*has vector and hd video supprt of the box
*is designed to be easily updated
Once you understand it, Javascript is an awesome language. It's C/C++/Java-like syntax hides its fundamentally functional underpinnings. The core datastructure in Javascript is a method. Everything can be represented in terms of methods, even to the point of not using any variables. With that in mind, it's a very powerful language that is often maligned precisely because of what it is -- many people just don't "get" functional languages (why C/C++/Java/etc are so popular and Lisp/ML/Haskell/etc are not), though you can certainly write procedural or even OO code in Javascript. It's also very easy to shoot yourself in the foot with Javascript, depending on implementations (using anonymous methods is a good way to leak memory in IE if you're not careful, for example).
As a scripting language, Javascript has a lot too offer. Too bad it's been forever tied to HTML and web stuff.
People like Flash because it gives you lots of pretty, shiney bits for very little work. It's also vector-based, so you can build a pixel-perfect layout like so many bad web designers want ("Our web site must look exactly like our magazine"). Too many people associate "AJAX" with flashy Web 2.0-y visual effects (fading highlights, rounded corners, wet reflections, large fonts, etc), when AJAX is really about communication. If all you care about is glitz, go ahead and use Flash. If you want to build something that actually works well, I'd go with javascript+HTML.
You may not want to hear it, but Microsoft has much of that with ASP.Net AJAX, as have others like Script#. In each case, you're writing most (or all, in the case of Script#) of your code in a .NET langauge and the compiler handles generating the javascript appropriate for your target browser(s). These work with at least Firefox and IE, and should also work with Safari, Opera, and others with minor tweaking.
I've made dozens of web video streaming applications and interactive web pages and right now am working on a multi-user video conferencing app. I maintain them myself, which I know is always easier than maintaining someone else's, however, I always try to write code (any code-HTML/CSS, Actionscript, PHP) very cleanly and clearly. Anyhow, I know Flash isn't the answer to the world's problems, but I do appreciate the advances in Actionscript 3 they've made, by turning it into a full-on OO language which resembles Java in many ways. In fact, I like the clean structure of AS3 so much that I wont program in AS2 or (defintely not) AS1 anymore. Peace.
You're referring to software as a service, not Ajax. An application ran as a service by an outside vendor can hold your data hostage, whether or not it uses Ajax, and an application running within your organisation doesn't, whether or not it uses Ajax. The key is who runs the application, not whether it uses Ajax.
Bogtha Bogtha Bogtha
I see few recurring themes in the questions asked, so I'll try to cover them briefly:
Q1: How do you deploy an AJAX application offline?
A1: You can use integrated HTML/CSS/JS/Flash/PDF runtime, like Adobe AIR.
Q2: How do I deliver bulky complex AJAX applications over the net, if it's a lot of code?
A2: You don't. It's not a suitable deployment model, at least until we have a simple delivery vehicle for bundling multiple app elements into a single file, such as a browser downloading and directly reading a ZIP file with collection of resources/JS files (as with Java's JAR). Until then, and for complex UI-s in general, look into established compiled solutions like Flash.
Q3: Do we need JS2.0?
A3: No, we don't (right now), since JS2 delivers benefits for larger projects only (refer to Q2 why large online JS projects are not viable). If this is resolved, then JS2 will be highly desirable.
Q4: Hand-made AJAX or AJAX framework?
Q4: Framework. Cuts development time, provides consistent code, avoid wheel reinvention (Exception: very large projects may need custom code. Are you Google? Yahoo? If not, use a framework).
Q5: Is AJAX wide-spread / easy / hard / common?
Q5: It's easy, wide-spread, and accepted. Fallback is usually present, unless the AJAX is a component of a complex online app that can't have no-JS fallback (example: rich text editor).
Q6: Do I pick AJAX or Web 1.0 / iPhone SDK ?
A6: Apply common sense. In general, when a new technology comes around, people abuse it and try to shoehorn it into replacing everything before it. Then comes the backlash ("AJAX sucks"). Only then, people settle to use said tech in moderation, co-existing versus replacing, evolution versus revolution, and solving unique problems not solved before.
There's a lot of confusion over the origins of Javascript, but it basically went like this:
Self Java -> Mocha -> Livescript -> Javascript
Brendan Eich practically never talks about the Self Java/Mocha days of Javascript. Not all that many people even remember the working title "Mocha". (Implying its early relationship to Java.) Scripting of Java was the goal in those revisions. Javascript 1.0 was kicked out the door incomplete, but 1.1 addressed the initial issues. The JavaClass and Package objects were added, and it became possible to run Java code without an Applet. It was pretty darn nifty, and still can be if you have Firefox with a Java plugin. (See my response lower in the thread for more info.)
The branding concept was stupid, but there was solid reasoning behind it. And it was more than just because Netscape and Sun were partners.
Javascript + Nintendo DSi = DSiCade