AJAX Buzzword Reinvigorates Javascript 541
samuel4242 writes "Javascript may have been with us since the beginning of the browser, but it's going through a renaissance as companies like Google create Javascript-enabled tools like Google Maps . There's even a nice, newly coined acronym , AJAX for "Asynchronous Javascript and XML". A nice survey article from Infoworld interviews Javascript creator, Brendan Eich, who says that this is what he and Marc Andreessen planned from the beginning. Perhaps AJAX will finally deliver what Java promised. Perhaps it will really provide a solid way to distribute software seamlessly."
Correct me if i'm wrong but... (Score:3, Insightful)
Go ahead and mod me as flamebait.
Re:Choosing language (Score:3, Insightful)
widget set (Score:2, Insightful)
Gnome and KDE can conquer all desktops once they are ported to this AJAX framework.
Where's the first javascript based window manager? Personalized Google is the first step in that direction.
AJAX Won't Deliver... (Score:4, Insightful)
Unless standards are complied with fully there can never be "one programming language" for web scripting. Anyone who's had to debug Javascript in IE that works in Firefox knows this.
So what's the big deal? (Score:2, Insightful)
Re:DAMNIT Java != Javascript (Score:1, Insightful)
Javascript? (Score:2, Insightful)
Re:Slower than Java (Score:5, Insightful)
That's what you do each time you click on a link to go to a different web page within a site. With AJAX, you only get the data you need. It's not slow. Have you used Google Maps? GMail? That's what's going on behind the scenes, and it makes the experience far better.
Java (Score:5, Insightful)
I have been programming primarily in Java since 97, and if you ask me, it's just *starting* to pick up steam.
The language itself is just becoming mature - with big strides (generics, etc) in Java 1.5. And only now are we seeing alternate implementations to Suns, with GNU Classpath approaching a million lines of code, and GCJ compiled applications shipping in Fedora Core 4. Java applications such as Eclipse are also just starting to become popular, and Java API's for things like GNOME are just appearing on the horizon.
So quit calling Java dead
Gah (Score:3, Insightful)
All "AJAX" is going to do is sell a bunch more four-color glossies to those IT types with more stars in their eyes than substance in their heads. It's just another vaguely-defined acronym with a catchy ring to it.
For anybody who actually writes code, things like Google Maps are simply a happy marriage of time-honored techniques and modern browser tricks. They're cool, they're novel, they're useful, they're quite well-written, and they're letting us do things in the browser that used to require plugins--but there's nothing terribly eye-popping about the techniques themselves.
Open up AJAX (Score:5, Insightful)
That being said, everyone should look at http://www.sourcelabs.com/ajb/ [sourcelabs.com]AJAX Mistakes. There's also a nice list being compiled at http://www.openajax.net/ [openajax.net]OpenAJAX
Still lacks decent security (Score:1, Insightful)
I've been seing this pop up on job postings (Score:3, Insightful)
On the other hand, if they're looking at people who can architect something like Google maps, well, they're going to have to wait until the frameworks catch up. I've got my eye on Echo.
Ajax and Java deliver the same promise (Score:3, Insightful)
The "promise" of Java (write once, run anywhere) is exactly the same as Ajax. A big implmentation difference is in the runtime. Ajax's runtime is native to the browser; Java's runtime is not.
If what you need to do can be done with Ajax, then Ajax delivers on the promise, today. Java? Sure, it delivers big-time, if you can live with Web Start and deploying the runtime to every desktop.
Ajax should be welcomed by Java advocates everywhere. The marketplace are finally "getting it" regarding write once, run anywhere. The limitations of Ajax are substantial, so it won't be long before people need more muscle.
Re:Slower than Java (Score:4, Insightful)
It's got some other potential uses I've been investigating as well. Brings back the whole HTML-based video game idea, now that you don't have to refresh the entire page to change one variable to something useful...
Re:AJAX Won't Deliver... (Score:2, Insightful)
why bother with IE?
Are you kidding? Are you out of your mind? Are you trying to lose money?
These are the things that my clients would say to me if I even asked: why bother with IE? IE still has ~90% of the browser market. If you decide to ignore IE, 90% of the world will ignore you, and you therefore reduce your revenues by 90%.
You'd be better off ignoring all other browsers and focusing solely on IE than not supporting IE.
Are we sure it's the buzzword? (Score:5, Insightful)
I think maybe the slick apps like google maps is finally showing what good code CAN do, instead of the bloated bug ridden javascripting of yesterday.
Or maybe I'm just not transcending expectations by thinking outside of the box, and therefore my toolset isn't capable of brigding the information gap causing a chasm with my ability to think forwardly.
I'm struggling to identify which is worse: The day when we report that a buzzword has made progress, or the day a buzzword actually creates progress.
Yeah, But... (Score:5, Insightful)
That being said, this does look like the least annoying of a lot of really annoying hacks to attempt to shoehorn stateful programming into an inherently stateless paradigm. Personally I think we should be rethinking the underlying infrastructure before we build too much on top of it.
Re:Java (Score:2, Insightful)
Where Java excelled was code-once locations; cell phones, nifty watches, machines of different archetectures that want to run the same program. Now with Java coming back into the personal computer, I can't help but to gag; Microsoft realized it's out of the game and
So now I sit asking myself what I should be coding in, and I more and more find that the answer is as same as always, good ol' C++. Piece of shit language, but at least I know it'll still be around in 5 years, and everything should be able to compile without fighting a million version changes.
Re:MOD PARENT UP (Score:3, Insightful)
Oh, and "There is one thing for sure though... nothing will finally deliver what Java promised. It's dead Jim. JavaSCRIPT on the other hand..." So, you're saying Javascript on the other hand... may fill that promise? Like the summary says? =D Stop coming to Slashdot please.
Re:AJAX Won't Deliver... (Score:3, Insightful)
Re:widget set (Score:4, Insightful)
It's still a kludge (Score:2, Insightful)
If you want to make real applications using browsers, you need to come up with native support for many more GUI elements, and you need to come up with a scripting language that is robust and geared towards programmers, i.e. totally unlike javascript. Create these two parts with no concern for backward compatibility, stop asking web "designers" to implement interactive applications, and you will have the start of real web-based applications.
Re:widget set - Try Konfabulator (Score:1, Insightful)
Re:Choosing language (Score:2, Insightful)
When you're trying to create a full-fledged application on the web, base HTML just doesn't cut it. Hell, even for most websites, Basic HTML doesn't cut it.
The problem is that HTML was never really thought through. Creating sites in HTML (or any derivatives like XHTML) just doesn't work. HTML is a good model for the Gutenberg project but a bad model for everything else.
What we really need is a new language that has nothing to do with HTML that can create complex interactions. Unfortunately that doesn't seem to be happening. Even movements in that direction like XAML borrow too much from HTML.
Re:widget set (Score:2, Insightful)
Re:Java (Score:3, Insightful)
Big strides? How is a broken design and implementation of a feature become a big stride? Generics in Java 2 version 5.0 version 1.5 suck big time. The implementation does NOT guarantee type-safety. It DOESN'T eliminate casts, they are still being done, with a processing cost, it's just syntactic sugar.
To try to somewhat fix this horrible implementation, they did autoboxing, a.k.a the worst feature in C#. You would think that adding the int value "8" to a list would make the list a list of ints. But no, they are a list of objects, and old-fashion conversions are done, very slowly.
The correct implementation would let using primitives types directly, just like C#. It is sad when a virtual clone of Java is better than Java itself, and sad also because Microsoft did it.
Back on topic, people think another language like javascript is going to succeed? It won't. Javascript works differently in all browsers. At least Java is "mostly" compatible between all vendors.
AJAX will also kick your ass (Score:3, Insightful)
Forget the toilets, AJAX is kicking my ASS and I can't imagine that other people who want to do more than copy cutie javascript tidbits aren't having the same problem. What am I missing here?
Re:Java (Score:1, Insightful)
Maybe it's a bias of my years in the industry.
Excuse me but, (a) if you have so many years experience you should be able to realize the real source of the problem and stop blaming all Java apps out there, and (b) I have 15+ years experience from Algol to C++ to Java and PHP and I have no bias, in fact I'd say bias is an awful thing to have in this industry, you better lose it fast.
Re:AJAX Won't Deliver... (Score:3, Insightful)
ahhh... right. so should they have followed the de facto standard as implemented in IE 5.0, IE 5.5 or IE 6.0? And how do they verify that they are compatible with whichever defacto standard they chose without visiting every site that uses the de facto standard in some way?
Re:AJAX also good for... (Score:2, Insightful)
"The amount of data being exchanged is far less (if you do it RIGHT, you people who are talking about using the XMLHttpRequest.responseText property, this does NOT include you)."
Are you implying that accessing the data being returned using req.responseText is incorrect? How else should it be done, using req.responseXML? Who has a client-side XML parser?
Also, no data from the client should EVER be trusted, not even a little. So pushing the validation code down to the client is a waste, you're just going to have to do it again on the server side. I'm really not trying to blast you or your comment, it just raised some questions with me.
Re:thanks, slashdot (Score:3, Insightful)
That and (much more importantly) google using it in live webapps with GMail, Google Maps and Google Suggests.
Everyone was pretty much ready, the web was ready, we needed someone to actually make the jump.
The CoolGuys© at google did it, people now know it works (aka it isn't yet another crappy useless technology) and are therefore willing to use it.
Google was the First Factor
The AJAX buzzword was the second one, because let's face it executives love buzzword, and without a l33t buzzword to go with it a technology just doesn't exist as far as they're concerned (Asynchroneous Javascript + xmlHttpRequest + DOM doesn't quite sound as sexy as AJAX, now does it?), and if an executive doesn't know your technology he won't allow you to use it in a professionnal environment.
Re:AJAX also good for... (Score:3, Insightful)
Microsoft devs have known about this techinque for a while, but it was catgorized as one of those "Evil IE-Only ActiveX" things that you could only get away with in single platform intranet apps. I also think that most people coming from a non-MS webdev background don't really know anything about proprietary IE APIs other than you shouldn't use them.
Re:Yeah, But... (Score:4, Insightful)
Also, emulating stateful-ness over the web is being handled at a much lower level than the browser these days, and to good effect. See Tapestry [apache.org].
Re:Yeah, But... (Score:1, Insightful)
But seriously, my point is that it doesn't make sense to write javascript code for nearly every application just because HTML and HTTP don't provide the needed functionality.
Why? Behaviour is outside the scope of HTML and HTTP. HTML is meant to form documents into a structure and describe what each part of the structure means. HTTP is meant to transfer resources across a network. Neither of these things includes behaviour or interaction with users. Why do you want to glom it on?
You might as well argue that HTML is redundant because HTTP should do everything HTML does, and HTTP is redundant because TCP should do everything that HTTP does, TCP is redundant because IP should do everything TCP does, and so on.
Believe it or not, it does actually make sense to partition a particular problem space into multiple solutions. If we didn't do that, we'd have a single mega-protocol that nobody would ever implement.
Of course if we were going to skip the browser completely (as your comment hints) we'd better off using a compiled language than an interpreted one like Javascript.
Compile vs interpret is an implementation detail, not a property of the language. For example, Python is interpreted when you fire up the Python shell, but is compiled when you run an application from the command-line.
Re:AJAX also good for... (Score:1, Insightful)
It can be handled with CSS perfectly well.