blind dating: sexy, immature and ugly
Hi,
"The face and visual attributes are important. But what really matters is a backend." -
my friend - suomi plumber once told me, adding round gesture.
"Try it several times, from different sides and then decide marry or not" -my another friend, armenian locksmith put it with wink.
I'm gratefully thankful to those simple people, because they formed my view of system architecture.
And believe me or not, trying to conclude what is a good and what is also pretty enough, I’ve got into the burden of blind dating with different client platforms.
The situation here is exactly the same as you would expect: prettiest and sexiest are usually dumb. And those convenient - are usually ugly.
JSF is formally the ugliest and the oldest. It brings a burden of backend beans, like bastard children, you never know how to handle them properly. Mommy is always angry. But it gives you a strongest backend possible – pure java in the full strength. Some people would say: it’s a passé…But really, what convenient, proven and robust alternative could you propose???
JSF speaks all languages. JSF has several reference implementations and years of component development.
JSF separates Data and Business layers by those bastard backend beans - so it’s a good design , huge, love it or not.
JSF allows you easy validations and provides event facilities.
And it’s quite easy to adapt. It is like JSP with larger boobs and brighter lipstick.
Nice old chick. Huuh? No.
What I never got is how to combine pure HTML components with pure JSF components properly on the page. It never works like you expect! This is the silliest thing I discovered in those ugly server faces. Lady is old, limping and grey and some sort of a mess is always present on the page.
Flex.
Sexiest, rich and productive? Sort of lady you can find everywhere, having 300-600$ (depends on version). Everybody just fascinated!??? Really? Nope. Why?
I like their asynchronous move, it’s what GUI should do.
In my view it’s may be good for static data presentation and diagrams. Huge “maybe”. Browser is somehow overloaded by those things and you never know when it is going to explode.
In realm of communication they lack some better tooling to provide that mapping between flex components and server side objects.
They actually seriously employ SOAP, as a first option, actually, despite the fact that this is a heaviest protocol possible and there is no excuse to do that, except the case, when different and suddenly emerging clients should be attached to the foreign(that is almost never the case) server side.
You should go into the trouble to cover additional language(s) and into the idiosyncrasy of the mapping to handle the JESS, as a convenient alternative to SOAP.
You also may use regular HTTP request and treat everything like arrays, giving a damn time to every attribute of your object.
I hated all that from the first glance. You should be ready to provide some time to learn 1-2 languages and 1-2 protocols to get handle on it. And what I hate more than anything - It always takes time to arrive! You better prepare a sandwich, a beer, sit beside and relax. You may take a shower as well. The car with you lady will arrive in a minute, possibly, (that depends on connection speed and how much you are willing to pay for traffic). I would never suggest such a UI to some money making portal, clients would go crazy, and hosting would cost a fortune.
JavaFx.
Young and with no proven experience yet. Be prepared to everyday screams, gestures and loud proclamations of divorce. You could expect all those problems the Flex lady has.
Even more. Immaturity is a huge factor. But there are 2 huge BUTs:
1) Oracle drives a new initiative to endorse the JFX in the next OpenOffice version. Oracle actually sees no meaning in them separated. They probably decided, all that SUN’s junk, all that crappy, no future and no money projects we better combine in one. (I wonder what a good reorganization it may cause in the crisis time!) You should expect a big move in JFX direction and some shrinking of staff…
2) JFX is probably closer to java for historical
reasons. They are buddies. So I expect better integration in future than Flex provides now.
What I do not like is a crazy attempt to drive us into the NetBeans IDE, in Eclipse it is not working a bit as good as in NetBeans. So lady brings a full blown religion with her! That is quite intrusive, bad manners to my taste …Rich relatives and new religion it’s hard....
So, what have I decided ?
I probably would marry old JSF lady with all her problems and age. But I would leave a place, couple of windows in my schedule to the inexperienced, cheep, immature but promising JFX lady. Some graphs on page, some visual enhancements, some sex to regular stuff.
I never did a wickets, gwt and stuff like that. What do you think,is it really worth to check?

Comments
wicket is java all the way, no ugly xmls. all logic is in java (loops, conditions on what to show etc.). i think that with html5 around the corner (??) it will shine again.
i didn't use gwt, but i used RAP briefly and the experience was good (java all the way) except when i really needed to work with the underlying html and http.
Ittay,
Wicket looks pretty interesting. Indeed. I have a few questions: Wicket servlet/filter renders those java components and models into the html. OK. But,
1)Have you any idea about javascript presence in the final product?
Does result HTML code "equipped" by javascript?
Have you any control regarding what kind of scripting generated for the client and how to explicitly avoid javascript in page? I'm a long time listener of SecurityNow podcast and I'm a bit paranoid with all aspects of client-side scripts, that new frameworks kinda adore....
2)how much control do you have over persistence? Do you fully control hibernate as you need or you submitted into some black box game with weak influence on the process?
Thanks a lot. Peter.
One thing Wicket is not - is “Java all the way”. You need to master HTML, CSS and JavaScript. Forget about Wicket. It's a bad choice because it's:
when i said java all the way, i meant that all your rendering logic is in java, not separated. there are other alternatives, like extjs or flex, where all logic is in javascript/actionscript but then you pay the price for the client-server separation (need remote API) which is sometimes unnecessary.
in particular, wicket gives an easy life to the web designer and allows the developers to focus on programming (on the server side) without magic (as happens in gwt and rap and even jsf) happening between their code and the rendered HTML
as for your comments about wicket, they are mostly wrong:
* you need to master HTML, CSS, Javascript: well, yes and no. if you have a web designer, he takes care for the HTML and CSS for you. Javascript is required if you are creating a dynamic component.
* "the generated HTML is a complete mess": very wrong. in wicket the designer creates an HTML document as he likes, using dreamweaver or any other tool of his choice and developers then just add attributes to the elements which should be generated
* jquery comes bundled - i don't know if it comes bundled or not but it is for sure not added automatically to any page. wicket has some own javascript code for ajax, which is added only to pages which have ajax components (by the components), and is independant
* brings oo design to your web interfact - nothing is wrong with templates. the HTML pages are templates, just that all your logic is in one place (java code) and all your design is in the other (html code)/
* cross browser - if your html and css is cross browser then it is cross browser, otherwise not
* client side performance - wicket handles caching and compression.
I can only argue, that a basic html knowledge is always required . I can't imagine you could go deeper without basic html understanding.
CSS is also pretty convenient and it's like a foundation stone for the pretty looking html, so I do not think it's a problem.
In the spirit of the article it's a cosmetics on a girl's face.
The problem is unpredictable mess...JSF also has that.
My other problem is javascript dictation. How can I ban it from my web page in wickets explicitly and use all their components?
How do I know I have no occasional javascript on page...
I'm sorry, but forgive me for not bothering to read your entire comment. The first two sentences were enough for me to understand that you, obviously, don't have a clue.
I invite everyone to pay me a visit where I work now.
You'll get a living prove for each of the cons I mentioned (no exceptions).
You can also have a conversation with the development and management (very experienced) teams that will gladly explain what Wicket really worth when it come to a real-world application requirements.
Don't get me wrong... Great application CAN be written with Wicket... but it will cost you (!!!).
I beg you (Ittay) to come a see for yourself before you add more misleading comments.
i'm talking about first hand experience developing with wicket for two years with a team of 5 people. it was easy and maintainable.
any technology can be handled the wrong way, even by good developers (lack of time to learn it properly, trying to use idioms from other frameworks etc. no team intercommunication). it will indeed be interesting to see how they messed it up. please send me privately who they are and i'll see if i can drop by.
to complete my high opinion of wicket, i would like to mention that like any technology, wicket is useful when used in the right context. if i'm developing an application, say, like this web site (and content oriented sites more complex), wicket is a great choice. if i would like to develop and application that has a lot of user side logic and effects and requires less sharing between users (so less server side interaction), then javascript (extjs) / flex is required and so wicket or any other server side technology is not (less) worth it. if that is the case then extjs, gwt, rap, flex and others should be considered.
it will be a mistake to think any application will be better if it were written as RIA or if the logic is in the client side. since this thread started about JSF, i think wicket is much better compared to JSF. and also Lift ;-)
having girls(frameworks) around - expect a fight...guys, it's not for real!!!
I'm not fighting... But I am scared to death of you choosing this technology.
We work nearby. Pay me a visit. You'll get an end-to-end Wicket review. After this, of course, choose whatever you want.
Ittay, the people responsible for this mess are considered to be the most experienced Wicket developers around (not joking). You know my history... Do the math...
Please don't miss my point. All I said is that you'll need more than Java to get the work done. Think twice if you're really up to it.
Thanks Adi,
but I'm not choosing it for my own reasons.
For me enough to see the source code and I've seen it.
There is no big good in "no-xml, all java" in that context, java work is pretty hard , harder than JSF beans, I do not choose that because it's a lot of learning.