Then I started getting some crashes occasionally but still relatively rarely. This increased a bit around Sierra then reduced again with Mojave.
Then Catalina happened and with the new 2019 mbp retina, I started having crashes about once every two weeks. Now, I have an mba m1 running Big Sur, and I think my average uptime is around 2-3 days. Crashes are now something typical, I no longer expect my computer to run for long stretches of time. For a few months, my mba couldn't even go to sleep with crashing, couldn't restart without crashing, this was only solved once I updated to 11.6.1 (I tried reinstalling mac os x before to solve this, it didn't help)
So, yes macs used to be very stable but not anymore, I don't know what happened with Apple's QA but it seems there's now major issues. I didn't change the way I use my mac, if anything now I don't use SIMBL or kernel extensions (which I used to use back when my mac didn't crash) so things should be more stable not less. Yet, despite having ever more control over our machines, being more restrictive over what we can do, Apple somehow is making their system less stable, more flaky than before.
Of course, this is anecdotal, I might be very unlucky but in the past year, I've had quite a few coworkers drop out of calls or be temporarily unavailable, telling me that their mac crashed and they needed to reboot. So, it does seem to be widespread.
I have a few issues on my Windows 10 that I thought it was Windows issue since it kinda point to Windows that are causing the errors. When I investigate it further, turn out it is the app that are clashing with Windows which led Windows to freak out.
I wonder for this article, could it be the app, libraries or dependencies that are just behaving plain stupid and led macOS to freak out?
Not contesting your experience at all, but if you're having crashes every 2-3 days it might be hardware-related?
I don't think so. I've got the same issue as GP. Well maybe not every 2-3 days but at least once a week I'd say.
If it's hardware-related, on basically a brand new machine, it's a quality-control issue.
Windows manages it (most of the time). Linux and FreeBSD manage it and they're technically still described as monolithic. macOS, on the other hand, throws a hissyfit and everyone then blames the hardware rather than the error handling.
I bet if we were talking about Windows people would take great pleasure in mocking Microsoft so I find it weird that Apple is exempt from the same criticism.
For years I’ve been convinced that they let go majority of the QA and have outsourced QA to the customers/public.
If I stick to web browsing I can have uptime in months too. But as soon as I start up xcode and run the simulator, then I consider myself exteremly lucky if I don't have to reboot (manually or spontaneously) every other day. And forget trying to run the simulator and any video activity on a browser - that seems to be a recipe for instant browser freezes (at least on this 2019 16" macbook pro).
FWIW, I can't remember the last time I had my Mac crash, either my M1 work machine or my personal Intel. Uptime is regularly measured in weeks.
Terrible, but I haven't figured out a better solution.
Sucks if you need one, though.
I had been saying this for nearly the past decade. I'm done saying it.
macOS is still much better than the alternatives, but the golden age of it being in another universe entirely is over.
Windows 95 & 98 would crash pretty frequently. Not as badly as win 3 though. NT 4.0 was no bastion of stability either. Windows didn't stabilize until well after Win2000 versions.
MacOS 7 & 8 also not great. The first versions of OS X were also pretty flaky.
In my experience dependable reliability of workstations and servers didn't happen until the mid-2000s where just software couldn't simply blue screen an OS, or lock it up forever.
If I remember rightly it was about that time that MS got serious about driver reliability, which seemed to help a lot.
For Mac OS X it was 10.3 to 10.5 that was the (seemingly) most stable.
I think the scope and size of hardware, software and interaction has just gone so large that it's not commercially viable anymore to test or QA the entire system to the same standard. It's also why service managers came along, we just assume that everything breaks and hope restarting it makes it go away...
System 7.5 was rather worse-off than 7.0, but it got absolutely slammed because it was the first major mac OS that got saddled with web browsing, and the OS was just not fit to handle apps that had buffer overflows.
That was the big thing about those mac OSes; since they had no memory protection, if any app on the system buffer overflowed, it'd crash everything. It was fine in an environment where you really were only running one or two apps that were known to be really rock-solid, but it wasn't able to police misbehaving apps.
"I run Solaris, so you know my machine restarts as often as I get laid."
Next-gen NT 3.X was rock-solid (from memory).
Though the interesting takeaway from your comparison is the fact that desktops these days run server kernels, which is a testament to the build quality of servers.
Which segues nicely into a recap of my point: 90s desktop systems didn't have memory protection et al so one buggy application would cause the system to crash. Everything was carefully layered like a house of cards. The switch to NT and UNIX largely fixed most of those issues but later builds of macOS seem as buggy to me as Win 9x and MacOS 8 and 9 were.
In the 90s systems like OS/2 and NeXT were defined as "workstations" to make a distinction between the old lineage of personal computing platforms (like Win 9x and Mac OS running on typically budget hardware) from high end systems running typically multi-user systems (often literally mainframe OSs).
Post-90s and the "workstation" definition went away when NeXT became OS X and NT replaced the DOS-bootloaded Windows lineage; and dedicated workstation hardware became cost ineffective due to improvements in consumer hardware -- not least of all x86 (and later AMD64).
But in the 90s the distinction was real.
This was one of the big draws to pulling down "mainframe/workstation" systems like unix (or what MS did by hiring what IIRC was the VMS team to build NT) onto desktop machines. These mainframe systems actually had memory protection, and more generally, had been built to do what "pc OSes" hadn't been designed to do, which was running several programs at once, for long periods of time, and juggling resource contention between them.
DOS machines, CP/M machines, Apples, Macs, Commodores, and several other early machines were pretty tactfully designed to avoid the (too heavy for their hardware) complexity of that by simply building themselves to run only one program at a time. There were hacks to let you run multiple programs (like the Multifinder in MacOS 6, which got mainlined into being a permanent thing in 7), but they were just that — hacks. They were fragile.
As computers started taking on the burden of juggling tons of different simultaneous programs, this fragility really started to blow up on them, and these previously "seeming stable" systems started to crash all the time.
Imagine having a fully functional app but you still can't do anything because the service 'on the other side' doesn't work. It's better because it won't crash the entire system, but it's the same because you still can't do the work you intended to do...
I do remember games freezing windows 9x so much that you had to reach for that reset button. Also when the system threw up a BSOD if you ejected a CD when you weren't supposed to.
Games often did things that put the system out of whack, and while 9x had preemption for 32bit code (16bit was cooperative as separate thread, iirc) it wasn't impossible to break the OS state by simply putting bits of hw in weird state or by using a lot of resources.
Any BSOD in Windows is a kernel panic. Most of the BSODs I recall were directly down Windows getting itself into a state that it couldn't recover from. Like IRQ errors, memory errors, etc. And it was often very easy for an application to force a BSOD. I remember this well as someone learning Win32 APIs "by experimentation".
Also to say you "it wasn't impossible to break 9x by using a lot of resources" but that is a huge understatement. Even today tou can still break modern operating systems by using too many resources and they have far better protections (OOM killer, smarter paging and stored on media with orders of magnitude higher IOPS, multi-core CPUs that offer true parallelism of operations, etc). 9x, on the other hand, had very little to protect you in that regard. I couldn't even estimate the number of times I've hit ctrl+alt+del on Windows 9x, preying there is enough capacity for the OS to kick in the task manager[2], which back then would also suspend all operations of other applications, thus allowing me to manually terminate whatever processes were causing Windows to grind to a halt.
As an aside, it was also possible for applications to hide themselves from task manager too. I had great fun playing around with writing a remote administration tool for college (sadly not for "official" purposes...) so figured out a number of tricks in 95 to work around user permissions, task management, and so on and so forth. Basically 9x was a playground where running applications could pretty much do whatever they wanted.
[1] https://telcontar.net/store/archive/CrashGallery/images/cras...
[2] https://telcontar.net/store/archive/CrashGallery/images/cras...
And that brings me back to my original point: recent versions macOS feels like a departure from the rock solid mainframe platforms and a return to the old monolithic kernels that would panic every few days.
Also, there is nothing special about a "server operating systems," it's just another application. Reliability came from hardware and OS isolation, which costs more. Too costly for end-users in the 80s, reasonable for those who cared by the mid-90s. Which is what my original comment said.
NT, OS/2, 386BSD... all from the 90s, Q.E.D.
I don't know about you but I wasn't running Internet Explorer on 386BSD in the mid 90s. :P I do get your point -- I honestly do -- and it is a well formed one too. Unfortunately you're missing the context of the conversation by listing all these workstations. Instability of the main personal computing platforms was a real thing. Listing niche platforms and workstations doesn't change the everyday trauma that the majority of desktop users faced.
> Also, there is nothing special about a "server operating systems," it's just another application. Reliability came from hardware and OS isolation, which costs more.
You second sentence contradicts your first sentence. In fact your second sentence basically agrees with an earlier point I'm making despite it being prefixed by a sentence that reads like you're trying to disagree with it.
> Too costly for end-users in the 80s, reasonable for those who cared by the mid-90s. Which is what my original comment said.
I think you're overestimating the budget most households had in the mid-90s. And definitely overestimating the capabilities of most desktop users. In 1995 I wasn't even running an Intel CPU, instead having cheap knock off that lacked a number of features (it might have been Cyrix but I'm not 100% sure). Let alone a workstation.
Your post is very typical of the "you could just..." meme on HN where a comment starts out making a claim that something is easy and then goes on to list something that is very much specialised tech and well outside the realm of "easy" for your average user.
> NT, OS/2, 386BSD... all from the 90s, Q.E.D.
As were BeOS, NeXT and plenty of others. And in fact I personally did run BeOS, Linux, (amongst others) in the late 90s -- when I eventually replaced the Intel-clone with a workstation class board (and it was a fantastic bit of hardware too: https://en.wikipedia.org/wiki/ABIT_BP6 ). But my point wasn't that no stable platforms existed -- obviously they did. The point was instability was a common pain for personal computing in the 90s. Even with BeOS and Linux installed I still found I needed to drop back to Windows regularly for specific tasks and I'm in the top 1% of technically capable users. So imagine what the other 99% were stuck with.
This is where you're talking cross purposes. You're making a point nobody technically disagrees with but equally nobody was technically discussing either. You're making an academic point that doesn't contradict the spirit of the conversation.
By what measure?
I'd rather have a thicker laptop with ports and longer battery life. I would rather have a higher quality camera than having a smaller bezel.
It allowed Apple to continue to pay its retail employees when the stores were closed for the pandemic. Seems like the opposite of "bad."
my macbook pro did the same before it.
If running the Linux kernel on Apple hardware did not require a massive reverse engineering effort (see https://asahilinux.org) then maybe you would have a point.
The hardware is only there to enable the software in this concept, not the other way around. This is also why if the UX conditions are met, more powerful/newer/shinier hardware was often not used since it doesn't improve any of the software enablement.
You can't sell a good UX with bad software on good hardware. You can sell a good UX with good software on anything.
https://allthingsd.com/20111005/iphone-4s-its-the-software-s...
https://www.computerworld.com/article/2476239/apple-and-wear...
https://www.computerworld.com/article/3353038/apple-in-2019-...
https://techcrunch.com/2008/10/15/what-android-can-learn-fro...
For a given feature, the user might not know how much of the implementation was done in software versus hardware. Apple excels at integrating their software with their hardware.
I was using Linux on laptops until 2004. When I bought a 12" PowerBook G4 and experienced WiFi, sound, and printing working reliably, I realized I could no longer bother with Linux on laptops. This reliability has suffered lately and I hope they can get it back.
Just to be clear, I have been using Linux since 1992. I am completely comfortable with Linux on the desktop and the server. What I found is that Linux does not deal well with configuration, and configuration on laptops changes daily (or more).
There's a few caveats:
* Sound works fine in general, but might be a bit buggy with Bluetooth. If you encounter any issues, installing Pipewire reportedly solves most of them.
* External monitors works fine, as long as you don't mix HiDPI and LoDPI at the same time. In the future, Wayland should fix this.
* HiDPI mostly works, but still requires some config tweaks for a handful of apps.
* Suspend/resume still sucks, mainly due to buggy nVidia/AMD graphics drivers. Only the Intel GPU drivers suspend reliably in my experience.
* WiFi works flawlessly, especially if you're using the Intel WiFi hardware, which is very common on laptops.
* Printing works fine except with Windows-only printers, but they are pretty rare.
* Distros don't really matter that much, but you'd might need to update your kernel if you use an LTS distro with newish hardware. The Ubuntu based distros, e.g. Mint/Ubuntu/Pop!_OS are good options and have the largest user base, so it's easiest to find solutions if you encounter any issue.
* If you just want to test hardware compatibility, I recommend trying Ubuntu 21.10 on a USB stick.
* You'd might want to look at /r/linuxhardware [1] for specific hardware recommendations for your needs. You can also look at the Ubuntu Certified Hardware [2]
If I would create a similar list of issues for Windows or macOS, it would be much longer.
YMMV, so you might need to try it yourself before making a more informed decision.
Testing the hardware support from a USB stick is something that can be done rather quickly.
They've recently been branching out into designing their own hardware (or claiming to, it's not clear to me how much they've done in-house vs contracted out or off the shelf, but I digress) but they've been making software to put on other people's slightly-customized hardware for a much longer time.