This is a myth, though a myth created by Apple itself and Bertrand Serlet's tongue-in-cheek keynote slide. Snow Leopard actually had a number of new features: https://en.wikipedia.org/wiki/Mac_OS_X_Snow_Leopard#New_or_c...
Moreover, Mac OS X 10.6.0 was much buggier than its immediately predecessor Mac OS X 10.5.8. There were some really bad bugs in those early Snow Leopard releases.
The Snow Leopard that everyone remembers and loves was not version 10.6.0 but rather version 10.6.8 v1.1, which was released almost two years after 10.6.0.
Major OS updates invariably introduce more bugs than they fix. That's an iron law of software development. What Apple used to do, which they no longer do, is spend a long amount of time just fixing bugs in minor updates to the operating system. Now, unfortunately, Apple is on a rigid yearly OS update schedule. Worse, Apple doesn't just fix bugs between those yearly updates; instead they keep introducing new features even in the "minor" updates. So we never get a "stable" version. It's constant change for the sake of change.
Because they still managed to fix all the egregious bugs by August every year, as late as Mojave in 2019.
From my recollection at least.
My argument is that they were never building and have never built software at a sustainable pace, even before the yearly cadence. They race ahead with tech debt then never pay it off, so the problem gets progressively worse.
A while back, that merely manifested as more and more defects over time.
More recently, they began failing to ship on time and started pre-announcing features that would ship later.
And now they’ve progressed to failing to ship on time, pre-announcing features that would ship later, and then failing to ship those features later.
This is not the yearly cadence. This is consistently committing to more than they are capable of, which results in linear growth of tech debt, which results in rising defects and lower productivity over time. It would happen with any cadence.
And I also remember 10.7 actually being better and where I thought Mac OS X (and its macOS rebrand) peaked, for interactive/workstation use.
However I ran a 10.6.x virtual machine (that yes, ran Mac OS X 10.6.8 Update Combo v1.1[1] for the last decade of its service life) until 2021 for a bunch of long-timeline server functions, so I guess Snow Leopard was pretty good overall, in the end...
I took it into the Genius bar and they had nothing other than "we will wipe it and get it working."
It turned out I was able to boot to single user unix console mode and clean up the issue in an old school style. I have no idea if that is even possible anymore, but in any case I have never had another issue with OSX as severe as that one.
Modern Mac OS got really quite high quality at some point but it's easy for people to forget it had a lot of growing pains between 1999-2008 or so.
I was doing hardcore computation 24/7 on a MacBook, including model checking real-time systems, and I vividly remember the exact day I experienced one kernel panic.
The rest of the time, everything was rock solid. It's sad both quality and aesthetics degraded during the 2010s, where the system somewhat converged to iOS UI patterns and lost skeuomorphism.
Apple did skeuomorphism really well, which is hard. No idea why they moved to flat designs, which are easy to copy by competitors.
This is far from isolated to Apple, too. It's a cancer that's infested virtually every single software company in the entire world at this point, and it's endlessly frustrating. If they don't have some New Shiny Version to show off to the tech media and blogosphere everyone starts acting like the software itself is a dead man walking. I also think it's partially down to all these same companies trying to justify subscription billing with a constant trickle of "new stuff" that the application in question does that you're meant to feel like you'd be missing out on.
I don't ascribe to this notion whatsoever. I in fact far prefer my software that barely changes at all over time. My most reliable and useful computer is my huge Ubuntu box that lives in my laundry room which handles... I mean frankly it would be easier to say what it doesn't handle, which is anything Apple adjacent because that's all proprietary, and it doesn't handle my security cameras because I couldn't find a linux-based solution for that. Literally every other automated function outside those two categories is handled by that machine, with a mix of software I've downloaded and configured and a fair bit that I've written myself.
I say all this to say that machine barely changes at fucking all. I do security updates of course and occasionally have to tweak something but the apps on it are the same, it serves the same internal websites, it runs the same scripts, like clockwork. I LOVE that thing and my life would be in an utter shambles if some overpaid tech executive had the power to randomly change how it works to justify his salary.
With further progression on integration/miniaturization and lower power consumption/heat output for general computing, the devices have shrunk to their bare minimum as slabs, there's very little physical to display so the fashion needed to move to software (and what online services it can be a client for). Stasis is death when you rely on selling, and maintenance is a constant cost which no one really wants to pay for.
As a side note, it's interesting to compare attitudes to the physical side to PC, where for years there was almost a pride that PC was a minimalist functional box (besides the occasional fun/weird exception), but that contrasts against now where it's hard not to get components with windows or embellished with LEDs and logos on display (and there's another weird contrast, where on one hand you have internals on display, on the other trying to minimize or hiding away the cables as though the inner workings were ugly)
The strangest thing about this is in the system configuration dialogs where they have a set of really gee whizzy modern configuration screens but you still have to go into 15 year old screens to do many common tasks —- they updated some but kept the old ones that they did not have time to update which is a little ugly but fine because they old ones work 100%.
I used to have “who moved my cheese?” moments all the time with Windows circa 2005 when I was admining Windows and having to deal with configuration screens in ‘98, 2000, XP and various versions of Windows Server, they couldn’t resist making superficial changes that annoyed me to no end.
I don't know who if anyone really is heading the UX department at Microsoft, but they should either be empowered to their job properly or fucking fired, and I couldn't tell you which.
Microsoft released Windows 8 in 2012, and here we are 13 years later using interaction panels that have only gotten minor chrome updates since their original release in Windows 95 (looking at you, Advanced System Settings and Device Manager).
On some level it's an embarrassment, on the other level I never run into a "can't get there from here" experience though I had an awkward experience the other day when I brought home a bargain monster TV from the reuse center and found I had to look across a several different screens to find all the settings to get the video output properly matched to the TV.
But the thing is functionality is already being impacted! I had an experience the other day where I was trying to manually configure an IP address for an ethernet interface to configure a piece of hardware, one of those situations where it lacks DHCP but I knew what the IP scheme was and so I just had to configure an address, gateway and subnet in order to be able to talk to this damned thing, which I was eventually able to do. But, crucially as I'm trying to do this, Windows pushes me towards a Modern/Metro UI version, which, fine, whatever, but when I entered my information it would then show a series of "in progress" dots across the bottom of the screen, presumably because it was attempting to verify it had internet access on this interface, which it obviously didn't and wouldn't, but it did have internet access via the WLAN card. This contradiction seemed to confuse the shit out of the Settings app, as it presented no error and eventually seemed to just... shrug and do the thing I'd asked.
Except it didn't work, and I spent an hour troubleshooting why I couldn't yet communicate to the thing, only to eventually out of exasperation go to the control panel to see if the old UI version of this (right click interface, properties, ipv4, properties) only to find out it NEVER SET THE ADDRESS I SPECIFIED AT ALL! Presumably because it couldn't verify it now had internet with those settings, or maybe because the UI was just broken, I don't know.
(Also interestingly CMD thought it had the address configured, but no subnet or gateway, and the old UI had none of it and it was still configured as DHCP)
And like, this is just bad software design, bordering on incompetent software design, for several reasons:
* We have an in-progress "I'm doing something" indicated from the OS, and I'm assuming it was in fact doing something, but it was not indicated at all what was being done, or why, or the result of what was done or what went wrong, which is simply horrendous.
* It was, I'm guessing, attempting to verify connectivity, but that was not explained to me, nor was it presented as an option as it is in the old UI (there's a checkbox that says "validate this when I'm done" and you can leave it off, which I did which then worked as I thought it would)
* Somehow, these three functions to show an interface's state (CMD, old UI, new UI) are all producing different outputs to one another about the same interface, which is just BONKERS in terms of software designed to manage a system, and implies severe fragmentation in the core of the OS.
So, just so I'm understood, I don't think Windows 11 is embarrassing because it has different UI conventions present simultaneously. I think it's embarrassing because of what that fragmentation means for lower, more important parts of the OS. It's a less important thing that points at a more important thing.
I much prefer the older screens. They are so much easier to use.
The new version of the OS was always being developed in a branch/train, and fixes were backported to the current version as they were found. They weren't developed linearly / one after another. So yeah, if you are comparing the most stable polished/fixed/stagnant last major version with the brand new 1.0 major version branch, the newer major is going to be buggier. That would be the case with every y.0 vs x.8. But if you are comparing major OS versions, Snow Leopard was different.
Snow Leopard's stated goal internally was reducing bugs and increasing quality. If you wanted to ship a feature you had to get explicit approval. In feature releases it was bottom up "here is what we are planning to ship" and in Snow Leopard it was top down "can we ship this?".
AFAIK Snow Leopard was the first release of this kind (the first release I worked on was Jaguar or Puma), and was a direct response to taking 8 software updates to stabilize 10.5 and the severity of the bugs found during that cycle and the resulting bad press. Leopard was a HUGE feature release and with it came tons of (bad) bugs.
The Apple v1.1 software updates always fixed critical bugs, because:
1. You had to GM / freeze the software to physically create the CDs/DVDs around a month before the release. Bugs found after this process required a repress (can't remember the phrase we used), which cost money and time and scrambled effort at the last minute and added risk. This means the bar was super high, and most "bad, but not can't use your computer bad" bugs were put in v1.1...which was developed concurrently with the end of v1.0 (hence why v1.1s came out right away)
2. Testing was basically engineers, internal QA, some strategic partners like Adobe and MS, and the Apple Seed program (which was tiny). There was very little automated testing. Apple employees are not representative of the population and QA coverage is never very complete. And we sometimes held back features from seed releases when we were worried about leaks, so it wasn't even the complete OS that was being tested.
A v1.1 was always needed, though the issues they fixed became less severe over time due to larger seeds (aka betas), recovery partitions, and better / more modern development practices.
Do you mean Mac OS X 10.6.8 v1.1? Otherwise, I don't know what you mean by "v1.1".
In retrospect, I'm guessing that you meant N.1, e.g., 10.6.1. But 10.6.1 certainly didn't solve all of Snow Leopard's problems. Like I said before, the "stable" Snow Leopard everyone loves was the result of almost two years of minor updates.
> you are wrong(ish).
> So yeah, if you are comparing the most stable polished/fixed/stagnant last major version with the brand new 1.0 major version branch, the newer major is going to be buggier. That would be the case with every y.0 vs x.8.
In other words, as you admit, I'm 100% right. ;-)
Every new major OS update introduces new bugs, that didn't exist in the previous OS, some of them horrible, and Snow Leopard was no exception.
Remember this one? It's hard to find a worse bug than total user data loss: https://forums.macrumors.com/threads/snow-leopard-bug-respon...
I still believe you are right and wrong (which is why I put the "ish" on wrong).
"Every new major OS update introduces new bugs, that didn't exist in the previous OS, some of them horrible, and Snow Leopard was no exception" is not what folks are noticing when talking about Snow Leopard. People don't say Snow Leopard was great because it had no bugs, they say it was great because it had fewer bugs they experienced at release and converged quickly to something that was very stable, much more quickly than previous releases (and Leopard was a particularly long stabilization cycle right before it).
I do remember that bug you link, and I remember is was via migration assistant and required some convoluted steps to get in that state (IIRC it largely cropped up with people migrating their home from extremely old versions continuously, which was one of the QA tests we actually did but this issue was missed). There was much debate as to just how widespread it was (Apple didn't have telemetry at the time and had to rely on forums and apple care reports). The majority of people had no issues with SL, which was not the case with Leopard. Leopard's development internally was also more chaotic FWIW.
During that time period my team and I triaged every single Mac OS X bug coming into the company every morning. Trust me, SL was of higher quality than Leopard.
Nowadays, shipping is less of a major event due to CI, automated tests, betas, no CDs/DVDs, recovery partitions, etc. We're in a much better world!
Could you clarify what you mean by "ran"? Originally I thought you meant that you were the manager in charge of the 10.6.1 and 10.5.8 releases: "the person who personally ran" is singular. Whereas now I'm getting the impression that you were just one of many engineers who installed and used internal builds of the updates?
> People don't say Snow Leopard was great because it had no bugs, they say it was great because it had fewer bugs they experienced at release and converged quickly to something that was very stable, much more quickly than previous releases
That's precisely where we disagree. My impression is that people are just looking back fondly at the later versions of Snow Leopard.
> (Apple didn't have telemetry at the time and had to rely on forums and apple care reports). The majority of people had no issues with SL, which was not the case with Leopard.
These two sentences seem a bit contradictory. ;-)
> Leopard's development internally was also more chaotic FWIW.
Externally too. Leopard was infamously delayed for iPhone.
> Trust me, SL was of higher quality than Leopard.
Well, from my perspective, "Leopard" and "Snow Leopard" are a bit amorphous. They are brand names, not specific pieces of software. 10.6.0 was definitely not higher quality than 10.5.8, as I think you've admitted already. And that's precisely why I object whenever people say, "We need another Snow Leopard". It's never the major releases that create quality, stable software but rather the long train of minor bug fix updates that occur afterward.
By the way, I also remember an NSURLConnection crasher that was introduced in 10.6.3 and IIRC plagued us for a number of 10.6.x versions until it was finally fixed. https://openradar.appspot.com/7841731
I certainly admit that Snow Leopard was less ambitious than Leopard, and thus 10.6.0 likely introduced fewer new bugs than 10.5.0. If you have to ship a major update, then obviously fewer new features is going to create less disruption than more new features. But the fundamental quality problem today is that Apple forces itself to ship new major updates every year. That's completely unnecessary, a self-inflicted wound. If you look back prior to the annual schedule, the major Mac OS X releases came 14, 18, 30, 22, and 23 months apart. That's much more reasonable.
> Nowadays, shipping is less of a major event due to CI, automated tests, betas, no CDs/DVDs, recovery partitions, etc. We're in a much better world!
You cannot be serious! As far as I see, Apple software quality is worse now than ever.
And just to compound the problems, we never get a "stable" version anymore, because Apple continues to ship new features throughout the year, even in "minor" updates, so even 11 months after the .0 release, we still get the bugginess, and after every .0 release Apple has to turn around relatively quickly and start work on the next major version in order to be ready for the next WWDC in June. It's a vicious cycle.
If anything, CD/DVD installers were good, because only the most eager users ran to the retail stores to buy them and jump onto the bleeding edge new versions, and bugs could be fixed before the majority of users eventually installed the major updates, whereas now Apple is pushes users hard to install major updates over the air immediately at .0.
I cannot think of anything that less needs yearly major updates than macOS. It's a mature, 25 year old OS that, unlike iOS, is used for an enormous range of professional work. I need to it be fast, stable, and predictable. The last thing I want is change for the sake of change, which largely describes the last 5-10 years of the OS.
Wanna make Notes.app compatible with the new features in this year's iOS? Just update Notes. I don't need a whole new OS to get new features for a notepad.
Having said that, here's the reality of bugs that are assigned to a team. Feature work comes first. The (older) engineers don't want this — they want to fix bugs, refactor code, get rid of tech debt. But ever since Jobs returned to Apple, it's become top-down and the engineers are no longer driving the ship. Management want the features.
So, the slippery part is this: once you defer a bug for an OS release and ship your product, deferring that bug in the next OS is a no-brainer. You already shipped with the bug, why is it so important this time around? So users/devs learn to work around the bug.
Occasionally, as an old-timer, I would on a whim just fix an arbitrary bug that was "bugging" me. Sadly though, the process had become so top-down though that I would also need: 1) someone to code-review the changes (and so already you are encountering your first obstacle requiring "buy in") and then 2) get permission from "management" (this might be the BRB, bug review board) in order to submit the fix and the Radar. (There are periods though when they are lax and bugs can be submitted with little justification — or we would just make up some bullshit to get the bug fix in).
I recall the early days with fondness when a dev just checked fixes in.
Me: Craig, are you working on the Crop tool in Photos?
Craig: Yeah, why?
Me: How does it pick the default for whether to use Portrait or Landscape? Half the time I think the default it picks is wrong. Why not look at the image bounds and default to Landscape if it is wider than it is tall?
Craig: Good idea. I'll make the change now and write a Radar for it later.
Also, a shout out to Brendan who would push back when in a feature meeting with something like, "Okay, which of these features can we drop? Because we have some serious technical debt we need to address that was not own your feature list."
Were you using Macs before Jobs came back? The entire operating system for PowerPC based Macs was technical debt with parts of the OS running under emulation.
It was a buggy unreliable crash prone mess.
I think he was :)
Yeah I had that game on my Mac LCII back in 1992 and Parena was great too.
The point still stands though. The operating systems were horrible back in the mid 90s and both Macs I had back then - the Mac LCII and PowerMac 6100 - were cripple by being a half speed bus. Back before it was necessary.
As an engineer before Jobs came back — and for a few years too after he was back — there was still a sense that engineers could call the shots with their own frameworks/apps. Copland, Pink, all that — you can dismiss them as failures but they were engineering trying to toss off the "technical debt" of no true multitasking. So, again, it was bottom up and was at least a joy to be an engineer working on the OS at the time.
As I say, for a few years Jobs let engineering call the shots as NeXT became integrated in the OS. I was on the Graphics team then and a whole new graphic architecture and window server were created more or less from scratch (heavily borrowing from NeXT of course since most of the graphics engineering team were NeXT).
At some point though the major changes were in and management began to take over. "Quality" was eventually measured in unit-test code coverage, for example. (Sigh.)
If you were only using Windows you barely noticed, but if you used much Unix Mac OS got pretty painful. I mostly remember this from taking a digital music/video class and that was basically the only thing I used Macs for at that time. You never really got through an hour or two editing video or audio without a crash or two. We had Avid workstations where they controlled this by tightly controlling the software on the Macs, but I never actually got permission to use them.
There were also behavior patterns. If you only used Mac you were in a behavior pattern where you'd crash the machine less. If you were using Unix workstations a lot your behavior subtly changed and you tried to do more stuff at the same time. If you then went back over to the Mac and overloaded the Mac the same way it was a bad time.
That’s a bug not a feature. Engineering led companies rarely ship good consumer products. What happened to Apple before there was a product guy at the top is a prime example.
Another recent example is Google. Google has the best technology in the industry but can’t ship and sustain a good product to save its life.
I should qualify it somewhat though — I mean I was, for a spell, working on the ColorSync framework. So the "customer" was also an engineer using our API.
At the same time, when I worked on Preview initially I added features that I wanted and I think it dovetailed what users wanted. I am also a user I rationalized.
Further, many of the old timers like myself, were hung up on Tog and his Human Interface Guidelines. We would argue over lunch the Right way to handle UI for a specific feature, etc.
Jobs comes along and with Design at his side, and they decide that the address field in Safari should also be a progress bar (that appears to select the text as it loads?). Some poor engineer was told then to implement that. (I hated what I came to call one-off UI.)
This is why Snow Leopard was so buggy on release but unlike previous releases actually did get better: management stopped pushing new features, and even a skeleton crew was able to polish it over time. If you look at a map of tentpole Mac OS features, you can see that the ambition vanished with the iPhone's release and didn't recover for a decade.
This is such a trivial big win as well, create a software dev team to focus on the outstanding bugs. Head it with one or two senior developers, make it the first step in onboarding new developers. What a great way to learn, and make a difference.
This is not rocket surgery, and Apple really do have a bad reputation here, even with the muggles.
Sounds nice on paper. In practice, the seniors assigned to the team will see it as a career dead-end (because fixing bugs doesn't get management attention, but flashy new features do), juniors lack the experience to avoid edge cases or to navigate the project structure, and the seniors/intermediates on the "actual" development team don't have time to waste on reviewing and aiding code of juniors and bugfixes because then they have ownership over that...
Bluetooth has been broken on both editions of their Pro Max Phone (15 & 16). It cuts out and has all kinds of weird issues, but no fix has come for years now. This was why I always paid a premium for their phones, they did hardware and software well. Not anymore, their so focus has been on their processors.
This tends to be an Apple issue. They introduce proprietary thing and eventually unless your hardware supports said thing it will have a degraded experience in some way
Apple has the MFI program for these things. You can get certified and tested in relatively short order.
They also aren’t removing the original protocol support or anything like that.
What I will say is that I think they don’t devote as much QA resources to getting it right as they do their own protocols, hence the difference.
With Microsoft it was very different. They wanted to subsume or shutdown whatever they targeted with EEE
Do better please! Where is the passion, catering to pro’s, any idealism? Hardware is great but software gets worse and worse..
It died 14 years ago.
I think Apple started to die with the iPod and got worse the more successful it became.
Then again, maybe I always prefer the underdog.
Also the classic MacOS where you (the user) had to pre allocate memory per application and where holding down the mouse button stopped any application from running in the background.
The resuscitation was truly miraculous.
It was very cool tech. Closer to what Apple would get from NeXT years later.
My guess is as to why it failed (and this was also the common sentiment at the time) — it was an optional install and not a default. It's hard to imagine anyone writing an app around a component (extension) that few people had in the OS.
And I just thought about the other abandoned tech that came with System 7.1 Pro - PowerTalk.
My next Mac was a 2008 Macbook Pro (non-unibody) that had backlight issues out of the box, failed display cable two years in, and then the GPU failed. (Nvidia plague era, and Steve Jobs silence plague era of shit-ass fan curves)
To this day I still refuse to trust Apple's fan curves and install fan control software. Especially the M1 iMac with the cut down graphics that they only gave one fan and a smaller heatsink. Watched it break 100C regularly.
The m1/m2 mac mini might be the only one I've never had issues with the stock fan curves so far, but I still bump them up anyway for peace of mind. I don't see a reason to let an SoC hit 98C even if its rated to do so.
At the end of the day, I was just not that impressed with the x86 based Macs. They had all of the drawbacks of x86 with all of the added disadvantages of Ive inspired design which led to poor heat dissipation, not enough ports and butterfly keyboards