'They won't ever fit together like Rails'

Matt Grayson is another Python programmer that despite his love for Python “…haven’t done much Python lately”. He blames Rails, which he declares “…is worth the hype.”. On the prospect of seeing Python on Rails, he offers:

The closest thing I’d found to Rails in Python is a combination of CherryPy, SQLObject and Cheetah. But as much as I like each one of those pieces individually, they won’t ever fit together like Rails – which is why I don’t have a lot of optimism for things like Subway. I’ve got nothing against Subway. Could they pull it off and put together a really good Python web framework? Sure. But, given the track record of past attempts at web frameworks within the Python community, I won’t hold my breath.

And Jake from Maui is yet another Python programmer that has been getting into Ruby through Rails:

Every time my work took extra time, it’s because I was expecting a level of complexity that wasn’t there. Wow. It’s not often that one of the tools I use humbles me, but finally I’ve found something that allows me to write code as fast as I think.

Soo many quotes, so little space

Xavier Defrang characterizes himself as a “…a frustrated Python-lover writing object-oriented PHP code”. He has contributed to the O’Reilly Python Cookbook and initiated the french translation of Dive Into Python. Despite his pythonic love, he has also managed to post the single most flattering article about Rails I’ve yet to stumble across in which he compares Ruby on Rails to Java, Python, and PHP.

The number of quotes and passages I want to pull out are so plentiful that I can hardly decide. Here goes a few:

  • The recent Trails video walktrough just showed that J2EE zealots were definetly not getting it: the What is as important as the How
  • I consider myself a real Pythonistas… and I’ve never thought of Ruby as attractive because of its syntax I (still) find a bit too sweet… But now that there is a killer app for Ruby which appears to square the circle of web development, can you think of a better time to look at it?
  • I predict that a lot of high-profile PHP developers will soon or later switch to RoR. As a frustrated Python-lover writing object-oriented PHP code, Rails really fits as the best-of-both-world solution.
  • The productivity boost offered by Rails is similar to what I experienced when switching from C++ to Python as my main development language. Everything is so simple and natural that it feels just like your own framework you would have grown yourself after years of trials and errors.

Anyway, go read the whole thing before I reveal all of it through quotes. It’s either a man who really gets it or a terrible suck up. Depending on your own personal enthusiasm about Rails :)

Understanding Model-View-Control

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.

Components are coming to Rails

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).

Comparing Struts to Action Pack/Railties

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 presents Rails at Utah JUG

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!