Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which java web technology to learn to develop Rich Internet Applications?

Tags:

java

ajax

gwt

I have developed web applications using JSF (myfaces components). But in these days of responsive UI, JSF doesnt fare well. I m hearing a lot about AJAX, GWT, etc. So i wanted your opinion on which web technology/framework should i learn inorder to develop web applications for enterprise products. Some of the web technologies that i m hearing are:

  1. ICE Faces (With AJAX Bridge support)
  2. GWT
  3. extJS and extGWT
  4. JavaFX
  5. Apache Wicket
  6. Jquery
  7. AJAX
  8. Open laszlo

Which of the above or the combination of the above would help me ?

Some of the parameters on which you can rate these web technologies are:

  1. Ease of learning
  2. Maintainability of web application code
  3. Community support
  4. IDE support - Eclipse or NetBeans
  5. Off the shelf component availability (like textbox,table grids, option menus)
  6. License - Does it cost for commercial use ?
  7. User Experience - responsive UI. Shouldnt be sluggish

A similar question on SO does answer my question partially. Would want more info though.

EDIT: Answers collated: Based on the answers : AJAX would be the best thing to start for learning fundamentals, then learn JQUERY. Any component based frame work that can complement ajax,jquery ?

Edit 2: If i had to design a web application like StackOverFlow (in java platform) which would be the best choice to learn and adopt?

Wicket + Jquery, WiQuery

GWT

Some XYZ Faces technology(RichFaces/ICEFaces) + AJAX.

Comments appreciated from some one who has worked with them and can rate them in the above mentioned parameters.

like image 582
Cshah Avatar asked Sep 09 '09 19:09

Cshah


3 Answers

I would strongly recommend Apache Wicket, I see you have commented / edited the question to say that you are leaning towards Ajax / JQuery and asking for component frameworks that complement those.

IMO among the component-based frameworks, Wicket offers the best integration with third-party JavaScript libraries. I have personally evaluated the contenders GWT, Tapestry and JSF - but Wicket makes it really easy to:

  • contribute javascript to the HTML > HEAD
  • inject ajax callback code (or custom javascript) into a web page
  • call an event on a stateful component on the server side
  • execute arbitrary javascript before or / and after an Ajax (XHR) request fires

You can see this blog post on how to integrate YUI with Wicket, the same concepts can easily be extended to JQuery.

That said, Wicket's built-in Ajax support actually makes it possible for you to create rich UI-s without writing a single line of javascript code. Think dynamic refreshing of selective parts of a web page, pop-up dialogs, etc.

I am also aware of a project for Wicket-JQuery integration called WiQuery, but I haven't tried it yet.

like image 149
Peter Thomas Avatar answered Sep 29 '22 07:09

Peter Thomas


I've been working in GWT (with GWT-ext) for my latest project and have quite enjoyed it. Aside from that, jQuery has always been a Godsend, and I'll use it any time I don't have a more robust framework available.

like image 45
Toji Avatar answered Sep 29 '22 06:09

Toji


AJAX is just a (in my humble opinion, meaningless) term.

jQuery is, in my opinion, the way to do Javascript. Unless there's an unsurmountable requeriment forbidding its use, I recommend it if you ever need to write Javascript yourself (note, if you are using GWT, you are using Javascript, but not writing it, so you don't need jQuery).

  1. Ease of learning: you need to change your mindset from traditional procedural-style JS [jQuery is still procedural, but has a big declarative aspect]. If you have never written Javascript it might be easier to approach
  2. Maintainability of web application code: very
  3. Community support: quite a lot
  4. IDE support - Eclipse or NetBeans: I don't think so. I don't miss it; I hate writing enough Javascript to make me miss an IDE.
  5. Off the shelf component availability (like textbox,table grids, option menus): jQuery UI has a bit and there is lots of material out there
  6. License - Does it cost for commercial use?: Nope

Of the other technologies you mention:

  1. GWT: I believe this is interesting if you are target intranet sites or something similar, writing very desktop-like websites (think Gmail, not a typical content site). I suppose you need to make quite a significant effort to make your GWT-based websites crawlable by search engines and to be usable by non-sophisticated browsers (i.e. GWT would be useless for JS-less browsers like some cellphones')
  2. JavaFX. I believe this is just a gimmick. Doesn't add much to Java applets and it does not have as much inertia as Java.
  3. Apache Wicket: this is on my to-investigate list
  4. OpenLaszlo: looks very interesting if you want to do Flash stuff without paying licenses.

As my suggestion.

I suggest you learn to develop your websites without JS at first. Then add JS (using jQuery), google "progressive enhancement".

Once you can do this, you can learn using something like GWT and use it if it's justified.

like image 28
alex Avatar answered Sep 29 '22 06:09

alex