throwaway984393
throwaway984393 on Hacker News
So it's a closed ecosystem that makes money for a cabal of corporations
We weren't lacking teenagers. We were lacking a dirt cheap seasonal exploitable massive workforce. There are not enough teens even if we conscripted them all. And if you don't, teens don't like doing work. Most teens don't live in the sticks anymore. And (for teens) we care about these stupid things like safety, a minimum wage, and labor laws.
It's not 1950 anymore. The world has changed. The reason we need migrant workers is WalMart. Their demand for ever lower prices creates the need for the lowest priced highest supply scalable labor due to a global supply chain and pricing pressure. You can't put the genie back in the bottle. Want cheap shit? Then you hire migrant workers. Or give up on farms and buy from overseas. Or make robots that can pick fruit. There's no free lunch.
That said, I've been using Asahi for a month, and I'm ditching it. Maybe in a year or two it'll be stable, but for now it's got too many bugs and unsupported features. A lot of the problems come down to Wayland and KDE/Gnome, as you literally have to use Wayland. But there's plenty of other buggy or challenging parts that all add up to a very difficult working experience.
One of the biggest challenges I see is support for hardware and 3rd party apps. Not only do all the apps need to support this slightly odd Arm system, but so do hardware driver developers. I never realized before just how much of a Linux system works because most people had an incredibly common platform (x86_64). Even if Linux on Mac became incredibly popular, it would actually take away development focus on x86_64, and we'd see less getting done.
(This kind of problem is totally common among Linux laptops, btw; there's a ton of hardware out there and Linux bugs may exist in each one. Adding a new model doesn't add to the number of developers supporting them all. If anything, the Mac is probably benefited by the fact that it has so few models compared to the x86_64 world. But it's still only got so many devs, and 3rd party devs aren't all going to join the party overnight)
The most energy efficient solution is what animals have been doing in the desert for millions of years: burrow.
There is no one general "good engineering". Everything is different. Labels suck because even if you called one thing "microservices", or even "monolith of microservices", I can show you 10 different ways that can end up. So "modular monolith" is just as useless a descriptor; it's too vague.
Outside of the HN echo chamber, good engineering practice has been happening for decades. Take open source for example. Many different projects exist with many different designs. The common thread is that if a project creates some valuable functionality, they tend to expose it both at the application layer and library layer. They know some external app will want to integrate with it, but also they know somebody might want to extend the core functionality.
I personally haven't seen that method used at corporations. If there are libraries, they're almost always completely independent from an application. And because of that, they then become shared across many applications. And then they suddenly discover the thing open source has been dealing with for decades: dependency.
If you aren't aware, there is an entire universe out there of people working solely on managing dependencies so that you, a developer or user, can "just" install software into your computer and have it magically work. It is fucking hard and complicated and necessary. If you've never done packaging for a distro or a language (and I mean 250+ hours of it), you won't understand how much work it is or how it will affect your own projects.
So yes, there are modular moniliths, and unmodular monoliths, and microservices, and libraries, and a whole lot of varied designs and use cases. Don't just learn about these by reading trendy blog posts on HN. Go find some open source code and examine it. Package some annoying ass complex software. Patch a bug and release an update. These are practical lessons you can take with you when you design for a corporation.
Before the Web, and during its rise, there was a vast array of productivity tools designed to allow users to do more work, faster, and better, through graphical interfaces. It would have been ridiculous to release a program to users with only a command line interface. We left the dark ages of terminals behind, and pushed into new territory, advancing what users could do with computers.
But once the Web began to develop the capabilities of browsers further, Web programming began to teach young programmers that the web was the only place that needed a graphical interface, because the web was a "universal" graphical application interface (lol, if you don't count the browser wars)
This delighted programmers, as they never really liked making graphical interfaces. Logic and functions were more fun to write than user interfaces (which only made the users - not developers - happier).
This was then hammered home when Markdown was widely adopted for its simplicity, inspiring a sort of text-based Stockholm-syndrome. People started to claim bizarre things, like that the command line and Markdown were preferable (or even superior) to GUIs and WYSIWYGs in almost all cases. More languages were adopted that had no inherent graphics capabilities, and the devs moved ever further towards text.
So the web has unintentionally set back computer science and user productivity by decades. Until browsers lose the spotlight, this will probably continue, and non-web GUIs will continue to be that ugly thing you only write if you have to. Users will continue to languish in these half baked solutions, slaves to the solutions that are presented to them. And devs will continue to create text interfaces that only they enjoy.
Rather than rethinking old ideas and creating new ones, we are simply doubling down on the past.
The only way to make on-call less stressful is to do the boring work of preparing for incidents, and the boring work of cleaning up after incidents. No magic software will do it for you.
Users are a bit like high school students just skimming books for an answer to fill in on a test. They need to be forced to learn.
Humans are social animals, so we absolutely need some form of social structure to function. But how that structure must work isn't rigidly defined. What is clear, though, is that since we aren't innately rational creatures, we do need a simplistic form of governance (typically a power structure of leaders).
All of the methods by which a dark horse can run and win are there. The state will not remove your votes or intimidate voters not to vote for you. You will not be poisoned by radioactive toxins to prevent you from running. You will not be kidnapped, or your family threatened, or a bomb set off in polling locations. This isn't in any way like so many other actually repressive regimes. All you have to do is go and run.
We have more power in this society than anyone in any other. So why do we claim we're powerless? Because it makes us feel better that we're so lazy. I could run for office, but that might restrict my time watching The Office. Better to just say that running is pointless, so I don't have to make the change I want to see.
And even if you don't want to run, you can vote for independents, you can complain to your representatives, you can organize your friends and neighbors to petition local government for local reforms and participate in larger state and federal efforts. Individually we may be a drop in the bucket, but collectively we are a wave. You can't say that isn't powerful.