But since the alternatives to C and C++ kind of faded away from mainstream and they are anyway the UNIX system languages, most developers seldom look for alternatives.
With Rust, Go, D, Haskell, OCaml, .NET Native/Mono AOT, Java AOT compilers, hopefully developers will eventually realize that not everything needs to be coded in C or C++.
Modula-2, Ada, Object Pascal were some of the alternatives without GC.
These are the ones I meant by "faded away".
Though if you're talking about applications in general, and not just WMs; yes, sure.
I've played with the Xlib libraries in Haskell and it wasn't the prettiest code I've ever written ;)
Of course, it's not all moonpies and pennywhistles. XGB only supports basic extensions like RandR, Xinerama, Render and Composite. But it's missing Xinput and XKB (which are monstrous).
Good work!
I started to get fed up with writing bindings to libraries not directly supported by Turbo Pascal and pure C was a no go for me.
Java AOT compilers? What Java AOT compilers?
I know about Excelsior JET ($$$$) and gcj (abandoned). Do you know of any free and good Java AOT compilers?
Most commercial JVMs like IBM Websphere for Real Time, Aonix and JamaicaVM, just to cite three examples, do offer AOT compilation.
Java on IBM i mainframes is translated to the same bytecode used by C and C++ (yes I really mean bytecode not Assembly, IBM i has a kernel JIT).
Then you have RoboVM, CodenameOne, JikesRVM, SubstrateVM.
SubstrateVM is done by the same Oracle Labs working on Graal.
RoboVM is how LibGDX guys are targeting iOS.
And Oracle is changing the OpenJDK to eventually support AOT compilation.
http://openjdk.java.net/jeps/197
Currently the only free on that might suit you, in case you only care about UNIX environments is RoboVM.
I'd love a Java AOT compiler that produces native binaries with no additional dependencies. (I'd even be okay if, as a side effect, some Java features were not supported, making it technically not-Java.)
For small tools and utilities, the JVM requirement is quite onerous, especially when one does not know if the end user has Java installed, or if they do, what version.
Alas, the company I work for will not budget for a Java AOT compiler, and for my hobby programming, the commercial Java AOT compilers are far too expensive to justify.
I'll just keep hoping a good and free (or inexpensive) Java AOT compiler becomes available some day. I would even donate money and/or code if a serious project started.
There some efforts in this direction with the OpenJDK.
As of Java 8 there is an application packager that brings everything together.
https://docs.oracle.com/javase/8/docs/technotes/guides/deplo...
And the size of the native runtime has been reduced.
http://openjdk.java.net/jeps/148
> I'll just keep hoping a good and free (or inexpensive) Java AOT compiler becomes available some day. I would even donate money and/or code if a serious project started.
If you are on GNU/Linux, Mac OS/X check RoboVM.
So while C++ is certainly improving, Rust has a fundamental advantage in the safety department.
Less flippant answer; the usual arguments are that Rust is more memory safe, and hopefully less complex and with fewer gotchas compared to C++. It's still relatively complex - inherently, due to what it tries to do - but people seem to be of the opinion that it is much less complex than C++.