Comment by pjmlp
1 day ago
Go, Java (GraalVM/OpenJ9), .NET (Native AOT, .NET Native, IL2CPP, Mono AOT), Swift, Objective-C, D, Nim, Ada.
Many people that use C and C++, do it out of habit, any compiled language, even with AOT is capable to deliver for most scenarios in userspace code.
99% of user software written in compiled languages isn't systems programming juggling pointers and type casts.
Even when that is the case, all above languages have FFI features, no need to rewrite the whole thing.
You might have noticed that C and C++ are minority languages in the mobile OS duopoly, for starters, being used only for low level OS services, and game engines.
I think it is fine for C and C++ to be relegated for use caches where they make the most sense. I don't see the point of comparing them to niches, markets or cases where for instance garbage collection is fine.
And, I already mentioned Go, Swift and Ada.
Objective-C is not really on my radar, it's specific to Apple, and it doesn't seem like Apple is betting on it for the future.
D and Nim are languages with low momentum relative to others.
I am not sure the AOT approach will work. Maybe, maybe not. There are direct and indirect obstacles, I believe. D is probably interesting here; as I understand it, it supported both GC and no-GC. But, that meant that a lot of libraries used GC, and thus were not necessarily good options for applications that required no-GC. In some ways, a programming language can also be what people build with it and what its ecosystems are like.