I love Rails. And Ruby too !
Though I must admit that learn OOP, Ruby and Rails all together,
coming from years of mainframe programming with prehistoric languages,
without a mentor and having only a few hours per week to devote, is a
pretty demanding task !
It seems to me that the common real-life application chosen for
tutorials and books is the “classical” shopping-cart-based online
shop.
This makes sense in the age of the new economy but there are many
others business applications with different requirements.
This is quick comparison of the two from my point of view.
Online shops and similar:
- many occasional users
- simple and little structured data
- users need to enter very few (and simple) data
- users do quite simple searches
- a winsome and highly distinguishable look & feel is very important
Old style business app (invoicing, for instance):
- few regular users
- complex and highly structured data
- users enter a huge amount of data
- users need to do complex queries
- user interface is very repetitive (basically three types of forms:
search parameters, list, edit/enter data) - the cleaner UI the better but it should be rich of data-driver
features (filter for, lookup of complex data-set, export, etc.)
What this has to do with Rails I’m not sure but I dream of a super
framework (based on Rails, of course) which would provide features
like these:
- a smart table helper (like http://www.movinfo.it/movtable/demo/, for
instance, perhaps with less js and more ruby) - a model-aware user-friendly query builder
- a built-in function to export query in xml or pdf
- a model-aware lookup helper like the Browse link you can see at
https://www2.hertz-europe.com/
And of course it should provide a built in user management (with roles
and privileges), localization support, logs and alerts for the admins,
etc.
I know that many of these features are available as third-party
helpers or plugins and the ones that don’t exist can be quite easily
(more or less built from scratch using our powerful framework.
But:
- wheel reinvention is rarely a good option
- I would like to concentrate on domain specific issues rather than
built the next framework layer - I’m sure there are thousands of smart programmers that can do it
much better than I could - I don’t want to spend time to search, evaluate, integrate and debug
a couple of dozens of third party extension
Am I the only one who feels these needs ?
Bruno