Ajax Sucks Most of the Time
Vo0k writes "It seems that everyone is excited with what AJAX promises, and only few look at what it breaks as well. The article at Usability Views offers a critical view at the new Microsoft technology, pointing out some problems it creates, like breaking bookmarking, making the 'back' button useless, problems with printing, accessiblity and more. The single-sided view from the article provides a good counter-balance for all the craze."
Up front Disclaimer: I realize the article is "just saying no to Ajax" with constraints. My post here is to the objection I think the article states Ajax problems too harshly.
Reading the article it seems to me:
From the article:
Huh? So? Is this unique to only Ajax?
Also from the article:
When an article wants to rant or complain about a technology, an un-cited and broad statement like this is a huge red flag. It doesn't state what the percentages are, it doesn't state the reasons for preferences. In the middle of an article espousing "no Ajax", this is a non-sequitor. Please expand.
I'm having great fun experimenting with AJAX and am getting interesting new approaches for old solutions improving customer and user experiences. I'm not about to walk away from this until a more thorough trial. So far I'm liking what I'm seeing. Yeah, there are glitches to solve, isn't that kind of what we're here for?
The article is about using AJAX on a webpage, but the biggest use of AJAX is on a web application.
Sure, putting ajax on the companies webpage may not be the best idea, but how often are you using bookmarks on gmail (a web application)? And if you want to print from gmail, it shouldn't be a print of the screen, but a specially built printable html page.
I think the article writer was focusing mostly on webpages where AJAX is clearly geared towards the web application developer.
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
Its not the technology, its the implementation that causes those errors. You can misuse ANY technology to f things up. Why should this be any different?
I wouldn't necessarily say AJAX sucks, but I've foudn that Tide does, indeed, do a better job...
...to cook them via the upcoming flame war.
ROTFLMAO AJAX is no different than any other programming set of tools. If used correctly it rocks, otherwise it sucks. We use it a lot in our web application and it has provided us the ability to deliver greatly enhanced interactivity and reporting. It's kinda like the blind date that gets overly hyped. The reality will never match the hype even if she was pretty.
If you read the bottom of the article, you'll notice that it's a spoof and a simple rewrite about why frame suck most of the time.
"... offers a critical view at the new Microsoft technology ..."
It doesn't appear to be new, and it doesn't appear to be Microsoft's anymore, either.
LordBodak's journal.
AJAX is not a Microsoft-specific technology. My understanding is that Microsoft has an AJAX implementation called Atlas, but that AJAX itself is a set of conceptual ways of blending existing technologies to provide more interactivity to users of web apps.
offers a critical view at the new Microsoft technology
You know, a lot of people will read this and not understand that it's a joke. If five years from now, the general population thinks that it is a MS technology, we'll know where it started!
I seem to recall AJaX existing long before MS decided to jump on the bandwagon. How is it suddenly a Microsoft technology? I suppose next you'll be saying MS invented the Internet (rather than trying to wipe it out) and invented multimedia (rather than trying to wipe out the first truly multimedia machine, the Amiga).
The problem with AJAX is not with the technology it is, as is often the case, with the people using it. It's the current big new "thing" and some people will insist on using it everywhere they can. Look how many sites appeared that were pure flash when flash was the big new thing. There aren't as many now and those that are almost always offer a html version.
I am sure that there are some really nice things that can be done with AJAX. We just need to find out what it's good at and what it isn't so good at.
Personally, I won't be using AJAX for a long while yet. As a lone developer I feel that client side scripting is too expensive to develop in terms of time. It's much easier to just use plain old (X)HTML and CSS on the client side even if that means a slight increase in complexity server side. Well that's my 0.02 anyway.
I used to have a better sig but it broke.
Look at all the eyes looking over the source code!!!!
Look att the eyeessss!
Every AJAX downloader is a potential AJAX developer!!!
How can M$$$ HOPE to compete!!!?!?!?!
"13% of users would not even be able to use a site with ajax. Sure, it is possible in principle to use graceful degradation to serve alternate content to these users, but most designers don't bother designing two versions of their pages and reserve the no script option for a "helpful" link to the download site for an ajax-supporting browser version."
Wouldn't it be nice if Frontpage or Mozilla Composer would allow a plain HTML page to be saved and linked along side one with javascript, flash, and other advanced web designs?
It really annoying too how Tab-clicking at javascript link ends up producing a blank tab in Firefox. That AJAX breaks the Back button is nothing new too. All sorts of sites tell you that you'll be re-submitting data if you press Back on a screen you've just sent information from. That's essentially a broken Back button. And printing a webpage? Good luck if it isn't plain HTML.
Saskboy's blog is good. 9 out of 10 dentists agree.
I was interested in reading the article until I found out it was by Jakob Nielsen. If it were up to that guy the web would be stuck in 1995.
I am a strong proponent of usability and user interface issues, but this guy doesn't even like using different colours for links.
What does interest me is he makes a lot of money by going around telling people this. I want to get in on that action.
The AJAX problems with bookmarking and the "back" button are easily solved with some careful scripting.
Here's an LGPL'ed solution: http://www.unfocus.com/Projects/HistoryKeeper/
"The article at Usability Views offers a critical view at the new Microsoft technology" Really? Didn't know Microsoft made Ajax...
I'm sure CSS worked perfect initially. ;)
Suck is such a strong word but, they do and Ajax will be playing at Highbury later today.
Or are we talking about Ajax bub-bub-bub, the foaming cleanser?
The web is used (rightly or wrongly) to deliver two distinct things.
1) Content.
2) Applications.
For (1) ajax _does_ suck most of the time for all the reasons stated, but for (2) is makes sense because it makes the app behave more like a desktop app. "back" and "bookmarks" stop making sense anyway. You wouldn't expect to have those features in your desktop apps, so why in an app delivered over the web.
The great shame is that these two opposing requirements have not forked into the data-web and the application-web. Things went wrong IMO the day someone thought of putting forms in html.
-- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz
...using stuff that has POSTDATA. Oh no! Come on, AJAX has no more or no less problems than any other set of tools. You just need to learn when to use which set. Sometimes AJAX is convenient, sometimes it's not, you use the one that's appropriate for the task. Stop the hate.
I didn't know this was MS only technology... (it's not)
"Until AJAX can be implemented with a tried-and-true method with absolutely no breakage in the traditional flow of movement between pages (being able to recycle data and regular page transitions using Back and Forward), there is no possible way that AJAX will become another requirement of web applications. As it stands, its a very popular trend, but it really isn't holding much weight despite what the average web developer may think."
For he today that sheds his blood with me shall be my brother.
When I first learned about XmlHttpRequest in the IE5 days, I thought it was going to revolutionize the web. All the problems of session state maintenance would disappear and web pages would become little client-server apps. MS had this capability first with the ActiveX control. They could have hyped this capability and taken the lead with it back in 1999. ASP.Net would have been another great opportunity to showcase this feature and create standards. Instead the ASP.Net philosophy seemed to be to make as many trips to the server as possible. For a while MS virtually abandoned the idea of out-of-band requests. So now, years after introducing this feature, somebody at Microsoft finally realizes what they had going and decides to jump on the bandwagon. Good job guys, but a little late.
Someone came up with one more hack to extend the functionality of HTML/JS and *GASP* developers arent using best practices. no way. Its almost like this whole web thing is one hack on top of another on top of a basic system not designed for the purpose it has been put to. The web is literally evolving and the genome representing 'AJAX best practices' just hasent been selected out yet. Its like the whole table vs div+style thing.
yhbt
These are exactly the same problems as with Flash movies. Basically it boils down to the fact that you can't address different "pages" of a website with their own URL. This fundamentally breaks the concept of the world wide web.
But like the poster above me said: For web applications AJAX is a viable solution. For web sites it should be used carefully.
...it totally blows.
He who knows best knows how little he knows. - Thomas Jefferson
What does AJAX have to do with Microsoft? The word 'microsoft' doesn't even appear in the article, as far as I can tell...
_ The bureaucracy is expanding to meet
the needs of an expanding bureaucracy.
Says so in the linked article (right at the bottom along with the original)
I'm a user. All I want is the web page to load and to contain the information I'm looking for. Simple really. Does it matter what is used to generate the page? No. AJAX, XML, HTML, CGI... they're just tools for developers to use. AJAX has its place and if it's not the best tool, then either people will stop using it, figure out how to use it better, or it will be enhanced to work better. Why all the fuss?
GetOuttaMySpace - The Anti-Social Network
I read the article and I am not impressed. The complaints are mostly trivial or nonexistent with proper coding and design. I especially like the bit about bookmarks...OH NO!!!! That's a deal killer for me. Obviously, AJAX is not the best tool for every situation, but when used correctly, the results are spectacular as seen in Google Maps, Yahoo Mail Beta, etc.
gasmonso http://religiousfreaks.com/Can you bookmark in appliations? Hit the back button?
As a developer of internal corporate web applications, I've been using javascript and xml for years to create rich environments. My only complaint is that the browser does not go far enough in creating a powerful application layer. I would prefer to be able to completely disable the history on pages without using javascript hacks so that back took you completely out of the application and back to the previous web site. I'd like editable dropdown lists and other common widgets without using javascript hacks.
The browsers page based model is outdated, and the increase in support for ajax and other new frameworks is only a good thing for the web. Hopefully new browsers, or even a whole new class of browsers will overcome the limitations of the current generation. Only then will the browser begin to replace local applications in mass.
"breaking bookmarking, making the 'back' button useless, problems with printing, accessiblity and more"
Remind anyone of Flash?
Nearly all of the problems cited in the article are present to a FAR WORSE extent with fewer workarounds if you write your website so it makes heavy use of Macromedia Flash. That includes problems with bookmarking, back button not working, no printing etc. Yet Flash is used on millions of major websites. As other posters mention, the problem is not with the technology but misuse of the technology.
Some flash developers get what I call "flash happy" and write the entire website in flash. This is lunacy. For a start, (and this is possibly a problem with AJAX heavy sites too) your site cannot be indexed by any search engines if it's navigation is entirely flash based. No search engine in the world is going to evaluate your flash files or run your AJAX scripts in order to attempt to crawl the site. If AJAX is used sparingly where necessary, then I'm pretty sure it won't cause any major problems. It's not like Flash seems to have suffered...
I didn't RTFA yet, but I think this is the same complain as HTML frames (no back button, no printing, no bookmark correctly...). (there is even a no frames campaign, looks as a 1997 web page!) I think that if you are looking a web page as just a "page", yes, the author is right, AJAX suck. But if you see it as a web app, you should evaluate it as an app, not as a web page. In a typical app, you use provided buttons, print with provided menu (like Gmail) and so on.
DNA in your Linux: DNALinux
I've told people time and again that client side programming is only useful for display. Any scripting that can be turned off and make your applications useless or insecure is potentially a danger.
Sure, checking data before it is sent is nice but validating data is incorrect since that data can be changed without the script and sent to the server.
AJAX is just the latest craze like FLASH was and it has the same problems that FLASH does and as a result, is just a nice display layer that can be turned off.
Before people get all taken with AJAX they need to ask themselves 'what would happen if the client had javascript turned off or decided to bypass my javascript entirely?'.
This is my sig. There are many like it but this one is mine.
Read the bottom of the page. The article is a spoof.
More
Jakob Nielsen looks at usability in terms of "what is the worst possible thing a developer could do with this technology?", rather than "what are the benefits, and how can we avoid the pitfalls?".
His main issue with Ajax is the breaking of the navigation model - well, I've got news for him: the model he describes isn't an end-all-be-all, perfect one. It's all fine and good to complain that people could use Ajax to break the back button, to create pages based on sequence of actions, et cetera - but that's not the real power of Ajax.
The model is obviously shifting. People are no longer confined to the static "page". It's more like a house that we explore than a book that we read. Sometimes, you want a window on the static wall so that you can see in real time things that are going on. But you never, and I mean never, want to distrupt the flow from room to room.
Ajax is not a navigation tool, but Nielsen is treating it that way. I mean, sure: GMail uses ajax for some navigation, and I do have certain issues with that. But within the context of a conversation - that's a perfectly fine "window" into what has happened and what is happening. GMail's dynamic view of messages is more usable than a "forward/back/refresh" paradigm, even if people have to learn something new to use it.
But like I was saying: Ajax's power is not in navigation. It would be ludicrous to suggest that. It's really powerful when it comes to providing dynamic interaction in the context of a static location. It's perfect for dashboards, maps, stock tickers, weather sites: anything that provides constantly changing data at a fixed location.
So, I'd say to Dr. Nielsen that he needs to consider Ajax outside of the navigation-misuse paradigm, because that isn't what attracts most developers to it.
Stop right there, grandpa. That statement ceased to be true as soon as "IMG" tags were allowed.
This article is a spoof of a previous article about frames. If only someone would read the whole article before posting.... http://www.useit.com/alertbox/9612.html
-Mogur
If the disclaimer at the bottom claiming the "article" is a spoof wasn't enough. How about the examples given where using AJAX is acceptable?
h tml
geotag-based apps via flash
tag-based instant messaging via Ruby on Rails
community podcasts via api mashups
Which were taken straight from the Web 2.0 company generator script: http://andrewwooldridge.com/myapps/webtwopointoh.
AJAX is MS technology...Oh, my God. I need to start hating this now. I better hide behind this article and bash Microsoft. Don't waste a second!
"If you read the bottom of the article, you'll notice that it's a spoof and a simple rewrite about why frame suck most of the time."
It's interesting to note that while the article is apparently a spoof, many of the objections still apply. (Sure, this is way over-generallzing, but work with me here for a minute.) Also, note how frames went through a period where everybody used them, then use gradually taper off. I think people realized that much of the time, frames just got in the way and the "old ways" worked just as well, if not better.
It does seem like the computer world loves to make the same mistakes over and over and over and over again. We keep doing it. (ObRef to The Mythical Man-Month by Fred Brooks.) What's that about not learning history?
dragonhawk@iname.microsoft.com
I do not like Microsoft. Remove them from my email address.
From TFA
the BACK button in the browser simply didn't work with ajax sites.
If you're using AJAX for all "navigation" for a site you're using it wrong. One of the best uses for AJAX is to update the site according to a user's choice, say, adding a comment to a slashdot article. What do you want to use the BACK button for there? Go back to BEFORE you posted the comment? The BACK button works great for static homepages, but "dynamic" is the keyword in AJAX.
Many browsers cannot print ajax pages appropriately.
That's not really an AJAX problem, but the browser having difficulties capturing the present state of the page. The same problem usually goes for using "save as" on the page, btw.
Ajax is currently so hard to learn that many page authors write buggy code.
Okay, then call that section "Page authors sucks most of the time". Also, Ruby on Rails does a great job of making AJAX available to the n00b.
Search engines have trouble with ajax
Again, AJAX should be used for dynamic changes to a page. A search engine isn't meant to post comments and such.
IMO, AJAX used for page navigation is bad. Using it for dynamic updates is neat.
Even worse, URLs stop working: the addressing information shown at the top of the browser no longer constitutes a complete specification of the information shown in the window.
I hate to state the obvious, but URLs have never really constituted a complete specification of the information shown. The big problem is that, unlike books, the Web is digital and dynamic -- what you read at a given URL today can be moved, edited, deleted, or p0wned by the time you get there tomorrow.
Ask any experienced high school literature or history teacher why they discourage students from using the Internet as an source for research papers, and this will be the big reason why.
I understand the core of his point, but I think it's time he acknowledges the reality that nothing on the World Wide Web is static these days--if it ever was.
"This is a spoof article. Please compare it with the original and you will see how little it has been changed"
"Constructed by Chris McEvoy with apologies to Jakob Nielsen."
Is dwr any better?
Ajax Compatible Browsers: 78%
No way.....85% use IE alone and IE is Ajax compatible. That's not even counting Firefox, Mozilla, and others.
No Sigs!
Flash can't be bookmarked either, probably the most annoying feature behind pure flash websites that puts me off.
The main problem is people want to be able to serve miniature applications via the web, whilst even with new standards it's still about providing glorified word documents with a smarter navigation.
Nothing costs nothing
The article is spoof, doing an s/frame/ajax/ on an earlier posting as to why frames suck. While it is a spoof, it still has a point.
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
Isnt this the EXACT same reason we are told not to use frames? I think the problem isn't AJAX and FRAMES, but that we all need to evolve past the "You are looking at a flat page" ideology. Maybe look at it from the point of view of 'bookmarks', 'back button', 'Printing', and 'Accessibility', were all there with the 1.0 browsers 12+ years ago. HTTP has evolved. HTML has evolved. The whole idea of what the web is has evolved. Why do we insist on keeping the webpage paradigm the same? It simply doesn't make sense.
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
-- quoted from http://developer.mozilla.org/en/docs/AJAX
In otherwords the technology is not new and isn't a Microsoft Technology. Although to give them due credit they did invent the XMLHttpRequest object which makes AJAX possible.
Personaly I think the article is nothing more a than an annoying rant. Every technology has it's weeknesses and it's strengths. And just as you should do with any technology you must weigh up the pros and the cons of using it for your specific goal before you do. Saying something is trash and that it should not be used at all for anything is down right stupid.
All hype sucks must of the time. We have just to wait until the hype goes away and the bad projects die. So, we'll have only lots of useful stuf.
Rethinking email
Sure, it is possible in principle to use graceful degradation to serve alternate content to these users, but most designers don't bother designing two versions of their pages and reserve the no script option for a "helpful" link to the download site for an ajax-supporting browser version.
This is the purpose for the Dojo toolkit. The degredation is built-in. http://www.dojotoolkit.org/
No Sigs!
In the long term, we will need a richer model for hypertext nodes on the Web than can be supported by frames.
OK, I'm just an ignorant caveman sysadmin, unfamiliar with all your modern XML wizardry, but maybe if the idea is remote display of graphical applications, we should have, I dunno, Graphical Terminal Emulators, rather than attempting to implement one in a web browser.
Why am I apparently the only person who thinks this? Am I missing something, or are you all insane?
That is why we use in our company, they are much better
I'm still trying to figure out what people mean by 'social skills' here.
there is not enough of us that have enough experience in dealing with marketing hype to not know, via second nature, that you never never believe marketing hype, but only believe what experience proves.
Especially comming from Microsoft, where even experience is questionable.
Yeah, NOBODY uses frames in development anymore. Thats old news!
What's that? GMail uses hidden iframes? Google Maps uses hidden frames? Yahoo maps? AdSense? Slashdot? Nah, those guys are all small potatoes!
</sarcasm>
Get a clue. Just because you can't see frames, does not mean they are not there. Frames are used all over the freaking place. Nearly every web page you visit has an ad in an iframe in it.
This is the reason that this article, and also the one it spoofed, are both wrong. Not every state of a web page has to be, or should be, bookmarkable. The back button was never meant to be an 'undo' and should not be treated as such. etc etc...
Both frames and Ajax are very useful and powerful in web applications.
I've been reading Jakob's blog for years. He's one of those 50-50 guys. Half of what he says is dead on, and the other half is complete crap. I got a real chuckle at the end of this article when I saw:
Next month: Micropayments will take off in 2006.
Poor ole Jakob started predicting the widespread adoption of micropayments on the same day Al Gore invented the internet. He was wrong then and is still wrong, but he'll keep beating that drum until the day he dies.
...and that's a universal usability problem: "If you are working in a Web2.0 company that needs to provide evidence of their technical expertise in order to gain new clients. However, you must remember to keep your offering in beta and make sure that it in the same family as these examples:"
"Spoof" or not, this article is completely in line with his point of view on web standards, and ergo it is valid to criticize. I believe he is calling it a spoof merely to point out that what's wrong with frames is wrong with AJAX.
A freind of mine keeps telling me that most of Google's web applications (gmail) are AJAX based.
:-)
But to me it seems like AJAX makes it hard for a site to be referenced and indexed. So what is the common ground between wanting slick technology for your website, but also wanting it be indexable by search engines?
I ask because I am thinking of creating a web service, but architechture wise for it to be useful it needs to be googleable!
Think Deeply.
breaking bookmarking, making the 'back' button useless, problems with printing
ok, try any of those things with any standard non browser-based application: same problem. the point is, everyone raves about ajax because it makes the browser work like a standard application. but we are suppposed to be critical of ajax because, wait for it... it makes the browser work like a standard application. huh?
wrong. howabout you accept that what people are doing with ajax is SUPPOSED to do these things, and apply criticism of ajax ONLY from that point of view. that is, the point of view of how well ajax does what it is SUPPOSED to do. but criticizing ajax for making websites act not like a browser, when ajax is SUPPOSED to make websites not act like browser, is just silly
if you don't understand what ajax is supposed to do, don't criticize it, because you don't understand it. the difference is: some people know what ajax is supposed to do, and think it is good for SOME situations... and some people don't know what ajax is supposed to do, and think that everyone who wants to use it thinks it is the cure for every problem in the world, and therefore criticizing it like this way is useful. it isn't
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
AJAX is a baby step on the march back to rich clients.
.NET 2.0, although it has its limitations as well. (Windows-only being a big one.) It looks as though Windows Vista is going to try and blur the line between Windows and the Web as much as possible, making rich client applications created with WPF (Avalon) fully hostable inside the web browser. (With code access security restrictions, of course.)
.NET solutions at this point... it's Windows only. One of the great thing about web apps is that they run pretty much anywhere. I suspect that many companies will say that 90% market coverage is good enough for the benefit of web-deployed rich client apps.
.NET Framework on other platforms? I know about WPF/E (Windows Presentation Foundation Everywhere), which is a subset of WPF that Microsoft is trying to make cross-platform, but what about non-Microsoft solutions?
Web apps are great because of their ease of deployment. There is no "upgrade cycle" for users. They just refresh the page and they get the latest and greatest.
Rich client apps are great because of the ability to have a rich UI and far more control over the presentation of your application. Speed is almost always better. You can just do more.
AJAX is an attempt to merge the two. Sometimes it works very well, sometimes not. But it's just a stop-gap solution that tries to use existing web technology to mimic the experience users know and love from rich client apps.
The real solution to this problem is to allow for rich client apps to have the ease of deployment of web apps. There are a few possibilities in this area.
One solution is Microsoft click-once deployment paradigm in
Of course, this has the same problems as most
Does anybody know of similar projects coming down the pipe that will offer this to more than Windows clients? Something other than people implementing WPF and the
I figure the author must be from Toronto. That's that city outside the Town of Ajax.
AJAX relies on the XMLHttpRequest object to do anything. Without it, there is no AJAX (you could say it puts the A in AJAX). Microsoft invented this object, it has shipped with the MSXML COM object for a long time. They first used it in Outlook Web Access in the late 90s.
.Net is a "Microsoft Technology", even though there is Mono.
AJAX only started to get popular in the media after Adaptive Path coined a stupid buzzword for it, but IE-specific developers had been using it for years. Adaptive Path just stumbled upon it being more sueful because Firefox started also shipping an XMLHttpRequest object.
But Microsoft *did* create it, so it is totally accurate to call it a "Microsoft Technology". Just like SMB networking is a "Microsoft technology", even though there is Samba, and
Is it just me, or does a list of problems that includes "breaking the back button" and "printing problems" among other things sound like a command and control web designer's wet dream? I'm sure you've all run into those pages that use Javascript to break right click, and CSS output settings to break printing, and so on. All those terrible people who jumped all over Flash go without saying, of course.
s/frames/Ajax/g
AJAX is NOT a Microsoft technology. The required Javascript commands were originally introduced as part of Mozilla/Gecko/Firefox. Similiar ideas have existed in ActiveX, but were not termed AJAX until only recently.
-Patrick
"They never stop thinking about new ways to harm our country and our people, and neither do we."
VAX sucks
Ubuntu is an African word meaning 'I can't configure Debian'
I did somthing similar to Ajax, using frames and javascript to enable upload/download progress bars that work with any browser (unlike the ActiveX or Java versions which are clunky), it's rather neat. the nice part is the way it looks like it was apart of the page, no horrible refreshing or popup window just pulling the width of a div with some repeating image (like the nice mac progress bar image) and some stats and timer estimations.
I made that in perl using the apache request modules, nothing hard/horrible or microsofty about it.
I've only heard of Ajax today.
I tried Google maps disconnected, seemed to work just fine (no reason it shouldn't) until I scrolled outside of the pre-loaded map images.
Anyone tried using Ajax techniques to build a disconnected store-and-forward capability into a form? Intercept the form submit, store the variables into a cookie, send cookie data when the connection is back... Any gotchas here that I'm not thinking of?
Would be valuable for embedding "standalone" capabilities into browsers that have spotty network links (yeah, Verizon!). Too bad that a lot of mobile device browsers wouldn't have an XMLHttpRequest object built in (or even JS...).
Correct me if I'm wrong, but didn't Microsoft invent XMLHttpRequest? In which case, most AJAX, which uses XMLHttpRequest, is in fact built on Microsoft technology, and they deserve credit for having a played key role.
You are absolutely correct. In fact, Microsoft 5 years ago went far beyond what AJAX is today. The XMLHttpRequest object can act as a data source for binding directly to the IE DOM controls - without scripting to parse the data. I created an statewide budgeting app based on this technology 5 years ago for the Idaho Division of Financial Management. It allows a collaboration app like experience with reduced deployment effort. An ideal IT solution.
And yes, we've had all of this from day one - months before google maps. Admitted, many AJAX apps still dont bother to do any of this - I'd say let's adress that instead of abandoning AJAX.
...XMLHTTPRequest (what AJAX is a buzzword for) was first introduced by Microsoft in IE 5.5. Gecko based browsers then implemented XMLHTTPRequest a little later (changing the methods slightly).
Originally it was an ActiveX based control that got loaded by IE to perform this function, that's not the case as of IE 6.
I am NaN
Seems like his objections are still completely accurate, unfortunately.
So is he simply saying that things never change and people still recycle the same bad ideas as in the past?
D
Ajax is a methodology.
99% of IFRAMEs on the web are used for ad banners.
The other 1% are used to exploit IE vulnerabilities.
I thank the LORD that Netscape Communicator does not support IFRAMEs. It's one of the main reasons why I still use it (although I do use other browsers too.) Now when will other browsers give me the option to disable IFRAMEs altogether?
What if it is your goal to lock sucker^H^H^H^H^H^H'consumers' into a website?
What if you have dynamic data that you don't want bookmarked or indexed?
What if you're underwear are REALLY dirty?
Sometimes, AJAX is indispensible.
Aah, change is good. -- Rafiki
Yeah, but it ain't easy. -- Simba
One of the reasons people used frames was to avoid HAVING TO RELOAD the pages on webapps! And this is what AJAX gives us. (Personally i'd be pretty happy when XUL engines become available for all browsers).
All, .Net and soon it won't be around anymore, replaced by something even more stupid.
Well, I'm with the author. However, I think the back button thing and non working bookmarks are intentional, by design. It sort of fits in with Microsoft's "DRM/Use Once/Content Control" content crippling philosophy. Ajax 4tw! I think it's right on target. It's ok, MS will abandon this like it will
It boggles the mind that developers waste time learning MS's throw away technologies. JSP, Servlet, J2EE, Perl open source technologies, learn them and use them for life... 'nuff said. They enable content and information, not cripple it.
-AC
Read the last line. FTA: This is a spoof article. Please compare it with the original and you will see how little it has been changed. Oh brother. I saw this on DIGG yesterday. Looks like the editors didn't RTFA
Comment removed based on user account deletion
The spoof speaks of AJAX in the paradigm of web pages as content, not as applications. If you're using AJAX to deliver your content, and it breaks as the article describes, well then you've got a problem, but the real strengths of AJAX are not in the ability to deliver content, but to push the web browser beyond content delivery into the application space.
OO Writer has no back button. Why? What is "back" in the context of authoring a document? You could come up with analogous elements, but they have their own name and their own behavior. Usability has universal elements, but it is also context sensitive. Take Google maps for example. How does the back button affect the page when I have moved the map? How should it affect the page? In my opinion, the back button is tied to navigation, and should remain within that scope. If I press the back button, I don't want it tied to actions I've taken within an application I'm using on the page, I want it to take me back to the previous navigable location.
In this way, I think that the author has mistakenly correlated frames and AJAX. Application state and browser state can be separate and usable.
No to dig up old debates with tons of flame, but...
What about using Java Applets? Over the last decade, computers and networks have become much faster. The technology does have many good uses and just about every browser supports Java.
Why not give Java Applets a second look?
BTW: I have always (ALWAYS) thought building applications inside a web browser was a bit odd -- in the way of "A hammer can be a tool to fix everything"
Hilarious! From the article:
<snip>
If you are working in a Web2.0 company that needs to provide evidence of their technical expertise in order to gain new clients. However, you must remember to keep your offering in beta and make sure that it in the same family as these examples:
* geotag-based apps via flash
* tag-based instant messaging via Ruby on Rails
* community podcasts via api mashups
</snip>
Despite the fact that this is a spoof article, it's still a good opportunity to discuss the accessibility issues (or at least raise the awareness of them and their importance) found in many AJAX-style apps. I'm feeling lazy today though, so instead of discussion I posted the above. Enjoy!
putfwd.com - 1GB Free file storage with a twist
AJAX sucks, take that digg.
We hate you.
.\.\att Clare
HTTP and HTML were not designed for stateful sessions, with near-realtime communication between the browser and the server.
In the last 20 years or so, we've gone from stateless pages that display text and images from a remote server, to a technology that uses URL re-writing, cookies, hidden fields, and java-script to add functionality (like sticky sessions, clustering, and near-realtime client-server interaction).
HTML/HTTP are not the technology for doing this heavy-lifting. Technologies that have tried to do the heavy-lifting in the browser (Java Applets, ActiveX, and CURL) have all failed miserably.
Adding another technology to try to get the web browser to do something even more interactive is, IMHO, a waste of time. FTP and email haven't had the (inappropriate) feature creep that web-based technologies have.
We need something new. Something that runs in the browser, securely, that doesn't require a huge installation beyond the browser, that is designed to do what HTTP/HTML was not designed to do, but is doing anyway.
My first clue that something was wrong with this was in the article summary... since when is AJAX considered a "Microsoft technology" ? If there's a defining AJAX app, isn't it Google Maps ? Is there some Microsoft AJAX app or developer kit I should be aware of ?
I'm going to have to disagree with something you've said, though :
we all need to evolve past the "You are looking at a flat page" ideology.
Why ? Flat pages are very useful for documents. Hyperlinks are great for linking documents. "Plain old web pages" remain, IMHO, the most useful aspect of this thing we now call "the web"... cool apps like Google Maps are cool and all, but they'd be just as cool ( probably cooler ) outside of a browser. Requiring a high-speed connection and robust ( or even particular ) Javascript implementation on the client side just to view your web page is what doesn't make sense, at least to me.
Then again, maybe I'm just getting old, but back in the day, we just had static web pages and forms, and we liked it!
You do realize that you're going up against the /. groupthink that MSFT never innovates anything. Posting your info is equivalent to talking to a wall. LOL
-- "I never gave these stories much credence." - HAL 9000
I receive 10 emails of which 9 are junk. I delete them and guess what happens the next time when the page load, those 10 e-mails appear as they are. Now I delete the browser cache and reload, "connecting hotmail" and don't understand where the fuck its trying to connect to.
Solved a lot of these problems with the async messaging to web browser systems of a few years ago. For various reasons they both pretty much
failed but people should be able to pick through the ashes and build on what they had learned.
This "break back button" "Bookmarks/Can't pass url to friends" etc. is OLD NEWS, and not worth green-lighting. /. then /. is just slow to post it.)
/Wasn't worth my time, but I'm REALLY sick of seeing these pointless Ajax bashing articles/posts.
(And if it's not old news on
Besides, the points are moot in that they aren't really reasons Ajax 'sucks',
They're just pitfalls that novice programmers will fall into.
Experienced/thoughtful developers will be mindful of these pitfalls and know how to handle them.
And the point that search engines don't know how to navigate Ajax enabled pages, is asinine.
Ajax isn't anything NEW anyways, it's just a new BRANDING (read naming/use) of OLD technologies (JavaScript & XML), and engines have been capable of handling them for YEARS (or even decades).
Besides, Google can navigate them, and any other respectable engine will be able too, (if not the engine isn't worth using anyways). (Infact, many google pages MAKE USE of Ajax)
And even if SOME engines can't navigate them NOW, doesn't mean we should stagnate progress.
If sites DON'T implement Ajax, engines will have NO REASON to support Ajax navigation.
Not until somebody writes a bathroom cleaning web application.
AccountKiller
Yeah dude, AJAX sucks, which makes sense since it's a Microsoft technology, but huh, who do they think they are, claiming to have 'invented' AJAX with that XmlHttp thing?! Loooooosers!
Do you even know what AJAX stands for?
Asynchronous
Javascript
And
XML
See that first part? Asynchronous? You can't do that without XMLHttpRequest*. AJAX is not a methodology without it.
Basically, AJAX *is* XMLHttpRequest, because you would not use XMLHttpRequest for anything else, and you can't do AJAX without it. The whole acronymn is retarded and useless, and created by a marketing junkie at Adaptive Path to drive up business. It is no more a "methodology" than wiping your ass.
* I am not including iframe refresh hacks here, because they are not really asynchronous (watch your web browser spinning icon!), though they accomplish the same goals.
But then corporate interest came into the picture, soon there were people making money advertising on the Internet, soon after that every major company, and most minor ones had an internet presence. Not long after that, their money started to influence the Internet, making it no longer a hub of information, but a hub of money for companies already too rich for their own good.
Those companies did to the internet and especially http, the same thing they did with so many other things, they took it too far, stretched it too much. They expected it to perform in the place of other systems in the interest of saving themselves money on distribution in exchange for functionality and customer satisfaction.
Now days the internet is full of web-based applications that attempt to mimic the functionality of local applications, with very few succeeding.
I think, perhaps, it's time for us to stop trying to make the internet something it's not. Are animated drop-down menus and interactive widgets really that important? What is so wrong with saving application functionality for protocols designed to handle it like SSH and Telnet? Nothing.
Our greatest enemy is neither a single man, nor is it a nation, it is, as it has always been, our own greed.
I know that pimping one's own stuff is severely looked down upon here, but I actually do a pretty good job of pointing out the caveats in my AJAX chapter in Professional LAMP by Wrox/Wiley, just released a few days ago. I also point out the likeness of AJAX misuses to the misuses of Flash.
Basically, there is a lot of hype because that's what gets out first. Books don't really create hype. Articles and articles about articles create hype. These have quick turnaround, so they get out first. Then you get a wave of articles about the other side. It takes more room to talk about both sides, and this usually happens in books, which have a much longer production cycle.
In other words, I think we're definitely over the crest of the hype wave. Now we can get onto actually using AJAX for useful things.
Burn, karma! Burn! (At least I didn't post the amazon link with my associate code, which I've seen many fellow pimps do.)
AJAX isn't for webpages. It's for applications. People will misuse technology until the universe implodes. If you want something that prints nicely, then provide a link that takes you to a page where you can print easily. If you want the webpage to alter shape and work quickly for the user to get things done, then who cares about printing... The person who wrote that article is a luddite and a whiner.
Reality is nothing but a collective hunch.
Ajax is a cleanser. Tide is a clothes washing detergent.
I beg to differ.
Posted AC because this is completely pointless.
While PHP certainly makes it easy to write crappy, insecure code, I'm not sure that any language really defends against bad programmers. Like any programming language, PHP is a powerful tool in the hands of a talented developer, but a security breach waiting to happen for those lacking such talent.
This points in this article, whether they were meant in jest or not (yes, I saw the comment at the bottom, but I'm not sure that comment ITSELF wasn't the joke) extend from one false assumption: that the web as it is today is good enough.
It isn't.
Another poster put it quite perfectly: the web has evolved into two "tracks", if you will: the data presentation track, and the web application track.
For the data presentation track, what we have is quite good enough, and quite well-suited to that purpose. Hyperlinking of simple documents was a powerful idea when first devised, and it continues to be so today.
But, when you start talk about hosting applications of even modest complexity on the web, it doesn't work as well. What we've been doing the past 10-15 years is really hackery. Successful hackery in many cases, but hackery none the less.
AJAX is a step in the rigth direction. Not the first step (AJAX can be done just as well without the XMLHttpRequest object, and was years ago, and we won't even mention Flash, applets and the other competitors), but a good step.
AJAX has its problems, accessability in my mind being chief among them. And I for one don't have the answer to that problem. But it shouldn't change the fact that if you are on that web application track, it might just be a sacrifice that has to be made. Or a solution needs to be found
If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa
My biggest problem with AJAX is its paucity of tool support.
I want a debugger smart enough to jump from JavaScript code in the browser to Java/.NET running on the server and back.
I can launch an all-Java client interfacing with an all-Java server from inside my IDE and step through every bit of code seamlessly. I can't do that with a JavaScript client.
I read
AJAX will probably be abused. In particular, lots of desktop developers will see it as the technology that finally enables them to force their lousy desktop apps on web users. That's abusing the technology.
But AJAX does let us do things that were messy or impossible before. Google's use of AJAX has been pretty good: it's being used for live updates of in-page information, for scrolling of large maps (with a "bookmark this" feature), and intuitive customization of the home page.
So, AJAX most sucks, but web sites in general mostly suck: people use HTML, DHTML, Flash, JavaScript and Java inappropriately, too. That shouldn't stop us from making new technologies available and for the people who use them carefully to actually use them.
So the article is a spoof -- knew I'd read all that already somewhere -- but I say it's illegitimate : comparing AJAX to frames is most insulting in the most unjustifiable way.
Moving on, *NEWSFLASH* : technology can be misused !
AJAX is all about being used properly, respecting and avoiding the navigation problems it can raise. So why's everybody so upset about something they have to be careful with ? It's powerful, mind how you handle it !
Bunch'a unhappy crybabies. Badly used AJAX is just another way to root out incompetent Web developers ; the more such red flags there are, the better. Natural selection, you know ?
Please respect the healthy and non-AC troll, thank you.
While MS invented XmlHttpRequest, it's worth noting that they have been markedly timid in recommending it's use in client development. I'd contend their relative silence on the issue is due to these usablility concerns as well as security, etc. I haven't installed the preview of their solution, dubbed Atlas, but from what I've read, it does address some of these issues by giving a solid framework for developing controls that support both dynamic and static models depending on the browser caps, etc...
There's also problems with Ajax, that I myself have found that the article fails to mention explicitly -- although definitely hints at them. First is that Ajax violates the principle of separating design (e.g. the presentation layer -- that is the webpage that you see) from business logic(e.g. the domain layer). Some of the MVCs with Ajax support attempt to remedy it (e.g. Ruby on Rails), but overall Ajax does fly against the very idea the MVCs try to implement (that is, they allow for strict separation of the three layers of architecture). Finally, the use of XML by Ajax (the X in Ajax) also brings in the storage aspect (e.g. the persistence layer). Thus you end up with code that is *hard* to maintain: if you, for instance, need to have a mobile version of an Ajax site (or a GUI app, etc..), you will need to re-implement the logic (and possibly the storage) aspects as they're far too mixed up with the design.
Second idea is somewhat hinted of by their discussion of the back button: that is that Ajax violated the atomic ``transaction'' based character of the web. The web functions best when I make a *single* query and receive a *single* response. This is very much a batch system: we can compare CGI get/post requests (sent from specific forms on the site as a *whole*) with punch cards being fed into a card reader and the resulting page as either a new card or a print out on a line printer. Or alternatively, you can compare it with an SQL query (or a transaction with an rDBMS) -- or with a *fixed* amount of queries (and not dynamic queries). In other words, the web isn't meant for real-time interaction.
There are of course good applications for Ajax: anything geographical or spatial is a good application (e.g.: maps) as are tools such as spell-checking for web-forms in real time (ala gmail); but there are places where I wouldn't like to see Ajax (e.g.: on a purchase form of an e-commerce site, on a class registration page for a university) -- namely because I want those sites to have a *clear* and simple architecture and design (and work as intended), be accessible from everywhere and give me a clear result (either I registered for CS 345 or I didn't; either I purchased a book, or I didn't).
So where do you go to learn how to make PHP secure? I've seen lots of books, lots of sites giving code and tutorials on PHP, but none on how to write *secure* PHP. Sure, lots of them will say things like "validate your input", but no tutorials on that and other elements that are needed to make an application secure.
The Hardened-PHP project is one place to look.
Of course, the best option for serious work is to probably just avoid PHP, and stick with solutions that have proven themselves to be well-designed and far more secure.
Cyric Zndovzny at your service.
One thing I noticed lately, more sites have edit boxes so that when you click "submit" the edit box fades out and your text magically merges with the page... great for forums especially...saves time--there's no page refresh, and it's cool. Busy forums will benefit greatly from AJAX--I'm thinking that you'll be able to watch the threads move down and the post counts change in realtime--you'll have something like a chatroom but much more powerful. If you want to take it to the next level, come up with an AJAX blog monitoring system that takes data from blogs and aggregates it into a threaded forum format, take all the comments and trackbacks and put them all under one thread--and allow the user to collapse by reply/offsite-comment/trackback/offsite-trackback, now your forum is flying--then you would need some filters to keep it under control. If you decide to this, send me a copy please ;)
People rave about buzzwords when they haven't done their homework. On a side note: AJAX is a MS tech? WTFrack?!?
When's the last time you used FTP? For the most part it's been supplanted by FrontPage Extensions and HTTP PUT for the average user, or scp/rsync for more advanced users. I'd consider using email as a delivery method for eye-candy HTML-formatted messages with images a bit of feature creep.
I must be misunderstanding your point, because that's pretty much what Ajax is...
10Brett-T
Oh, bother.
Ajax sucks MOST of the time. Not always.
i agree, when you don't want something to act like a webpage. why is that an impossible concept, making a broswer stop working like a browser? you can't imagine a situation where that wouldn't be ok, even preferable? well you did... with your last statement, so you contradict yourself
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
So, Ajax isn't the magic bullet, you say? Gasp! Double gasp!!
Before we go hunting dragons in the Ajax camp, let's look at the realities: it's a step in the right direction for a lot of developers that have been starved for this type of functionality that other "real" applications are providing (and that our clients are now demanding).
Are you genuinely critiquing the many, many, many methods that are now under the Ajax umbrella, or do you have beef with people that jump on things that you're calling "all the craze"? If it's the latter, then why don't you just throw some angry comments out about iPod, PSP, and (in some camps) cellphone users? My point: don't throw a BS title onto an article and call it news when you're obvious aim is instead a jab at a collective movement that you find distasteful because you're a rebel/old skool/l33t h4x0R/whatever.
Quit bitching and find a project to work on - and THEN post something (useful).
Now I know who uses Ajax pages. All those p0rn sites that are impossible short of a reboot to get back out of once you've fallen into one and spawned countless boardless fullscreen windows with non-functioning Back buttons.
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
It raises some valid points. The basic issue is that AJAX gives you interactivity at the expense of a page-based model.
This being said, there is no reason why these are fundamental issues with AJAX and not with sloppy information modelling. For example, if I go to Gmail and I bookmark the site, I always get the same view of my inbox. There is no reason why a site could not be set up to allow for bookmarks to be generated for specific views of data. It is just an issue of app design and being conscious about what your tradeoffs are.
In other words, nothing in the article couldn't be worked around with a little effort.
In general, hype is almost always associated with people forgetting what the problems with the model being hyped is. While I thought it was interesting to compare the article with the artical on frames (Frames pose the exact same challenges), I also think that it is important to understand what those challenges are so that we can workaround them if we need to.
LedgerSMB: Open source Accounting/ERP
It looks like a duck.. It quacks like a duck... It's not that insurance company... it's AFLAX... http://www.aflax.org/
As a developer/DBA for a large website, we use FTP to download data feeds from our less technologically advanced partners, and SCP/web-services-SOAP/XML-over-HTTP-POST the rest of the time.
AJAX is not something new - it's embedding JavaScript inside a web page to provide updates to the web page without having to hit a submit or refresh button. It's just another inappropriate add-on to an existing technology that was never designed to do what it's doing. Putting a trailer-hitch on your car doesn't make the car new - it just gives it another feature.
Interesting that the defenders of all things Micro$haft on Slashdot will come out in droves under the banner of "...Sucks Most of the Time"
"...objectivity resides in recognizing your preferences, subjecting them to especially harsh scrutiny." -Gould
Arguing that an AJAX app sucks because it violates bookmarking is missing the point. An AJAX app (a good one, anyway) isn't a web page that happens to be an app, it's an app that happens to run in/on a web browser. It should support bookmarking -- say -- if and when that happens to make sense, but it shouldn't be a criterion for goodness simply because it's a criterion for goodness in the underlying technology.
Ajax breaks the unified model of the Web and introduce a new way of looking at data that has not been well integrated into the other aspects of the Web. With ajax, the user's view of information on the screen is now determined by a sequence of navigation actions rather than a single navigation action.
Right, and aircraft violate the unified model of human beings by allowing us to fly.
AJAX apps need to be compared to other apps, not other web pages. And yes, AJAX apps may suck for reasons along the lines of "a dog that can walk on its hind legs" but that's a different kind of (and much more valid) criticism.
AJAX apps allow for interactive apps to be implemented cross-platform in a browser; in many cases "bookmarking" would be a BAD thing. (E.g. bookmarking a view of a secure document *shouldn't* work in some sense.) I don't have the ability to bookmark my email in either Outlook or gmail -- I'm guessing that if there were a burning demand for bookmarks in Outlook it would probably get implemented.
We can't ignore the fact that the exciting part of the web is moving away from documents and into applications.
0 5.html
It's possible to make DHTML/AJAX/Javascript applications act like desktop applications with respect to keyboard navigation (on IE and Firefox) and support for accessibility tools (currently Firefox only). This was part of the accessibility code that IBM contributed to Firefox.
Information and examples here:
http://www.mozilla.org/access/dhtml/
W3C roadmap for the developing standard here:
http://www.w3.org/WAI/PF/roadmap/DHTMLRoadmap1105
"Remember, buzzwords = $$$ in the eyes of those that are clueless."*
And if they were clueful? You wouldn't be browsing Slashdot from work.
*Anyway if they had the answers (aka a clue) then why do they need you?
As noted in the article, the Back button is the second most highly used button in a browser window. People WILL be using that button, and some Ajax things break if you do. The more your Ajax app looks like a web page, the more likley they will be to use that button - but even the most heavily customized page will still have that back button looming up there.
Whatever people do with Ajax I would caution that they must make sure the back button does something semi-resonable, or it will not be widely accepted. I learned this a number of years ago doing an Ajax-like web applicaiton.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Ajax is a great combination of different technologies. The issues the author points out can be solved with relatively little work. Perhaps he should look at the ajax scene and try to make some pages that use ajax before he thinks that all ajax sites suck.
Intelligence is a matter of opinion.
AJAX is NOT a Microsoft technology, in fact, AJAX isn't a specific technology, it's using a bunch of web technologies together (http://en.wikipedia.org/wiki/AJAX).
It gets pretty funny when people jump on the bandwagon and flog Microsoft, without doing their homework first. Someone really wanted to criticize Microsoft, and just comes off as being ignorant of the technology they are criticizing.
I haven't thought of anything clever to put here, but then again most of you haven't either.
One example of how I have used AJAX is the 'Latest #PCLUG Conversation' section of our home page: http://pclug.pct.edu/
http://operalover.tntluoma.com/preferences/content _preferences/
Go Opera!
That's a problem high school teachers need to adapt to, not the other way around. The reason is that high school teachers have no choice but to cooperate at the curricular level with univsersity instructors and in academia, electronic publishing is already the norm.
In fact, the same people who make the rules about how to cite a written work and instruct high school teachers on how they should teach their students are often heavily involved at surprisingly high levels of technology. You've heard of the Semantic Web no?
Web browsers sucks at being word processor.
From the post: "this new Microsoft technology". Is the poster smoking crack? Microsoft provided the XMLHTTP object years ago, but they and no one else significantly took advantage of it until Google. Microsoft is completely behind the gun on this one.
Puleez...From the look of his boring non-flashy website, he doen't know the least thing about designing websites. I could design something with Frames and Flash AND ajax circling his boring nonsensical pages. What are they designed for Netscrape 2.0??????
--
If you mod me down, may you go down in history as completely clueless
I'll have to look for that pref in Opera when I get home. Then again, I have not yet installed the latest version, so that may be why I missed it.
... an internet browser written in Ajax ?
The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
"It's one thing to be able to rip text out of a raw SWF file, but its another thing entirely to for Google to actually understand what the point of the flash file is, understand any embedded heirarchy and follow links within the file. I expect Google will never do this unless Macromedia specifically make it easier for them to do so."'
And hence we have SVG. MS and Macromedia were on the board BTW.
As a replacement for Javascript?
Ajax was never as good as Achilles!
I put the 't' in electrical engineering.
...and AFAIK I've never seen it, but I would hate it if I went there.
You've obviously won some awards - Nielson (or is it Tog?) says that if your page wins awards, you're throwing 10% of your readers away.
There is an old and simple design principle that applies to everything from web pages to electric drills: KISS, or Keep It Simple, Stupid". As Scotty said in Star Treck III, "The more complex the plumbing, the easier it is to stop up the drain."
The statement that makes me sure you really, really suck at web development that stuck out like a sore thimb: "Websites are designed for a minimum of 800x600 these days, if not 1024 wide."
Hope no geezers go to your site(s), because many if not most of them have two problems: bad eyesight and old monitors. Mix the two and you'll have a 12 inch monitor set to 640x480 that they have a hard time reading with glasses.
Only total incompetents make a page non-resizeable. Your page should look as good on WebTV as it does in a giant 1024 (or larger) monitor, and vice versa. Screens come in all sizes and resolutions, and if you don't realize this you have a lot of learning in front of you.
"The best use of AJAX, that I see, is with improving user interactivity with a web application."
This is actually a good use. However, how many web applications do you use? I only use one; my registrar's site. It's barely useable (has a horizontal scroll at 800x600, for example). How many do you use?
"The author talks about how 'the page' is the basic idea that was behind the Web. Well, I hate to break it to him, but after 12+ years, things have evolved."
Sure, now we have IM, Napster, streaming audio, etc. BUt the basic usint is still the page. Ever been to Google? Does it list "billions of web applications?" No, it lsts PAGES. Like, for example, the page you are reading right now.
Most web surfing is done in pages to this day and that will likely remain the case for a long, long time.
"The notion of the page has long since been an area of limitation with web applications and usability."
No, it hasn't. In fact, the opposite is true.
"Users don't like having to wait for a full page load to make a small request within an application."
True. But HTML Pages usually serve very quickly, while (eg) ASP database pages take forever to load. And pages written in AJAX (and even CSS) take forever to load.
"I am conscious that search engines can't necessarily index my content... so what!"
If you don't want or need your content indexed, then that's a valid point. However, most folks actually want a few visitors to their sites.
"Old browsers are likely unpatched browsers. With the vulnerabilities and security issues today, compatibility with AJAX is the least of their problems. Upgrade!"
No way most users will. Instead, they will simply stop buying stuff on the web or keeping sensitive stuff on their PC because they know that the black hats are going to exploit them as soon as a hole is found. Most users don't give a rat's ass about security. That is the reality - deal with it. They're not going to "upgrade their browsers" to visit your ineptly coded page when your competetition works fine in any old browser.
Too many times I've seen static content served up with an ASP at teh end of the uRL. I think of statements like yours when I see this, and shake my head in disbelief at how incompetent most web designers are.
Can someone post some links to AJAX sites?
I would like to see if my browser works with it.
"AJAX good!"
Me: "What makes you say that?"
"I use AJAX!"
"OK, any other endorsements?"
"Sonny Bono use AJAX!"
"And..."
"You use AJAX!"
"But why should I?"
"AJAX good!"
PS It's things like this that keep me from getting too closely involved with Ubuntu. Mind you, zealotry is somebody who was actually *won* to a cause. AJAXmania and other manias of it's ilk aren't zealotry. They are cultism. Cultists were persuaded by peer pressure and/or media hype.
The author seems to want us all to know that his site is ajax free; and being so diserves a Piece of Flare (tm). Well, I'd like the author to know that the w3c says his website is awful:
3 A//www.usabilityviews.com/ajaxsucks.html.
http://validator.w3.org/check?verbose=1&uri=http%
So I guess he's just blatently against any standards as well as any interesting advancing technologies.
"My heart is in the work." - Andrew Carnegie
I use Ajax in a few applications and there is no problem with "backslash".
For example: I'm developing a (german) flirt-portal, which makes extensive use of ajax and google maps.
Each interaction and it's result is stored in a cookie. If a user changes the zoomlevel of recenters the map, the new values are stored in a cookie. Next time the user visits the back, the cookie is read and the values are restored. Works peferct.
You may check this out: www.citybeat.de/flirt. Zoom into the map, select something from the menue on the "right side". leave the map and return, you will see you last settings.
Here's another ajax-thing, I'm working on: An Ajax-Chat, it's in early beta, but it's working finde. www.citybeat.de/chat/
..to add to my list:
And if you want to print from gmail, it shouldn't be a print of the screen, but a specially built printable html page.
NO NO NO NO NOOOOOOO!
I HATE this "printer-friendly-link" thing! There is already a print button on my toolbar and I'd rather not clutter my screen with a redundant icon/link.
Besides, such a practice is soooo pre-CSS last-decade...it belongs in the trashbin with those JPEG-jigsaw, bitmap-and-table layouts of yore. It is becoming more common to use an alternate stylesheet for print media that hides navigational elements, sets more printer-friendly colours and fonts and so on. That way you do not have to launch another window or move to another page, print then close a window or use the (hopefully functional) back button to resume browsing.
Please tell me you aren't one of those web deveopers that puts big flash-animated, zero-content splash pages and back-button-breaking scripting on their websites too...
Component driven events Model View Observer pattern Partial page rendering ...merge a ven diagram of functional differences between a web model with a standalone app.
It's potential lies not in websites but in Richer Internet Applications.
Ok, so AJAX is all the rave and its this great new mozilla/google/apple technology, and everything is great and wonderful.
Then someone has a complaint about it, and now its MICROSOFT's technology, and it sucks...
I'm not an MS supporter, I don't run MS software anywhere I don't have to, I just found it quite amusing that every article I've ever read here raving about AJAX (which is cool technology) has never explicitly given credit to MS for inventing it. Only this one which is bashing AJAX gives full credit to MS.
I personally don't use AJAX, because to me this thing has submarine patent written all over it. I would be willing to bet that in among MS's thousands of patents there is one for this neat little trick, and in a couple years (or months) MS will suddenly be demanding royalties from every web service that uses their invention..
This article is a non-sense.
I use Ajax in a few applications and there is no problem with the "back"-button if you use cookies to save the state.
For example: I'm developing a (german) flirt-portal, which makes extensive use of ajax and google maps.
Each interaction and it's result is stored in a cookie. If a user changes the zoomlevel or recenters the map, the new values are stored in a cookie. Next time the user visits the back, the values of the cookie are read back. Works perfect.
You may check this out: www.citybeat.de/flirt [citybeat.de]. Zoom into the map, select something from the menu, leave the map and return, you will see your last settings.
could we pleeease stop listening to that outdated dane. It's his fault the web design discourse has been one-dimentional for years. Ie simplicity everything else. It's not that simple!
They're investing millions in it... and they use the stupid word 'Ajax' now.
The Admin and the Engineer
but how often are you using bookmarks on gmail (a web application)? And if you want to print from gmail, it shouldn't be a print of the screen, but a specially built printable html page
That's great, we have those two figured out. Now what about accessibility? Gmail is popular and is used worldwide (except in Germany where it is called Google Mail), and by what I assume are a few users that need accessibility in web applications. You can't even open an e-mail in Ajax mode. I would assume that a lot of users find it the same.
Get your Unix fortune now!
Ajax is not an all-cure medecine and it is not supposed to be used as such. Half of the points that the article rises are not valid at all. Say you were building some site that needed an online design system. What possible good is it to book mark a step of the process? Also the back button was put in a browser and it did not just exist there. Anything that was made by man would be broken by man so quit bitching.
All that said Ajax does have some problems but this is to be expected at such a stage of development. Oh yeah and if you don't like it well just don't use it. Simple as that.
All I have to say about Ajax is that change is good and at least they are doing something about a very real problem.
The article linked to in the top level post is a cleverly crafted imitation of Jakob Nielson's original frames discussion. It is made to look like Jacob Nielson's work, which it isn't.
On his home page, Jakob Nielson specifically states that.
Even the sites that reported about the Nielson 'Alertbox about AJAX' have now realized they were hoodwinked.
It must very much suck for Nielson to have other people imitate him, to the point where it is difficult to distinguish his viewpoint from the imitations. Chris McEvoy, the author of the spoof, goes on to both apologize and gloat over the success of his prank.
LOL
Microsoft technology...
Lets review the acronymn: Asynchronous Javascript And XML
If there are any here who still beleive this is a 'Microsoft technology' I have a great new news site for you to get your geek news:http://www.msn.com/ .
-ME®
The problem with AJAX and many new technology paradigms is the early adopters who implement it "just because."
If you save AJAX for the projects that will actually benefit from it you will benefit from it much more, instead of annoying your end users.
AJAX is for on-line applications, using it everywhere is not a good idea.
Example of poor use:
A site that uses AJAX for navigation across the entire site. In this situation you now can't bookmark a specific article or piece of text, nor do you necessarily (depending on the site) have the ability to bookmark that particular section.
Example of a good use:
I built an on-line calender for scheduling various events within my organization. Before I added AJAX to the code the entire monthly calender view had to be reloaded on when you click an event to zone in on its details. The old way caused the entire months summary to be reloaded, reparsed, etc just so the end user could see the details for one event. Now that it uses AJAX one can click each event and have the details load almost instantly without regenerating the entire month view.
AJAX is a tool like any other. Like XML before it, all the hype will cause it to be used and abused for all sorts of things for which it is not suitable (remember "We don't need a database, we have XML!"?)
After the hype subsides, AJAX will become just another tool to be used when appropriate and eschewed when not.
We just finished www.sendherflowers.com ... the main page and view cart page use a LOT of ajax functionality... the scroller at the top is all JS
We managed to maintain the history and book mark functionality with a system called Really Simple History which uses # locators in the URL to maintain the state...
We think it worked rather well.
The Code Ninja is swift with his tool, precise in his delivery, and deadly accurate in his execution.
The girl in Cheech and Chongs up in smoke seemed to like it ? http://www.cduniverse.com/search/xx/music/pid/1099 235/a/Up+In+Smoke+(Sdtk).htm
http://mfile3.akamai.com/14122/rm/muze.download.ak amai.com/2890/us/usrm/_!/546/89546_1_07.ram?auth=d aEaddAa9bdcsdvcbaodIdmbadravcadCcU-bdL2F0-Ci-dggbc &aifp=1234&obj=v10212
~darkness_falls
Yeah, it's not bookmarkable, it's doesn't work for the kids on the short yellow bus, and it doesn't print well --- hey Wait a Second!!!! Are we talking about Flash or AJAX here?
AJAX is nothing more than a non-plugin required, much lighter and more flexible, non-modal, proper font-rendering replacement for Adobe Flash.
You can expect people to come up with innovative solutions to the majority of the usability concerns addressed in this article. Also aside from the bookmark/back button argument the majority of the gripes the author has here are really with DHTML/CSS not AJAX at all.
The girl in Cheech and Chong's "up in smoke" seemed to like it ?9 235/a/Up+In+Smoke+(Sdtk).htm k amai.com/2890/us/usrm/_!/546/89546_1_07.ram?auth=d aEaddAa9bdcsdvcbaodIdmbadravcadCcU-bdL2F0-Ci-dggbc &aifp=1234&obj=v10212
http://www.cduniverse.com/search/xx/music/pid/109
http://mfile3.akamai.com/14122/rm/muze.download.a
~darkness_falls
The issues that were stated about PHP, really apply to ANY language. SQL injection flaws can existing in PHP, Perl, Java, and .NET.
The reason you don't find much about "secure PHP", is that it's not just a PHP issue. You might want to read sites like OWASP (http://www.owasp.org/) and Threats&Countermeasures (http://www.threatsandcountermeasures/). There are plenty of others.
The thing is, it's not as simple to write a "how to" when it comes to security issues. It's a bit more abstract than that, if you try to encompass the whole concept. For example... SQL injection flaws:
Never take anything string of data that came from the user and stick it into the SQL string you are generating, without checking it for a few basic things. Escape ANY special characters that has meaning in SQL (quotes, semi-colons, etc). Quotes are your biggest threat. Quick example:
You are building this string:
"SELECT count(*) from users where username = '$username'";
Now imaging $username came directly from user input, and I typed:
'; delete from users; --
That results in a query like:
SELECT count(*) from users where username = ''; delete from users; --'
Assuming your driver or database doesn't limit single "prepare" or query executes to only one statement, it will run the select, and then delete all users, commenting anything else you would have had after that. Scary, huh?
The best thing is to look for API's that support prepare and execute of a query separately, where you place "?" placeholder in the SQL query string, and then give the data to the execute method. The execute method generally handles all escaping needs to treat it as "data". Clear separation of command and data. Of course, that's not 100%, as you could have a "LIKE" comparisson in your WHERE clause. A "%" in the data is still treated as a wildcard, so you would still have to be sure to escape that in variables you are using with where clause values.
So, there's your simple brief tutorial... but the whole way of thinking is different if you consider all the vulnerabilities. Read OWASP's top 10 list, and think about you are providing information and using information to/from the user. These are your attack surfaces.
Cheers,
Your friendly neighborhood Application Security Specialist
you could say the same thing about most of the (program langauges), (politicians), (food)
"I'm too smart to work in IT. Thanks for your troll though."
I didn't say you did, Garcia (6573). Thanks for not paying attention though.
I have had a great deal of success with Ajax in the last few months where the same code base works on IE XP, FireFox XP, and Safari - my three big targets. I'm using AJFORM and Googles XPATH library for XML parsing. Viva Open Source! Limitations be damned, I'm making my clients *very* happy.
Horns are really just a broken halo.
Yep, this is exactly what I call fair. Ajax is actually a very good idea. Maybe I'm tne only one that gets this, but having a local machine run code rather than have a server stream code to the client seems like a perfectly logical proposition for me. Bookmarkable? That's the whole point. You can't bookmark a rich user experience. What you can bookmark is the URL. A (well-designed) AJAX page will automatically pick up from where you left off. That has to do with sessions, not bookmarking. Back button? Ajax handles the back button better than frames, and actually an ingenious sliver of code in gmail completely fixes the broken back button (GMAIL gets and sends data from a 0 x 0 iframe). The fact that a lot of ajax sucks is inherent in the fact that it's relatively young (really, people, the technology has been here, but using javascript and xml as the primary modes of design rather than strict html is new). In fact, the web sucks most of the time. That's right, I said it. How many sites can you count that are incompatible with other browsers or have utterly irrelevant and useless features (such as mouse tails)? Really, who cares if someone can build the 1001st "yo momma" joke generator. Ajax is more about semantics than it is about actual coding. Instead of using (X)HTML as the presentation language and augmenting it with javascript, javascript is the language employing XHTML for presentation. It deals more with the fact that there are, indeed, a limited number of HTML tags, but Javascript is turing-complete. This is really ridiculous. In its infancy, most of the web pages sucked, most javascript sucked, most serverside scripting sucked, etc. The technology matures; change is inevitable.
If this is such a newsflash to you guys, I guess used never had to register for classes with PeopleSoft...it has all the same "features."
Just like any "technology", there is a time and place to use it, as well as times and places not to.
Personally, I have no use for AJAX on the frontend of things... but I find it extremely useful, handy, and efficient for admin areas.
Since when has AJAX been a Microsoft thing? It's simply not. You can have AJAX on any number of environments.
http://melbournephilosophy.com/
As a developer i see myself like any other worker, and I use the tool that works. Depending on the needs and criteria of a certain project, one may need to be versatile. People who stick onto one technolgy are narrow-minded and tend to write "inefficiet code" trying to force a lannguage to do things it was never intended to do. Like i said, there are reasons for it, preference just should not be one of them.
I wish they wouldn't call it by that silly buzzword. It's a freakin javascript object. You don't even have to receive XML. I hate silly buzzwords. They mystify things that shouldn't be shrouded in mystical techno hippie language.
So, I realize this might not be the best place to mention this, but I recently discovered that active desktop is actually a bit more interesting than I used to think if you start thinking of the fact that you could be using AJAX to create a more interactive desktop on windows. A person had showed me how he messed with some javascript that made the desktop have snow, and it got me thinking of the possibilities.
I only spent a little bit of time on it, but I already created some animated menus that link to applications on my machine and added a calendar and better clock. There are limitations, such as you're forced to use IE as the rendering engine, but the possibilities really are interesting when you consider you don't have as much of a security concern on your own desktop and you could start playing with activex controls a bit more.
Just a thought.
- I made a site using AJAX- http://www.slackometer.com/
- It sucks.
QED
You wouldn't want to say "Ajax sucks most of the time" too loudly in Amsterdam. You're likely to get your ass kicked... :-)
How come when the article on slashdot is about "Ajax sucking" it's a Microsoft thing, and yet when the articles talk about how cool Ajax is, its a Google thing (GMail and Google Suggest come to mind)?
The Exchange WebMail client is nothing short of amazing. I don't really care if some stuff doesn't work in older or even in non-IE browsers. For me and the company I work for, it is fricking amazing and it couldn't do what it does without loads of Ajax.