5,346 karma · joined June 2, 2019
Viewpoints are my own and not the viewpoints of my employer.
noah@packetlost.dev
I don't buy this. Rust is a lot easier to make more performant than C++ and doesn't really trail behind C in anything but .text size last time I looked. Considering you can easily write C-like Rust that ends up in the same LLVM stack as Clang (more or less) I just don't think this is true outside of some very specific contexts.
Bigger brakes != more stopping power.
That's a big "if".
Even for coding these things are not ready to take away real decision making and it's not clear they will ever get there.
> more so effort should be spent on making the technology cheaper and more accessible
Lasers are weird because the techniques to generate light at different frequencies differs a lot. "Telecom wavelengths" used in, say fiber optic networking, is super cheap and widely available, but these QCs often need different wavelengths that aren't mass produced. Some systems even need the ability to tune the wavelength precisely and the range of that tuning is another spec that can matter. I'm sure these QC companies would love for this to be more stable and cheaper, but the reality is without demand (of which there is little), it's just not going to happen.
I honestly do not see how you could go from talking about self censorship in the context of institutional censorship and then go on to say the whole internet has become a 'chan', it absolutely has not even if the current zeitgeist doesn't fully align with your particular ideals.
If this distinction wasn't important, Python's infamous GIL would not be an issue.
Rust had like 3 allocating types total. If you aren't working with extremely deeply nested 3rd party types it's trivial to identify when allocations happen. Hell you could throw a lint rule together in like 5 minutes to warn on it if you're really worried. Besides Drop (excluding async) is there even any hidden control flow?
> Im speculating here, but I believe its advantage over Rust for that specific application is that you have tighter control over exactly when memory is allocated and deallocated, and how data is laid out in it.
Rust has almost exactly the same semantics for controlling allocations and deallocations, it just prevents you from screwing it up and not freeing something or using the allocation after freeing it. You still have to pass around your reference in your call stack until you no longer need it.
> Rust wants to tie allocation lifetimes to scope in a very fine grained way that I would guess is beneficial the vast majority of the time, but does still make it harder to reason about when you’re about to stall out the CPU while the allocator does its thing.
It's really not substantially different. You allocate ahead of time or don't allocate at all. The only real difference is you might want to use an Option instead of an uninitialized pointer because it's semantically more correct and harder to screw up.