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?

BR

comments powered by Disqus