Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

General Question

I understand that discussions revolving around questions of this form run the risk of becoming too specific to help others. So, perhaps a better, general question would be:

What kind of experience, if any, translates easily to Ruby on Rails; and if none, then what's the learning curve like, in comparison to other popular languages?

Background

I have the opportunity to build a website using whatever technologies I wish to use. It's a fairly simple website, for

  • listing products,
  • taking payments,
  • managing customer data,
  • providing a back-end portal for employees to manage data,
  • possibly hooking in flight information (the products are travel related),
  • possibly integrating a blog and all the social-networking goodies.

Specific Problem

I have to let the client know by tonight whether I'm interested in taking up this project, before he talks to other potential developers, but I'm on the fence.

  1. I already work a full-time C++ development job, so the money doesn't do it for me. It's the opportunity to (be paid to) learn some new technologies and to have a real, running product in the end.
  2. I've heard and read great things about Ruby, and am really intrigued.
  3. I zipped through some introductory Ruby tutorials, no sweat.
  4. However I found the Rails tutorials a little overwhelming, especially not being able to try it out anywhere.
  5. And researching Rails hosts like Heroku and EngineYard makes me think that maybe I don't know what I'm getting myself into.

The ship's leaving port! I wish I had more time to learn, better yet play with the language, but I have to decide soon! Should I venture or pass?

Additional Details

My experiences are in C/C++/Tcl/Perl/PHP/jQuery, and basic knowledge of Java/C#. I didn't study C.S. formally so I wasn't exposed to design principles, programming paradigms, etc., which is my greatest concern. Will my lack of understanding in this realm make RoR frustrating to learn? Will it be so incompatible with a C++ "way" of thinking that I'll wish I never started? Am I putting my client at risk by attempting this? If it helps, I'm quick to learn new things (self-taught so far) and care a great deal about correctness, using things for their intended purposes, and so on. I've read numerous recommendations of Agile Development with Rails and would love to read it (though perhaps, while developing in parallel, for shortness of time).

Worse comes to worst, I'd give up and do the standard LAMP gig, of course, not charging the client for wasted time. But I'm hoping to avoid the project altogether if it's gonna come down to that!

Thanks in advance for any tips, insights, votes of confidence, votes of discouragement (for the better), and such.

share|improve this question
1  
What do you mean, "not being able to try it out anywhere"? Install it. Yes, you are putting the client at risk, because you don't know the environment you're targeting. –  Dave Newton Apr 2 '12 at 21:39
    
I should have clarified, sorry! Since I met with the client 2 days ago I haven't been home, and with what little time I've had I've been reading tutorials and introductions to Ruby and RoR; and currently I'm at work. The client is a friend of a friend, and quite open to me experimenting and having fun, as long as a functioning product is delivered in the end. The "risk" I'm afraid of is not necessarily about failing to deliver the product (I would deliver via LAMP if need be), but more along the lines of security risks or risks to data that may appear due to lack of familiarity with Ruby/RoR. –  Andrew Cheong Apr 2 '12 at 21:49
1  
Same answer, and extended to include concerns about maintainability, flexibility, and testability/tests. –  Dave Newton Apr 2 '12 at 22:11
    
@DaveNewton - Thanks; in hindsight (now having turned down the project) I realize I was blinded by the time pressure, my idealizations and excitements. Each of your points were strong: I probably do lack the ability to write RoR that's maintainable and flexible for actual, experience RoR developers, and although I write C++ autotests, this knowledge probably doesn't carry over to RoR testing. –  Andrew Cheong Apr 3 '12 at 15:31
1  
It's a really easy trap to fall in to; we've all done it. When "hello, world" apps are so mind-numbingly easy our optimism and hubris often overtake our common sense ;) –  Dave Newton Apr 3 '12 at 15:35
add comment

migrated from stackoverflow.com Apr 2 '12 at 21:41

This question came from our site for professional and enthusiast programmers.

1 Answer

up vote 0 down vote accepted

If your question would say "I'm willing to fail and do a lamp workaround no matter what, I have the time to fail once and don't mind the work", I'd encourage you to do it. However, under the current conditions, it's a most emphatic don't do it.

I don't think the relevant points have anything to do specifically with R&R. Some responses to the other points in your question:

  • If the money truly did not make a difference to you, you would have already installed R&R and built something medium(ish) with it (beyond basic tutorials), just to satisfy your curiosity. Even without that information, I would dismiss the motivation brought by money as likely to help you do well (based on what I read of Dan Ariely, the money is actually going to motivate you to do worse than your normal performance).
  • A new technology will always increase risk to your customer, and you sound relatively risk averse. You also sound like you want to deliver quality work - the risk is really high that, even if you do deliver something useful, it will be poorly built.
  • A general lack of theoretical background can be a disadvantage. If you obtained a good understanding of abstract concepts behind the design of the systems you've been using (why is MVC3 built the way it is? What tradeoffs were made, and for what reasons), the disadvantage is mostly mitigated.

I would, again recommend that you pass on this one. Based on your description, I'd recommend first taking the time to build a medium project in R&R for your own use, or in another situation where you do not mind failing at all (solve one of your own problems with it; standard ideas are to implement a simple blog tool or wiki and then use it for a while, to see how you do at finding bugs and maintenance). Learn how to avoid the trivial failure cases on your own skin, to leave yourself enough margin for error to be able to resolve the more complicated problems you'll encounter during the projects' work.

share|improve this answer
    
Thanks for your insight! I turned the client down. I agree with, "even if you do deliver something useful, it will be poorly built." I wouldn't have even known how poorly it was built, lacking the experience to judge. Also, regarding the money, you're right, but I do wish to clarify. The reason I want to try RoR is indeed because it's intriguing. However, having zero free time after my job, teaching music, etc. I needed some monetary compensation to justify diverting time. So, yes, it's "about" the money, but not "completely about" the money. :) Anyway, I'm glad to have asked here. Thanks! –  Andrew Cheong Apr 3 '12 at 15:50
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.