Trying to find the perfect language? Looks like you came to the right place! Through calculated questions and experience telling, I'm going to try to help you understand more of the use cases of different languages, hopefully helping you find your perfect language. Let's get started.

How many languages are there?

There is an overabundance of languages to choose from: Python, C++, C, C#, SQL, PHP, R, MatLab, Assembly, Go, Lisp... too overwhelming... and that's not the end. There are too many languages to take account for (at least from what I could Google search).

Would it be better to develop in a specific language, or branch out into multiple languages?

You'd think that once you graduate, you'd be working with only one language for the rest of your life. Or maybe everytime you get a new job, you'd have to switch to a new language, meaning you should be prepared to know multiple languages.

If we look at each CS class I've taken in school this semester as a separate job, you will find that each class teaches a different language, each with a reason for doing it.

For Object Oriented Programming, we worked in C++ in order to learn Object Oriented and API design. Though this was a completely different language, much of the format was similar to Java. So if you like managing code and you enjoy Java, C++ must be your thing... right?

But what if you don't like Java. What about the other languages?

Well, in Operating Systems, we programmed in C in order to interact with low-level architecture and have a deeper impact on how a system works... Basically, we worked with a language that had the power to affect the interaction between hardware and software, which is how your computer and mobile devices work.

Ok, sure... but back to the question. When do you ever work with multiple languages?

Fine, in Programming for Performance/Correctness, we worked with MatLab in order to prove Linear Algebra-based techniques and Assembly to improve a program's performance using those techniques. Languages pipelined towards one another, where solving one problem could lead to improving a solution to another one.

You've gone over classes. How about outside of school?

For hackathons, you may find yourself programming in many different languages. Python to create scripts for string processing and http requests, Javascript to work with database and web server interaction, and Java to work on mobile back-end. During these times, you may need to learn languages on the fly, or find really hacky ways to finish your project.

So should you stay with one language, or go with multiple?

It depends... From my experience, learning and working with of a lot of languages is good, because you can find out what you want to work on. When you graduate, this may help you choose what job you want.

As a Software developer, you may need to devote your time towards one language, but as an IT consultant, you may have to dabble with many different languages in order to tackle a wide variety of problems. You could know what you want beforehand, or try out either job to see which fits for you.

Then is there a perfect language?!?

There is none!

Rather, you should focus on other questions now that this question has been answered. What is it you want to solve? What is your passion? It could be creating an algorithm to find the cure to cancer, working with robots to get to Mars, or even just finding an open time in your schedule for free time. (which I never will have...)

So go out and learn! Find out your passion and what problems you love to solve the most. And in doing so, you will find the language(s) that are perfect for you!

The views, opinions and positions expressed by the authors and those providing comments on these blogs are theirs alone, and do not necessarily reflect the views, opinions or positions of UT Computer Science, The University of Texas or any employee thereof.