Published September 20, 2010
Michael Martinez
Title: Part I: Choosing a programming language… Date: 2010-09-20 15:09 Author: Michael Category: Dev-Notes Tags: Economics, Language, Programming Slug: part-i-choosing-a-programming-language Status: published

…is a hard thing to do.

The choices when it comes to really learning a programming language are immense. Before I get to far ahead of myself, I’d like to make sure you know that I’m talking computer programming languages. Spoken languages are beautiful, inspiring and I’d like to learn Chinese. However, my neural connections are maxed out with the two programming languages I’m learning now, coupled to learning Spanish with 1.0 from our beautiful teacher.
To solve this problem, if you like learning its not really a “problem” per se, you need to break it down. There are several factors that make this decision somewhat difficult to quantify, we’ll list them here and explore them subsequently. The opportunity cost of learning each language of interest is probably the single biggest factor when analyzing this problem. Another major factor is technology decay, while a certain language may be “hot” right now, five years from now the language may be dead, non-supported or found to have major weaknesses as technology progresses. The last factor that makes choosing difficult is the experience level of the person making the decision.
Opportunity cost is very complex in this problem as the variables that make up the  equation tend to be diverse and seemingly never-ending. Time is a huge factor for just about everything and it certainly plays a role in my decision to learn programming. One, I’m not getting any younger and my perception is that technology is moving faster and faster. If I want to become proficient to the point where I can program anything with the programming language, I need approximately 5000 to10000 hours of learning and working with the language (sprinkle a dash of luck for good measure).
The ever present “verses” argument goes something like this; Which is better… C++ vs. Java, Java vs. C#, VB.NET vs. Python, PERL vs. LUA and so on. I don’t know if there is an empirical winner in these battles as my perception puts these battles squarely in the opinion realm. One theme I’ve heard mentioned time and again is; Choose the right tool for the job! which is excellent advice for the seasoned developer to be sure. The not-so-salty beginner still needs to decide which language they will really concentrate on despite the excellent advice above because we don’t know which tool is right for the job. We can study other solutions and glean information as to why they did this or that, but that will only get you so far.
Technology decay is probably something most people don’t see coming until its too late. When I tell people of the baby boomer age that I’m studying programming, I generally get this answer; “I remember punch cards with Fortran back in College.” I often wonder what happened to the person that really knew Fortran when C and C++ came on the scene. Did they scoff? Did they embrace the new paradigms? Did they need to do anything?  Fortran is still in use, albeit relegated to somewhat of a niche language.  As long as the language has users, the language will never die… it will just die. We can find many people that still play with the Atari 2600, does that mean the Atari game developers are earning a livable wage? I don’t know for sure, but I would hazard a guess at NO.
At the end of the day, my choice boils down to economics and priorities. I have a family with small children (1.0 and 2.0) who deserve the ABSOLUTE best I can provide them. In the event that I lose my current job, I would want to choose and really learn a language that could immediately provide a livable wage for my family.
Let’s talk languages… Continued in Part II