Rails is built upon the foundation of a model-view-control split of responsibilities. The MVC pattern can be quite bewildering if you’re coming from procedural PHP, other non-OOP environments, or are just starting out with programming. But now you can learn it all. Amy Hoy has written a great introduction to the pattern and how it relates to Rails: MVC: The Most Vexing Conundrum.
Despite my recent case against high-level components, I do find low-to-medium level components useful when restricted within a narrow context. I could easily foresee abstracting some of the stuff in our 37signals applications into components and then reuse them across our similar products.
But what ever you believe that components will herald the second coming or remain skeptical as I, the infrastructure to build and use components have now come to Rails! It’s incredibly easy to use and components can either render complete screens or parts of other screens.
To demonstrate I’ve made a little movie: Components in Rails.
Components will be part of the forth coming Rails 0.10.0 release (which is due any day now).
Florian Weber has been working on his benchmark extension to test/unit for quite a while, but real life got in the way with the development of Bellybutton. He’s now making his comeback as a contributor to Rails and the first task is to finish his benchmark reporting tool:
Nicholas Mommaerts is a Java programmer that “…spend[s] 8 hours a day programming with Struts in a big company”. After becoming interested enough in Rails to do his blog in it, he also got interested in comparing his work environment to his newfound fun environment. So he went ahead an made a comparison analysis between Struts and Action Pack/Railties available both as a PDF and a 4-installment HTML series (1, 2, 3, 4).
Do read the full comparison, but here’s the conclusion:
Rails eliminates a lot of the boilerplate code we see in a normal web application, it adds just enough to the default stack of web standards to make programming a web application almost enjoyable (or boring). It relies on configuration through convention, but let’s you override where needed. It’s lean, self-contained, uses only one (great!) language and encourages testing. Rails is flexible because it remains so simple, so unobtrusive.
Struts eliminates boilerplate code only by replacing it with it’s own. Struts is a big, fat, hairy monster with which you have to fight constantly when programming. It is very flexible but this comes with such a high cost it makes you wonder if it’s worth it.
Rails beats Struts down, kicks it in the groin and leaves Struts crying for it’s mama.
Jamis Buck did a presentation of Rails for the Utah Java Users Group two nights ago. He has made the entire show available online including the Terminal videos used to show the programming. The presentation was given in between one about JDO and Howard Lewis Ship’s one about Tapestry. Here’s what one of the spectators noted:
As a witness to the event, I have to say that the presentation went quite well. This is what I learned from each speaker:1) JDO is losing popularity to Hibernate, 2) How to build a entire CRUD app in 40 min using Rails, 3) How to build a single login screen in 1 hour using Tapestry. Hmmmm… kinda indicative of the tools presented. :)
Congratulations on the good show, Jamis!
Another installment in Scott Baron’s series “Rails Application Walk-through” today. This time he’s tackling the use of validations by utilizing both the built-in ones and a couple of custom validations. Excellent stuff!
Tom Purl believes we’re getting near a tipping point for LAMP in the enterprise and that the missing piece, “…this bridge appears to be Ruby on Rails”:
So in addition to being able to use LAMP and increased productivity, why would large companies wan to use Ruby on Rails? Well, for starters, large companies are already using the MVC framework extensively with J2EE and .Net, so another slightly-different framework wouldn’t be too hard to swallow. Also, Ruby is is an object-oriented scripting language that shares many features with Java an C#. It certainly has its differences, but nothing compared to the differences between Cobol and Java or VB 6.
Tobias Luekte has had great success introducing newcomers to Rails. He provides tutoring sessions with hand-holding, sing-alongs, and all that good stuff that makes you really get what’s going on much, much faster than picking everything up on your own. He’s now offering this service to the public at large, so if you just got into Rails and want to purchase some focused training to help you get up to speed faster, Tobias is your man.
A few quotes from people how has had the pleasure so far:
“Tobias’ deep knowledge of the entire Rails system is what finally gave my company the confidence to go ahead with this project. His wisdom and insight into such things as database setup helped immensely. He has a great way of walking through real-world situations instead of merely abstract or simplistic scholastic examples.”
— Derek Sivers, www.cdbaby.com
“Tobias’ support and mentoring has been invaluable — why spend a few hours hacking away with trial-and-error code when someone with real experience can solve the problem and clearly explain it to me in a fraction of the time?”
— Justin French, Indent.com.au
The training can even be performed remote using VNC and Skype/phone. Read more at Leetsoft.
37signals completed the hire of its second full-time employee today: Jamis Buck. We’re really happy to see Jamis join us to further our suite of Ruby on Rails-based products and services. Jason has more on the hire.
Johan Sørensen has put together a great guide for getting lighttpd 1.3.10 running on OS X. All the steps needed to have lighttpd serving a FCGI-powered application. This is particularly exciting now since the next version of Rails will be even better suited for running on lighttpd through the introduction of Routing.