Re: Ruby on Rails?

Mont Rothstein <[email protected]> Thu, 27 Oct 2005 12:36:23 -0700
Newsgroups gmane.comp.web.webobjects.general
Message-ID <[email protected]>
I asked this same question not long ago on a different list. Below is the
reply I received.

The list the was posted to is the developer list for
http://sope.opengroupware.org and open-source re-implementation of WO 4.5 in
Obj-C.

-Mont

On 28. Mai 2005, at 05:34 Uhr, Mont Rothstein wrote:
>* I was wondering if you have looked at Ruby on Rails and if you had
*>* what you thoughts on it were compared to WO.
*
I'm not sure its a good idea to turn this list into a RoR discussion
list ;-) So I just give some ideas I have about it. Not that I never
tried it in real live (wasn't too easy to setup on OSX), I've just
seen some demos and read the tutorial on the website to get an idea
on what it does and how.
When the tutorial started with a script which _generated_ code, my
first thought was "WHAT A CRAP". If you need to generate code,
something is usually inherently broken in the concept.

- first: its obviously clear that RoR is very much overhyped and
delivering
   nothing which wasn't available before (even in simple frameworks).
- second: IMHO its also very clear the Ruby itself is very much
overhyped
   for the same reason. (it has everything I dislike about Python but
few
   things I like in addition)
Personally I would like to see some framework which pushes JavaScript
to its limits, that would be a nice thing to see (but probably
horribly slow as well)

- if you really like Ruby, it should be very nice for small and fast
hacks
- if you know Java tech (J2EE, Struts etc), RoR should rock
- if you know PHP, RoR should be nice (if you master Ruby in this
case ;-)
- if you know ASP.NET <http://ASP.NET>, RoR should be boring
- if you know Zope, RoR should be quite boring
- if you know (full) WO, you will be yawning
This explains why some people love it and others don't understand it
(eg I've seen Miguel de Icaza asked in some Mono forum for an
explanation of the RoR hype ;-).


Unfortunately its hard to describe WO because it contains soo
incredibly many tools. So what are major WO features hardly available
in other frameworks:
- real web components (also for request processing, not just for page
   composition!)
- very cool data binding facility (associations)
- a really fast compiled language _and_ a good scripting language
_and_ Java
   - well, this was only till WO 4.5 ;-)
   - since WO5 something in between (Java ...)
- the most complete database access framework I know, from very simple
   (EOAdaptor) to very high level (EOEditingContext, hierarchie
mapping etc).
- Direct2Web, Direct2Java. While Ruby allows you to write simple apps
with
   very little code, D2W allows you similiar applications with no
code at all
   but with much more functionality and proper consistency (eg database
   independence, long running transactions, etc).
In short: RoR contains maybe 5% of the functionality contained in WO.
Note that a "I don't need that functionality for my simple app"
doesn't count, since most of the stuff is framework functionality
which makes zero-code apps like with WO possible.
Notably all those functionality in WO have very clean and
approachable interfaces  and is very well modularized (unlike such of
Java), so its no big monster, its just a big collection of cool modules.
Also I didn't even mention Apple-only tools like WOBuilder which is
InterfaceBuilder for WO templates and allows you to drag and drop
connect reusable WO components.

Note that with "WO" I don't mean SOPE. SOPE doesn't really compare
for the avarage user because it (currently) just has the compiled
language and you will be slower for fast hacks just due to that (you
need to be able to use all the component reuse features to compensate
for this).
It further misses a complete implementation of D2* technologies as
well as of EOF (well, you use AJR, which should be close).
Only when we have integrated WebScript, EOF and D2W (SOPE 5?) we can
start kicking away other "attempts" ;-) Right now SOPE is good for
either complex applications which doesn't just consist of some HTML
controller code or for applications which need to have very fast
request handling.


Well and if you want to write fast hacks and don't want to use WO (eg
because of $$$ or Apple), IMHO Zope 2 is a better solution. Its
mature, as easy as RoR, has a nice community and provides quite a lot
of modules for various purposes (PDF generation, SXW parsing, form
handling, etc ...)

Another thing is using a relational database with RoR just doesn't
make any practical sense. It can't deal well with huge database nor
with existing/evolving  databases. And for small databases there are
much better technologies than RDBMS (eg ZODB, plain File, RAM etc).
That RDBMS-is-good-for-everything is deprecated wisdom (it was
different in 1995 when 20MB was all the system memory available).

>* Anyone else taken a look and have an opinion?
*
I know that Sebastian loves RoR and has written some application with
it, we already discussed that to death ;-) Unfortunately its hard to
discuss with RoR (or Zope) fanatics since most of them never used a
*real* application server before ;->

Greets,
   Helge