Projects: Back to C
I really enjoy coding in C (it&#x27;s probably the language I know the best) and I think C++ is an over-engineered and bloated language, however I&#x27;d still pick the latter for something like that. Or rather, like most devs, I&#x27;d pick a decently small subset of C++. The main reason for that is that in C if you need a data structure that&#x27;s more involved that a simple contiguous array then you&#x27;re on your own. A linked list is sort of not too bad to implement (the kernel&#x27;s list.h is easy to use and reuse for instance) however as soon as you want things like hash tables, trees or anything that benefits from RAII  IMO it becomes a pain to manage everything. It&#x27;s perfectly possible to do all of that in C (or hell, in assembly if you want to) but in my experience it will take a lot of time to implement correctly (and since you don&#x27;t have generics it&#x27;s harder to have general purpose structures that you can reuse easily) and it&#x27;ll have worse ergonomics because of a lack of destructors and other RAII patterns.<p>In my experience C is great for low level things (dealing with hardware, writing small low level services etc...).  You don&#x27;t have to deal with too many abstraction layers, memory management is generally straight forward (your average driver won&#x27;t usually deal with anything more complex than a buffer queue or ring). For the type of application the author is talking about he&#x27;ll probably have to deal with rather abstract data structure holding the state of the game, &quot;a fluid flow of information coming into the app and going out of the app&quot;, concurrency issues etc...<p>Is it possible to do all that in C? Undoubtedly. If I was tasked to implement something like that would I choose C ? Hell now. I&#x27;d probably go with a subset of C++ like I mentioned before, Rust if the dependencies I needed were available (or I didn&#x27;t mind coding them myself) or maybe even Python if I wanted to reduce development time as much as possible to get a PoC implementation live as fast as possible.