On the other hand, "a new kid in town" is not a good reason to declare a rewrite a failure. Did it make your life better? Did it reduce bugs with a reasonable amount of effort? Maybe it was a good decision after all, given what you knew and what was available at the time.
Meanwhile, delaying a decision indefinitely just in case better options appear later is probably a road to death. Again, Rust doesn't come into the question all that strongly.
There's a lot of overhead that can't really be reduced.
This is nothing new ...
See: the mid-to-late 1990s and Perl, Python, Tcl, etc.
The only way to predict the furture is to create it.
You could see the seeds of Rust from years ago, but having a nice language as the start is just... the start.
Rust do that AND all the other things: tooling and docs and..
So, the thing that will replace Rust will need that, and is likely you will not see any proper* contender in the next 5 years, maybe even more...
*ie: One where it worth to rewrite the codebase. You will see several experiments, maybe a few very good, but consider this: To rewrite from C/C++/.. to Rust have a lot of leverage: C performance, superior tooling, superior error messages, superior docs. Your Rust replacement should be BETTER than that.
inb4 Java did it first.
Speaking of, what are some good 'example projects' to test the overall sturdiness of a new language? I have currently no interest in writing one in Austral, but I'm always curious to hear how well modern language projects work out when used in production.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
I love the simpleness of the language. I work with a kinda high performance networking (DPDK use) as my day job so we work in C and while I love C quite a lot for its simpleness and clarity, it is so easy to do something wrong. Linear types seems perfect for helping to keep a track on ownership of pointers and make sure that everything is handled properly while still keeping the simpleness. I don't mind having to by hand write some destructor if someone helps me make sure they are called correctly - I probably prefer that for clarity. And it also seems easier to exaplin to someone: "Here is this type, if this type gets unhandled at the end of this function the compiler gets angry. Instead you have to call this function that you can clearly see by the types returns the Unit/a free type". (borrowing adds a bit more to that but still quite clear imo)
I like Rust for what it did to the space and I respect all the people working with it but it isn't THE solution and I am happy other things are entering the arena that caters a bit more to my preferred aesthetics I guess.
I have started coding some small networking things in Austral personally to get a feel about. Will see where it goes.
For example Austral has no macros whereas Zig relies heavily on comptime.
Austral is to Ada and Rust what Zig is to C..
I'd say that Austral is even more focused on safety and correctness than Zig. Zig is older than Austral, but Austral is simpler, which implementation is going to be reliable first? I don't know, there's a (small) 'ecosystem' around Zig, is there one around Austral?
Definitely, along with other decisions. It follows the C++ route of unneeded complexity. I think many developers actually like that though. Figuring out how to prove some dynamic trait cast setup to the compiler does have a certain feeling of “doing smart CS stuff” and in my younger days that would’ve been attractive to me.