Weblog

JSF productivity

I noticed some people are linking to yesterdays post Creating a jsf div component as an example of how non-productive jsf is. I agree, it is a lot of work, just to create a simple component. But as i said before, it’s an example of how to create a component. You don’t have to use a component to render a div.

But the fact that it’s easier in Tapestry to create a component doesn’t mean that developing in Tapestry is more productive. To be truly productive you need more than a powerful framework, you also need IDE support. I think this is where JDeveloper’s support for JSF beats whatever IDE support Tapestry has. Overall, developing with JSF and a good IDE will probably be faster than handwriting tapestry pages.

But, yes, i would appreciate it, if it were simpler to create JSF components, and i would also appreciate it if adf faces would generate some sane Html so i don’t have to create my own components or custom renderers. There is room for improvement.

Update:
See the followup post: IDE productivity for JSF: a screencast.

Share and Enjoy:
  • del.icio.us
  • Google Bookmarks
  • DZone
  • LinkedIn
  • SphereIt
  • StumbleUpon
  • Technorati

8 Responses to “JSF productivity”

  1. Sjoerd Says:

    > i would also appreciate it if adf faces would generate some sane Html

    I agree. Although in general I appreciate the vast array of ADF Faces components and the functionality covered with it, the HTML generated by ADF Faces is packed with presentation code making it virtually useless in an environment where graphic screen design is an issue. Drives both graphic designers as well as programmers mad. Apparently, ADF was not designed with skinning in mind…

  2. kris Says:

    recently i had to evaluate several web frameworks for my company and i must
    say tapestry outperformed them all (JSF + Facelets + Spring + Hibernate,
    Tapestry + Spring + Hibernate, ASP.NET 2.0 + Castle + NHibernate).

    whenever you have high requirements for your UI (Ajax, a lot JS + effects … ok
    lets say web 2.0 :) ) you will benefit from a template-based approach (like tapestry,
    or Facelets). i think a full-blown IDE will not help me much here.

    nevertheless i think using Faclets as your JSF UI is a much better choice than JSP.

    best regards,
    kris

  3. Nick Westgate Says:

    “you also need IDE support”

    You mean for HTML design?
    How about whatever GUI-based HTML editor your graphic designer already uses.

    “handwriting tapestry pages”

    There is simply no need to do this.
    Tapestry markup is just attributes added to your existing HTML tags.
    The resulting templates view and edit just like regular HTML files.

    Of course there are a few caveats, but in general it just works,
    and so the resulting HTML is as sane as you write it.

    Cheers,
    Nick.

  4. Andrej Koelewijn Says:

    Jdeveloper is a lot more powerful than a gui-based html editor. Creating a simple data entry form in jdeveloper is as simple as:
    1. drag a table from your database to a bc4j class model.
    2. drag the table from your data-control (which jdev automatically shows based on your model) onto your jsf page.
    3. Done.

    Not a single line of code needed. In jdeveloper you can drag and drop jsf components on your pages, which are automatically connected to your data. That’s not something that you can solve with a generic gui based html editor. An html editor doesn’t know what data and business functions you have in your model layer.

  5. Christopher Townson Says:

    “Jdeveloper is a lot more powerful than a gui-based html editor. Creating a simple data entry form in jdeveloper is as simple as:
    1. drag a table from your database to a bc4j class model.
    2. drag the table from your data-control (which jdev automatically shows based on your model) onto your jsf page.
    3. Done.”

    That form would be far from complete and would still require extensive editing: what about accessibility etc? No self-respecting HTML designer would ever use a GUI app to create their code – it’s easier and quicker to write it by hand than fix-up autogenerated tag soup … they also wouldn’t want to use Jdeveloper!

    That’s one of the really strong points with Tapestry: it supports clear role separation and doesn’t poke its nose where it has no business.

  6. Andrej Koelewijn Says:

    Accessibility is a good point. According to oracle ADF Faces has accessibility build in: About Accessibility Support in ADF Faces Components.

    I don’t agree with your jdeveloper statement, there’s not much difference between netbeans, eclipse, intelliJ and JDeveloper for java coding.

    I think there’s a big market for generated web applications. The code may not be perfect, but if the productivity is a lot better, IT deparments will use it.

  7. Gabriel Claramunt Says:

    I don’t know Tapestry, but after working with JSF in JDeveloper, I would say IDE support is not that necessary: most of the time I find myself writing JSF code directly in the editor. Yes, I started with the full GUI thing, but after I gained some experience about how JSF work, writing the JSF code is faster for me. Even Eclipse with Web Development toolkit and JSF-RI is a very good combination for JSF development…

  8. Renat Says:

    Not to mention bugs in IDEs? I had once a very nice and informative NullPointerException at the very end of the very powerfull wizard that boosted my productivity by 800%. In my expericence it simply do not work, if you say, JSF is good as far as I use JDeveloper – that’s the end of the story for the all other developers.

Leave a Reply

Technology