After C/C++
Since the 1980s, there have been innumerable attempts to supplant or augment C.
The greatest success, of course, has been C++ (originally “C with Classes”).
Did you know that there was a fair bit of research to improve or replace the C preprocessor? Even James Gosling, the designer of Java, wrote one.
Objective-C was less successful than C++, but it nonetheless powered MacOS X and later iOS. Now largely supplanted by Swift, it still enjoyed its fair share of glory days.
As C++ grew, so did the discontent. Alternatives with garbage collection replaced the less low-level uses of C++, but in domains where C once held sway – such as game development — C++ had few rivals.
However, as the need for low-level safety mounted, Rust emerged to answer the call. Yet such safety is often overkill in non-critical areas like gaming, and in 2014 Jonathan Blow made quite the splash with his announcement of an untitled programming language for game development – later known as Jai.
This stirred up renewed interest in low-level languages, which led to the rise of indie languages like Zig and Odin.
So we end up with a timeline so far looking like C -> C++ -> Rust.
But what will happen now? Rust is ascendant, being fairly well known – but what of the later alternatives such as Jai? Do they really offer anything beyond what C/C++/Rust offers?
This is what I want to explore in later blog posts.