Hacker News new | ask | show | jobs
by dimitrios1 1843 days ago
I can't believe we've managed to have this lengthy of a discussion about GC languages and speed without anyone mentioning rust. Has HN turned a corner?
2 comments

Maybe, don't know.

In what concerns me, although I like Rust, I only see it for scenarios where any kind of memory allocation is very precious, Ada/SPARK and MISRA-C style.

I have been using GC languages with C++ like features, or polyglot codebases, for almost 20 years to think otherwise.

Most of the time developers learn about new and miss out on the low level language features.

It is a matter of balance, either trying to do everything in a single language, or eventually write a couple of functions in a lower level language that are then used as building blocks for the rest of the application.

No need to throw away the ecosystem and developer tooling just to rewrite a data structure.

Would you consider codecs or heavy numerical simulations to fall under those memory allocation scenarios that you'd use Rust for as well?
That is a good scenario, however you can still use languages like D, Nim, Swift, C#, F#, Go, among others for such scenarios.

For example, you can do codecs in C# on WinRT with .NET Native,

https://docs.microsoft.com/en-us/windows/uwp/audio-video-cam...

In the context of protobuf,

https://devblogs.microsoft.com/aspnet/grpc-performance-impro...

Back to Rust, yes it is a good option, I just wouldn't write the whole application on it, just specialized libraries.

Hence why I am looking forward to Rust/Windows efforts.

Rust has an arena allocator too[1], but it is implemented with 165(!!!) usages of unsafe. :)

[1] https://github.com/fitzgen/bumpalo

This is far from the only arena allocator written in Rust.

From the same author, a zero-unsafe arena allocator: https://github.com/fitzgen/generational-arena

There are many, many arena implementations available with varying characteristics. It's disingenuous to act like Rust requires the author of an arena library to write "unsafe" everywhere.