What programming language do I learn?

If you search the web there are a million posts on a million forums about what is the best language.  These are all OPINIONS and that is that.  So time for my opinion…

I think that the biggest thing in determining what programming language you should learn is deciding what it is that you intend to use it for.  I would never spend the time and effort to learn Chinese if I never have any intention of going to China.  Just remember that programming languages are just that..languages.  So before you decide what language you want to learn, you need to ask yourself what you want to use it for.

I learned Python as I work in GIS and as I have said before, ESRi’s ArcView comes with Python.  If you are in GIS and do geoprocessing, then there is not really and questions as to which language to learn.

For general (non web application) use, I think that there are a lot of things that are better with Python than Ruby but I also feel that there are parts of Ruby formatting that I like better than Python.  Ruby has its gems and Python has its eggs or modules. Truthfully for non web development it is really a matter of personal preference between Ruby and Python.

Now, for web development, I am really torn between the two.  I have tried both Django and Rails.  I have tried many of the other smaller web frameworks as well. There are parts of each that I think are better than the other.  Rails generates more upfront files and html but Django creates a pretty awesome administrative interface.  I still have not decided which one I prefer.  I will mess around with Django for a few days and then jump to Rails for a few days.  I will say that there is a lot more documentation on Rails than there is for Django.  That brings me to my last opinion on the difference.

Remember that this is my blog and these are my opinions.  I also know that the name of my blog is “Python and then some..”  That being said, there is a major difference between Python/Django and Ruby/Rails in the users and the communities.  There is also a different mindset and (in my opinion) personality between the two types.

I feel that in general, Python users are more independent than Ruby users.  Every major (and a lot of minor) cities in America have Ruby or Rails user groups and they are very popular.  There are not as many Python user groups.  I started a Python user group in Phoenix AZ and I am struggling to get people show up.  Comparatively, the Ruby and Rails user groups have excellent turn outs.  You can say what you want but the Ruby/Rails community is a lot closer and tighter than any Python groups.

Again, this is just my opinion but I have noticed a major difference between the two.  For example, Rails is big on TDD (Test Driven Development) where you create a test that you know will fail before you create the process to make it pass. That is what I call proactive troubleshooting, whereas you test for failure prior to creating the process.  In Python/Django I see more of a reactive troubleshooting, whereas you create the process and if it doesn’t work you test to see why not.

Now this does NOT mean that this is always the case.  There are extremes in either group.  I just feel that the Ruby/Rails community is more close knit than the Python/Django community.

So, what language should you learn?  Decide what it is that you want to use if for in the first place and go with that.

And to the Python world, this is not intended to be insulting but rather a call out for more unity.  The Rails community can do it than why the hell can’t the Python community be more connected?


6 comments on “What programming language do I learn?

  1. I have had similar experiences. I look at what the language can do, and what people do with the language, but it is also important for me to look at the jobs, and the community for help, and the community to help find jobs, and the long term potential.

    And for what it’s worth, in Phoenix at least, that strongly favors Ruby.

    Over the last month I’ve seen lots of Ruby developers and Ruby jobs (though I am not aware of the salaries.) And over the past six months, I’ve never even found a single Python user group.

    So for community for momentum, it seems that Ruby is a better choice Python.

  2. Indeed.com claims more jobs in python. Usually when job listings are made, they contain both language requirements, as in “…RoR, Django, Pylons, Ruby, Python…expert…” in one job post.

    Overall trends from indeed.com:

    When searching for ruby jobs on indeed.com:
    ruby -django -python
    When searching for python jobs on indeed.com:
    python -rails -ruby


    Does anyone have a different experience?

  3. Engineers and scientists should normally prefer to optimize the time they need to develop a tool. Readability is important too.

    The point of view and the ideas expressed in the Software Carpentry website are quite useful for these users (engineers and scientists). They provide many examples with Python but the ideas can be applied to other languages. Still, they recommend Python if the user is free to choose.


  4. And of course if you work with ArcGis you have to deal with Python, as you said.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: