Slashdot Mirror


Bosworth On Why AJAX Failed, Then Succeeded

An anonymous reader writes "eWeek has a story describing a talk by former Microsoft developer Adam Bosworth, now a VP at Google, entitled 'Physics, Speed and Psychology: What Works and What Doesn't in Software, and Why.' Bosworth depicts issues with processing, broadband, natural language, and human behavior; and he dishes on Microsoft." Quoting: "'Back in '96-'97, me and a group of people... helped build stuff that these days is called AJAX,' Bosworth said. 'We sat down and took a hard look at what was going to happen with the Internet and we concluded, in the face of unyielding opposition and animosity from virtually every senior person at Microsoft, that the thick client was on its way out and it was going to be replaced by browser-based apps. Saying this at Microsoft back in '96 was roughly equivalent to wandering around in a fire wearing matches,' he said. 'But we concluded we should go and build this thing. And we put all this stuff together so people could build thin-client applications... Now you hear about AJAX all the time, but this was built in '97,' Bosworth said. Yet, AJAX failed for a variety of reasons, including some 'big mistakes.'"

46 of 265 comments (clear)

  1. Me too. by linkedlinked · · Score: 5, Interesting

    Yep, I created an AJAX-like system as a pet-project in my high school web design course (boredom++) back in about 2000. I'm not sure if "AJAX" had really taken off by that point, but for fun, I decided to use JS to load remote pages, particularly of the scripted variety.

    Ironically, I got a D- on my final project, which was a self-updating news feed reader (pulled XML news feeds from a few sites), because it "wasn't very user friendly."

    1. Re:Me too. by mdobossy · · Score: 5, Funny

      And I've seen plenty of AJAX-based apps put out just this year that deserve a D- for user friendliness as well, so dont feel too bad ;)

    2. Re:Me too. by linkedlinked · · Score: 5, Funny

      Yeah, sorry, let me clarify-
      It was a high school web design class. By which I mean it was WYSIWYG-based, no HTML, no JS, no coding. The irony lies in the fact that I still couldn't pass it.

      Watching that teachers house burn down was one of the greatest feelings I've ever had, and for only the cost of a liter of gasoline...

    3. Re:Me too. by lysergic.acid · · Score: 2, Informative

      just have a server-side script fetch the page from the remote site?

    4. Re:Me too. by TheLink · · Score: 2, Funny

      Interesting formatting.

      <assistant type=limerick>
      <prompt>You appear to be writing a limerick...</prompt>

      <suggestion>

      There was once an instructor at JC
      Who taught but didn't even know C
      A student of course
      complained because
      in the end he saw a C for C

      </suggestion>
      <assistant>

      --
    5. Re:Me too. by swillden · · Score: 3, Insightful

      Lesson I learnt, NEVER go out of your way to do something cool on a school assignment. Look at the requirements, meet the requirements as well as possible, hand it in.

      Bah.

      Are you going to school to get a grade or to get an education? If the former, then by all means focus on giving the instructor exactly what he/she wants. If the latter, then put in the extra effort, do what's cool, and accept that some instructors will dock your grade because you confused them. Obviously, if you want to come out of the experience with a degree, you do have to play their game enough to pass the classes -- but don't, by any means, allow your focus on getting a degree to prevent you from getting the best education you can from the experience.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  2. The reason AJAX worked this time.. by xENoLocO · · Score: 3, Interesting

    ... it has a name that people can easily refer to and brand as a technology. I'd seen/used AJAX implementations before, but now I have something to put on my resume. Simple as that.

    --
    "The need to build the internet comes from something inside us, something programmed... something we can't resist."
  3. ...has yet to succeed... by xero314 · · Score: 4, Insightful

    Having been there working on Asynchronous XML request long before the term AJAX was dreamt up I can tell you that it was just a bandaid for the plague that is browser applications, and still is to this day. The only thing AJAX has succeeded at is keeping the belief going that browser applications are a viable solution. The more we add to the web browser and the more dynamic and complex our client side scripting becomes the more we head toward having application clients and dumb terminals rather than PCs with Browsers. I only hope that someone with the influence to change things figures this out and stops this web based madness. There are other, better, solutions to the client server paradigm.

    1. Re:...has yet to succeed... by Rosco+P.+Coltrane · · Score: 3, Insightful

      Exactly. The problem with web browsers is they were never meant to do any of the things we make them do today. They're essentially document viewers with the ability to retrieve documents remotely. Anything else added to it, especially things that need to maintain state consistency between pages or views, is a kludge and, as you say, a bandaid.

      The way forward as I see it either a set of clearly defined standards for networked applications, with either the client taking the brunt of the workload, or the server, or a combination of both, or going back to thin clients and dumb terminals, which shouldn't work all that bad these days with broadband.

      --
      "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    2. Re:...has yet to succeed... by Anonymous Coward · · Score: 5, Insightful

      There are other, better, solutions to the client server paradigm.
      And pray tell what are they? By the way, they must fulfill these needs,

      * Vendor independent GUI language (eg, WhatWG's stuff or XUL)
      * Vendor independent cross-platform client language (EcmaScript+W3CDOM, Python, Ruby, maybe .Net... that kind of thing)

      Just don't seriously suggest applets and Swing or something crap like that. We're not using HTML+JS because it's useless, it's because it is the best thing right now.

    3. Re:...has yet to succeed... by sheddd · · Score: 2, Insightful
      "I only hope that someone with the influence to change things figures this out and stops this web based madness"

      If we all boycott browser apps, they'll be forced to change; no more /. for you and me; no ebay, no amazon, no google. Good riddance!

      Kidding aside, klunky web apps are a cheap easy way to make services accessible to MANY people. AJAX helps with the clunkiness on occasion.

    4. Re:...has yet to succeed... by rainman_bc · · Score: 4, Insightful

      The problem with web browsers is they were never meant to do any of the things we make them do today

      Unfortunately it is what it is.

      When the iframe was added to the browser spec a bunch of us used it to feed data to and from a server and do what ajax does today.

      Happens all the time - things morph into something they were never intended for. Doesn't make it wrong. If it was wrong browser developers would pare things back. Instead they ( rightly so ) move forward.

      --
      09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
    5. Re:...has yet to succeed... by cats-paw · · Score: 3, Insightful

      "The way forward as I see it either a set of clearly defined standards for networked applications, with either the client taking the brunt of the workload, or the server, or a combination of both, or going back to thin clients and dumb terminals, which shouldn't work all that bad these days with broadband."

      Isn't that what X-Windows was designed for ?

      --
      Absolute statements are never true
    6. Re:...has yet to succeed... by merreborn · · Score: 2, Informative

      Wow, you can write a basic calculator in only 300 lines of xforms code! That's so much better than the 30 lines of javascript it'd take!

      http://en.wikibooks.org/wiki/XForms/Calculator

      I can't wait!

    7. Re:...has yet to succeed... by alan_dershowitz · · Score: 5, Insightful

      You obviously know fuck-all about web programming. Everything done to make dynamic web applications is a clumsy, tacked-on workaround to get around the built-in, inherent static document metaphor in all HTML browsers. Take the back button. It FUNDAMENTALLY ASSUMES STATIC DOCUMENT NAVIGATION. And you cannot change this. There was never any facility to define your own navigation on this button. Guess what, this breaks dynamic page navigation because whatever is in your browser cache could be outdated system state.

      So, to get around it you take advantage of some HTTP headers to convince the browser to do a round-trip every time the back button is hit, so you can serve up a fresh page--except that it often doesn't work, because you are using those headers for something they were never intended for, so several browsers all interpret them slightly differently from the way you want if they honor them at all, which you have literally no control over. And you can't reliably detect what browser the client is using to be sure, because there should have never been a need to do so because it was never intended to be doing what you want it to do. AND browsers WERE supposed to all interpret content the same for the same HTML. But they don't and it doesn't, so let's stack on a few more workarounds to glean out what the browser is. Then you can hack up a solution that'll break when MS releases an update.

      All this because we're stuck with the back button while breaking the design metaphor! But there's more.

      I mentioned the round trip. For years now to simulate a user interface, you essentially had to mimic playing chess by mail. You collect form input, interpret it and deliver back a dynamically generated page containing the requested info. This is why the back button can fuck you so badly. You are using forms for something they were never intended for, and it shows, because they are wholly inadequate for the job. If you want to ensure that an app works without javascript, you are stuck making concessions in your visible page design. Buttons have to be labelled a certain way. You have to arrange information to fit the hierarchical document model (notice the word "document" there) which may not fit your visual needs. You can't submit a form to a different location without javascript, which your client may or may not have. HTML form elements are not really fine-grained enough for many application needs, so to simulate this, let's kludge up some more javascript glue to make them act the way we want.

      So you've made a commitment to Javascript, you've got your AJAX, which would seem to solve a lot of these problems. Now you can asynch requests back to the server and dynamically update the document object model to make it act like a real desktop app.

      CONGRATULATIONS! It took over a decade of "technology progress", a browser that eats up to 30 megabytes and a more than a gigahertz of CPU cycles to simulate badly what a desktop app on a 386SX with 640K of RAM could do in the 1980's. And it still doesn't work right because all the leftover cruft from the discarded metaphor you subverted.

      Look, you are right that software can grow beyond it's original intentions. But browsers weren't hurt by complementary, evolutionary enhancements like bookmarks and inline images. When you start breaking the model, problems start popping up and you spend an inordinate amount of time on plumbing. It becomes painfully obvious that what you are doing is working IN SPITE of the medium. You need to consider moving on. I love the idea of a markup-defined, styled UI that you can capture events and handle using a simple but powerful interpreted programming language. It's funny that that's essentially what Firefox is (Chrome, CSS, XUL and Javascript), and it's built for running what's now an incredibly shittier version of itself.

      I wrote a very long rant. It's not actually too bad doing web development and programming, but you see the same problems over and over again dealing with your code, inscribed in books and on forums. Elaborate frameworks are constructed to hide and minimize them. Thousands of man-hours and fragile cathedrals of complexity all the direct result of professionally ramming a square peg into a round hole.

    8. Re:...has yet to succeed... by mcrbids · · Score: 2, Interesting

      Everything done to make dynamic web applications is a clumsy, tacked-on workaround to get around the built-in, inherent static document metaphor in all HTML browsers. Take the back button. It FUNDAMENTALLY.... // Lots more ranting //

      So what? *ALL* technology evolves this way. Baby steps, incrementally improving on previous technologies. Why do we use 60-cycle A/C? Because Nikolai Tesla wanted to power the entire earth with radio power, and the resonating frequency of the Earth is 60 Hz. Is 60 Hz the optimum for power transmission over long distances? Nope.

      But that's what was there before, and the step of changing that would be excessively expensive - so that step never gets taken.

      Rant rant rant... CONGRATULATIONS! It took over a decade of "technology progress", a browser that eats up to 30 megabytes and a more than a gigahertz of CPU cycles to simulate badly what a desktop app on a 386SX with 640K of RAM could do in the 1980's. And it still doesn't work right because all the leftover cruft from the discarded metaphor you subverted.

      Except that it isn't. Your 386sx DOS application works on one computer. It requires software to be installed. It doesn't work concurrently with other applications. If you forget your disks, you can't use your Mother's computer in a pinch over the holidays while you are visiting your folks. The software includes you and only you, it has no access to other information. You can't get current stock quotes. It has an inconsistent user interface. You can't copy/paste information from other running apps. You have to worry about backups, viruses, computer crashes. Your DOS application is not PC, Mac, Linux, Unix, BEOS, AND PalmOS compatible. How much longer should I go on?

      Seems that you're forgetting an awful lot of the benefits that the "new model" as it's evolved has given you. Sorry that your development tools cause you so much frustration just to get a dynamically generated application out. Consider using a language designed for web development - I recommend PHP.

      I personally LOVE web-based development. Combined with database transactions, sessions, HTML templates, etc. I get a rich, simple, RAPID development environment that's let me write truly large applications in record time, coordinating the efforts of hundreds of people in realtime, with an incredibly small initial investment. Because I know the program runs and then dies, I don't have to worry about memory deallocation, garbage cleaning, etc.

      Debugging is a snap, because I can write a page script to rollback the transaction, so I can just hit reload over and over until I work out all the kinks. And then update the script to commit the transaction and move on to the next stage of application development. So much better than client-side development, where you have to close the app, recompile, and re-run before you can even try again!

      Compatibility problems are really minor when compared to client-side development - yes there are browser issues, but I can test in IE 6, IE 7, and Firefox and call it a day. (I develop for FF first, then test in IE, THANK YOU IES4LINUX!) When I need to ensure a consistent document, outputting in PDF has worked very well with almost no complaints or support calls.

      Again, if browser-based development is so incredibly painful for you, I suggest improving your development tools. Web-based development is a breeze!

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
  4. Ahem... by Infinityis · · Score: 5, Funny

    In Soviet Russia, AJAX succeeded, then failed.

    AJAX is still failing for me, you insensitive clod.

    Yeah, but does AJAX run Linux?

    1. Invent AJAX at Microsoft
    2. Use AJAX at Google
    3. ???
    4. PROFIT!!!

    Ajax is still failing. Netcraft confirms it.

    I, for one, welcome our new AJAX-inventing overlords.

    Imagine AJAX naked, petrified, and covered in hot grits.

    AJAX must be new here...

    1. Re:Ahem... by Kelson · · Score: 2, Funny

      Wow... Imagine a Beowulf cluster of AJAX!

  5. Re:me and a group of people??? by aicrules · · Score: 2, Funny

    I believe he is using a purposeful grammar mistake to intrinsically connect his comments with a feeling of antiquity. Namely he's trying to cause a subconscious connection to popularized caveman vernacular, such as "Me build big fire!"

    As the casual reader will not quite catch the absurdity of the underlying pronoun use, but more likely just catch that the pronoun is improperly positioned (me before group), that incorrect pronoun is then only caught in the subconscious resulting in that caveman association previously described.

    Having subliminally caused hundreds of slashdot readers to equate him as such, he is then lent a slightly higher credence as "a good ol' boy" from "way back" who has obviously had a lot of experience.

  6. Pre XMLHTTPRequest by c0d3r · · Score: 3, Insightful


    I implemented an app that recorded all of the browsing and events in a frame that generated Javascript to re-play the browsing session to a hidden frame and saved the script via a Java Applet that connected to a Servlet like java program on the server way before XMLHTTPRequest existed. Java Applets can provide even better functionality, but unfortunately no one seems to be able to develop responsive, multithreaded applets in AWT for any browser, hence applets gained the reputation of being sluggish and unresponsive.

    1. Re:Pre XMLHTTPRequest by Mr.+Stinky · · Score: 2

      Java Applets can provide even better functionality
      Agreed!

      but unfortunately no one seems to be able to develop responsive Not always... there is Swing.

      Out of necessity, I wrote a suite of applets that given XML provide common controls like trees, lists and popup menus. I know there are other projects out there that do this, but they did not exist at the time I started the projects; besides it's fun to maintain. They are databound and in some cases threaded to provide a consistent user experience. When I build a complex UI, I use them all of the time. Yes they are free and open source, but I'm the only person who maintains (or uses) them.

      Some basic attributes that applets have that no other browser technology have are:
      • they interface with the parent OS's clipboard. You can actually copy Java Objects to the clipboard and they can be stored in multiple flavors (mime types).
      • the windows are highest-level in the OS, so popup windows can span across frames, and outside of browser windows.
      • Drag-n-drop can happen accross frames, because it's actually moving an array of different flavors of objects. Also with Java you can drop on the desktop or other apps. You can drag-n-drop accross frames in JS, but it's a hack. Note dnd does suck in most Linux implementations.
      • You can drag-n-drop files directly from your desktop onto areas of the applet, like the tree, and it will perform client-side uploads.
      • They can operate in a threaded manner when events are triggered. Though you can simulate this in Javascript, it can blow in terms of trapping errors...
      • They can scale very huge, as you can take advantage of java's garbage collector, and because the browser does not do well with 10,000s of event listeners like onchange.

      http://drknowledge.com/JX/?slashdot

      Forgive my shameless self-propping and horn tooting, but I've used Java to enhance UIs since long before AJAX so I thought I'd chime in.
      -=DG
      --
      Nothing is foolproof because fools are so ingenious.
  7. Re:framework by Rosco+P.+Coltrane · · Score: 4, Funny

    Teenagers.

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
  8. Asynchronous xml, something (kinda) new from M$ by marcello_dl · · Score: 4, Funny

    So, contextualizing the story a little:

    Microsoft embraces and extends*.

    One day, by mistake, Microsoft creates something new.

    Microsoft then proceed to bury the mistake until the folks of Mozilla discover and implement it.

    Having become a competing technology Microsoft embraces it and AJAX becomes a success.

    * Bill's wife is in fact from soviet russia. She embraces and "extends" him.

    --
    ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
  9. Thin and Thick Clients are not Mutually Exclusive by ThinkFr33ly · · Score: 5, Insightful

    People seem to constantly suggest that the future is either with thin clients or with thick clients, but they never really explain why.

    I think this is a false dichotomy. Thin clients and thick clients each have their uses. Thin clients are great as some things (deployment, maintenance, cross-platform capabilities, client security, etc.), where as thick clients are great at others (leveraging the local machine, UI flexibility, speed, privacy, etc.)

    The successful applications utilizing AJAX are those applications which really don't need to the capabilities of the local machine. Those that try to do what a local app is much better at are doomed to fail, at least for the time being. (AJAX office suites, for instance.)

    I see the line between these two kinds of applications slowly but surely blurring. I really doubt that HTTP/Javascript/XML will take us a whole lot further than we're seeing now. It just wasn't meant for this kinda stuff. While the various implementations of "rich" web applications are quite ingenious, they're hacks, and hacks can only take you so far.

    Instead, I see HTTP and the browser being the primarily delivery mechanism for rich applications running inside a sandbox on the client. Essentially the Java model, but done right. (And, perhaps more accurately, done at the right *time*.)

    You can see the beginnings of this with technologies like XUL, ClickOnce, XAML, XBAP, and WPF/E.

    It's just a matter of time before these things catch on.

  10. Why Bosworth Failed with AJAX in 97 by ingo23 · · Score: 5, Insightful
    I do not find his explaination of AJAX failure convincing. I also created an AJAX-like app in 2000 (well, ok, not in 97), but the main problem was not the network bandwidth, browser performance or app compexity.

    The main problem was the browser support.Yes, I had it working in both IE and Netscape. But at that time IE 4.0 was still quite popular, and good luck making any AJAX (or even pseudo-AJAX) working there.

    Ten years ago the web/HTML/HTTP concept was still based on request/response/full reoundtrip for each page, as it was originally concieved. DOM was not a standard (or at least was a standard on paper only), and using a browser as a thin client was not much better than developing a thick client - either you stick to a particular version of a particular vendor (a corporate application), or you go Java applet/activeX route which is essentially a thick client.

    Both browser performance and network bandwidth are an excuse for bad design and poor coding. If done right, AJAX apps can use even less bandwidth, then a traditional full page refresh.

    Bottom line - once the mainsteam browsers started to provide a decent and more or less uniform DOM support and other features like XMLHTTPRequest (although the latter was not really critical, but rather a convinient shortcut) - AJAX became feasible on the large scale.

  11. Did I missed something... by __aaclcg7560 · · Score: 2, Insightful

    I'm still waiting for AJAX to take off.

  12. AJAX == Thick Client by helixcode123 · · Score: 2, Interesting
    Ironically, while a web browser is commonly thought of as a "thin client", some major Enterprise Applications companies, wanting full client functionality on their web-based products, require downloads exceeding 2MB(!) for their "thin client" Javascript apps.

    Try putting 100 users of said web app on your network and watch your traffic surge.

    --

    In a band? Use WheresTheGig for free.

  13. Re:i hear... by Kalriath · · Score: 5, Informative

    Actually, strangely, he speaks truth. Since V4 or V5 or something of Internet Explorer, the Microsoft.XMLHTTP object shipped with the browser. Before that, it was a free download. This is the core of what XMLHTTP is based on - confusingly enough (and perhaps frighteningly) Microsoft was the first to implement XMLHttpRequest in their browser. Unfortunately, it was ActiveX based. But it did get the other browser makers thinking "how about..." which is something that I can only consider to be a Good Thing for us developers and users.

    Microsoft was also the first to support the .selectSingleNode and .selectNodes functions of the XMLDocument object. Thankfully Mozilla, Opera and the KHTML team picked up on that pretty fast.

    --
    For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
  14. Re:i hear... by abigor · · Score: 4, Insightful

    Actually, XmlHttpRequest/XMLHTTP was invented by Microsoft for IE 5.0. They have a credible claim to the whole Ajax thing. Wikipedia has a nice history of it. I guess this is tough to swallow for people who place a lot of emotional value in their software.

  15. Am I the only one who thought... by Dadoo · · Score: 2, Funny

    "...then I'm happy and sad for it"

    --
    Sit, Ubuntu, sit. Good dog.
  16. AJAX is a silly acronym by Dracos · · Score: 3, Interesting

    Most people agree that AJAX is a silly acronym. (I personally think DHTML is much sillier). Let's examine it.

    • "Asynchronous": I'll buy that.
    • "Javascript": won't be alone here for long.
    • "And": who makes a conjunction significant in an acronym?
    • "XML": the ideal, but not only, data format.

    Javascript can do a lot, but it wasn't originally designed for heavy application logic. Without getting redesigned to allow it to used outside the browser or web server, I believe Javascript will become a limitation for "AJAX" eventually.

    Also, the folks at Mozilla have plans to allow application developers using Gecko to completely sidestep javascript with other scripting languages, the first being Python:

    <script type="text/python">

    When this happens, will we see a new "technology" called APAX? Embedded scripting with Ruby begets ARAX? When does it end? Or does AJAX become an umbrella term like LAMP?

    "And" is only there to make the name pronounceable. It also just happens to leave us with a somewhat familiar word.

    XML here implies that you can only work with XML formatted data, which is not the case. XMLHTTPRequest also maintains a copy of the response as plain text, so it's just as easy to work with CSV, for example. Except there's no CSV parser built into Javascript.

    AJAX is a silly name, but we're probably stuck with it.

    1. Re:AJAX is a silly acronym by EvanED · · Score: 5, Funny

      See this diagram, and in particular the arrow from "people who refuse to use the word AJAX to "AJAX programmers"

  17. Re:i hear... by dedazo · · Score: 3, Informative
    The first successful, viable, externalized commercial "AJAX" application was Outlook Web Access (OWA). And it was that until GMail "discovered" out-of-band JS requests and some blogger re-christened it "AJAX".

    I guess there's a joke here somewhere about Google having to steal talent from Microsoft, given that Microsoft is usually accused of the same thing.

    --
    Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
  18. Re:Javascript can be disabled... by EvanED · · Score: 3, Insightful

    Huh?

    Graphics can be disabled too. Are they only useful for toys?

    Heck, I can telnet into a host and issue the HTTP request myself. HTML rendering can be disabled too. Is HTML only useful for toys?

    If there's an application that needs Javascript, then the user will turn on Javascript or go somewhere else. If you don't care about the latter response, or if there's no alternative, then Javascript is a fine solution. The problem with "Javascript can be turned off" is if you don't take this into account for problems like security and validation. If not having it enabled can affect OTHER people, your program's designed wrong; if it only affects the person who doesn't have it enabled, that's fine.

  19. 1997 called to say it put Java on hold by Anonymous Coward · · Score: 2, Interesting

    Nobody in their right minds runs random Java applets or activeX controls off the web, the same should be true of javascript. The hand-waving about AJAX ignores the fact that not all clients fully implement the W3C DOM or scripting. Every time it's mentioned, graceful degradation is brought up but that's crap because it relies on developers most of whom do not write documents that degrade. Nobody wants to be writing large apps in javascript and neither was HTTP designed for the current crop of "we can do it in the browser" kludges. That leaves easy cross-platform deployment as the only thing AJAX has going for it.

    What the AJAX thing shows is that the time has finally come for Java.

  20. Re:AJAX? stop the web 2.0 buzzword bullshit by djdavetrouble · · Score: 2, Funny

    Niiiiice. I'm pretty sure that is NOT how you spell nice! ;)

    --
    music lover since 1969
  21. Re:Thin and Thick Clients are not Mutually Exclusi by Yakman · · Score: 2, Interesting

    The Flex IDE and the Charting package is US$750, the Flex SDK which includes the command line MXML -> SWF compiler and the whole component library (ie. UI controls, RPC, everything else) is a free download from Adobe. Excluding charts, which is a component library anyway and not dependant on the IDE, you can build everything with the free SDK that you can with the package. You could always write your own charting components or find an open source one if you needed charts.

  22. GoogleMaps--Killer App is Super Simple by curmudgeon99 · · Score: 2, Insightful

    The whole AJAX craze was a big bait and switch. Everybody oohed and aahed over Google maps. Then the developers ran out and added to their projects. And then the big ol' wait happened. Unless the data you're getting is miniscule, AJAX is pig slow. My business customers all assumed that every bit of data was free and so they all started asking for these post-less pages full of AJAX. I cursed the day they ever heard that damned acronym. Google maps is a super easy and uncomplicated implementation of AJAX. The way it works is: if you're about to go to a cell for which the image is not already downloaded, it is triggered to go get it. That's it. It just gets images as needed. No hard-core calculations or anything. So simple because the job it's doing is really simple.

  23. Re:i hear... by xC0000005 · · Score: 2, Informative

    Yeah, and Exchange 2000 used XML & Javascript for a massive chunk of its functionality. Then again, 5.5 OWA had done a bunch of javascript (but XML, not so much).

    --
    www.voiceofthehive.com - Beekeeping and Honeybees for those who don't.
  24. AJAX will never succeed... by evilviper · · Score: 4, Insightful

    AJAX is going to be a buzzword for a couple years, then it's going to fade out just as quickly. Just like Java applets before it. Once the "new" factor wears off, people will more clearly see the limitations and problems, and stop bothering.

    Let me ask this... who the hell WANTS to move their apps to the web? Web pages are a mess of inconsistency that is rather painful to navigate... As much as people complain about desktop apps, the biggest differences there are nowhere near the variations in web pages.

    AJAX apps have to be perfect, because the baseline (the browser footprint and network response time) puts them at significant disadvantage, before you even start adding any features. From there, it can only get worse.

    What's more, AJAX really only stands a chance of replacing the most basic programs (There's not going to be an AJAX version of Photoshop any time soon). So for all this overhead, you're still only doing what a tiny, lighting fast desktop program has been doing, and doing well, 2 decades ago. And my tiny, non-AJAX e-mail program is faster, better, more readable, more customizable, and has far more features, many not even technically possible via AJAX.

    AJAX strikes me as the kind of thing that is popular, just because it can be.

    And personally, I avoid any companies that go out of their way to remove backwards compatibility, for flashy new features.

    --
    Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    1. Re:AJAX will never succeed... by Bill,+Shooter+of+Bul · · Score: 4, Insightful
      Interesting perspective. There are apps that were made for AJAX and those that do work much better on the desktop, like photoshop. Basically web apps make sence for two reasons:
      1. Instalation problems dissapear
      2. Apps need to access centralised data that cannot be stored locally


        1. You can make a good application on windows, mac, linux easily now, with minimal problems with instalation or dependancies, but it wasn't alwasy that way. We've all seen terrable desktop apps ( Real player? What a joke) that crash, don't install correctly, have conflicting dependancies with other apps, ect. Going to the web removes all of that. ALl you need is IE 6 or firefox. Thats it. No instalation, no upgrading, instant functionality. Ajax and other javascript can make the app handle more like a simple desktop app.

          Then there are applications that CAN NOT exist on the desktop. Do you really want to install amazon to buy books? What if you find a better deal at barnesandnoble? you have to somehow find the app and install it. Comaprison shopping takes a nose dive. Furthermore, the app has to communicate with a remote server some how inorder to get new products and place orders. WOuldn't it be nice if there was a standard way to create interfaces to interact with these remote services? Well, now your just recreating HTML/ Javascript.

          I don't know who you are or what you do. You really remind me of someone I used to work with. We had this same argument. Not about ajax, but web vs Desktop. Are web apps perfect? of course not. Are they always better than a desktop equivalent? No, but they can be. Don't avoid something just because its popular, or it has "hype". You have to apporach any new technology with an open mind and objectively evaluate the facts. Unfortuantly, it doesn't stop there. The moral of this article is that the "facts" change over time. What was once a useless technology now has a use. Keep evaluating technologies in light of new developments.
      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
  25. We Need a Generalized Acronym by sweatyboatman · · Score: 3, Funny

    Clearly, once other languages get involved we'll need a different acronym.

    I propose Asynchronous Scripting Embracing XML Using Any Language

    ASEXUAL. It works to both describe the technique and many of the people who use it. Bah-dum-ching! Thank you, thank you, I'll be here all week.

    --
    It breaks my pluginses, my precious!
  26. The story of XmlHttp by Anonymous Coward · · Score: 4, Informative
    There seems to be a difference of opinion of how AJAX came to be, according to the developer that actually implemented the first prototype:

    http://www.alexhopmann.com/xmlhttp.htm

    The work to create what became known as XmlHTTP was done by folks in the Outlook Web Access, and it was a gradual development, it did not come in the form of a spec by a third party group, but some brainstorming and mixed ideas as those developers were trying to build OWA (they were using clever post backs at the time), he describes it as:

    At some point Brian Valentine (who was still the GM of Exchange at the time) asked us to figure out what to do with OWA for Exchange 2000. There were two implementations that got started, one based on serving up straight web pages as efficiently as possible with straight HTML, and another one that started playing with the cool user interface you could build with DHTML. When I first got a demo of the DHTML work that Jim Van Eaton and Bob Gering were doing I was just blown away. However they were basically doing hacky form-posts back to the server and had some of the same scalability and dynamic data problems of the old version.
    The guy that implemented the feature joined Microsoft in 1997, and would not start working on it until 1998 and the work did not start until 1998 (he said "probably in late 1998"). In fact, according to that history, they had to scramble to get the feature into IE5 (finally released in March 1999):

    Meanwhile the IE project was just weeks away from beta 2 which was their last beta before the release. This was the good-old-days when critical features were crammed in just days before a release, but this was still cutting it close. I realized that the MSXML library shipped with IE and I had some good contacts over in the XML team who would probably help out- I got in touch with Jean Paoli who was running that team at the time and we pretty quickly struck a deal to ship the thing as part of the MSXML library. Which is the real explanation of where the name XMLHTTP comes from- the thing is mostly about HTTP and doesn't have any specific tie to XML other than that was the easiest excuse for shipping it so I needed to cram XML into the name (plus- XML was the hot technology at the time and it seemed like some good marketing for the component).
    Which is at odds with Bosworth's claim that they helped invent AJAX in 96-97.

    Like many people at the time, the idea of calling code on the server was around, Netscape even shipped in 1997 shipped a browser that contained an IIOP client (IIOP is a binary protocol, part of CORBA) that allowed the browser to communicate with IIOP servers on the other end:

    http://cgi.netscape.com/newsref/pr/newsrelease389. html

    Forté and Netscape have already begun work on this seamless access. Forté has exposed its services to IIOP and is working with Netscape to allow Visual JavaScript to call these and other IIOP-components. Using Netscape Visual JavaScript, enterprise developers can rapidly build Crossware, a new category of on-demand applications that run across networks, operating systems and platforms and are based on open standards. Crossware is an ideal mechanism for customers to take advantage of the distributed functionality of Forté applications within an Intranet or Extranet environment.
    This was part of the "Netscape ONE" an effort to create a fully web-based development platform.

    At the time Netscape was touting the benefits of using this new API as a way of building rich applications. So the idea predated Microsoft and Bosworth, but never got mass adoption.

    So who came up with the idea first is hard to tell. But it seems obvious that Ajax did not originate within Bosworth's own team in the 96-97 time frame, but in another team: the Exchange group in late 1998 to 1999.

    As they say, "Success has many fathers, and failure is an orphan."
    1. Re:The story of XmlHttp by alexhop · · Score: 2, Informative

      Both are to some extent true- What we call AJAX today is a collection of many things- The basic dynamic HTML infrastructure. The XMLHTTP & async network communication piece. And the patterns of tying it all together. Adam and his team (especially folks like Rod Chavez, Michael Wallent and many others) invented the Dynamic HTML part which was miles beyond what Netscape was doing at the time. I just filled in the XMLHTTP piece, and collaborated with many others to do the first major app that tied it together (Outlook Web Access). Without the earlier contributions of the Trident/IE teams, it wouldn't have been possible, and its absolutely true that Adam and many folks he worked with had the conceptual vision for tying it together (he called it weblications at the time). Having said that, they never built a real app with it and the act of using it for real turned up some missing pieces, leading to XMLHTTP as well as several other things that the Trident and XML teams themselves pioneered.

      I'll be writing more notes on this at http://www.alexhopmann.com/

  27. Iframe deprecated? by Yoozer · · Score: 2, Informative

    Where exactly do you see it's deprecated? W3schools doesn't mention it, Wikipedia does neither, and on the W3 page for iframes nothing is mentioned about deprecation. If you mean the oh so hip use of using a hidden iframe to send all kinds of crap back and forth instead of the XHR object, then yes.

  28. Another Reason by RAMMS+EIN · · Score: 2, Interesting

    While I mostly agree with Bosworth's explanation, I have one thing to add. One reason that DHTML didn't succeed at first is that developers did not want to use it. I was doing DHTML in 1997 or thereabouts. Friends of mine have been doing it since at least 2000. All of us, at some point, came up with the plan to implement a desktop-like GUI environment using JavaScript and HTML. But all of us eventually backed out. The reason is that we realized we just weren't using the right tool for the job. Whatever you do, you're going to end up making lots of HTTP requests and sending enormous amounts of JavaScript down the tubes. Also, web browsers were and still are slow and lacking some controls and features one would want to use in interactive applications. I briefly campaigned for adding some simple, useful features, but, after ten years, none of them have been added yet. Eventually, I just lost interest.

    The landscape changed when toolkits started to become available that hid all this madness from developers. Nowadays, you can develop DHTML apps in sane languages, and have all the crud that is needed to make things sort of work in browsers be automatically generated. Coupled with faster computers and faster network connections, both the developer and the end user get an acceptable experience. I think that's what really caused DHTML to take off.

    And yes, I'm saying DHTML, rather than AJAX, because XmlHttpRequest is just one way to poll the server; the essential feature is dynamically updating the page.

    --
    Please correct me if I got my facts wrong.