I've been reading up on C lately and noticed a lot of languages that position themselves as "C replacements".<p>Off the top of my head, those would be C++, D, Rust and Go.<p>Any others I've missed? Which do you use? Why?
Python. A lot of the things that need to be done in a systems programming language, outside of kernel modules and device drivers, can be done easier in Python. And the part that needs a raw barebones language can be done in C and integrated using Python's ctypes library. As for distributed software, the UNIX process model still works and multiple Python processes can thumb their noses at the GIL and get real work done just by leveraging signals, pipes, fork, etc. And perhaps some ZeroMQ as well because some new things are really good. GOroutines are just yet another implementation of the actor model that Erlang popularized, and Erlang used the UNIX process model as its core, although they did extend it and switch to using green threads which are more lightweight than even Linux native threads.
Well it depends the various OS' tend to different languages for systems programming. PR1MOS used FORTRAN and PL1/G as a system programming language PICs will use PIC machine code?<p>Which systems are you interested in? You do understand what is meant by "systems" programming as opposed to general programming using a particular system?<p>And all systems programing will usually have some Assembler usage.<p>Ps for the younger readers PR1MOS is descended from the ur hackers OS ITS
We use both C and C++. C for our kernel module, and 8051 code. C++ is preferred for network messages (zeromq + protobuf), configuration (from ui or file), and mostly for the heavy math that produces our output. We use value semantics almost exclusively, and heavy on the generic implementations of our math because we support 1-bit, u8, u16, float and double precision outputs. Yet we still can provide template specializations to utilize low level processor intrinsics for SIMD optimization.
I like ATS a lot (<a href="http://www.ats-lang.org/" rel="nofollow">http://www.ats-lang.org/</a>). It's unfortunate it doesn't have much of a community.
Depends what you are doing but Python or Perl can make great systems programming languages.<p>Of course if you are doing Linux kernel hacking, you'll need C. Go and D are probably also modern examples of what could be used for systems programming as well.
I use C++. For user applications, not "systems".<p>-Momentum. I am already familiar with it.<p>-RAII and smart pointers<p>-Generics<p>-Best supported for cross-platform mobile phone use.