New Programming Language – Recommendations and Why?

Hey Everyone,
I am considering learning a new programming language. However I am not sure if this is what I want to do right now. Is it smarter to learn a new one? Or strengthen and focus on PHP even more?

I welcome all thoughts and comments.

Here are my considerations:

  • Strengthen my PHP Skills, and OOP Skills
  • Perl
  • Python
  • Ruby
  • Grails (Groovy on Grails?)
  • Charlie M

    Learn Ruby or Python. Personally, I believe Ruby has a better community behind it which is why I prefer Ruby, but both languages are great to know because they’re universally accepted for web development these days. Some components of Ruby’s ecosystem include http://rubygems.org/ (which is an open source repository of Ruby libraries), http://github.com/ (originally got off of the ground as *the* place to host Ruby code), and a lot of resources like http://railscasts.com/ and http://peepcode.com/. There’s also a lot of cool stuff going on with Ruby on Rails 3 right now. Rails is in the process of being simplified and modularized which will make code easier to maintain and understand. It’s also being updated to detach Prototype and ActiveRecord (which have traditionally been required for Rails apps), so it will allow you to use different Javascript libraries like jQuery, Mootools, etc, as well as different Object Relational Mappers such as DataMapper and Sequel. I wouldn’t recommend Perl because it seems as if it’s on its way out, and Grails is based on Java/JVM which is a nightmare in my opinion.

  • Thanks Charles, all very valid points, it seems everyone is definitely pushing for Ruby these days! They also claim it’s simplicity, and easiness to learn.

  • Jim Jim

    Hey Gato,
    If you want to focus and become a fulltime dev I would learn Ruby or maybe Python. Get good at a web framework for whatever you choose and get to cranking out some apps. Find a small trendy web shop that does webapps and show them your widgets, get hired, profit. You can use your systems skills as icing on the cake as a lot of dev’s have little to no systems experience.

    PHP has it’s places, but you will never make as much money with it as you can with C#, Java, Ruby, Python, though you should use your PHP skills to make money until you get into a better company doing whatever you learn. Ruby might be considered easy to learn but I call BS. It will take a lot of studying to understand everything about Ruby. And a lot more before you are writing good code. I routinely interview “Ruby” devs that have been doing it for 3+ years and are clueless. Mostly unconscious incompetence. Once I’m done they are consciously incompetent =>.

    I consider Ruby mainstream now and there are plenty of large companies using it, but Java and C# jobs are easier to come by depending on where you live. Ruby dev’s are a super hot commodity right now and I bet will be for the next 5+ years.

    Did you finish college? If not you should. A computer science degree can not hurt and is required for some larger companies (Google, MS).
    Keep in mind a true computer science degree will not be about programming. You will NOT come out a marketable developer, just someone with a solid base and some mediocre programming skills. (Unless you are also reading other books and programming in your spare time)

    Your pretty smart for your age, I’m sure you’ll do fine with whatever career path you choose.

  • Vincent

    Mr Gato,

    I would highly suggest Python at this stage, unless you’re looking for a web development career with a larger corporation, in which case Java or C# would be your best choices.

    My reasoning for suggesting python, specifically over Ruby is that Py has a lengthening heritage as the sysadmin’s right hand, surpassing perl in many situations. Perl one liners are indeed legendary, but many shops are gravitating towards py for it’s legibility and reuse potential. Maybe when we’re grumpy aging men we’ll enjoy the wonders of Perl 6, but for now, I think it’s py’s time to shine on the server.

    Sure, it’s said that Ruby’s end-user community is such a great resource, but the reality of the whole “community” argument for any platform is moot in my opinion; it’s the intrinsic qualities of the language that drive use-ability. Ruby is in my view still in its infancy. It’s very poorly documented and the code is not always readily self documenting, i.e. messy. I believe the entire community argument that Ruby fans love to espouse is because they don’t really have a leg to stand on as far as solid documentation and clear standards. Ruby’s big claim to fame was Rails, but honestly Django and Pylons both kick Rails ass. I don’t really hold a personal bias against the Ruby language or its potential, but in my limited view, the whole “Ruby way” is just fine polish on a steaming pile.

    Again, if you’re looking to focus on serious web dev work in a corporate setting, just bite the bullet and go C#. If you don’t have a soul to spare than certainly Java is a great language to grow into instead (depending on how deeply Oracle wants to dig in it’s newly minted clutches). J2EE is a wonderful platform and there are some amazing FOSS IDE implementations out there which can make your work amazingly efficient and a joy to code in. Of course, VS2010 is a sweet beast too, but again there’s that pesky soul sucking that happens when you gravitate that direction.

    Drop me a line sometime.