Do not attempt to adjust your set. We are controlling transmission.
If you’re just sitting at home most nights, wondering what the hell you should be doing, rejoice! I’ve got a list of 10 of the hottest, coolest programming languages you can stuff in a single sack (or…blog post).
This one’s a no-brainer. Python’s becoming ever more popular with the machine learning crowd, it’s ubiquitous in data science, and people are even using it to write web-based microservices again with libraries like Flask. It’s the winner of the past couple years of Stack Overflow surveys for most popular langauge, it’s in pretty much every job listing out there…you really cannot go wrong learning this interesting little language (and it comes with “batteries included” to boot!).
The language that isn’t a language is probably the hottest option on this list, mainly because you can write code that simply was not possible before WebAssembly. Not to mention, you can write code in a langauge like C/C++ or Java or something, compile to WebAssembly, and it should just do what it says on the tin. Unity has had great success using this to “port” games to a web environment without a plugin.
It was a toss-up between this and Go, but let’s be honest — no it wasn’t. Go didn’t even crack the top ten, because Rust is the superior language. Not trying to get into a flame war, but this is the systems language of the future. Its approach to memory management is novel yet approachable, its “trait” system is a breath of fresh air compared to trying to implement shared behaviors…overall, coming from a web environment, Rust is a type-safe, mostly-memory-safe jolt of new life. I’d highly recommend it — it’s easily my favorite on this list.
I just started learning Swift, as part of my weekend iOS explorations, and it’s well worth a look. It borrows some concepts from Rust, as far as deterministic non-manual memory management goes. However, it seems much more approachable in terms of its difficulty curve. But this is beside the point — if you ever want to expand into mobile development, this is the way.
Enough of these mainstream languages! Let’s dive into the esoteric…
#7 Assembly Language (Z80, 6502, etc.)
Assembly language? What is it, 1984? No, but you can code like it is! Using emulators, modern tools, you can program old machines from the comfort of your Macbook. Personally, I’m learning Z80 assembly so I can make a Game Boy Color game.
Even if you don’t plan on actually using assembly, it’s worthwhile in the same way that Lisp-like langauges are worthwhile — they change the way you think about data and programming. And in the case of assembly language, it teaches you how a computer really operates, on the bare metal.
I haven’t used Elm yet, but I want to, which is why it’s on this list. In particular, there are a lot of libraries that are modeling their data flow after Elm’s architecture, and even if I don’t end up using it in production, it might be able to teach me something about data flows and state management.
A Lisp? In this day in age? Surely, you’re joking, Mr. Pocus!
I joke not! The difference between this Lisp and most Lisps is that this one comes with batteries included, with an absolute ton of tools to actually accomplish cool stuff. Plus, it’s tailor-made for making…
#10 Your own language!
Seriously! You can use Racket, you can use JS, you can use whatever the hell language you want (even assembly), but the point is, you can create your own language. Lisp-like languages are the easiest to implement, but you can also implement your own drawing language, a scripting language, it can be interpreted or compiled, it can be dynamically or statically typed, but the point is, you can make it yours.
Which programming language are you learning during the pandemic? Are you learning another skill altogether?