14
02/07
3:04 pm
How not to drink the Ruby coloured cool-aid
Over the last few months i’ve been coding intensively in Ruby on Rails (learning) in order to build my first commercial web application.
As many other people in this industry, I spent quite some time browsing RoR cheat sheets, books, forums, wikis and blogs in order to gain as much knowledge as possible. When I was finally ready to build my app (after completing every possible tutorial), I jumped in head first without thinking about the consequences.
The problem, which I obviously overlooked, was that I had no idea how to build a REAL web application on my own using RoR. I somewhat overestimated my knowledge and expertise, and I think I fell flat on my face.
Why would a budding entrepreneur purposely shoot himself in the foot by coding something in such an unfamiliar language? Because it’s cool? Because it’s easy(er)? The reality is, when running your own company, some things such as technology choices require a certain degree of familiarity. You need to maximise the use of your current knowledge and expertise. You need to be honest and you need to know when something is not working for you, and quickly react and adapt to it.
I’ve decided I need to stop drinking the Ruby cool-aid and go back to my roots. In regards to web apps, PHP is where I started and it’s where I need to be. I’ve written a large amount of web applications in PHP, and despite its limitations, it has proven itself worthy of my time… and unfortunately I don’t have anymore time to fool around with something I haven’t mastered yet.
I’m not knocking on Ruby or Rails. I think it’s an absolutely incredible language and framework, but when it comes time to pushing out web apps quickly and getting a functional prototype up and running, then I need something i’m comfortable and well experienced with.
I will continue to play with Ruby and develop things on the side, eventually version 2 or 3 of my app will be migrated to RoR (with the help of fellow developers maybe?), but for now I need to refocus my attention.
Stay tuned for more details as to the availability of the first beta, developed in the language I know best ;)
Ian
February 14, 2007
3:29 pm
I wrote up a think about this someplace which I can’t find right now, but I think you’re making the right choice. You need to maxamize every ounce of knowledge you have. Ruby may be “faster”, but it won’t be faster for you.
Also I wouldn’t worry about ever porting it to RoR. You’ll never get your money back on doing such a transition. If your product is a success you’ll be way to busy trying to keep up with the features you need to add and bugs to fix to ever have time to move it.
Alex
February 14, 2007
6:33 pm
Hey Ian,
I actually re-read your article last night after writing mine: http://www.userscape.com/blog/index.php/site/comments/choosing_a_development_lang_php_vs_cf_vs_py/
I think your process of selecting a development language varied greatly from mine (mine was through failure, yours through logic), even though we ended up at the same place.
Thanks for the advice! You’re probably right about porting it to RoR; although I still want to continue learning it, maybe I would use it for my 2nd app, assuming it doesn’t tie-in directly to the first one.
Either way, there’s no need to plan that far ahead because who knows maybe Flash will takeover 3 years down the road ;)
bjhess
February 14, 2007
6:46 pm
This makes me a little tentative about using RoR for my current web app. Of course, I don’t know PHP any more than for hackery (not good hackery). I imagine I’ll be falling flat on my face more than once. Either that, or I’ll be coding Java-like Ruby.
Alex
February 15, 2007
1:22 am
I don’t think choosing an unfamiliar language is a necessarily a bad idea. In my case, I had other options which were much more suitable for my existing set of knowledge and experience.
Barry if the process of learning RoR does not involve “re-learning”, then I think you might just be better off doing that.
Ultimately only you can judge what will best for you, but better to know early than after your server crashes and you don’t know how to fix it.
Your mileage may vary ;)
PS: If you can pump out more/better/faster/better code in Java than anything else, then go for it. If your technology choice conflicts with the goal of the app, then that’s also a reason to fall flat on your face. In other words, you might be safe to also keep your customers in mind ;)
Ian
February 15, 2007
8:49 am
Ah nice job. You know my archive better than I do :-)
Alex
February 15, 2007
7:27 pm
Haha. I don’t know if that’s good or bad ;)
Georgi
February 15, 2007
7:39 pm
Well, we all start like this that We love what we want and we strive for what there is out there. And exciting. And new. My opinion simply is that if you want to build a new business, you have to care about steadyness. Golden times are over. Just get me right, internet times are fast moving times. But rely on what you know and what you want.
Good decicion, Alex. Keep moving along with what you know best, but also keep open minded. And learn new things. That, I think, is the recipe to pursuit happiness.
Alex
February 15, 2007
9:28 pm
Thanks Georgi, I completely agree with you.
Happiness is ultimately what we want to achieve.
Otherwise we would be back there working for “the man”, and the only sweat we would break is from clogging the toilet.
James
February 16, 2007
5:17 am
For what its worth I think you’ve made the right decision for the right reasons. Its fun learning new stuff and I think Rails is a great framework but if you need to deliver a product your best chance of success is doing it with something you know well (as long as the tool is up to the job).
Particularly so when it’s your own money on the line!
Good luck with your project.
James
Alex
February 16, 2007
11:10 am
Thanks James,
It’s very encouraging to know that other people agree with my decision.
James
February 23, 2007
9:09 pm
“The problem, which I obviously overlooked, was that I had no idea how to build a REAL web application on my own using RoR. I somewhat overestimated my knowledge and expertise, and I think I fell flat on my face.”
Good point, but where’s the Ruby Kool-Aid? I don’t think any Ruby (mind you, not RoR, but Ruby) advocate would suggest that learning Ruby, or any language, would magically prepare you for any particular application.
If you want to knock some (many? most?) people in the Rails community for hyping false hope, have at it. But does there ever come a time when someone should take the hit in time and trouble to change languages and toolkits (whatever they may be)? And how does one know when they have reached a local maxima with regards to what they can accomplish with their current tools?
Alex
February 24, 2007
8:21 pm
Hi James,
Thanks for writing! I agree with the fact that no language can prepare you for writing an application.
To answer your last question, I would have to guess the only way to really know is to actually try.
I don’t think there exists a point where people can’t accomplish tasks anymore, using certain tools. It’s more a matter of weighing your “available time” with your “desire to extend your knowledge”.
I may have lost a few weeks of work but i’ve been able to recoup that loss in a matter of days. That (the time) was more important to me than going all-out and mastering Ruby/Rails (the knowledge).
Alex
February 24, 2007
8:24 pm
To add to my last comment, I’m aware there is a tradeoff between time and knowledge. But this is business after all, and if I weren’t so inclined on making money, my decision might (and probably would) have been different.
:)
allan branch
April 15, 2007
11:14 pm
You’ve fallen back to the dark side…
Good Luck in PHP land, the LessAccounting.com guys
Alex
April 16, 2007
8:18 pm
Haha yes I have.
Thanks guys!