Systems programming languages
-
For the past few years, I’ve spent a lot of time working with C/C++ for my coursework (OS, compilers, distributed systems, networking, etc) and over that time, I’ve become more and more disillusioned with it.
I’m not a huge fan, for example, of the difficulty of concurrency, setting up sockets, and memory safety.
So, I did what any disillusioned programmer would do, and I started looking for alternative languages. I found:
D
Go
RustIt seems that Go has the most traction so far, but due it’s limited extensibility (no parametric polymorphism, no generics, no operator overloading) it seems people are somewhat frustrated with it too.
Rust is still pretty new (first public release in 2012 and still not stable) but seems to iron out some of the complaints with go.
D seems pretty invisible. I’ve heard a few anecdotes of people using and liking it, but I don’t seem to find much of it in the wild.So my question is this: Do any of you have thoughts on any of these languages (better yet, some experience)?
I will likely learn a bit of Go either way since it’s already been tossed around as a potential language for projects I’m working on, but I would like to know about the other languages. Maybe I’ll do a little investigation and write up a quick summary for people here.
-
I’ve never used any of the languages mentioned, but my opinion of them is pretty much that of which you stated.
D - Solid, reliable but doesn’t have the community or industry backing; not on a large scale anyway. Don’t really see it going anywhere.
Go, Rust - Both hot topics right now, can’t go wrong either way; I’d probably choose Go - seems like it’s… going places. kekeke -
For anyone who’s interested, here’s a talk from Mozilla on rust:
https://air.mozilla.org/guaranteeing-memory-safety-in-rust/
It’s a good introduction to the ideas behind what rust does and why it does them.