3 ms·
I think every one should learn at least 3 different types of languages (my recommendation for each below): - Interpreted: Current choice is Python, pretty much
by sytelus 9y ago
I think every one should learn at least 3 different types of languages (my recommendation for each below):
- Interpreted: Current choice is Python, pretty much hands down undisputed. Personally there is a lot to dislike about Python (who doesn't like 24 byte integers?) but that's how things are.
- Compiled (VM based): My choice here is C# instead of Java or Go because (1) C# is now available cross platform and more "free-er" than Java (2) its much more upto date in virtually every respect (3) it has great tooling and rich library to speed up the development (4) its not owned by Oracle and it doesn't ship with spammy browser toolbar to unsuspecting users (5) unlike Go, folks working on C# are not stuck in excessive minimalism. Almost exact opposite, they want C# to have good features from every other language out there with massive new releases each year. That's great - at least for me - because I've access to everything from very powerful lambdas to parallel paradigms to async features, when I need them.
- Compiled (direct to metal): I'd like to chose Rust in future but I'm going to recommend C++ instead for now. If you are working on pretty much anything at the deep end of the computer science including OS kernels, writing your own compilers, building runtimes of variety of tools like TensorFlow, graphics engines, physics engine, embedded libraries etc - then you need to learn C++.
Having said that, if your purpose is to just get job go with Python and Java. These are #1 and #2 languages according to IEEE Spectrum in job postings:
https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2017 https://spectrum.ieee.org/static/interactive-the-top-program...
- _Tev 9y agoI'd say going with more than one language will just confuse beginner. I've seen many students struggle with the language soup schools cook for them.
- tonyedgecombe 9y agoYes, better to do one thing well than two poorly.
- brudgers 9y agoI don't see the three languages as very different because Algol 60 is their prototype. The distinction between interpreted, VM, and compiled is an implementation rather than a language distinction...e.g. Jython runs on the JVM; Excelsior Jet compiles Java to native code; and Rusti is a Rust REPL. https://en.wikipedia.org/wiki/ALGOL_60#Examples_and_portability_issues https://en.wikipedia.org/wiki/ALGOL_60#Examples_and_portabil... https://www.excelsiorjet.com/ https://www.excelsiorjet.com/ https://github.com/murarth/rusti https://github.com/murarth/rusti