On Feb 13, 2010, at 3:22 PM, Kristian wrote:
Why not create a new "Hobo" like project (perhaps with another name)
from scratch, with the same goalds - to make it really easy to rapidly
create web applications using Rails 3 and the best plugins out there
in various areas. Perhaps from the start adding some more meta-model
programming approaches to it all? (as I see it that has been much of
Hobos current strengths). I feel the curent Hobo suffers from to much
"custom code" having to be maintained instead of just wrapping other
gems out there in a nicer way, fx Formtastic, Devise and some nice
role mapping solution?
I'm personally pretty "meh" on some of those specific examples:
- Devise has some interesting ideas, but 90% of what it does is
already in Hobo or readily accessible. The Warden integration is
interesting, but cross-language solutions like CAS are more likely to
be helpful - lots of us have to deal with crusty old legacy PHP apps...
- Formtastic has some nice ideas (the grouping especially), but much
of the other "gee-whiz" stuff is already in Rapid - most notably, the
handling of associations via selects / radio buttons. The examples in
the Rdoc remind me of DRYML, but now with 800% more % signs!
- role mapping: nobody is *ever* going to be happy with a single role
mapping solution. Either you end up having a giant ACL system doing a
job better suited for an "administrator flag", or vice versa. I'd be
interested to see more recipes along these lines, but a plugin
solution is always going to cause problems.
Also note that there's not anything *preventing* you from using most
of these plugins - I'd assume, for instance, that Formtastic would
pretty much drop-in. You'd lose all the autogeneration and permissions
control that Rapid bakes in, but it would be possible.
The meta-model should use a ruby DSL approach, not a static model!
Why not also take more advantage of the new Thor powered Rails
generators and templates. Been working a lot with these technologies
myself lately. They just need some nice code refactoring library to
really kick ass! Then skip the whole schema centered approach and go
for schemaless persistence backends such as Mongo DB and the like. But
can you deploy Mongo DB and similar to fx Heroku yet?
Schemaless DBs would eliminate a lot of complexity.
The end goal - keep the architecture of both the framework and the
"generated" app simple and flexible.
Schemaless DBs are very popular with developers right now - and they
do offer some very powerful features. HOWEVER, there's still an awful
lot of work out there that's rooted in old-school RDBMS applications,
and most of the NoSQL stuff falls down once you want to start
generating ad-hoc reports.
Design every framework component of functionality/feature set as a
plugin or gem, each created using BDD with Features, Scenarios and
Specs to act as verification and documentation to facilitate
extensions by others in the community. Why not join forces with other
groups working on similar Meta frameworks on top of Rails?
Hmm... just some ideas.
The whole "split everything into a billion bits" movement kind of
annoys me - for instance, the fact that it takes about 30 gems to get
a sample Merb app going. Modularity is one thing, but something isn't
really "modular" until there are TWO interoperable implementations for
a component. Until then, it's really just "divided". The "ORM
agnosticism" trend followed the same pattern - ActiveModel is finally
starting to simplify things, but before that being ORM independent
really just meant writing everything N times to support N ORMs; see
the Merb port of restful_authentication for an example.
More thoughts to come on the other post in this thread...
--Matt Jones
--
You received this message because you are subscribed to the Google Groups "Hobo
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/hobousers?hl=en.