JavaOne Day Three

by Robert Cooper

Thoughts on Thursday's JavaOne events...

6 Comments

Geert Bevin
2006-05-20 18:20:20
Thanks for your writeup.


Can you please explain what you mean when you say that RIFE "encourages 'considered harmful' programming". This is a rather strong statement to put out without being specific. Also, let me correct that RIFE is hardly "a bag of tricks derived from repetitive need". Everything has been carefully designed and of course, some parts grew incrementally over the 5 year development period, but nothing is done as a quick trick.


Best regards,


Geert

kebernet
2006-05-21 16:37:43
>Can you please explain what you mean when you say that RIFE "encourages 'considered harmful' programming". This is a rather strong statement to put out without being specific.


Well, but this I mean it is really easily to get your business logic, output logic and controller logic all mixed up in the same class. As "ugly" as Struts may be, for instance, there is a veru clear separation, and even then you still end up with a lot of people putting what is definably business logic into Action classes. While I appreciate the goal of the templating system, having things like block repetition inside what I would view as the "controller" layer is a bit dangerous.


I certainly don't mean anything derrogatory by "bag of tricks" either. By that I simply mean a collection of invididual components targeted at a specific goal.

Geert Bevin
2006-05-22 10:26:35
Hi,


indeed, we encourage the controller logic and the view logic to be inside the same element (which is in any way totally web related). It's then up to the team to have a direction for the business logic. Either you externalize that or keep it inside. This is probably related to the size of the project and whether is actually makes sense to have a separated business logic (in practice for many small to medium sized projects it doesn't).


As you said, it's almost impossible to keep those from being mixed, even with clear separations. We thus opted to make 100% sure that the templates are logic-less so that they can easily be replaced. This makes your web components much more easy to reuse in different contexts.


I'm still not so certain that I understand where you get the impression that RIFE is targeted at one specific goal. It really aims to provide a general purpose framework with answers to most of the things you're need during the development. Of course, they are our answers and as with any framework we have strong points and weaker points. I don't see however why RIFE is more "targeted towards a specific goal" than any other web framework out there.


Best regards,


Geert

cooper
2006-05-22 10:51:00
>I'm still not so certain that I understand where you get the impression that RIFE is targeted at one specific goal. It really aims to provide a general purpose framework with answers to most of the things you're need during the development.


Not so much the framework, but the fact that there are individual components that are, for lack of a better term, single purpose that can be used invididually without heartache. Again, I am not using that as a negative. Indeed, I see that as a strength: if you decide one part of RIFE is no longer fitting your needs, it is easy to move away from it without replacing your entire application stack.


As to the code mingling, there is definitely decisions to be made there. I have opinions on it, but I am certainly not the difinitive word on the topic. I guess in terms of RIFE, I am not sure how much separating, for instance, iterator logic from the templates really buys you. If I wanted to change the template to, for instance, make a table vertically in stead of horizontally, I would have to go in and rework the Java code anyway.


While I am not in the world of the "professional services/web shop" anymore, I can appreciate that RIFE's templates are, shall we say, "Dreamweaver-guy friendly", which I think has a lot of selling potential on its own. One of the things I always felt was "wrong" with JSF is that while the component model is not horrible, you can't take Joe Graphic Designer and put him in front of JSC or NetBeans and have him be happy with his results. RIFE may be the only one of the frameworks that really goes after that problem with a clear solution. However, in the world in which I play now, it seems like a less clear fit. The web framework stuff is DEFINITELY not a one size fits all world right now, though I wish it would tighten up a bit more.

Pete Nema
2006-05-22 14:21:37
If you want to see some photos of AC/DShe, check out my music review site:


AC/DShe - Photos from JavaOne 2006 in San Francisco


Enjoy,
Pete

Chris Nelson
2006-05-23 14:32:25
Thanks very much for the nice comments about Trails.


One minor clarification: while Trails makes use of the JSR 220 persistence annotations of EJB3, it does not require you to have your POJOs actually be Entity Beans. All the interaction Trails does with Hibernate are through Spring and not through a JPA EntityManager. I am not in fact using an EJB container for any of the the work I do in Trails. For those of us who are a bit "container shy" this is worth mentioning.


--Chris