Your Language is a Tool

One of the most quintessential questions asked by new (and experienced) developers is “What language is the best?” or “What is the best language to learn?” To that, I give the quintessential cop-out, “It depends.” It is best to view choosing a language the same way a car mechanic would choose a tool to work on a car. A mechanic would not use a sledgehammer to change a car’s oil (you may want to consider another mechanic if he or she does). Instead, the mechanic would use a wrench and a filter wrench.

If a developer must process several text files using regular expressions, C would be a poor choice. Instead, Perl would be a better choice because it has language constructs that make it superior to that application. Unfortunately, there are times when there is no choice. For example, when maintaining legacy software, the developer must use the language in which the original developers wrote.

To truly answer the question, programmers need to understand the problem that they want to solve. In many cases, the problem domain will lend itself to needing a specific. If the developer wants to write applications that run on Windows platforms, the choice is C#. If writing for iOS, the developer might consider Objective-C. For data science, it might be Python or R. For analytical programming, F# could be the answer.

For someone who is beginning, a general-purpose language such as Java, C#, and even C++ are good starting points. In recent years, Python is now a good option especially in areas such as data science. These languages have lots of support and finding help is just a Google search away. The important thing is learning the basics of writing code and understanding object-oriented programming. Experience with these languages can transfer to others as many languages use similar syntax. The real learning curve is with the frameworks and libraries.

In short, developers need to know what languages are best for their problem domain. Being fluent in multiple languages will always be necessary. Of course, there will always be exceptions to the rules. With the way technology evolves, new languages will replace today’s languages and the cycle will start over again.

2 Comments

  1. I’ve heard from many people that once you know one language, others are easier to pick up. I’m still in the learning process with C++, but definitely want to expand to several others in the future. Is there a order you’d recommend?

    I’m thinking Python or Java next. Python because I hear it mentioned often and Java because several universities focus on it so I might not have a choice.

    Liked by 1 person

    1. I think it is easier in the same way they say it is easier to learn new natural languages if you are bilingual. Java evolved from C++ (C# evolved from Java) and many parts of the syntax are the same. From the language perspective, it is figuring out the differences.

      The libraries and frameworks are where the real learning curve lies. The C++ libraries, the Java API, and .NET are completely different beasts.

      I think either of those would be a good choice. I would not worry too much about what the use at Universities unless you know for certain where you’re going and if they would let you test out of it. Each program is different and you will not use just one (assuming you heading into CS). Python would be more future proof because it appears it is becoming a language of choice in data science and machine learning. Of course, those are just my opinions and your mileage may vary.

      Like

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