Hi John,

1. If RIFE is really all it appears to be (e.g., a complete answer to the questions Ruby on Rails has posed to the Java community), how come it is not more widely used? It is still a very minor player (whether or not this is justified). I was wondering why this might be. Could it be to do with its Belgian (i.e., non-US) origins?

People have said this to me before, but I don't think that's the real reason. Of course any answer to this is pure speculation, but as it turns out I talked about this very issue with Bruce Tate (Beyond Java author) and David Heinemeier Hansson (Rails' creator).

This is what Bruce says about it : "I push RIFE every other weekend or so, when I do the nofluffjuststuff symposiums. I also pointed <big name> toward your frameworks. Usually, the biggest fear is that the project wouldn't get too far without you, so they view it as risky. I'd really work hard toward Spring integration, and work on ways to hide that integration from the user."

My remark to David: "I fear though that not many people doing Java are open for the 'quick results without a headache' approach unless they totally switch over to another language or platform. RIFE walking a middle road doesn't help much for its adoption though, but that's another story ;-)"

His response: "I think that's a very precise analysis. As long as people are in denial of a world outside, Struts will seem like the only way. And a rebel framework like RIFE stand as little chance as Rails. But as soon as they open up, I think they want to distance as much as possible (and thus Rails provide the exact opposite of the Struts in a lot of ways)."

I personally think that RIFE is in a difficult position for both people coming from Java and people coming from PHP.

Those who come from Java are usually tied to the frameworks they already chose and thus very often can't switch to another view on the problem nor another technology stack. If they choose to change, they tend to go for the solutions that already have a large user-base (if 100000 people chose it, it can't be bad). Even if they don't get the nicest solution, they at least get one that works well enough and has a pool of knowledge that can be capitalized on. If they choose to change radically, then the memory of the over-zealous complexity of what they already used drives them as far away from Java as they can: RoR.

Those who come from PHP are used to a scripting language and know of a lot of the monstrous Java-based setups and their complexity. They don't risk getting close to it and go towards RoR instead.

A last part that plays against it is that while RIFE aims to provide as much productivity and development fun as possible, we value maintainability and clarity above that. This means that there is a site-structure as a central point of declaration with the data and logic flow inside it. Several people already told me first hand that when they read the features, they loved what they read, but once they saw the site-structure they remembered the XML declarations of other frameworks and concluded that it was just a variation on the same theme, without looking at what is really done in there.

2. How long do you think it would take a reasonably experienced Java developer, who has worked mainly with the Struts/Spring/ Hibernate approach to web apps, to get comfortable and productive with RIFE's very different way of thinking/working?

Depends on what you're doing. RIFE is setup (jumpstart) so that you can start right away without having to plan, configure and setup a whole collection or things before you even try something out. So, getting your first results is almost instantaneous and, as Eddy says, within a day you'll have something going. The next stage is a bit more difficult though, since RIFE does a number of things totally differently from what you already know: no servlet-side sessions, logicless templates, declaration of data-flow, url == state, ... I have never been in the situation of having to learn that (since I designed the features), but most people just need time to get the "aha!" feeling. Once they've switched to the mindset we rarely get any questions, except for bugs, holes in the documentation, missing features or complex aspects of the framework.

3. Are there any tips anyone could give me about how to start 'thinking in RIFE'? I.e., how to approach the design of a web application with RIFE in mind. Perhaps something along the lines of planning it as a flow diagram, thinking of possible exits from each page view?

Some things have helped people lately:
* the URL drives a RIFE application: URL == state
* the templates don't drive the pages: they are logicless blueprints

When I begin with a new app, I start from the jumpstart and write a simple version of my domain model first. I add RIFE/Crud to get an instant admin interface to be able to easily populate the application with data. Then, either I customize the Crud behavior or write some custom elements. From there on, I extend iteratively and add tests to ensure that the application continues to behaves as intended.

I hope this helps,

Geert

--
Geert Bevin                       Uwyn bvba
"Use what you need"               Avenue de Scailmont 34
http://www.uwyn.com               7170 Manage, Belgium
gbevin[remove] at uwyn dot com    Tel +32 64 84 80 03

PGP Fingerprint : 4E21 6399 CD9E A384 6619  719A C8F4 D40D 309F D6A9
Public PGP key  : available at servers pgp.mit.edu, wwwkeys.pgp.net


_______________________________________________
Rife-users mailing list
[email protected]
http://www.uwyn.com/mailman/listinfo/rife-users

Reply via email to