frankly it's a miracle any of them scaled at all, such popularity mostly comes down to an arbitrary choice made decades ago by a lucky vendor instead of some grand overarching design
Elixir removed a jankier https://www.erlang.org/doc/apps/sasl/appup.html mechanism that defined how state is upgraded or downgraded, while watching a directory and recompiling a module automatically or manually from the repl is still common
> while watching a directory and recompiling a module automatically or manually from the repl is still common
That makes it sound like the "hot" part has been removed then, and it's just basically a "live reload" rather than "hot code loading", is that right? There is no persistent state and you get a fresh one after the automatic compilation happened?
I've used utility functions in Erlang where I make changes, then compile and load all modified modules...
It's absolutely hot loading, there's persistent state, any fully qualified function calls run in the newest module. The gen_server pattern always calls into your behavior module with fully qualified calls, so those are pretty easy to get into new code at a reasonable time. If you write your own service loop, it's pretty common to call ?MODULE:loop() to enable hotloading there too.
There's footguns; hotloading is a way to make rapid changes to your system, but sometimes rapid changes isn't what's needed and sometimes the rapid change you make is to go from a partially broken system to a fully broken system. But, there's a virtuous circle when you can make production changes quickly, because you can make a small change and observe and make many follow ups in a single day. With push processes that take a long time, you end up encouraged to make a bigger change one time, otherwise you spend all day waiting for traffic to move between old and new versions, or waiting for instances to deploy, etc.
queued messages stay around in the mailboxes, so no state is lost, but don't get migrated/transformed/versioned via the appup mechanism, unless you opt back into it via libraries for it like https://github.com/ausimian/castle
no, for example if you are running a liveview in dev and recompiling your code the liveview does not lose its state and jumps into the new module, unless I'm mistaken.
This Nil is not a Null, and is only used as a sentinel value to return an error value. And unlike lua, indexing into an unasigned value will not return nil, but throw an exception like index_error.
It's still receiving maintenance from contributors, but these sort projects reach a stable maturity and stay there for years fulfilling their use case.
There's fewer games to vote on every year, as conglomerates like Microsoft out vote your wallet a billion times over every time they buy a game studio to embrace, extend and then extinguish.
If looking at AAA publishers, maybe. The indie game scene continues to pump out games, some good, some bad, at half or less of cost of the AAA games. They won't be as polished, but many still deliver an exceptional experience.
there are more games than ever, it's just that microsoft, ubisoft, etc are spending billions on actual psychologists to ensure the populace remains apathetic towards them.
I don't care how smart you are, how much self control you have, whatever, in the face of billions of dollars, voting with your wallet does not stand a chance. The house always wins.
> I don't care how smart you are, how much self control you have, whatever, in the face of billions of dollars, voting with your wallet does not stand a chance. The house always wins.
Yes, you're totally right that HN users are far from the average consumer, but they weren't talking about the average consumer - they were making a categorical statement that all consumers have no self-agency and are mind-controlled by these companies, and I was pointing out how clearly insane that claim is.
reply