Ian Bicking: the old part of his blog

Why web programming matters most comment 000

I've been shopping web frameworks for 3.5 years now. Really just window shopping - I've had project ideas but not the inclination to pursue them in my limited time. Now that I've finished school and only work full-time this has changed a bit, and I've gotten more serious about a project. I still don't know if it would have gotten off the ground except for Rails.

I've developed with MS technologies for about 7 years and the last couple has been mostly web apps with ASP.NET/C#. For a long time, I've been deciding which Java frameworks I would use for my independent work...I've played with all the struts, spring, webwork, tapestry as well as a couple ORMs (thought I really liked Hibernate)and had pieced together what my "stack" would be. I really like the toolsets and active community there. For a long time, I've also been in love with Python but have never really gotten past "Whetting your Appetite". CherryPy really peaked my interest at one point and I even found well-priced hosting that supported it but I never went anywhere with it. I remember playing with Zope (at least, Zope DB) a little bit but didn't get far. Cannot say why now (it was quite a long time ago) and unfortunately I'm out of the market for the time being.

Maybe I am just a sucker for hype but Rails got me moving. I found a hosting provider to support me (and for a bargain rate, great service so far). Once I was sure I could actually deploy my application I started building it. This is after doing nothing but idly looking at various frameworks, reading various websites, following several communities over a period of years with only a few concepts for potential projects in the back of my mind. Rails HOOKED me. I had barely learned anything about Ruby before learning about Rails (what little I had learnedI liked less than Python, and as it didn't have a web framework of note I didn't pursue it further). I think Rails has taught me somethings about Ruby that I now appreciate more, but I still have a long way to go and ultimately don't know how I will feel about Ruby as a language.

Please understand, the rails tutorials and scaffolding have done nearly as much harm as they have good for Rails (and that is saying a lot). Rails != scaffold.

Yes, Rails views look like ASP/JSP/PHP spaghetti code. They are different, and you can find out why if you read more of David's holy writ but even better if you experience it for yourself. The framework guides you by convention to do things properly. Coming from standard ASP & ASP.NET, I never fully grokked MVC (I understand it, but I haven't lived it). I was often paralyzed by questions of "where does this type logic go". Rails seems to be telling me, and telling me in ways that I don't feel anxious or guilty about, and telling me quickly.

Really what attracted me to Rails though is not the hype or the scaffold or the 10 minute demo, although that certainly helps when I feel I'm making really rapid progress. What attracted me is the philosophy. Don't repeat yourself. Use convention instead of configuration. After using ActiveRecord going back and doing Hibernate (even with everything its tools can generate for me) really makes me sick. After using ActiveController and ActiveView, the idea of the struts or springs XML config approach makes me sick. Of course, ASP.NET makes me sick just by being what it is and by the generally accepted practices associated with it (same with PHP).

Truly, I don't have the Python experience to speak to it in ways I can speak to Java and MS technologies. But Rails sold me in minutes, and I've been shopping a long time. If the Python community can develop something as cohesive and/or market it as well, then it can win. Python I think is unquestionably a better general-purpose language than Ruby still, just based on its library and tool support as well as it its distribution and mind share. But you might not have that much time.

Comment on Re: Why Web Programming Matters Most
by JeremyH