4 ms·
I predict that C++ will lose more ground to Rust and Go than C. It's hard to find programming language that will cover as much low level programming needs as
by Nokinside 9y ago
I predict that C++ will lose more ground to Rust and Go than C.
It's hard to find programming language that will cover as much low level programming needs as C. If some aspiring hacker turns 14 today and wants to get into the low level systems programming/embedded programmer career learning C well is a must. They may use some other language more, but they need to know C unless they want to limit themselves.
Some processors have stack size just 2-8 and memory available can be something like 128B - 8KB. Any replacement must have programing model that is very low level. Any replacement for C must have very low level and simple programming model.
- digitalzombie 9y agoGo... isn't really a system programming language. I don't get why people group Rust and Go together. C++ may lose some ground to Rust but it may just end up saturated like Ruby, PHP did. Ruby is basically in steady state now. NodeJS jump in on a crowded market and got no where let alone it's crazy threadless model. C++ btw have been pumping out new versions, C++17 was just completed by GCC and Clang is almost done. C++ is really trying to modernize. Google whole backend is most likely C++... it ain't going no where. Rust is a beautiful language but it still have a long way to go. And also resources such as books to help people jump on board not just general books either but books in different domain (scientific computing, data structure, web dev, etc.. whatever).
- emodendroket 9y agoPlenty of people are working in node, for whatever reason. Just yesterday I was reading someone on HN saying backend JavaScript is the only way to make any money. Not that I think he's right, but if there are people out there thinking that I figure it has to have healthy enough marketshare.
- vram22 9y agoHow about FreePascal? I haven't used it for very low level work, more for things like command line utilities (and with Lazarus for some light GUI app work). But the EXE/binary sizes are fairly small (without any optimization or stripping or compression). Also had used Turbo Pascal heavily much earlier. And I've read that Pascal at one time was used for systems programming; Apple may have been one company that used it (much earlier), and that their OS APIs were in Pascal. Windows API's (in Win32 at least) also may have had (not sure) some support for Pascal, viz. keywords like "long far pascal" in Win32 API code. Side note: I wonder how many people use those abbreviations like viz. these days. https://en.wikipedia.org/wiki/Viz https://en.wikipedia.org/wiki/Viz.
- pjmlp 9y agoApple was not the only one, there were a few companies using Pascal dialects as their primary OS systems language. And there are still some companies selling Pascal compilers for the embedded space, like this one https://www.mikroe.com/ https://www.mikroe.com/ They also sell Basic compilers.
- vram22 9y agoSeems like an interesting and successful company.
- Rusky 9y agoIn some ways, Rust fits that sort of ultra-tiny niche even better than C++. It doesn't have the POD/non-POD split that C++ has, it has a lot of built-in data layout optimizations, idiomatic code does far less copying, you can package up platform hardware definitions in crates, etc. Of course C++ can just revert to being mostly C in these cases, and C is lightyears ahead in tooling and documentation here, but as a language I think Rust has a decent shot at that space.
- AstralStorm 9y agoI don't think so, just because modern C++ can coopt almost all Rust features with trivial style and tooling changes. One of the benefits of being a truly actively developed language, as opposed to fossilized Java.
- pjmlp 9y agoJava is only fossilized on Google's Android fork. Who knows, maybe it even gets value types before the C++ community can agree what modules are supposed to be.
- steveklabnik 9y agoC++'s Core Guidelines have been worked on for the last two years, and weren't even trying to get full compatibility with Rust's guarantees, and still aren't really done yet. It's great work, but it's far from "trivial". If it were trivial to turn C++ into Rust, we wouldn't have bothered making Rust.
- Rusky 9y agoThat's... not true at all. Even aside from the memory safety stuff steveklabnik mentioned in a sibling comment, C++ is struggling to get things like concepts, pattern matching, or modules, and had to do a lot of non-trivial work in the past to get things like move semantics. And even then none of that solves the problems I mentioned in the comment you replied to.