Hobo is very attractive to beginners, and it’s not hard to understand why. Watch the screencast or try the two minute demo to see how appealing Hobo can be. That’s a full server side, database-backed web side created lickety-split, without being intimidated.
We’re not saying that you don’t have to learn all of that if you want to use Hobo. We’re saying that you can delay learning that with Hobo. This is similar to the relationship between Rails & SQL. You can create a very impressive Rails site without knowing SQL. But learning SQL will give you another tool in your toolbox that you can use to make the site better and faster.
But not having to learn SQL at the beginning has two very important benefits. First of all, it lets you concentrate your learning on things that are more immediately applicable to you. Secondly, when you do get around to learning SQL, it’s a lot easier because you’re immediately applying what you learn, and you can watch your own web site interact with a database and learn by example.
If you can already make Rails sing and dance however you want it to, what advantages does Hobo bring to the table?
A Hobo application is generally dramatically smaller than an equivalent Rails application. Less code means less maintenance, which is usually the biggest cost over the long term for any program. Less code also means fewer decisions that you have to make. Instead you can spend your limited time and brain power on the code and decisions that are important to your site. If Hobo’s “convention ove rconfiguration” chooses the wrong default, it’s easy enough to over-ride. But you can delay that decision until it’s absolutely necessary rather than having to guess before your site is functional.
Another benefit that Hobo brings to the table is a powerful mechanism for view code re-use. In a typical Rails app, many pages share components. In vanilla Rails, you generally share view code through the use of partials or by creating jQuery components. This works, but DRYML tags are much easier and intuitive to parameterize. They also integrate into your application much more seamlessly. Don’t Repeat Yourself. It’s right in the name of our template language.
Speed of development is another huge benefit that Hobo brings to the table. Create prototypes right in front of your customer, making it much easier to capture requirements. Bring that prototype home and instead of throwing it away, build it up. Next time you’re with the customer, prototype some new features without bodging up your existing code. Because with Hobo fast doesn’t mean loose, it just means that you’re going with a few more defaults than your final code will contain.