Slashdot Mirror


Open Source AJAX toolkits

twofish writes "InfoWorld columnist Peter Wayner recently reviewed six of the most popular "open source" Ajax toolkits. The article sets out to see if they are enterprise ready in comparison to commercial products such Backbase, JackBe, and Tibco's General Interface. The six open source projects covered were selected because each has a high-profile in the developer community and support of one or more stable organizations. " The toolkits covered are:
  1. Dojo
  2. Google Web Toolkit
  3. Microsoft Atlas
  4. Open Rico and Prototype
  5. Yahoo AJAX Library
  6. Zimbra Kabuki AJAX Toolkit


Whilst the definition of open source is broad, the round-up is quite helpful.

147 comments

  1. Nice, printer format... by jbarr · · Score: 2, Informative
    --
    My mom always said, "Jim, you're 1 in a million." Given the current population, there are 7000 of me. God help us all!
    1. Re:Nice, printer format... by twodot72 · · Score: 1

      What the heck? Why is a comment which is just the link you get by clicking the printer icon on the original story worth +5 ??

    2. Re:Nice, printer format... by jbarr · · Score: 2, Insightful
      Why is a comment which is just the link you get by clicking the printer icon on the original story worth +5 ??
      Probably because a large percentage of the /. community prefers "to-the-point" links instead of the typical multi-page click versions. I personally get really annoyed by online articles that require page-click after page-click just to read an article, so printer-formatted versions typically are consolidated and easier to read. It was really just a courtesy that many in the /. community enjoy.

      Was my post worth +5? Probably not, but obviously, enough appreciated it enough to mod it up....
      --
      My mom always said, "Jim, you're 1 in a million." Given the current population, there are 7000 of me. God help us all!
    3. Re:Nice, printer format... by Bill+Dog · · Score: 0, Offtopic

      Haven't you noticed, pretty much every first post (that's not a troll post) goes to +5.

      --
      Attention zealots and haters: 00100 00100
    4. Re:Nice, printer format... by twodot72 · · Score: 1
      Was my post worth +5? Probably not, but obviously, enough appreciated it enough to mod it up....
      Didn't say it was bad, or useless. Just wondering about the reasoning of modders. Say the guy/gal who found it at +4 and thought it was in desperate need of even more mod points. That, I cannot understand...
    5. Re:Nice, printer format... by PastaLover · · Score: 1

      I'd personally have posted it as anonymous though since you get a lot of karma with little effort now, while not really adding anything to the discussion. Not that I'm saying there's anything wrong with that, but it seems to be the consensus that reprinting stories should be done anonymous and this seems to fall under the same category.

  2. "Open source?" by cbiffle · · Score: 4, Insightful

    This column uses an interesting definition of Open Source.

    From the article:
    Microsoft's Atlas may not be open source -- the license includes terms that would rankle a devotee -- but the code you create with the system is yours to license as you like, and you'll be able to create Atlas apps with few practical restrictions.

    Oh. Is that what Open Source means? That I can create apps with it and license them how I like? Well, crap, Visual Studio must be open source too!

    Last I checked, neither Atlas nor GWT were open source in any sense of the word, though at least GWT will run on real servers.

    1. Re:"Open source?" by achacha · · Score: 4, Interesting

      The only reason large corporations push some toolkit as "open source" is because:

      1. It's a crappy product that their marketing people cannot justify as promotion cost
      2. There are better free products
      3. They are trying to get their foot into the niche so they can then charge for the "Professional" version
      4. They don't understand the space yet

      This is common for Microsoft and now becoming common for Google.

      Sadly AJAX is still the "silver bullet" of web based companies and the buzzword of the moment. So many companies are using AJAX for the sake of using it despite the fact it is not applicable to the ir use case; sometimes it is easier to wedge something in and use a buzzword to sound cool and relevant.

    2. Re:"Open source?" by andrewman327 · · Score: 1

      Just because you can write OSS with a program does not make that program OSS unless the source of said program is, you know, open! I'm surprised that /. would post a story like this.

      --
      Information wants a fueled airplane waiting at the hangar and no one gets hurt.
    3. Re:"Open source?" by Anonymous+Conrad · · Score: 3, Interesting
      Last I checked, neither Atlas nor GWT were open source in any sense of the word,
      But you can download the Atlas source code and at first glance the licence meets the Open Source definition: it's a simple no endorsement, no liability, no patent disputes licence. So what's the problem?
    4. Re:"Open source?" by Anonymous Coward · · Score: 0

      The problem is that this is a collection of controls built on TOP of the Atlas Framework, not the framework itself.

    5. Re:"Open source?" by hey! · · Score: 2, Interesting

      5. Because they can't allow a hostile competitor to obtain control over a piece of software infrastructure that is critical to them.

      i.e., they have learned the lesson of Borland.

      e.g., Oracle can't survive in the long term if Microsoft gains control over server platforms

      e.g., IBM can't survive inthe long term if they have to use Microft's own tools to complete with it.

      So: yes, support of open source is self interested in cases like these. But not necessarily cynical or pernicious.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    6. Re:"Open source?" by swelke · · Score: 1

      Several parts of GWT are actually open source. The trouble is that the Java to JavaScript converter is proprietary, and the rest is pretty much useless without that part. So while GWT technically is largely open source, for practical purposes it might as well be proprietary.

      --
      Have you ever wondered How to Take Over
    7. Re:"Open source?" by krahd · · Score: 1

      It's pretty interesting, actually, that Open Source (once a synonym in the enterprise arena to crappy software, like the sharewares of the 90's) has became a trendy word and is used to give projects some kind of being-cool status.

      I see it at work on a daily basis, when I say that the project I'm working in is based on OS software I always get the you-must-be-a-top-software-engineer look (and pretty much the same happens with AJAX and old engineers that are kinda scared because they don't understand why everyone is so crazy about something that looks just like the architecture they had long time ago).

      Anyway, if the trendy thing keeps growing, soon both OS and AJAX phrases will be eaten by the PR machine and lose their meaning (in a similar way with the "hacker" word)

      --
      mod me up scottie!
    8. Re:"Open source?" by aztracker1 · · Score: 1

      MS started in this route after their black eye from the 3rd party Ajax .Net and Anthem .Net. Developers started asking about "AJAX" support really late in the .Net v2.0 (Visual Studio 2005) pre-release cycle. Afaik Atlas will probably be one of the primary forms of AJAX-style web development (partial to atlas, and some roll my own), along with Ruby On Rails.

      I don't necessarily think it will be the best solution. The yahoo tools are really more D/HTML client-side tools, and not sure where they fit into this perse, since you still need client/server communication. I would love to see Anthem's API model used within toolkits for other languages/platforms.

      --
      Michael J. Ryan - tracker1.info
    9. Re:"Open source?" by Bogtha · · Score: 1

      The class libraries are available under the Apache 2.0 license. The compiler itself is proprietary.

      --
      Bogtha Bogtha Bogtha
    10. Re:"Open source?" by Eivind+Eklund · · Score: 1
      There's several more important reasons:
      • They produce the toolkit as an incidential when developing something else, and want the chance to get feedback and patches to it. This is much of the same reasoning as many open source developers (people) use.
      • They want the internal morale boost among employees that many people get from going open source.
      • They want to improve their public image.

      Eivind.

      --
      Doubting the existence of evolution is like doubting the existence of China: It just shows that you're uninformed.
  3. Java != Javascript by andrewman327 · · Score: 4, Interesting
    From TFA: "[...] JavaScript is pretty close to a superset of Java[...]. It's not complicated to strip away some typing information from the Java code and end up with something that resembles JavaScript."


    This is in response to Google's toolkit, which allows users to code in Java instead of Javascript. I think this feature is a real winner to Java coders. Who wants to code Javascript when you can use Swing? Regardless of what TFA says, there is a difference between the two programming experiences.


    In summary, if you are already proficient in Java, Google is the way to go.

    --
    Information wants a fueled airplane waiting at the hangar and no one gets hurt.
    1. Re:Java != Javascript by StarvingSE · · Score: 4, Interesting

      The author of TFA is just dumb and doesn't know what he is talking about. First he says that Microsoft Atlas is open source. Then, it sounds like he truly believes that Java and Javascript are related in some way. Besides some similar syntax, they are both mutually exclusive.

      when are people going to realize that Javascript and Java share only a name???

      --
      I got nothin'
    2. Re:Java != Javascript by Anonymous Coward · · Score: 3, Informative

      Who wants to code Javascript when you can use Swing?

      Google did not write a Swing API for JavaScript. That would be incredibly complicated and not worth their time. As you can see here, only some classes in the java.util and java.lang packages are supported, and some of them do not have identical APIs due to the differences between Java and JavaScript. The user interface can be written using GWT's components.

    3. Re:Java != Javascript by andrewman327 · · Score: 4, Interesting
      The confusion of Java and Javascript is one of my biggest pet peeves in computer science. I am fairly proficient in Java, but I still have to look up which command to use the once a year I actually write in Javascript. Google's engineers worked hard to design a system to convert Java into another format only to have this journalist completely disregard it.


      It's times like these that I am glad I get to tag articles.

      --
      Information wants a fueled airplane waiting at the hangar and no one gets hurt.
    4. Re:Java != Javascript by Anonymous Coward · · Score: 0
      First he says that Microsoft Atlas is open source.
      As above, you can download the source and the licence looks reasonably friendly. But probably not GPL compatible because of the patents bit.
    5. Re:Java != Javascript by Selanit · · Score: 4, Interesting

      An early development version of JavaScript was code-named "mocha." All the way through the old 4.x series of Netscape Navigator, you could access the JavaScript console by typing "mocha:" in the address bar. How I wish they had just adopted that name for the language as a whole! It would have prevented so much confusion.

    6. Re:Java != Javascript by andrewman327 · · Score: 1

      That would have saved so much confusion. I have read that Java is so named because it was originally designed to operate vending machines. I wonder how Javascript became confounded into the mix.

      --
      Information wants a fueled airplane waiting at the hangar and no one gets hurt.
    7. Re:Java != Javascript by larry+bagina · · Score: 4, Interesting

      Mocha was renamed to LiveScript, which was then renamed to JavaScript (and later ECMAScript). "JavaScript" is actually a Sun registered trademark. When JS first made it's oh-so-buggy appearance, I thought Netscrape was trying to jump on the Java hype, but I think Sun paid them to change the name.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    8. Re:Java != Javascript by zaqattack911 · · Score: 1

      I second that motion!

      This author is obviously not a developer.

      "This isn't as magical as it sounds because JavaScript is pretty close to a superset of Java, at least in a cosmetic sense. It's not complicated to strip away some typing information from the Java code and end up with something that resembles JavaScript."

      uuuh this is totally besides the point, even if it IS false. Forget about this idea that the toolkit converts java code to javascript (which in itself doesn't make any sense).

      The point is you can code server side applications that automatically handle browser behavior. Hacking javascript into the outgoing html from a server-side app usually ends up polluting your code... makes it harder to read, harder to maintain, plus you have to worry about different implementations of JS across browsers.

    9. Re:Java != Javascript by SanityInAnarchy · · Score: 2, Funny

      I'm just the opposite. Java is just a bastardized C++, which is a beyond-bastardized C. JavaScript is a real language -- it's a bit like Ruby, kind of a Lisp in C's clothing.

      --
      Don't thank God, thank a doctor!
    10. Re:Java != Javascript by andrewman327 · · Score: 1

      I hate to get into a flame war, but Java stands on its own as a great programming language. My point is, however, that Java coders will feel much more comfortable using Google's software than the competition.

      --
      Information wants a fueled airplane waiting at the hangar and no one gets hurt.
    11. Re:Java != Javascript by Anonymous Coward · · Score: 1, Interesting

      And now it's part of Java (1.6 comes with Rhino), and it pretty seamlessly loads and scripts java classes. In fact, interop with Java was part of LiveConnect. So "nothing to do with java" is basically an ignorant tirade tossed out by people who expect it had to actually be java and not just script it, which it did ever since the name was changed.

    12. Re:Java != Javascript by WilliamSChips · · Score: 1

      I always thought that Java was a beyond-bastardized Smalltalk.

      --
      Please, for the good of Humanity, vote Obama.
    13. Re:Java != Javascript by stu42j · · Score: 2, Informative

      The history of JavaScript from its inventor:

      http://wp.netscape.com/comprod/columns/techvision/ innovators_be.html

    14. Re:Java != Javascript by drew · · Score: 1

      Who wants to code Javascript when you can use Swing?

      Isn't that a bit like saying "Who wants to get hit by a bicycle when you can get run over by an SUV?"

      --
      If I don't put anything here, will anyone recognize me anymore?
    15. Re:Java != Javascript by andrewman327 · · Score: 1

      That depends; are you asking me which vehicle I would rather be piloting when I hit someone?

      --
      Information wants a fueled airplane waiting at the hangar and no one gets hurt.
    16. Re:Java != Javascript by Anonymous Coward · · Score: 0

      If you want your webpage to work reliably you will not use javascript at all.

      Javascript sucks, it is totally unreliable and a stupid crutch to achieve gee whiz effects that serve only to break your webpage for most users.

      Give it up already.

  4. Erm... by savala · · Score: 5, Insightful
    If you want to add AJAX to the magic collection of buzzwords supported by your Web site (and who can resist the siren call of the latest buzzword?), then you have two major options: purchase a proprietary package or experiment with open source libraries.

    Or just write the ten lines needed to do XMLHttpRequest calls yourself (there, that's the AJAX part taken care of), and for all other effects write your own functions just like always (copy/paste from your personal library and adapt), so you don't have to deal with bloat, nine out of every ten functions being unneeded, and far too many levels of abstraction and generalization, and have the benefit of actually being able to quickly debug the script when you encounter a problem!

    The only organizations where these toolkits might be useful are the really really large ones where there's a team that can dig into the framework and basically "make it their own". Everything smaller, using occasional contractors to maintain the code, benefit far and far more from simplicity, readability and maintainability than from dubious-quality top-heavy frameworks with lack of code-level documentation and thousand and one edgecase-bugs. (Spoken like someone who's had to trace such bugs in the mess of prototype and scriptaculo.us; I've only _looked_ at Dojo, Rico, Yahoo and Zimbra (and not at all at the other two), but my impressions were that what they made up in better code quality, they lost in bloat.)

    1. Re:Erm... by LiquidCoooled · · Score: 3, Interesting

      and for all other effects write your own functions just like always (copy/paste from your personal library and adapt)

      Or you just do exactly what digg does and take your own javascript library and include everything you possibly can do "just in case".
      I'm actually surprised kitchenSink.js isn't included.

      This is just an example from the standard front screen of digg without any cookies or logins to concern itself with.

        <script src="/js/spellChecker.js" type="text/javascript"></script>
        <script src="/js/utils.js" type="text/javascript"></script>
        <script src="/js/xmlhttp.js" type="text/javascript"></script>
        <script src="/js/comments.js" type="text/javascript"></script>
        <script src="/js/wz_dragdrop.js" type="text/javascript"></script>

        <script src="/js/hover.js" type="text/javascript"></script>
        <script src="/js/label.js" type="text/javascript"></script>
        <script src="/js/dom-drag.js" type="text/javascript"></script>
        <script src="/js/switcher.js" type="text/javascript"></script>
        <script src="/js/prototype.js" type="text/javascript"></script>
        <script src="/js/scriptaculous.js" type="text/javascript"></script>

        <script src="/js/lightbox.js" type="text/javascript"></script>
        <script src="/js/aboutdigg.js" type="text/javascript"></script>

      --
      liqbase :: faster than paper
    2. Re:Erm... by slindseyusa · · Score: 5, Insightful

      I used to agree with this, until I spent some more time looking into it. Certainly XMLHttpRequest is the most powerful aspect of Ajax and it is easy to use. But Ajax generally comprises much more than that. The Dynamic HTML part can get quite confusing, especially across browsers. Look at the examples of what some of these projects can do. They are certainly big and sometimes bloated. I'm still struggling with that part as well, but I don't have the time to figure out all the details when a toolkit can handle that for me. It's no different than using a high level language and libraries, or should I write all my code in Assembly?

    3. Re:Erm... by jZnat · · Score: 1

      Nice to see that they forgot that the MIME type for JavaScript is "application/javascript"...

      --
      'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
    4. Re:Erm... by tenchiken · · Score: 2, Interesting

      As someone who has tried to do what you suggest, and then worked in pain to deal with all of the cross browser issues, the strange XMLHttpRequest behavior, systems for relability,etc, the bloat is well worth it.

    5. Re:Erm... by ukleafer · · Score: 2, Informative

      dig into the framework and basically "make it their own".

      just an aside, but any modification of the framework code itself in GWT (maybe some of the others too?) is a breach of the T&C that the developer accepted before downloading the kit.

    6. Re:Erm... by maxume · · Score: 1

      Maybe take a look at http://www.mochikit.com/. At 110 kilobytes, the full distribution isn't super small, but it includes quite a bit of stuff and can be used in a more modular fashion to save on size.

      --
      Nerd rage is the funniest rage.
    7. Re:Erm... by fotoflojoe · · Score: 1
      Or just write the ten lines needed to do XMLHttpRequest calls yourself (there, that's the AJAX part taken care of), and for all other effects write your own functions
      Right on Savala!
      KISS: Keep It Simple Stupid.
    8. Re:Erm... by saltydogdesign · · Score: 4, Insightful

      In my experience, prototype and Dojo are both very stable at this point, far more stable than would be any comparable library of my own making, as I don't have a team of developers or a large body of users available to test it for me. You think there's a thousand and one edgecase bugs in prototype? How many are in your personal library? I'd far rather rely on something that has been seen and used by a thousand people than something that's been seen and used by one.

      As for the usefulness of these toolkits, weighing in at 53k (considerably less if you were to use any of the js compacting methods available out there), I find prototype to be an enormous time-saver, and the code saved in my applications goes a great distance toward offsetting the one-time 53k download for users of my websites.

      Look, if I took your logic, the next time I wrote an OS X app, I'd write it from scratch in C, without the benefit of the Mac frameworks, and cut and paste from "my own personal library." And I'd probably want to compile it by hand too -- God knows what kind of code the compiler is actually generating, right?

      There is a tremendous advantage to abstraction and generalization -- indeed, we'd still be coding ones and zeros if we didn't have it. Sure, you can take it too far too fast, but as one who has done a lot of coding with javascript since not long after its inception, I can tell you that unless you're not doing anything much more complicated than rollovers, it's time to move up. Whether you want to do that with community code or your personal collection is up to you, but I'd like to have a little free time at the end of the day.

      --
      // This is not a sig.
    9. Re:Erm... by Bogtha · · Score: 2, Informative

      Nice to see that they forgot that the MIME type for JavaScript is "application/javascript"...

      Forgot? The media types for JavaScript were only standardised this year. Before April, application/javascript was merely a common convention - and actually a less common convention than text/javascript, which is also an acceptable (if deprecated) media type for JavaScript according to the RFC.

      So a) there wasn't anything to "forget", and b) they aren't doing anything wrong anyway.

      --
      Bogtha Bogtha Bogtha
    10. Re:Erm... by Anonymous Coward · · Score: 0

      The dynamic HTML parts are not really part of AJAX but the remaining parts of the tool kit (which ever you use). The AJAX part is just the XMLHttpRequest and the javascript code to handle the event receiver. Nothing more. You do not really need bloated DHTML to get AJAX web pages. Have the request return HTML and just set the innerHTML on a div tag to the request text and voila.

      But of course it all a definition question of what AJAX contains or not.

    11. Re:Erm... by Bogtha · · Score: 3, Insightful

      It depends what you are using it for. For a complex DHTML interface for a web application that people use on a regular basis, sure, ~50KB isn't a big deal, especially when it's usually going to be coming from their cache. But for an average website that just wants to enhance particular aspects of their interface, it's ludicrous to make visitors download all that JavaScript, most of which will remain unused.

      The Digg example LiquidCoooled posted is a good one. The Digg developers seem to have paid no attention to efficiency, they just dump everything they might ever possibly use onto every page regardless of whether they use one function or twenty. For instance, they reference a 36KB drag and drop library on every page on their site, but I don't see them actually using any drag and drop anywhere - do you? Or how about the fact that they reference aboutdigg.js on every page despite the fact that the code is only ever used on one specific page which most visitors aren't ever going to visit anyway?

      Sure, there are a lot of instances where it's a good idea to use a library. But I think a lot of the people using libraries like this are doing so because they want to cut corners, not because it's the right tool for the job.

      --
      Bogtha Bogtha Bogtha
    12. Re:Erm... by CastrTroy · · Score: 1

      We decided to sit down and do some simple Ajax on our site at work, and once we sat down and thought about it for a couple days, we came up with a lightweight solution that required very little JavaScript, and didn't require that every developer know javascript in order to do something new. When you think about it, there's not really that much you can do. Change the value of some form fields. Add some HTML into the document or remove some. There really isn't all that many things you can do. Or at least not a lot of things you need to do. People don't understand just how little code you need to write a simple Ajax framework. I find that most developers over engineer everything, when most of the time, a simple solution will solve all your problems.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    13. Re:Erm... by saltydogdesign · · Score: 1

      Fair enough. I think your ire is best aimed at people who are just plain sloppy and don't think about what they are doing. Folks like that are a problem regardless of how great the tools are...

      That said, I can't speak to the Digg example, but I have seen plenty of large sites where it is worth it in terms of developer time to dump everything you might need everywhere rather than crafting the right set of functions for each page. I work for a university, and there's undoubtedly a lot of unused code on our site, but then, if the tiny staff here aimed for maximum code efficiency over the thousands of pages we're responsible for, we'd never get anything done.

      ADDENDUM: Actually, I just went over and looked at Digg, and I'd have to say the big crime they've committed is to have so *many* files devoted to like one tiny little function. The aboutdigg.js file you mention is a measly 183 characters. Hell, the HTTP overhead is probably bigger than that.

      --
      // This is not a sig.
    14. Re:Erm... by FuzzyBad-Mofo · · Score: 1

      Just be glad they're not using language="Javascript" without a MIME-type at all..

    15. Re:Erm... by jozeph78 · · Score: 1
      It depends what you are using it for. For a complex DHTML interface for a web application that people use on a regular basis, sure, ~50KB isn't a big deal, especially when it's usually going to be coming from their cache. But for an average website that just wants to enhance particular aspects of their interface, it's ludicrous to make visitors download all that JavaScript, most of which will remain unused.

      ...
      Sure, there are a lot of instances where it's a good idea to use a library. But I think a lot of the people using libraries like this are doing so because they want to cut corners, not because it's the right tool for the job.

      While I personally despise bloat, those 50KB .js files are downloaded once and cached. I may not use every drag/drop function on every page, but it's far easier for me as a developer to just include prototype.js rather than piece a specially trimmed .js file for each page. It also means you download one 50k file once instead of a 20k file per page with mostly redundant code.

      Additonally, the point of a framework is to make it easier to develop, and while you may not use 50% of the javascript functions the reward of shaving 25k of precious(?) bandwidth is not worth customizing a standard library, such as prototype or scriptaculous. Not to mention maintainence of my now custom .js file.
      --
      Ever done a `man` on `top` ?
    16. Re:Erm... by PietjeJantje · · Score: 1
      For my AJAX open source project (see sig), I took a similar approach uptil now. I needed to built a lot of AJAX functionality, and the question is, do you start from scratch or use one of the libraries? I started from scratch because 1) I needed the master the technique, 2) Libraries are bloated with load times needing load indicators.. I don't want that, 3) Own implementation does exactly like I want it with relatively little code, 4) These AJAX libs are fairly young, to built a framework around and it see the landscape change totally in a year is a dangerous path.

      However, when you start playing around with AJAX, you get a whole different abstraction of what you're doing. Basically a lot of GUI elements start to become part of the play, and it becomes a whole new ball game. Everybody is realizing this and building libraries, but none has reached a status yet where I'd consider it the great definite GUI toolkit, for the web using AJAX. This means that commiting to any of the current incarnations is like commiting to a dinosaur from the start.

      This means when your AJAX complex reaches a fair amount of complexity, one is kinda stuck. Basic hacks don't cut it anymore, doing a great lib yourself is a complete project on itself, and commiting to other libs has the disadvantages named above. But I might be overgeneralizing.

      I think I found middleground with the Jquery library: http://jquery.com/

      It's tiny (15K) yet powerful and takes a whole lot of work away, and therefore meets most of my requirements.

      AJAX btw is quite enjoyable. On one hand you have the marketeers screaming blah at you like "web 2.0" for everything, and at the other hand you have the average ol' skool slashdotter screaming blah and fud at you for anything javascript or faintly smelling of "web 2.0", to point out their superiority ;) I haven't seen so many smartasses since Gopher was hailed over Mosaic 0.9b as more secure, less bandwidth demanding, thus making the later unnecessary and bloated.

    17. Re:Erm... by fireboy1919 · · Score: 1

      Sure, you can take it too far too fast,

      IMHO this is what prototype does, and why it shouldn't be lumped in with Dojo as being stable.

      Try this in a page with prototype included:

      var t = [5,'test',4,7];
      j=0;
      for(i in t)
      { j++
      };

      alert('J is ' + j);

      You're going to get 'J is 5' back. To me, this is something that's part of the language primitives, and shouldn't be violated. That could easily mess up any other javascript library you've got.

      The other reason you mentioned doesn't really address the fact that you don't need *all* of prototype for every page. Why can't you just specify the parts of prototype that you need? It's an artificial limitation, and one that Dojo doesn't share. 53k is a lot if you're talking about a 6k page that only ends up using prototype's shorthand notations.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    18. Re:Erm... by saltydogdesign · · Score: 1

      Try this in a page with prototype included:

      ... various code...

      You're going to get 'J is 5' back. To me, this is something that's part of the language primitives.

      I presume that's a typo. You get 35 back.

      As for it being part of the language primitives, Javascript doesn't have an array primitive. It's just an object, and when you do for(i in t) you're iterating the properties of an object. The "incorrect" result could occur regardless of whether you use prototype -- all you have to do is add a property to the Array object. If you're trying to count array elements, Javascript provides array.length. This is why.

      The inclusion issue is valid -- Dojo does indeed do it better (though it kinda has to be, since the whole tamale is over a megabyte). But I'm *not* talking about adding 53k to a 6k page. I'm talking about adding 53k to a website. Again, once it's cached, there's no hit.

      --
      // This is not a sig.
    19. Re:Erm... by mongus · · Score: 1

      Even though the JS files may be cached they still have to be parsed when they are included so you still have memory and processor overhead to deal with.

      You definitely don't want a unique JS file per page. The maintenance alone will kill you.

      Grouping JS code into libraries and only including the libraries when you intend to use them makes the most sense to me.

    20. Re:Erm... by thrillseeker · · Score: 1

      find that most developers over engineer everything, when most of the time, a simple solution will solve all your problems.

      I think you missed the seminar on job security.

    21. Re:Erm... by drew · · Score: 1

      Prototype may be stable, but it is also unusable, at least where I work. It appears to be a great library, and they've implemented a lot of things definitely lacking in the JavaScript language, but unfortunately they did it by mangling the language's base objects, so a lot of our existing code will break if we try to use Prototype. ATLAS is even worse. And while they've both implemented a lot of neat things, neither offers anything remotely compelling enough to consider giving up our existing collection of libraries. I haven't looked at any of the others yet- Google is definitely out because it's not even JavaScript. It would be nice to evaluate some of the others sometime, but I'm not in a hurry- my experience thus far has led me to believe that I am unlikely to find anything that would provide significant benefits without breaking an unacceptable amount of existing code.

      My impression so far is that these frameworks are great stuff for people who are just jumping onto the AJAX bandwagon, and can do everything from the ground up using the conventions of these toolkits, but I would think that anyone who's been doing non-trivial JavaScript for at least the last three years probably already has a codebase that they are not going to want to give up.

      --
      If I don't put anything here, will anyone recognize me anymore?
    22. Re:Erm... by saltydogdesign · · Score: 1

      Suit yourself. I've been doing non-trivial js since about 1997, and I do indeed have a codebase, but look: five years ago all my server-side processing was in Perl. Now, the vast majority of it is in PHP. Roll with the times. If I really thought my personal codebase was that valuable, I'd still be stuck in BASIC.

      As for prototype being great for people just jumping onto the AJAX bandwagon, if you think that, you really have not taken a good look at it. The AJAX bits are a small part of the whole -- most of it is devoted to javascript programmers, pure and simple. I'm not talking about widgets or effects, but data structures and methods for accessing them.

      But if you don't want to use it, nobody is going to force you to do so. But please, don't assume your intransigence is indicative of some flaw in the framework. Or do... I'm going to use it anyway.

      --
      // This is not a sig.
    23. Re:Erm... by saltydogdesign · · Score: 1

      Even though the JS files may be cached they still have to be parsed when they are included so you still have memory and processor overhead to deal with.

      This makes me think of those guys that are still bitching about the performance hit from putting bevels and drop shadows on OS icons. Really, we're not talking about paring two more bytes off a boot loader for a 6802.
      --
      // This is not a sig.
    24. Re:Erm... by drew · · Score: 1

      five years ago all my server-side processing was in Perl. Now, the vast majority of it is in PHP.

      That's a different story. In the time that I'v been doing web development, I've used perl, pl/sql (as a server side programming language), mod_perl, php, cold_fusion, asp, and now am starting to use asp.net. But in all that time, it has always been on JavaScript on the client side, and probably will continue to be for the forseeable future. Obviously the libraries evolve with time- the code I use (and write) today looks significantly different than 3 years ago, or even 1 year ago. Not all of it is that valuable- I'm sure all of these frameworks probably include some sort of serialization routines, and there's nothing special about ours(*)- but some of it is. As I said, I would gladly use any of these frameworks if they could peacefully exist along side other code, but so far I haven't found one.

      I realize that Prototype is about more than just AJAX. And no, I haven't looked at it that closely. I looked at it long enough to determine that it would not play nicely with our existing code, and didn't replace enough of our existing functionality to seriously consider. I have looked a little more closely at ATLAS, and I found a 57kB runtime library that basically included an XmlHttpRequest wrapper, a serializer, and a lot of syntactic sugar to make JavaScript look more like C#. No thanks. For just just under 30k, I can get the XmlHttpRequest wrapper, serializer and a whole lot of other code that actually makes my job easier, instead of just making my code a little prettier.

      But please, don't assume your intransigence is indicative of some flaw in the framework.
      The flaw in the framework is that in the course of making their improvements, they broke some fundamental parts of the language. Obviously many people are willing to overlook that flaw, but it is a flaw, nonetheless.

      (*) Well, it doesn't require any external libraries, and it doesn't interfere with any other code. To me that certainly doesn't seem like anything special, but apparently it's not...

      --
      If I don't put anything here, will anyone recognize me anymore?
    25. Re:Erm... by saltydogdesign · · Score: 1

      That's a different story...

      You missed the point, which is simply that sticking to a paradigm merely because you're invested in it is not always smart.

      I have looked a little more closely at ATLAS

      I'm not defending ATLAS.

      they broke some fundamental parts of the language

      I think that's hogwash. Javascript didn't include the prototype property because they liked the way it sounded -- it's meant to be used to extend existing objects. The only instances in which this should break people's code is a) property name collisions, since js has no namespace support, or b) badly written code, like counting array elements by iterating with for instead of doing array.length. In the case of the former, this is a shortcoming of the *language.* As for the latter, well, enough said.

      But again, you make it sound like I'm trying to convince you to use it. Frankly, I couldn't care less. Just don't tell me it's worthless, because I get a great deal of mileage out of it, and so do plenty of other serious developers.

      --
      // This is not a sig.
    26. Re:Erm... by Eivind+Eklund · · Score: 1
      Doing less work on the development end at the cost of slightly more download is very often the right choice.

      Developer time is expensive, download bandwidth is fairly cheap.

      Eivind.

      --
      Doubting the existence of evolution is like doubting the existence of China: It just shows that you're uninformed.
    27. Re:Erm... by drew · · Score: 1

      I could counter by saying that the writers of JavaScript didn't include the "for ... in" syntax because they liked the way it sounded, they intended it to be used to iterate over the members of an Object. (I agree with you that you should be using array.length whenever appropriate, but there are many cases where "for ... in" is still useful, or even necessary.) I'm not saying that they shouldn't have used the prototype property to extend objects, but they could have gotten the same benefits by making their own objects (say, ProtoObject and ProtoArray) and extending those instead of the built in ones. Dean Edwards did something like that to simplify the syntax for object inheritance inheritance works without affecting the built-in Object (http://dean.edwards.name/weblog/2006/03/base/). We've done the same thing at my work to create a 'SortableArray' object with a "sortByField" method that inherits from the built in Array, but doesn't affect its behavior in any way.

      It's always been basic good coding practice to make sure your code doesn't affect code outside of the file/library/etc. that you are working on. Obviously this is not entirely possible in JavaScript because of the lack of namespaces, but you can (and, IMO at least, should) avoid any side affects outside of the Objects that you declare in your file/library/etc.

      --
      If I don't put anything here, will anyone recognize me anymore?
    28. Re:Erm... by saltydogdesign · · Score: 1

      Sure, but in how many languages do you iterate the members of an object and seriously expect it to return anything like array.length? It seems to me that for...in returns exactly what I expect it to return, whether I'm using prototype or not -- the members of the array object that I'm iterating, not the elements of the array. That's not to say for...in is not useful, rather, that you just can't expect cokes to come out of a candy machine.

      --
      // This is not a sig.
    29. Re:Erm... by saltydogdesign · · Score: 1

      I'm sure no one is reading this anymore, but here's an excellent discussion of this "issue:"

      http://www.andrewdupont.net/2006/05/18/javascrip t-associative-arrays-considered-harmful/

      A key passage: I am aware of the mitigating factors -- hell, I just enumerated them -- but complaining that Prototype "breaks" your ability to use Array as a hash is like complaining that Prototype "breaks" your ability to use String as a hash. It is not Prototype's fault that JavaScript does not deter this improper use, and it certainly does not mean that Prototype does not "play well with others." You are free to reject Prototype and keep using Array improperly, but then you give up your right to bitch and moan.

      --
      // This is not a sig.
  5. DWR by kevin_conaway · · Score: 4, Informative

    If you're doing Java/J2EE work, you should really have a look at DWR

    It makes it disgustingly simple to expose pretty much anything as AJAX calls

    1. Re:DWR by fzammett · · Score: 1

      DWR is awesome, I truly like it.

      But, if you are really a Java web developer, I have what may be an even better suggestion:

      http://javawebparts.sourceforge.net/

      Take a look at the AjaxParts Taglib (hit the javadocs link and you'll find it in the ajaxparts package). This is a completely codeless approach to AJAX. Configure all your AJAX events in an XML file, what you want to be sent to the server and what to do when the response comes back, drop some tags in your JSP, and your good to go. There is an introductory article here:

      http://www.omnytex.com/articles

      I won't claim its the best (although I certainly have a bias!), but it's worth looking at if your working in Java technologies.

      --
      If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa
    2. Re:DWR by hclyff · · Score: 1

      Java devs should also check out AjaxAnywhere for pretty much effortless JSP (and also JSF) AJAXification.

  6. Huh? by LaughingCoder · · Score: 2, Funny

    ... support of one or more stable organizations.

    Why do we care what horse-breeders think? I mean since when have they been the technical thought-leaders?

    --
    The more you regulate a company, the worse its products become.
  7. Spelling mistake in Summary by HugePedlar · · Score: 4, Funny

    "Whilst the definition of open source is broad, the round-up is quite helpful."

    Hemos appears to have misspelt "incorrect" as "broad".

    --
    Argh.
    1. Re:Spelling mistake in Summary by Anonymous Coward · · Score: 0

      (http://aevilearth.co.uk/)

      Hemos appears to have misspelt "incorrect" as "broad".


      You seem to have dispenst with a education.

  8. Google toolkit it is... by karupa · · Score: 1

    after reading the review, google seems to be the best for me, cause i already code in java. Using swing really makes sense, and simplifies the developer's job, instead of having to learn javascript. have to give it a shot sometime... and my friend recently used DOJO and said he found it easier that other toolkits. he is no newbie, so i guess its pretty flexible and detailed enough for serious use. but since i have no experience of using it, i cannot comment. Can some one please enlighten me if its good for beginners?

  9. I've just implemented my first AJAX site... by Toreo+asesino · · Score: 4, Informative

    Using Atlas for asp.net (http://atlas.asp.net/). Fantastic framework; unbelievably simple.

    I took a normal asp.net form I built for an ordering-page (lot's of postbacks for updating various basket options, etc, etc), wrapped it in an atlas XML container (all of 10 seconds work), and Bob became my uncle - the entire thing was AJAX enabled, doing lightweight postbacks & updates instead instead of the usual full-page postbacks you normally get with asp.net page-events.

    And all the JS is cross-platform too - IE, FF, Safari, etc (allthough, sadly, no Opera support just yet).

    And the best thing is, for all you JavaScript haters is turning off JS in the browser just meant the page automatically reverted to full-blown postbacks instead; thus not limiting accesibility.

    Oh, and I understand you can link php into Atlas too, but I'm guessing there's other stuff out there for php aswell.

    --
    throw new NoSignatureException();
    1. Re:I've just implemented my first AJAX site... by oliverthered · · Score: 1

      How well does it work without horrible web controls?

      --
      thank God the internet isn't a human right.
    2. Re:I've just implemented my first AJAX site... by Toreo+asesino · · Score: 1

      Easy.

      1. Build form with standard asp:buttons, labels, repeaters, etc - setting all screen properties on the code-behind, just like normal.
      2. Wrap in node
      3. Specify update triggers in XML, for example -
      4. That's it. You've just AJAX-enabled your page.
      5. Profit?

      --
      throw new NoSignatureException();
    3. Re:I've just implemented my first AJAX site... by Toreo+asesino · · Score: 1

      Oops. That'll teach me for not using that preview button; the form doesn't like XML element code then.

      --
      throw new NoSignatureException();
    4. Re:I've just implemented my first AJAX site... by oliverthered · · Score: 1

      That's using web controls

      --
      thank God the internet isn't a human right.
    5. Re:I've just implemented my first AJAX site... by Toreo+asesino · · Score: 1

      Well, no, if you want to hand-code all your buttons, lists, etc, then obviously not.

      --
      throw new NoSignatureException();
    6. Re:I've just implemented my first AJAX site... by aztracker1 · · Score: 1

      Web controls render out as html, the ASP.Net parser and caching system works really well, after the first run, the compiled version is used by the system, and generally works better than any other rich web development platform.

      --
      Michael J. Ryan - tracker1.info
    7. Re:I've just implemented my first AJAX site... by aztracker1 · · Score: 1

      Also, ASP.Net can work pretty well, I'm using the Anthem .Net framework (not as fond of Atlas) for my ASP.Net based ajax on my BBS Website. Mainly the who's on page in the link, and the oneliners in the main page... I could have done the login processing, and may just do that, but there are a few pages that may make it a hassle. I have plans for putting a bit more in place, but as it is my hobby site, I'm keeping it simple.

      For work I've written a few things by hand, a SCORM API adapter, which communicates to the backend via XmlHttpRequest, it works far better than the Java adapter that was in place previously... it also allowed me to create a psuedo SCORM API for an HACP backend. There's plenty of functional things that can be done... I'm not limiting myself to canned frameworks, but ASP.Net is pretty nice once you get into it.

      --
      Michael J. Ryan - tracker1.info
    8. Re:I've just implemented my first AJAX site... by oliverthered · · Score: 1

      I want the process to degrade elegantly and not degrade to posting and reloading the whole page every time I click on something.

      --
      thank God the internet isn't a human right.
  10. A better review (w/ actual code samples) by jbellis · · Score: 5, Informative
    1. Re:A better review (w/ actual code samples) by wranlon · · Score: 2, Interesting

      I've always liked my own AJAX framework, Engine for Web Applications, but it never seems to make it farther than the appendices (if even) - here are some good toolkits, see appendix A for some other stuff that showed up in Google.

  11. Just did this myself by slindseyusa · · Score: 5, Informative

    I just went through and evaluated most of these myself in the past week because of a new work project. Dojo is by far the best when looking at building a real web "application". The others have limitations (such as Google's toolkit which requires you to write your code in Java) or are focused too much on "flashy" stuff. Dojo provides dialog boxes, windows, an editor, and more. It still has bugs and is an early version, so you need to consider your audience and time frame. For example, I had a problem with FF 1.0.7 (even though they say it is supported) but I only need to support FF 1.5 and Safari 2. I'm building a complex web app for an internal audience and I can guarantee they'll have one of these 2 browsers. Still, it seems to have broader support than some of the others toolkits. While I'm jsut starting with it, I've been happy so far. There's little documentation but the examples are good enough to get you started.

    1. Re:Just did this myself by tezza · · Score: 1

      So did I. I chose qooxdoo. It is a windows gui esq javascript library with _A LOT_ of widgets. Also, the team behind it are very competent.

      --
      [% slash_sig_val.text %]
    2. Re:Just did this myself by Anonymous Coward · · Score: 0
      others have limitations (such as Google's toolkit which requires you to write your code in Java)
      Limitation? Allowing you to write your app in a language that is standardized across runtime environments, allows easy unit testing and compile-time type checking is a limitation?

      If you want to talk about limitations, why not mention how dojo will lock up most browsers for a second or so when loading even relatively simple web applications?
    3. Re:Just did this myself by Anonymous Coward · · Score: 0

      I've tried out a few, and each have their own set of gotchas.

      As the article mentioned, Dojo's biggest weakness is the lack of documentation. However there is another niggling detail: it doesn't allow you to use your own onload() events - you have to pass them to the dojo.addOnload(), and there are things that it just doesn't do, such as asynchronous loading. It would be much nicer if dojo had a dojo.init() function that you could call from your own window.onload() handler.

      Yahoo suffers from what I think is the javascript equivalent of dependancy hell. Certain functions require multiple files, and it's not always clear which is required and which isn't (even from their documentation.) For example, the dialog widget requires the animation library, even though the documentation says that it's optional. It would have been *much* easier if it just was one big file (especially because you use 90% of the files anyway.)

      I'm gonna go try out some of the others mentioned in the article.

    4. Re:Just did this myself by Anonymous Coward · · Score: 0

      ... compile-time type checking ...

      You mispelled "endless bureaucratic red tape as applied to software".

  12. Useless... by CowboyBob500 · · Score: 0, Troll

    If it doesn't include DWR (probably THE most popular Java AJAX toolkit) yet includes a Microsoft offering then the article is effectively rendered useless...

    Bob

  13. Echo2 is good! by Anonymous Coward · · Score: 3, Informative
  14. script.aculo.us? by LFS.Morpheus · · Score: 2, Informative

    Why is that script.aculo.us is left out of these comparisons? script.aculo.us is behind the AJAX in most Ruby on Rails apps, but it can be used on its own. (As of Rails 1.1, Rails has special built-in support to make it even easier to use.)

    --
    The space unintentionally left unblank.
    1. Re:script.aculo.us? by bigdadro · · Score: 2, Informative

      Probably because scriptaculous is an effects library built on top of prototype, without prototype it is useless.

    2. Re:script.aculo.us? by LFS.Morpheus · · Score: 2, Insightful

      It's not just an effect library (anymore?). Yes, it is built on top of prototype - in fact, scriptaculous has the only documentation I know of for Prototype. But that shouldn't it exclude it from a list of AJAX library comparisons. That's like saying "well, the GIMP uses libpng so we're not going to review it amongst photo editors."

      Anti-disclaimer: I don't have anything to do with the script.aculo.us guys, but as a Ruby on Rails developer it has served my needs just fine.

      --
      The space unintentionally left unblank.
    3. Re:script.aculo.us? by An+Onerous+Coward · · Score: 1
      --

      You want the truthiness? You can't handle the truthiness!

    4. Re:script.aculo.us? by bigdadro · · Score: 1

      Not only is it great documentation. Sergio is very helpful and active in the javascript/prototype community. He has assited me several times.

  15. Java != Javascript-The ATLAS diet. by Anonymous Coward · · Score: 0

    "In summary, if you are already proficient in Java, Google is the way to go."

    Problem is Java is a heavy language. The tools are heavy, as well as the books. Even the programmers are heavy. Javascript however is a much lighter language, and the tools are light weight.

  16. If you're interested in JS toolkits... (Dojo, etc) by ChrisZermatt · · Score: 2, Interesting

    ...make sure you check out qooxdoo.

    Its not the best known, but its one of the most promising toolkits in [very] active development. I've been involved (sort of -- following the mailing list) and its open source & very slick.

    http://www.qooxdoo.org//

    The 0.6 release is expected in the next day or so, and is a big jump over 0.5. The only area that is still a bit weak is the documentation, but there is a good group of developers working actively on getting that properly sorted for the next release.

  17. Should have reviewed DWR by bryanbrunton · · Score: 2, Interesting

    As many have noted the article is really quite clueless. However, any review on Ajax toolkits is not complete with a mention of Direct Web Remoting.

    Central idea behind DWR is it exposes methods of Java Beans over the web. Create a server side class and then call methods from javascript like this: MyBean.method(). It couldn't be simpler.

    I have used DWR in my just released online version of Risk, called Grand Strategy.

  18. Wrong Orientation by Anonymous Coward · · Score: 0

    The biggest problem I have with all these toolkits, and with AJAX usage in general, is the RPC-orientation (vs. message-orientation). Instead of creating web services that could be used by many different client libraries, coders are actually deep coupling their server code with the libraries in the article. When a good library finally focuses on the client side sugar and facilitating communication with message-oriented web services on the server side, then we'll make a leap forward.

  19. Erm... what about? by Anonymous Coward · · Score: 2, Informative

    I'm a little surprised that nobody has mentioned jQuery (http://jquery.com/). While it does AJAX, its much more than that, and lets you write some seriously concise script. There's also a lot of activity from Dean Edwards (http://dean.edwards.name/) on the mailing list, which is probably a good thing. Also looks like it might be the only/first library to find a true solution to the whole cross-browser "window.onload" problem (as of version 1.0, currently in beta).

  20. Kudos to Rico by klenwell · · Score: 2, Insightful

    I'd recently given myself a crash course in javascript for a site I was working on. Ended up using the moo.fx (http://moofx.mad4milk.net/) library with niftycube (http://www.html.it/articoli/niftycube/) for the all important rounded corners. Checked out dojo but it seemed a little more than I needed. Also glanced at Yahoo.

    Looking over the packages listed here, I'm especially impressed with Rico. Single file used in conjunction with the prototype.js script. And a really excellent demo page:

    http://openrico.org/rico/demos.page?demo=rico_effe ct_position

    The author of the article gives Yahoo credit for the package management -- I think Rico deserves a praise for their site, too. I look forward to giving it a whirl.

    --
    Innovation makes enemies of all those who prospered under the old regime... -- Machiavelli
  21. Prototype and Script.aculo.us by Anonymous Coward · · Score: 0

    While Rico is nice, i've never found a need to use it on any website i've built todate. I've just completed http://www.stargamer.net/ (StarGamer.net) which uses the prototype framework and script.aculo.us and i found it to be a breeze.

    Admitadly the documentation is a little thin and there hasnt been any real updates in a while, but i've started to mold it into my own library to come up with some rather nice effects and functionality.

  22. Yahoo YUI Toolkit by DeionXxX · · Score: 4, Informative

    Personally I think the Yahoo YUI Toolkit is the best framework out there. It is commented very well, it is 100% cross browser compatible (they test on Opera, Firefox, Netscape, IE etc). It is fully supported by a team of engineers. They provide several versions of each script, so you can build your site with the -debug script, move to the normal script, and then when putting it on a live server, you include the minimzed script which is much smaller.

    1. Re:Yahoo YUI Toolkit by Ragica · · Score: 1

      I'll second this endorsement. Actually, I don't like the way the yahoo toolkit is structured. I find it very awkward to dynamically generate widgets for my applications using it. So i went in search of alternatives. Tried a few kits... the ones i tried looked very promising with features, but every one failed pretty miserably for cross browser work, and did not degrade very gracefully. I went back to yahoo fairly quickly. Awkward, somewhat limited in its current widget set, but totally very solid code. The developers seem quite responsive on their mailing list as well. Cross-browser stability is very important to me. If it is to you, take a serious look a the yahoo kit. (It's BSD licensed... as free as free can be.)

  23. My Own Survey by 2Wrongs · · Score: 2, Informative

    Just my experience, but they were all a little lacking (although I admit I'm a novice in AJAX).

    Rico's newsgroup was great; I got (friendly) answers within hours, but I'm not exaggerating when I say the documentation was the worst I've ever seen. If I had more time to play around, I would have stuck it out and helped (their community is cool), but I'm on the clock and need simple working examples.

    I briefly tried Atlas and was impressed with ease of use, but got hung up with bugs (it's beta, but will be a good tool when it's ready).

    Dojo had good starter documentation. I spent a while trying to figure out something poorly documented and figured I'd write a brief tutorial, but was surpirsed they have a "closed" Wiki. After some digging, it suggested dropping the developers a line to get an account, but wasn't able to find the address. I gave up. I can see why their documentation is so spotty, since they ignore what a great tool a Wiki could be. The psuedo-Wiki gaps are somewhat filled by a pretty good newsgroup though.

    YMMV, but Dojo was the best of the tools I worked with.

  24. Echo by Anonymous Coward · · Score: 0

    Echo http://nextapp.com/ is quite nice IMO

  25. alternative by zproxy · · Score: 1

    Hey, Anybody know that there is work in progress for strongly typed libraries (targeting javascript and php)? Watch http://www.youtube.com/watch?v=O9erSxI7Rsw and visit for information http://zproxy.wordpress.com/jsc-javascript-script- compiler/ cheers:)

  26. Please by Anonymous Coward · · Score: 0

    "None of the open source packages I looked at come close to the range, depth, and support of these commercial packages."

    Please. The author is impressed with the IDE's that ship with these commercial packages. An IDE, and a glossy web site does NOT equate to good software.

    If the author really knew anything about AJAX development, there would be something on DWR in there. Not just list the OS AJAX packages provided by Google, Yahoo, Microsoft, etc. Why can't these tech magazines employ writers with actual tech experience?

  27. Other free famous scripts by kavehmz · · Score: 1

    There are two other, very active and famous scripts left behind:

    1. script.aculo.us : That have many effects include in it and is used in Ruby

    2. script.aculo.us : An active library to help for ajax development.

    --
    Be like shadow in the light or darkness.KMZ
    1. Re:Other free famous scripts by bigNuns · · Score: 1

      I believe you meant to make #2 say Xajax since that is where you link to. And I will go ahead and say that xajax is very nice if you dont want to deal with mucking around in javascript and want to just stay in php. I have used it on a couple projects now, only in admin areas, but have not had a single problem with it in any of the browsers I have tested... it has been a serious time saver.

      --
      .................... ...mmm farm fresh...
    2. Re:Other free famous scripts by cruachan · · Score: 1

      I'd like to second that. I've been using a standard setup of php / tinybutstrong / xajax for several projects now and it drops in perfectly without any issues except one*. Very neat library with minimal bloat.

      *one issue. Doesn't appear to work on any window open as a modal dialog. One time I needed that I coded the ajax calls directly myself.

  28. Bravo by Anonymous Coward · · Score: 1, Funny

    "Even the programmers are heavy"

    Well said.

    1. Re:Bravo by Anonymous Coward · · Score: 0

      That's because if you work with a pig of a language every day, you too will expand to consume all available resources.

  29. ICEfaces is nice... by Anonymous Coward · · Score: 1
    ICEfaces is another excellent AJAX framework. It's specifically targeted at enterprise Java developers and leverages the J2EE JSF framework to provide seamless AJAX functionality, such as incremental update of the page, JS animation effects, and even server-push / "AJAX Push" / COMET to permit the server-side application to asyncronously update the client UI without needing the client to initiate the update. All without the developer needing to write any JavaScript, just be using the ICEfaces components. It's not currently open-source, put it does have a completely free and unrestricted "Community Edition" that is very functional. Check it out:
  30. MOD PARENT UP by MartinG · · Score: 1

    Echo 2 is the most under-rated, under-hyped, under-exposed Web UI development framework around. Try it. It's how GUI development should be.

    --
    -- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz .@adgimnoprstu
    1. Re:MOD PARENT UP by FecesFlingingRhesus · · Score: 1

      Agreed, I have found no framework on the market that compares to Echo2 in terms of extensibility and flexibility. It truly is a comprehensive web UI toolkit, managing both the server side and client side and hiding the ugliness of the wiring of the two together.

  31. Documentation by Lord+Ender · · Score: 3, Insightful

    I looked at some of these a while ago. Zimbra has one of the coolest demos. But many of these severely (or completely) lack documentation, which means they are not ready for anything but "mom's basement, no deadline" type projects.

    This stuff is really exciting, but until there is documentation, it is not worth mentioning at work.

    --
    A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    1. Re:Documentation by Selanit · · Score: 2, Insightful
      Prototype has some pretty good documentation. Also, it's pretty low-level, so it's easy to build into other stuff. Heck, Prototype is worth it just for the each() iterator method!

      Dojo's docs are very much hit-or-miss. Some features are pretty smoothly documented. Others are like navigating a trackless wilderness with no more than the sun and stars to guide you. Also, Dojo's annoying because it requires you to add non-standard attributes to your HTML in order to identify widgets. For example:
      <button dojoType="Button" widgetId="helloButton">Hello World!</button>
      dojoType? widgetId? Those ain't gonna pass no validator THIS little programmer knows of.
    2. Re:Documentation by MConlon · · Score: 2, Informative

      Also, Dojo's annoying because it requires you to add non-standard attributes to your HTML in order to identify widgets. For example:

      <button dojoType="Button" widgetId="helloButton">Hello World!</button>

      dojoType? widgetId? Those ain't gonna pass no validator THIS little programmer knows of.

      Dojo's widgets can be defined using a separate namespace, "dojo", so your XHTML will validate. As in: <button dojo:type="Button" dojo:widgetId="helloButton">Hello World!</button>

      MJC

  32. Qooxdoo by valamaldoran · · Score: 3, Informative

    I've tried Dojo and the Prototype derivatives - Moofx, Rico and Scriptaculous. I don't really like Dojo because it seems so basic. Moofx is pretty good for lightweight effects, and the weight factor for effects goes up with Rico and even more with Scriptaculous. Bad thing about Prototype based scripts is that it doesn't play well with others due to Prototype's large manipulation of core objects. Enter QOOXDOO. Qooxdoo surprised me with how advanced it was. And its free. It is definately the script anyone needs to build a complex user interface for any application, because its designed to look just like an application. Its documentation is sparse, but the development community is amazing. they respond very quickly, and are working hard to fill the gaps on the documentation. The latest version is a vast improvement. The examples are very diverse, showing all the possibilities this remarkable script can do. if you really want to see an advanced framework that looks incredibly awesome, check out Qooxdoo...http://www.qooxdoo.org

    1. Re:Qooxdoo by Anonymous Coward · · Score: 0

      The examples are very diverse, showing all the possibilities this remarkable script can do. if you really want to see an advanced framework that looks incredibly awesome, check out Qooxdoo...http://www.qooxdoo.org

      Says the guy who can't put a link in his post.

  33. Sarissa: GPL, LGPL, ASL - your choice by Anonymous Coward · · Score: 0

    "..Sarissa is an ECMAScript library acting as a cross-browser wrapper for native XML APIs. It offers various XML related goodies like Document instantiation, XML loading from URLs or strings, XSLT transformations, XPath queries etc and comes especially handy for people doing what is lately known as "AJAX" development.

    Supported browsers are Mozilla - Firefox and family, Internet Explorer with MSXML3.0 and up, Konqueror (KDE 3.3+ for sure), Safari and Opera. Konq, Safari and Opera offer no XSLT/XPath scripting support AFAIK... "

    http://sarissa.sourceforge.net/doc/overview-summar y.html

  34. Echo by saturnism · · Score: 1

    once again, echo is missing...

    --
    it is me
  35. No one has mentioned magicajax.net ... by rpresser · · Score: 1

    and there's probably a reason why; I'd like to hear how terrible it is.

  36. ...and if you like your Python... by fredrik70 · · Score: 1

    ...go for MochiKit, nuff said.

    --
    if (!signature) { throw std::runtime_error("No sig!"); }
  37. "Open source?"-The 'N' crowd. by Anonymous Coward · · Score: 0

    "sometimes it is easier to wedge something in and use a buzzword to sound cool and relevant."

    Hey! I'm a SLASHDOTTER!

  38. Heartily seconded. by Civil_Disobedient · · Score: 1

    If you actually know what you're doing, it's far, far better to either write your own code, or strip out the routines from an "established" package rather than deploy the package as a whole.

    The biggest problem with the toolkits that are coming out is that they're sacrificing runtime efficiency for programing efficiency. Case in point: just about every one of these toolkits have the asinine $(elementId) method as a shortcut for writing out document.getElementById(elementId). WHY? Do you really need a method look-up just to save yourself a few keystrokes of typing?

    Javascript is not compiled. None of the compiler optimizations you get from "good coding practice" are going to go into effect when you wrap your simple methods in gi-normous objects. All you do is make your code run slower on the client's machine.

    1. Re:Heartily seconded. by nuzak · · Score: 1

      > WHY? Do you really need a method look-up just to save yourself a few keystrokes of typing.

      For convenience. Which is what all languages are for. Yes, I'd like it if javascript had syntax macros, but no one notices the difference. I mean holy cow, listen to yourself, thundering from on high about the dire consequences of such minutae. Why is it so important to you?

      Anyway, if you're manipulating hundreds of elements every second and are concerned about the overhead of the $ method, perhaps javascript or even a web app is not for you. In fact, maybe it isn't regardless.

      --
      Done with slashdot, done with nerds, getting a life.
    2. Re:Heartily seconded. by Anonymous Coward · · Score: 0

      You're totally missing the point about mapping document.getElementByID to $. It's not about making it easier for the developer. Since this is one of the most frequently used functions, you can trim off anywhere from a few dozen to a few thousand bytes in a big script file with the wrapper. While your personal homepage doesn't necessarily need to do it, high throughput sites (as well as people with slow connections) can benefit a lot.

    3. Re:Heartily seconded. by Civil_Disobedient · · Score: 1

      Why is it so important to you?

      Because, as I already said, JavaScript is not a compiled language. Convience methods are strictly convenient for the programmer, not for the person on the other end of the pipe who's actually using the program. They couldn't give two shits if you saved yourself from future RSI. Because it's not a compiled langauge, convenience methods come at a cost of execution speed. Which means every cutesy $() or A() function is slowing down your user's environment. A lot? No, of course not. But it adds up. And that's the problem with these libraries: a series of steps to make JavaScript appear--at least to the programmer--like a real programming langauge (getters and setters, classical inheritance, etc.). But these are abstractions that offer no real benefit, just useless cycle overhead on the client's machine.

      Anyway, if you're manipulating hundreds of elements every second and are concerned about the overhead of the $ method, perhaps javascript or even a web app is not for you. In fact, maybe it isn't regardless.

      One doesn't have to be manipulating hundreds of elements every second to see a performance hit. And I don't even understand the last part--why wouldn't a web app be for me because I care about performance? You wouldn't happen to work in Redmond, would you?

    4. Re:Heartily seconded. by nuzak · · Score: 1

      > One doesn't have to be manipulating hundreds of elements every second to see a performance hit.

      To get a performance hit from the indirection of $, you indeed do. Okay, perhaps dozens. In fact, some implementations of $ cache their result, so they end up faster than calling getElementByTagName every time. I dislike that optimization because it eats more memory than it has to (there was no limit on the cache in the version I saw), but fortunately it's easy to fix. Memory leaks are the bane of most javascript apps, not speed.

      > You wouldn't happen to work in Redmond, would you?

      Your dogma is showing. No, just the real world. Better algorithms beat your curmudgeonly micro-optimizations every time. Full page refreshes always lose for performance in my world, so I go with Ajax. Browser bugs are also a lose, so I use a library. Don't let it get your blood pressure up, I'm certain you don't visit my pages unless you work in my group.

      --
      Done with slashdot, done with nerds, getting a life.
    5. Re:Heartily seconded. by Civil_Disobedient · · Score: 1

      Okay, perhaps dozens.

      Yeah, dozens. Add into that the other shortcuts and it starts to feel bloaty.

      Better algorithms beat your curmudgeonly micro-optimizations every time.

      Better algorithms != programmer coding conveniences.

      Full page refreshes always lose for performance in my world, so I go with Ajax.

      Bully for you. So do I. You seem to be under the impression that I don't like AJAX, which couldn't be further from the truth. The banking application I wrote relies heavily on it for dynamic table generation. My point is that these libraries are crutches for people who either can't code well themselves, or can't be bothered to care about the performance on the client's machine.

  39. Dojo = crash by metamatic · · Score: 0, Troll

    If I go to the Dojo site and click the "see it in action" tab, Firefox immediately crashes. Not exactly a great demo.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    1. Re:Dojo = crash by Anonymous Coward · · Score: 0

      Not a troll, check the Firefox bugzilla.

  40. Re:Java != Javascriptd for the type of content by beemishboy · · Score: 1

    Google's toolkit is kind of nice for Java developers but seems pretty intrusive to have a layered design with front end stuff done with Java. Dwr (direct web remoting) has a decent toolkit that allows you to call Java code through javascript by generating javascript files for your Java code. It also integrates well with the Spring framework.

  41. Telerik RAD Controls by c0d3r · · Score: 1

    Inside M$ (MSN) their actually using http://www.telerik.com/ Rad Controls. They are pretty kewl, and they do offer the source to them, but its ASP.NET specific.

  42. Why does he think he has something to say? by you+should+love+mach · · Score: 1

    The complete stuff has two parts
    http://www.infoworld.com/reports/31SRajax.html?sou rce=NLC-SR2006-08-01?source=NLC-SR2006-08-01
    The missing part is titled "Proprietary AJAX toolkits: The other side of the coin", where he writes

    Integrated data formats unify the proprietary toolkits. Backbase stores all of its layout and event passing information in its own XML format; JackBe uses JavaScript to store data. The open source toolkits have some amount of unification, but they are often more open and cacophonous. True cohesion isn't common except perhaps in the case of Google; its format is fairly inscrutible because it was translated from Java.

    among other calamities, i mean, confused thoughts. In what sense Backbase, JackBe and Tibco are integrated if each one of them has it's own propietary UI definition language?
    In the other hand, I can tell you that JackBe is not the way to go, at least you are giving up using other libraries, e.g. Protoype, which breaks the JBTable. And believe me, JackBe widgets are not worth the bucks.

  43. W3C Standard-based ones by leighklotz · · Score: 2, Informative

    There are also toolkits and JavaScript apps that combine W3C standards with AJAX, letting you write a lot of the dynamic page stuff in a declarative fashion, using just markup (XHTML+XForms; I was an editor of the XForms 1.0 recommendation, but new revisions have come out; see http://www.w3.org/TR/xforms).

    The FormFaces OSS product is an entire XForms implementation done in JavaScript, running in the browser. You write your page in HTML with XForms markup, and FormFaces does the "HiJax" thing of re-writing it for you. You never need to use XmlHttpRequest, and you can interact with regular servers, RESTful services, etc., all via XML.

    Another product that does this, in a slightly different way, is AjaxForms. I just found out about it, but it looks pretty good. AjaxForms uses some server-side components to do the translation from strict XHTML+XForms markup into Ajax (HTML4+JavaScript), but they claim it can work in PHP and Tomcat servers. Again, FOSS, and available at http://ajaxforms.sourceforge.net/ [sourceforge.net]

    I recently implemented dynamic forms for weblogs and wikis, and did it using Chiba, another FOSS product, that like AjaxForms does its conversion on the server, using Tomcat as a container.

    The Orbeon folks have a nice blog that shows how to use XForms (their implementation, the Mozilla extension, or any of the other above toolkits) to accomplish typical dynamic page tasks such as listing countries and ISO codes, or resizing flickr (also via formsplayer.

  44. help me out. by CDPatten · · Score: 1

    Using AJAX in almost all cases is just a few lines of code, most of it identical from prject to project.... populating list boxes, content, etc. Its pretty simplistic... why do we need "tool-kits" for this?

    I mean, if you can't take 30 minutes to an hour (tops) to read a short book on AJAX concepts/examples then you really shouldn't be developing ANY web apps. Its not like this stuff is rocket science, or even a new idea/concept. How many years has this functionality been in IE? 5 or 6 years?

    The larger issue at hand is this. At what point is programming going to stop being dumbed down at the cost of performace and good clean code? Is it ever going to stop?

    1. Re:help me out. by An+Onerous+Coward · · Score: 1

      What exactly are you asking for here? Even if your optimistic claim is correct, and a web developer should be able to learn the fundamentals in an hour, then what? He's still going to want to create some sort of library that does what he needs. Sure, it will start out small and elegant. But then he starts finding corner cases, browser incompatibilities, lacking features, and bugs bugs bugs scattered all over his code. Why not just start with something that is featureful, well-designed, and not-sucky?

      Then you start off on how programming is being "dumbed down," which--recognizing that I'm jumping to this here conclusion thingy--marks you as a bit of a noob in my eyes. There are three reasons for this, which you may feel free to dispute or ignore.

      First, I think that really good programmers recognize that there are very real limits to the amount of complexity that they can handle. If they don't abstract away as many of the nitty-gritty details as possible, then their finite capacities are squandered well before they've finished the project.

      Next (but related) I think that the history of computer science can be described as a catalogue of victories of abstraction over complexity. Usually this is the point where I'm supposed to ask, "Do you want us to be writing everything in assembly?" But that ignores the fact that even then, you're dealing with at least a couple of layers of abstraction.

      Finally, I've worked with a couple of these toolkits, and always found the resulting code to be much cleaner, and much gooder, than if I'd tried to do it the long-handed way.

      --

      You want the truthiness? You can't handle the truthiness!

    2. Re:help me out. by bigsquare · · Score: 1

      Yes, I'm often not bothered too much how something works rather than making use of it if it does what it says it does in a timely fashion. You want no refresh on your pages? Slap on some AJAX. What else is it for?

  45. Ready for commercial use by HaMMeReD3 · · Score: 1

    I've been developing an ajax app from scratch, but have been using features of the dojo toolkit. Dojo is great so far and I can't wait to see what they add in the future.

    Feel free to check it out by following the link in my footer, I've never tested my site under heavy strain and I guess todays as good a day as any. It was designed to have less strain on the server then a traditional web application.

    Come on slashdotters, try and bring down my site. The link is friendly, there are no popups, ad's or anything else that makes the internet suck.

  46. Server side events by SimonInOz · · Score: 1

    What about changes NOT sourced from the browser end?

    All the AJAX code I have seen concentrates on events starting at the client - the browser.

    This is all very nice, but not useful for any complex realtime system - any form of monitoring for example.
    It IS possible to do this sort of thing (I do it by keeping a constant connection, rotated on timeouts, but it feels a bit tacky and doesn't scale well - it's just equivalent to polling, albeit faster), but I haven't seen open source (or indeed commercial) code to do it.

    Does any exist? Have I been missing something?

    --
    "Cats like plain crisps"
    1. Re:Server side events by vcohen · · Score: 1

      I think you might be talking about "Comet"

    2. Re:Server side events by Anonymous Coward · · Score: 0

      The work is all going on at cometd.org. There's a client in the dojo toolkit and servers in Perl, Python and Java (so far)

  47. Unpopular AJAX library by fforw · · Score: 1

    I'd like to advertise my own, unpopular javascript library:

    The ff javascript library
    A ultra lightweight (below 7k normal / below 3k gzipped) javascript library offering crossbrowser support for:

    • AJAX requests
    • Events
    • DOM element class handling
    --
    while (!asleep()) sheep++
  48. Php & js Ajax toolkit & Visual development by zeemu · · Score: 2, Informative

    APhPLIX is a toolkit for building Ajax web applications with a traditional GUI.
    It comes with a visual development studio web application for point and click application development, and it's all open source.

    I think there may be some similar proprietary products, but I don't think there are any other open source projects like it.
    --
    zeemu