Originally posted on Quora: Jonathan Tsai’s answer to What is the most
valuable programming language to know for the future and
why?
I will have to agree with Michael Hanson’s
answer
as well as some of the other ones that suggest learning multiple
programming languages is more beneficial than picking just one.
I myself am a multi-linguist of both human and programming languages. If
you randomly survey a large body of people living within various
civilizations in the world on what the most valuable human languages
are, the answers you’ll get back are likely to be English, Chinese,
French, Spanish (not necessarily, but roughly, in that order).
When you know multiple languages, learning additional ones become much
easier, because through immersion/osmosis, you are made aware of the
different types of parts of speech, recognize the cognates and
influences of one language to another, etc. That’s why you will
frequently come across Europeans who speak at least 3 languages
(English, French, and the language of their country), and Indians who
speak 3-5 languages or more (English, Hindi, the language of their
state/region, + neighboring state/region).
Programming languages actually have a much simpler syntax than human
languages. The more you know, the easier it is to learn more.
I would rephrase the question as plural instead of asking for a singular
response: What are the most valuable programming languages to know
for the future and why?
If you like lists, this section is for you, but not in any particular
order:
- Python - frequently used by scientific and statistics communities and data
science; it’s a fairly easy language to learn and remember with
libraries for just about everything you would need, and a very
active development community who can whip up a library if one
doesn’t exist already. Personally, Python is really easy to me and
reads and writes just like pseudocode. I’ve written as many as
100-200 lines on a whiteboard or a text editor in one sitting and
was able to execute the code in the interpreter without any syntax
errors.
- Ruby - I
am not a regular practitioner, but Ruby is also very powerful in
that it is an interpreted language like Python, which means that it
doesn’t need to be compiled before it’s run. A lot of famous
websites are built on, and many of my friends who are paid
handsomely, use Ruby, due to the popularity of the Rails framework
(Ruby on Rails)
- Java -
This one is nice because it’s a compiled language and the compiler
can optimize the heck out of the code, and it runs really fast.
There are lots of Java practitioners, and the majority of financial
websites (banks, stock trading platforms, etc), will use Java
because of its outstanding speed and performance characteristics.
Incidentally, Java is also the language used by the Android
operating systems, so if you want to learn to write for something
like 79-80% of the world’s mobile users, this is the way to go.
(Source: 2014: The iPhone 6 Had Better Be Amazing And Cheap,
Because Apple Is Losing The War To
Android;
2015: Apple iOS And Google Android Smartphone Market Share
Flattening:
IDC)
- JavaScript - Rich web applications / the
entire frontend / look-and-feel of all modern websites. Enough said.
JavaScript is a language that is write once, runs everywhere.
Browsers going all the way back to 1998 (?) and even earlier have
been using JavaScript, and the language along with its frameworks
and ecosystem have improved tremendously over time, as well as its
performance characteristics due to progressive developments of
JavaScript runtimes (e.g.
V8).
- Shell Scripting / Bash - Unix utilities are awesome.
They are lightweight, fast, and often times, you can just use an
existing Unix utility for doing common but advanced tasks like
searching and sorting on a single machine, and additional various
things.
- C++ / C - it still powers lots of high performance
systems, but is a bit more cumbersome to write than Java, hence the
reason that Java is the language of choice when building such
systems. However, this is a very low-level language, and the thing
about programming languages is that their interpreters and compilers
are quite meta–if you chase it up/down the stack far enough, you’ll
find that some/most of them are inevitably implemented in C. Not
much daily use, but if you like learning the nitty gritty or really
knowing what’s under the hood (analogous to learning Greek / Latin
to having a better grasp on English), then this is something you
have to learn.
- Swift -
this is a new language that Apple developed over the past few years
and just launched last year (2014). I won’t go digging up the links
because you can easily find them, but the language designers
designed Swift to be a modern language that can be compiled but also
has several characteristics of interpreted languages and IDE tools
(like quick turn-around of write code-and-execute), and admittedly
it borrows a lot of ideas and nice features of other languages like
Ruby, Python, JavaScript, as well as Java and C. And it’s also
inter-operable with Objective C. Look up the WWDC videos of the
Swift language being unveiled
(https://developer.apple.com/vide…),
and you’ll hear loud cheering and clapping and whooping over small
features. I cheered along with the rest when I watched from home.
I would be hard-pressed to give you a ranked list since I don’t know
the statistics off the top of my head, but my impression is that the
above are your programming language lingua francas, and most likely
the highest value in terms of popularity/ubiquity, economic value, and
utility.
View original question on Quora