Sentient Switchblade: "Hi Beth! You've gotten taller! Shall we resume stabbing?"5,648 karma · joined March 31, 2021
Sentient Switchblade: "Hi Beth! You've gotten taller! Shall we resume stabbing?"> Benchmarks prove otherwise
Well, good luck running the benchmarks on your production servers.
Go's GC is nowhere near as complex, and yet it performs much better, because Go decided not to shoot itself in the foot.
The very fact that Project Valhalla had to create new opt-in syntax for value classes, in order to get what Go does by default on all its types, is the admission of defeat of a herculean battle of attempting to optimize desite fundamental problems with Java's design.
Value classes won't make criticism outdated, because they don't fix any fundamental problems, they just provide an opt-in feature with significant restrictions.
Go wins not by technical ingenuity, but by simply not making fundamentally bad decisions in the first place.
The most important "features" of Go are fast compilation, orthogonality of features, and easy development.
Their propositions may "look like everyone else" if you're only looking at surface syntax, but there's a reason why it took 10 years to design an acceptable generics proposal, and the result is that compiling generic-heavy code is almost as fast as compiling plain Go.
Go being strict about features it accepts is not an ideological thing, but a practical one. If Go could have all the features in the world while still being easy to use, fast to compile, and internally coherent, it would. But it can't (see: C++, C#, Python).
On any plaform which implements strong exchange with zero overhead over weak exchange, we can safely assume they compile to the same thing, and use weak. The only reason to use `strong` is if you have a one-shot CAS operation and you don't want to write a retry loop.
The reason using `compare_exchange_weak` is a better idea for lock-free algorithms is that, in most cases, you'll run it in a retry loop anyway. Since `compare_exchange_strong` is compiled to a retry loop, if you do a retry loop of `compare_exchange_strong` you basically have a loop in a loop. Using `compare_exchange_weak` makes things both simpler and more performant.
People have been getting angry at machines for a long time. Work, you stupid printer! Asshole Windows updating at the worst time just to mess with me. Go to hell, toaster, you piece of garbage.
Getting angry at AI is the same in my book.
Yes, AI acts more human-like, yes, theoretically it could desensitie people to become bigger assholes IRL. But then again, they said similar stuff about San Andreas, where you could human figures in-game just for fun, and I don't see anyone randomly shooting people because they were bored.
And quite frankly, your AI slop garbage radar is not just an indicator of good taste — it's the essence of humanity that keeps you above it.
What we had was many devices behind such corporate networks. Instead of requesting exposed ports for each device, or setting up OpenVPN (never done it so I'm not sure how much the red tape would it be), I requested only outbound access to our bastion server's SSH. Since SSH is pretty standard, admins usually allow it fairly quickly.
There were also a few cases where non-HTTPS connections were also banned, so we set up an HTTPS proxy that tunneled the SSH reverse forwarding... But that's probably not needed in most cases.
Let me know if anything is confusing, I'll answer it here.
[0] https://paskozdilar.github.io/blog/entries/zero_code_ssh_jum...
It's amazing how lightweight this method actually is. I have managed to connect hundreds of devices using a single EC2 nano instance.
By Occam's razor, it is more probable that the universe is simply non-deterministic.
At a quantum level, it is also actually non-deterministic.
With physical contact, speech can signal consent or lack thereof. How would you consent to speech itself?
So basically Go?
Why not ship your own model? In the age of Electron apps, 10GB+ apps are not unheard of.