If you want to find out what still sets Ocaml and SML apart in the world of typed functional programming, look into its module system, which, out of every approach to modular programming I have used, is hands down the best (assuming you care about static type-safety).
Oh totally. Their module/type systems are top notch. Shit like functors.
Ocaml also has first class modules which are kind of hinky in theory, but once in awhile I find them essential. Usually when implementing something that needs like plugin support. ie you can pick which implementation you want to use.
OK then. Good luck with rewriting all operating systems and drivers! Also don't forget to rewrite Apache HTTP server and Nginx!
You said that knowing C is important because everything is written in it. But that's untrue. You can use apache and nginx and the linux kernel without knowing C. Not knowing C doesn't affect your ability to use them securely.
Furthermore, my second point was that when you're writing new software, you can always make better software by writing it in memory safe languages.
Heh, and actually, while most of my mundane stuff runs behind nginx, I'm looking at
unikernels for my more experimental stuff. Like, virtually all common web facing languages implement their own http server. And with unikernels, they aim to do what you're saying: reimplement the whole kernel and drivers and low level code as well, specifically in a memory safe language.
The reason this is feasible is because for the past 10 years (at least), we've been running all our servers as virtualized servers. One computer with like 16 cores that presents virtualized hardware to 16 OS instances. They don't have to deal with 500 different network cards (and thus 500 different drivers). They just deal with the same generic virtualized version.
And this is a much more reasonable environment to program against.
I mean, sure, you might need to deal with C sometimes and it might be useful to know. idk
You know the saying "if you make something idiot proof, someone will make a better idiot"?
Go feels as idiot proof as a padded room. It's mind numbing to write in. It was written by very intelligent people who think (and are probably right) that others aren't as smart as they are and shouldn't be given shotguns to blow their own faces off with.
Or maybe I'm just a Smug Lisp Weenie
I really like how it approaches error handling. Javascript's use of exceptions makes me want to tear my hair out.
Otherwise it's generally fine for things I'd want type safety for. (I'd prefer other languages, but if my boss requests Go over Javascript, I'm happy.)