Hi,
I was afraid this might happen. Shouldn't have answered. But well...
You are right that I draw some wrong conclusions (which is something
different than lying!) I allready came by Rife years ago, and put it
in the mvc corner right away. However, just today I read the server
side discussion and the fact that Bruce Tate was very positive about
Rife triggered me to take a closer look.
I left two comments on the server side, both possitive, but I looks
like they didn't come through. I got a warning about failed
transactions, so TSS seems to be messed up here and there.
Anyway, without going into the gritty details (I don't know Rife good
enough for that, and I just don't have the time), I think it is great
that Rife fills in a place that is unique in the web framework space.
It follows an approach that is not used by other frameworks, and that
alone means that it gives Java developers more real choice.
So that's great. Now about those remarks I made. As I wrote I just
took a quick look at the examples, and gave these remarks, which I'll
annotate using your defense:
* page scripting (with an exotic notation);
- Yep, you're right. Rife does not use page scripting. I didn't look
well enough. Sorry about that.
* xml configuration;
- I don't care you don't /have/ to use xml configuration. Neither do I
care /what/ you configure with it. It is a fact that a large part of
the Rife manual is about XML configuration. The fact that you can do
this another way (same case for JSF btw) is good, but it doesn't look
the default way to me. I had a similar discussion about WebFlow with
Keith Donald, who sent me an angry email some time ago that I had the
nerve to not like his framework because I thought there was a lot of
xml configuration. Again, I am in the role of a reader who wants to
assess frameworks; I look at the standard way of doing things as
follows from reading the manual.
* weak typed maps to pass context variables to the view;
So what is this?
mTemplate = getHtmlTemplate("dynamic");
mTemplate.setValue("phrase", "Good evening!");
Template template = getHtmlTemplate("dynamic");
for (int i = 0; i < langs.length; ++i)
{
template.setValue("lang", langs[i]);
template.setValue("name", "lang_" + langs[i]);
template.appendBlock("langs", "lang_block");
}
Maybe I choose the wrong words. But what I see here looks like
flattening objects in order to use them in your template. And the
template context variables are conceptually stored in a flat Map.
* is not component based (no re-use, state, etc);
Here I was wrong again. Though it is not component based like Wicket,
it does have it's own component based flavor, with inheritance,
(processing) state, etc.
Part of the comments I left on TSS was that I think Rife is a great
improvement over the web MVC frameworks. Too bad I didn't give it a
better look some time back. But then again, same goes for Tapestry.
* etc.
Rife is just not my cup of tea. That's the etc. Stuff like '<!--V
'SUBMISSION:PARAMS:credentials'/-->' works, but it's just not
something I get wild about. Totally a taste thing.
Now, would I like Rife better than Wicket? Nope. Sure, I invested
mucho tiempo in it and thus am based by that and more. But the main
difference to me is that Rife lets you focus on the 'how' instead of
the (OO) 'what'. I just like to think in object hierarchies and do as
much as I can with Java. Wicket is still a bit immature compared to
Rife when it comes to navigation/ screen flow (the continuation
concept is on my list to have a better look at sometime) and Rife
seems to have excellent support for integrating with the other system
layers. The scaffolding is nice too, though Wicket has some of that as
well. Scaffolding is definitively something we'll keep in mind when
building further.
I like the front page of Rife for it's objective story, and I think
your answer on TSS was well balanced. I'm sorry we're getting into an
argument here. I wouldn't care about taking on any of the 1000 mvc
frameworks, but I like Rife too much to go into battle mode. It's on
my list of frameworks to reccommend, alongside Tapestry, Echo and JSF
(the latter for manager types).
I propose to let this rest here, or - if you really want that - take
it public to e.g JavaLobby.
Regards,
Eelco
On 9/4/05, Geert Bevin <[EMAIL PROTECTED]> wrote:
Hi Eelco,
I don't mean to start a flamewar either, but please, if you don't
know another framework, don't spread such utter lies about it. In
fact, none if what you said true. More even, it's totally the
opposite in every case.
Geertjan, it would be nice of you to forward this mail to your
colleague too.
In short, Rife is/ uses:
... is not, doesn't use ...
* page scripting (with an exotic notation);
RIFE templates contain no code at all.
This has been very clearly explained on the site and in the wiki.
You're just drawing conclusions from snippets you saw in the
examples, I suppose.
http://rifers.org/features/bidirectional+multi-format+template+engine
Even in a comment on The ServerSide, this his been recognized as one
of RIFE's strengths:
http://www.theserverside.com/news/thread.tss?thread_id=36260#183430
* xml configuration;
The XML you see for the site is not configuration. It's the
declaration of logic flow and data flow that provides a lot of the
advanced features. This declaration can be done in XML, but that's
just one interface to do so. Java, Groovy and Janino are supported
too. Nothing prevents you from doing this at runtime either, which is
exactly what we do in RIFE/Crud. This is a project that generates
entire sites (like RoR's scaffolding) at runtime without code
generation. It's all done at runtime and still customizable. Thanks
to the component object model, everything that's provided by RIFE/
Crud can be integrated into any other RIFE site.
http://rifers.org/wiki/display/RIFE/Site+structure+and+element
+declaration+without+XML
* weak typed maps to pass context variables to the view;
No maps are set in the view at all. It doesn't even work with
variables. You merely set values to content placeholders.
http://rifers.org/docs/usersguide/
ch03.html#sect1_numberguess_templates
* is not component based (no re-use, state, etc);
Again, totally wrong. This is even explained on the homepage of the
website http://rifers.org/about :
"RIFE's design provides the best of request-based and component-based
approaches and blends them together in a consistent component object
model."
More info for you about this here, I suppose:
http://www.theserverside.com/news/thread.tss?thread_id=36260#183215
* etc.
etc what ... ?
Again, I don't want to get into a flame war hear (in case Geert
finds
this message :)), but it is very different from Wicket. And it's not
Fair enough, that I can understand, since Wicket is not my cup of tea
either. Please just try to refrain from writing mails like this in
the future. If you want, we can continue this discussion elsewhere to
not spam the list.
my cup of tea to be honest. Though the site and logo looks very
nice.
Thanks for the compliment :-)
Best regards,
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
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle
Practices
Agile & Plan-Driven Development * Managing Projects & Teams *
Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/
bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle
Practices
Agile & Plan-Driven Development * Managing Projects & Teams *
Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/
bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop