I’ve spent most of my free time over the last 3 months (…and by free time I mean after everyone else has gone to bed) building DosPecesCreations.com, which is a small e-commerce application for my wife’s new jewelry business.
I am a .NET developer by day, but I wrote the app in Ruby on Rails. I already mentioned some of my initial impressions about working with Rails, but since I just reached a new milestone by having finished and deployed version 1.0 of the app, I thought I would take a few moments to share some further reflections on the topic.
Why did I choose Rails?
Mostly practical reasons.
My hosting provider runs on a LAMP stack and the only options available to me were PHP or Rails. I suppose I could have moved to a .NET hosting site, but I’ve had good experiences with PrecisionEffect and like the idea of balancing my .NET experience with side projects that are built using other platforms.
I’ve customized my blog, which runs on WordPress, enough to have already developed a distaste for PHP so that left Rails. I know that I’m 4-5 years late to the Rails party and that the cool kids have all moved on to more cutting edge things, but better late than never.
Am I glad I chose Ruby on Rails?
Definitely.
Don’t worry, I haven’t found religion. I’m not going to start spouting off about how Rails is so technically or artistically superior to .NET or other alternative web frameworks.
The main reason that I am glad I did the project in Rails is because it was a rejuvenating experience to immerse myself in a very different programming paradigm for a while. The simple act of starting over from a technical perspective allowed me to once again enter into that ‘hungry-and-excited-to-learn’ mode, a mind set which is very difficult to sustain when you stick to the same technology year after year.
I’m convinced that most of the annoying exuberance from early Rubyists had more to do with the psychology behind this experience than anything else.
Don’t get me wrong. I think Rails is a very innovative framework, but I’m pretty sure I would have felt the same level of excitement if I had worked in Django, Merb, or [insert new fangled web framework here] instead.
Was I able to develop DosPecesCreations faster in Rails than I would have been able to do in.NET?
Absolutely NOT.
Don’t tell my wife this, but I’m pretty sure I could have finished the whole thing in half the time if I had used .NET instead.
Before you start flaming me, I fully attribute this slowness to the newbie tax.
Anyone who has ever been burned by a clueless CIO that has trashed an IT department’s reputation by promising stakeholders extravagant productivity gains as justification for upgrading to the latest and greatest technology andor language knows about the dangers of this often forgotten tax.
The dirty truth is that your productivity is going to take an initial nose dive as you get acclimated to any new language, tool, or technology. It doesn’t matter if you are moving from Assembly language to Ruby++++, it’s going to take some time and patience before you see any dividends.
This initial learning curve slow down is exacerbated in the case of Rails by the fact that the documentation is terrible compared to .NET. Partly this is because no open source documentation that is maintained mostly by programmers who by their very nature hate documentation is ever going to compete with what legions of well paid technical writers hired by Microsoft can produce. It also doesn’t help that the Rails community plays much much faster and looser when it comes to backwards compatibility than Microsoft, thus making much of the existing free blogosphere documentation stale. The fact that Ruby was created in Japan and much of its primary documentation was never translated just doesn’t help either.
With that being said, I do think that if I were developing in Rails full time, then after a few months I would be able to whip out web applications with Rails much faster than I otherwise would with .NET.
This shouldn’t be much of a surprise since Rails is a high level DSL for web applications that relies heavily on the notion of convention over configuration to streamline development. Once again, not always a benefit for newbies since it often decreases discoverability, but it definitely speeds things up once you get the hang of it.
Finally, a shameless sales pitch on behalf of the spousal unit
Are you currently in the dog house with your significant other for playing World of Warcraft too late last night or trying to read your twitter feed on your smart phone while she was telling you something “important” or simply for working too much overtime? Why not bribe…er… show her how much you love her with a surprise gift of earrings, a necklace, or a bracelet?
Each item is a unique creation from my wife and is very reasonably priced, which means you’ll have money left over for that that new solid state hard drive you’ve been wanting.
Even if you’re not currently in trouble with your wife, it is probably only a matter of time. If you’re reading this blog, then you’re probably both a guy and a geek, which means that the odds are stacked heavily against you.
Face it, you might as well start sucking up now so she’ll go easier on you later when the inevitable happens and you screw up. In fact, you may have already done it and she is just waiting for you to figure it out.
Most importantly, by purchasing jewelry from DosPecesCreations you will will keep my wife busy at night, thereby freeing up time for me to blog more. See? Win win win…
P.S.: Enter ‘SPCDLV’ for a coupon code and your shipping will be free.
Popularity: 7% [?]