The Meat and Potatoes

Choosing a Programming Language to Learn

Over the past few weeks I’ve been doing a lot of research on what programming language to learn. Being that my programming knowledge is limited, many of the arguments for or against a language were in terms that were beyond my experience level. You end up with a Catch-22 situation. You need experience to chose the language, but you need to learn a language to garner that experience. What’s a lowly designer to do?

I narrowed my selection down to two options: PHP (a la Cake) and Ruby on Rails. Below are the arguments I used to make my final selection: Ruby on Rails. If you’re in the same boat, this might shed a little light on which direction to go.

Ruby on Rails was made by people who’s opinions and methodology I closely identify with. I’ve always been a huge fan of 37signals. Tick was built using the Getting Real methodology. They value simplicity, elegance, and less. Assuming Ruby on Rails was built with similar values, I’d feel confident in the development of the language going forward.

Ruby on Rails seems to be the Apple of languages, while PHP seems to be the PC. I don’t mean which operating system they run on, but rather what they stand for. PHP is powerful and pervasive. Ruby is elegant and streamlined but is not nearly as widely used. Which is better? That depends on what gels with you. I’m an Apple guy so the latter is more attractive. Neither one is better than the other. It all depends on what you are looking for and how you work.

I have access to great peer resources for Ruby on Rails. If you’re learning a language from scratch, you’re going to need all the help you can get. If all your friends know PHP, I thats a HUGE reason for going that direction. I’m lucky to be friends with a few really good Ruby on Rails programmers that are willing to help me on even the most elementary stuff.

Ruby on Rails just feels more comfortable to me. This is another big factor. If Ruby feels awkward and you like PHP syntax more, go for it! You’re going to be the one grinding out the code, so make sure you’re having fun in the process. I think this becomes more of a factor if you are coming from another language. It can be hard for me to appreciate some of the elegance that makes Ruby great since I never have to deal with the not-so-elegant ways other languages might have approached a situation.

PHP seems loose and dirty. This one is hard for me to explain, its just a gut feeling. As I stated before, I tend to like very structured languages. I know AS3 at an intermediate level, and what I love about it is how strict it is. I believe Java is similar. It gave me the feeling that I was connecting things correctly. In a discipline where there are 1000 ways to do one thing, these little wins made me feel like I was fitting some imaginary puzzle together. This is similar to the feeling you get with Firefox and XHTML/CSS. Internet Explorer let you get away with anything, while Firefox made you work for it to be “right”. Knowing that fact made it more rewarding when things worked.

Ruby on Rails is said to not scale well. While this was a concern for me, it was one of those things that I didn’t have enough experience to really formulate my own opinion. I’ve also heard that once your application gets big enough (and more customized) you end up tossing out all of what makes the conventional aspect of Ruby on Rails shine. As of right now I have 0 people using my application, so I think its safe to push this one to the back burner for now.

PHP is tried and true. It’s everywhere! There are no questions of whether or not it can scale. Its been around a long time and it gets the job done. Ruby on Rails is new and only time will tell if it can keep up. Its hard to compare the two on the basis of pervasiveness. Ruby on Rails hasn’t been around long enough for that kind of adoption. Will it get there? That’s the big question.

PHP is more widely used by places I could see myself working at. Eventually my time at Scrapblog will end (not anytime soon I hope). When that time comes its possible that I will be in a much better position knowing PHP than I will Ruby on Rails. However, as with scaling, that is not a problem I have right now.

So as you can see there are strong arguments for both languages. It really comes down to your gut feeling. You won’t have much to go on in terms of pros and cons before you gather more experience, so use what you got! No reason is silly.

  1. Nick Dominguez
    April 28th, 2008

    No mention of Python/Django, did you look into this language/framework? It seems to have some to have some of what you are looking for, but I would imagine you would have less resources in terms of peers helping you out with this language.

  2. Mike Gowen
    April 29th, 2008

    I did, but it wasn’t able to compete on any of the above point (especially peer resources) so I dropped it. There would have had to be a very compelling reason for me to have considered it. Wow, that was a mouthful.

  3. John
    May 21st, 2008

    Hmm, I wrote something else, but the preview erased it.

    Anyway, if you like Rails, but want to learn PHP, I highly recommend CodeIgniter. It is similar to the Rails framework, but extracted from ExpressionEngine.

    As a Java, and C# programmer, I like PHP’s syntax, very similar to AS too. There are some great books on using the two (AS and PHP) together. I like PHP for the fact that if I want a email contact form on my site, I can do it in a single page instead of a framework.

    Have you looked into ColdFusion, or ASP.NET? or JSP even? I know those three pay way more than Rails or PHP. My experience is that PHP developers make the least, while a JSP programmer can make uprwards of $100k a year starting.

    I have read several article online about people switching from Rails back to other languages like PHP after a couple of years. Not sure how much merrit there is there.

  4. Mike Gowen
    May 22nd, 2008

    Haven’t really considered those. For various reasons they didn’t make the cut. I don’t think I’ll ever be a full-time programmer, its more of a hobby so salary is not really a big factor. I view it mostly as a complement to my design.

Post a Comment

This address is not shared or displayed
Your name will be linked to your website
or Preview