Why iOS 13 and Catalina Are So Buggy
tidbits.com
tidbits.com
But now all of a sudden we get catastrophic (deleted emails) and less catastrophic (missing Music playlists) data loss, crash bugs and generally weird behaviour of many apps.
I have identified one particular area where bugs are endemic: iCloud and it's complete failure to deal with multiple OS and client app versions. This is clearly a design issue as it also manifests itself in many ways that are not bugs as such.
For instance, Notes has gained the ability to share folders via iCloud. But if you create a folder and then share it from a device with the latest OS version, that folder disappears from all devices running older OS versions and importantly also from the icloud.com website.
Reminders on Catalina warns you of such version incompatibilities and the wording is telling. It's talking about "converting" something to the latest version. "Conversion" shouldn't even be a thing that users need to know about where no user controlled files are involved.
All indications are that there is a fundamental design error at the very core of iCloud's architecture. It feels like iCloud operates not as a single source of truth but as yet another device that participates in peer to peer syncing. This is a very complex architecture and they haven't been able to make it work.
So my conclusion is that iCloud which has always been exceptionally buggy has become pervasive within Apple's ecosystem. This is what has changed.
Another bad piece of this release is that iOS and iPadOS were staggered: iOS 13 came out on September 19th and iPadOS on the 24th. Even if all of your devices were new enough to update, the iPad didn't have a compatible release for the better part of a week, so a bunch of features were broken.
My experience is this is true of recent updates, but I don't think the data would support such a sweeping statement beyond that. I remember the dustup around this in 2015/2016 after comments by Marco Arment:
https://marco.org/2015/01/04/apple-lost-functional-high-grou... https://marco.org/2015/01/05/popular-for-a-day
I haven't listened to the interview that Eddy Cue and Craig Federighi did with Gruber since it aired, but my recollection is that they said that they actually measure these things and there had been FAR fewer bugs over years (from that date) and that we've simply come to expect less buggy software as a result. Or at least that's my years-old recollection, I could be wrong. And so I think what's likely is that this version is worse than recent versions, but if you compare to, say, 10 years ago it's less buggy. Kind of like what people experience when we have increases in the crime rate -- far better than it used to be, even if people don't recognize it, but (1) still an increase, and (2) we should expect progress, not things getting worse!
https://daringfireball.net/thetalkshow/2016/02/12/ep-146 (I could be wrong and maybe it was a different interview)
Anyway, there was a ton of chatter here and everywhere else in the tech community around that time. Here's a quick example at the time (but I imagine there are dozens of others, if not hundreds):
All the points are applicable to other releases, but that doesn't mean they don't also explain iOS 13's issues.
My car isn't new (2007) and lacks the built in bluetooth-ish stuff. So I have my iPhone connected to the aux via the lightning-to-headphone jack adapter. My Apple Watch is my means of adjusting music: not perfect, but I have a rule (seems to be the bare minimum) that I only track forward/back/whatever if I'm on the interstate and there are no cars near me even though the hand with the watch on it is on the steering wheel (I'm glancing, so that's a cautionary thing that even though it is brief, I could be a danger to others). Well, since the latest updates and point releases we're now at the stage where the Apple Watch has a hard time staying in sync with my iPhone. If I start a track, the watch is aware and the now playing "app" is visible. But if I pause the song and the Watch blacks out, if I activate it, I'm back at the main watch face with time and date. Before, it'd return to playing now and I could tap play button and be good to go. Instead, I need to wait until I'm at a stop and turn it back on via the iPhone (in which case, watch now shows now playing again) or hope "Hey Siri, resume music" works.
This also falls into what the article talks about that it is a regression in behavior that doesn't, seemingly anyway, involve a crash. It's terrible, but it isn't going to register on any of their logs/reports because the devices seem to be functional throughout.
I thought all those reasons sounded good, and the problems he described could have easily become worse in recent years.
Also, FTA: "David Shayer was an Apple software engineer for 18 years. He worked on the iPod, the Apple Watch, and Apple’s bug-tracking system Radar, among other projects."
In contrast, big companies like Apple try very hard to avoid and ignore user bug reports. There is no way to easily E-mail them, "filing a radar" is hard, and even if you do they do their best to ignore your report.
When I wrote "percentage of revenue", I meant it. In my software business (https://partsbox.io/), I dedicate about 10% of my time to reading, analyzing, and responding to user bug reports. Carefully thinking about every report let me catch bugs and problems that I never would have found. I also learned that every user bug report carries some information: even if something isn't actually a bug, getting multiple reports about it might point to a usability or a documentation problem.
If Apple also spent 10% of its revenue on processing bug reports and fixing bugs, they would not have a quality problem like they do now.
I ask because anecdotally everyone I know finds Windows 10 to be the most stable Windows they've ever used.
As much fun as it is to hate on Windows, if I'm honest with myself 10 has been the most stable experience I've had with Windows, with the possible exception of 3.11 (though that was a long time ago).
The deletion bug WAS pretty bad, but it also affected a VERY tiny group within the subset of users that had opted in to experimental/advanced-preview updates.
So much of what happened in Catalina is just flat out not written down in the Developer Documentation. Apple's documentation has been waning for a while, but it's fallen off a cliff in the last eighteen months.
It's impossible to believe that's not having an impact on external software quality, and it's difficult to believe it isn't having an impact on Apple's own applications too.
The documentation blew me away, nicely packaged with XCode, and made it really look like a platform that would care about developers, especially given how niche it was.
That was 10.6 time.
Currently, I have a Mac forced on me by company. I look at docs... and they are the same docs I remember, with bits missing, a "deprecated banner" from 5 years ago. Deprecation notices give no information what APIs one should use in place, or where new documentation is.
Documentation is of paramount importance! How else will people build an ecosystem around your software if they can't figure out how to use it in a variety of ways?
I really hope this isn't some trend of just abandoning the commons, taking without adding back in.
ipad seems to be their focus for "pro" stuff now. Now that iPad apps can run on macos i think that's a clear sign that if you want to make a macos app - don't bother, make an ipad app
I don't think there's a deliberate conspiracy here. All this stuff is launching two years before it's ready, and subject to a huge internal war at Apple - it's fairly clear a chunk of the MacOS team doesn't want to do Catalyst fearing it's the death of the Mac, even if the management do.
I used to work on a product at a big company, we took users input very seriously, not only from bug reports but also by analyzing telemetrics data and simple users "star" feedback.
At the end of the day it's simply impossible to both fix everything and still go forward when the product is big and complex. To this day the product has terrible reputation as buggy and unfriendly.
Even the simple task of finding what the problem is, fixing it and then closing related problem reports is very complex since many bugs manifest themselves in different ways.
I often hear this repeated, and I keep wondering: why? Why is it not scalable?
Apple had 265 billion dollars of revenue in 2018. I'm spending 10% of my budget on QA. So, in the case of Apple, if you had a 26 billion dollar budget (give or take a few billion) for your QA department, why couldn't you go over every bug report?
It's definitely possible, it's just that companies are making a different tradeoff, assuming that bugs will not influence buying decisions that much. And to a certain extent they are right.
Software, despite all the attempts to come up with ways to commoditize its production, does not scale.
Ideally, it wouldn't be like this, but we don't live in an ideal world, and there's always some unintended consquence when you start pulling the string on anything nontrivial. And there's never sufficient automated testing, especially for the things that haven't been a problem yet.
> If Apple also spent 10% of its revenue on processing bug reports and fixing bugs,
"fixing bugs."
So, fixing bugs is 100% part of the discussion here.
But, let's ignore that for a second.
Let's say Apple triages all its bugs, but then doesn't fix them.
How is that an improvement? How is triaging the bugs but not fixing them at all an improvement?
Also remember that many bugs requires much more then changing a couple of lines of code, they require cross module changes and re-testing which can lead to more bugs.
Speaking from the perspective of just wrapping up the car buying process. All of the reviews had just as many, if not more words devoted to the infotainment experience as to the driving experience.
Here I am thinking Bluetooth is peak feature so I can play my music while carving canyons and reviewers are taking off points because the touch screen isn't colorful enough or something.
And I want my Bluetooth connection to work flawlessly but it never does.
Some entertaining solutions I found online include a playlist that includes only silent tracks and switching to that playlist before you turn off the car, or canceling Spotify Premium so you can no longer download/cache songs, giving you enough time to mute before Spotify's cloud can stream the song to the car.
In what way is that an argument against paying attention to bug reports? Are you saying that the continuing existence of this product means it does not matter? Arguably that strategy will work, up to the point when something better comes along, and by then you will be too deep in bugs to pivot.
This specific product grew to be an abomination which in part is responsible for the many complaints it gets.
Usually Support is seen as a distraction to new product development or whatever the strategy is, but often I see management overestimate how much time and money is spent on it. So, just tracking that cost/time will likely increase it and improve customer satisfaction.
Unfortunately, improving Customer Support is not rewarded in organizations as much as cutting costs, creating new products or expanding revenue, so you'll probably need the CEO to care a lot about it to improve matters. And CEOs can't really put a number on improving customer support, so it is optimized to cost less over the near term, not deliver a better service.
I also see the worrying tendency to keep only Customer Service or equivalent responsible, as if they can fix the bugs and improve the design.
I have personally witnessed hundreds of support cases go through this various process, in some cases taking months of work (for communication mostly from eng to customer) of T2 support reps.
Now - is their current spend sufficient? Probably not, but Apple consistently ranks among the highest customer service ratings - so they probably think spending more here is a waste of time.
Just to be clear, you're suggesting they dedicate $25B/year to bug fixing? Seems high, given their total R&D budget for 2018 was only ~56% of that.
https://www.macrumors.com/2018/11/05/apple-2018-form-10-k-hi...
The spending doesn't have to be instant either. Just start increasing the spending and measure user satisfaction and bug report counts. Once you've arrived deep into diminishing returns you can stop increasing the spending.
How do you know they're not there now? It's hard to believe they're not thinking very carefully about these sorts of things, given how successful they've been establishing a place in the market.
I don't know for a fact but I have more respect towards Apple than to think that the current state is the best they could do.
$265B in Revenue and and $59B in profit seems to indicate they're already doing pretty well. Maybe your definition of 'best' isn't in perfect alignment with the rest of the marketplace?
I get that there are things about their products you can point at and wish were done better, or at least differently. I use Apple products myself, so I have a list of these things myself. But, the thing is, this isn't unique to Apple. Have you ever been completely satisfied with a product or service? I can't really say that I have. About the best that I've ever been able to achieve is something that's a close enough approximation to my 'requirements' that I can adapt what I'm doing to make it a solution.
Point is - you're never going to find something perfect. There will always be a gap and hopefully effort on both sides to close that gap. Those financial numbers aren't a perfect indication by any means, but they do signal that Apple's doing a reasonably good job of closing that gap for a reasonably large number of people willing to part with their earnings to buy Apple's products.
Can you provide a link? I'd be interested to read how it played out. My gut reaction is that number of people logging into Apple's site from Linux is a tiny fraction of their market. At first glance, it doesn't seem surprising to me that they'd prioritize other things.
> How many bugs like that go unaddressed even though someone has spent the time and effort documenting and submitting it?
I'm not sure I agree with the implicit assumption you seem to be making that spending time and effort documenting a bug entitles you to a call on a development organization's resources, time, and prioritization.
Around 10.9, MacOS reached a "feature complete" state. Now things are just being changed for change's sake. Running older Android versions reminds me of how fast and slick they were, and how many features have since have just added complexity in meaningless ways (they've changed the "silent" mode roughly 4 times since 2011?) and introduced "features" nobody asked for. Half the features end up getting removed later.
As an example of good software that doesn't perpetually introduce bugs, take venerable *nix Desktop Environment XFCE. (Screenshots here https://xfce.org/about/screenshots) It has a release every few years and doesn't add anything major or change in breaking ways - it works, and works the same as it always has for decades.
(edit) I had another thought - since Apple the company is now so large and most of their resources are focused on churning out new products year after year, it could be that they've stretched themselves too thin and the people that could uphold the quality standard of the systems either a) aren't as much of a hardass as Jobs was and don't have as high standards, or b) just don't use the products on a regular basis. I bet you there's someone working at Apple right now getting paid >$250k/yr that hasn't touched macOS in over a year.
Those are some rose-tinted glasses for sure. Android lacked basic performance and stability for years after release.
Out of curiosity, what would you lose functionality-wise by upgrading? What's your mission-critical workflow?
Oh, how I wish! The problem is it's not just me. I'm the IT department for my wife as well, and there is no way she's going to switch to Linux. For on thing, she's a writer, and she uses MS Word. That is not going to change. :-(
Also, what to do for a mobile device? They all suck big fat honking weenies AFAICT. We both have iPhone SE's which, AFAICT, are the least bad of all the available options. We both tried Android once and it was a disaster.
I've always wondered about people that are able to switch platforms. I've always thought that you pick the operating system that best runs the software you want to use. So it makes sense that a Word user wouldn't switch to Linux.
> We both tried Android once and it was a disaster.
Why was it a disaster? Were the apps you needed not there? I use iOS (on an iPad) and Android (on a Pixel phone) and they both seem good enough.
It was a long time ago so I don't remember the details, but it was just a slow, buggy mess. Maybe things have gotten better since then but the experience left such a bad taste in my mouth that I've not gone back to re-evaluate the situation. It's an expensive experiment to conduct in terms of both money and time. Also, the fact that Android is so intimately intertwined with Google gives me serious pause. At least with Apple there's a chance that my data is somewhat secure. With Google I know with certainty that it isn't because their entire business model is to surveil me and sell the data to third parties.
You make it sound like they're t-shirts or something haha
Maybe where I am cars are still behind the times.
https://www.runpcrun.com/laptop-battery-use-and-storage-guid...
What are you worried about losing with Yosemite+?
Also, I just can't stand the new "flat look". It's just ugly and lazy. It feels like Windows. And the fact that I can't change it offends my sensibilities.
My only issue with older OS versions are security updates, as Apple for justifiable reasons doesn't provide security updates for 6 year old versions.
Maybe I can wait till the pixel 5... oh.
Btw, I also have an option under Accessibility that says "Remove animations" that doesn't require having Developer Mode enabled. Seems like an easier shortcut if you only want to turn off these animations.
For a good non-open source example, look at Photoshop: it's been around for almost 30 years and people still think its worth paying for and are generally happy with the updates they get. Perhaps some are unhappy with the pricing model, but I actually see lots of people that are very happy with that too (myself included).
macOS only seems stale because it hasn't changed meaningfully in so many years, not because it can't.
With regard to the bugginess: yes, I think it has everything to do with the fact that they are now trying to ship a new version of iOS, iPadOS, tvOS, watchOS, AND macOS every year on the dot.
I'd love to see evidence otherwise, but I do think that desktop interfaces are pretty "done" at this point - you can have a couple different paradigms and layouts, but usually it's the same thing - either a Windows 7-style taskbar/start menu layout, or a macOS dock/statusbar layout. There's not been much change in the desktop space in a long time. Features here, animations there, but desktops are relatively stagnant. The cool thing is that you can extend them with other programs if you want, but mostly they're just a way to launch programs. Not a lot of messing around is needed if you ask me.
Windows 7 was the pinnacle.
However Apple seems to be willing to pay for highly sought after skills.
I have also been told that they don't have company level hiring standards so you should expect uneven abilities across different teams.
I have also been told that things were being rewritten or rather that Apple likes to rewrite. Apple doesn't seem to be very good at limiting regressions caused by these rewrites.
That's why there are so many crashes across the board. The crashes are caused by bugs or changes in behavior in common frameworks. This seems to jive with the author saying that Apple doesn't do enough automated testing.
Also, it doesn’t help that they can’t directly benefit from the general progress the industry is making in virtualization and container areas without rewriting for their own platform.
Can you expand on this? Are there limitations on MacOS that prevents them from doing so?
Apple hasn't put much public effort into making macOS work well inside a virtual machine. Recent versions in particular, where the window compositor uses Metal for drawing, don't run well. Apple hasn't opened the API for writing GPU drivers, so there are no drivers for the virtualised GPUs provided by VMWare, Parallels, VirtualBox, or Qemu in their VMs. (The tightening of code signing requirements [see the 'library-validation' flag] even locked out nvidia from providing their own GPU drivers from macOS 10.14 onwards.) The only way to have GPU acceleration in macOS guest VM is to pass through a whole GPU at the PCIe device level. (I don't know if anyone has tried AMD's MXGPU tech, which allows GPU 'slices' to be passed to VMs, with Macs and macOS VMs; the GPUs that support it are a little too expensive for a weekend project.)
There are signs that Apple does use virtualisation internally; specifically, they've started adding drivers for virtio devices and one of Qemu's display adapters to macOS.
Library validation has nothing to do with drivers.
Depends on the type of driver. For GPU drivers, it is indeed a problem.
I'm going to assume from your comment that you haven't actually written many (any?) device drivers on macOS, so let me explain roughly how GPU drivers on macOS work:
- One or more kexts provide an IOFramebuffer implementation, plus an IOAccelerator object which listens for various types of user clients. The IOFB and IOAccel are typically clients of the GPU's IOPCIDevice object and handle its interrupts and memory.
- A variety of user space plugins (essentially dynamic libraries) are loaded into any process wishing to use GPU acceleration, with different plugins for Metal, OpenGL, and so on.
The kext communicates directly with the hardware and manages memory, but the user space plugin tends to deal with the higher level tasks such as generating command streams, compiling shaders, etc., and they talk to the kernel driver using the IOKit user client mechanism. The plugins also provide the back-end implementations for the app-facing APIs such as OpenGL, Metal, and OpenCL.
In recent macOS versions, WindowServer, the process responsible for drawing your macOS desktop, has had the library-validation codesigning flag enabled. This flag enforces that any code loaded into the process must be signed using a certificate from the same Developer Team ID as the main executable or Apple's own certificate. This means, no third-party plugins can be loaded.
This also means third-party GPU drivers can't work with most Apple apps and WindowServer itself, because they require aforementioned user space plugin.
For similar reasons, classic Core Audio plugins (not to be confused with Core Audio Server Plugins) are deprecated - they used to be loaded directly into the process using Core Audio, which no longer works on apps with library-validation enabled.
Drivers which are implemented entirely as kexts or which are loaded into a "server" user space process are not affected by this, which I guess is what you were talking about.
I have written a couple toy ones, but nothing major and I'll admit I have no specialized knowledge of graphics drivers.
> Drivers which are implemented entirely as kexts or which are loaded into a "server" user space process are not affected by this, which I guess is what you were talking about.
Yes, I was talking about how anything loaded into the kernel does not have to deal with library validation (though there is still the check that it's signed with a valid KEXT certificate, which I assume Nvidia already has). I generally call the user-space portion of a driver that's loaded into applications to be plugins and keep them outside of the umbrella of "drivers" (which I reserve for the KEXT portion only) but in this case I think we both understand what's going on and are just disagreeing on what the terminology is.
> For similar reasons, classic Core Audio plugins (not to be confused with Core Audio Server Plugins) are deprecated - they used to be loaded directly into the process using Core Audio, which no longer works on apps with library-validation enabled.
These are plugins that implement AudioHardwarePlugIn, right? I think that they're being disabled by default anyways to get people to migrate to AudioServerPlugin, but they were deprecated way before library validation was even a thing because they inherited the sandbox of the application they were loaded into, which was already causing them to fail in odd ways.
Given that the kext is essentially useless without the userspace component (and vice versa), I don't think it's unreasonable to call the plugin part of the driver. Note also that it's installed in /Library/Extensions. This certainly also matches the user experience: they download the NVIDIA "driver" installer which happens to install a bunch of kexts and also the user space components at the same time.
These are plugins that implement AudioHardwarePlugIn, right?
Correct.
More generally, the IOCFPlugin mechanism, which paired user space components with kexts, is essentially dead for third-party driver developers thanks to the increasing lock-down of user space processes.
This is indeed correct. Your Docker VM lives at:
/Users/$USERNAME/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw
It would be very nice to be able to use libvirt from my Mac in the same way as my Linux workstation. Or be able to migrate VMs between the two. They're both using the same-ish CPUs, after all! (Workstation has a "i7-5820K" vs the Macbook Pro's "i7-8850H")I believe libvirt as such is supposed to work on macOS. Furthermore, recent versions of Qemu apparently support using macOS's Hypervisor.framework. So it seems like this should be doable, although I've not had a chance to try it myself yet.
1. Safari’s back button now seems to lose the position on the previous page - sometimes.
2. The share sheet has a row of Messages contacts that I didn’t ask for, don’t want, and can’t turn off - and it creates the risk of super-inappropriate sharing, because all my work contacts are eligible for being on this row, seemingly at random.
I can’t understand why there is no option to remove it.
God damned growth hackers. Imagine driving out of the highway to the exit you regularly take to get home, but wait, it now leads straight into a shopping mall, because hey, look at this new shopping mall, please spend your money here! Want to go home? Make a 3 point turn and drive that way instead!
You can i think... but not sure;
Settings > Siri & Search > Messages > Learn from this app < uncheck
So i started searching and re-enabling things and suddenly the suggested contacts were back. Not sure what caused it then, might have been a bug...
Really they mostly just need to remove a boat load of features to make it a work phone.
Only because none of the messaging apps have implemented it yet. As someone who uses their phone for messaging 70% of the time, I actually missed it from Android and am happy to see it come to iOS.
I used to have the same problem until i took the plunge and just banished everyone i didn't like out of my digital life. If i don't want to interact with them, i just make their contacts poof/block them
...did you not actually read his post?
The 12 year old girl across the street who helps me walk our dogs on a regular basis (hence why she's in that bar), whose father works for Google, and has an Android phone is most certainly not showing up due to AirDrop when I'm in my living room.
And I'm with parent comment: I DO NOT WANT 12 year old girls to be one accidental button push away from inappropriate content. Hell, I don't want to explain to my bluegrass pickin' buddies why I sent them an Ikea link, either.
But you prompted me to remember: "Aha! AirDrop uses a different icon than what I see right now!" Observe the following:
https://media.idownloadblog.com/wp-content/uploads/2019/06/i...
Note the contact on the left, and icon: it's the AirDrop icon. But the rest have a Messages icon. That, I'm assuming, comes from contacts I've recently messaged and has nothing to do with AirDrop. I could have my phone on airplane mode, and those still show up.
Bringing up comparisons to Steve Jobs must be the tech equivalent of Godwin's Law, but if there was one thing about him, it's that he actually was a user of his own products, like us.
It feels like there's no one at Apple (or other companies) like that anymore. They can only try to guess at what it must be like to be a user, so they can't nitpick all the little things that annoy us.
Which is conclusion some pointed out based on Darwin source that we can view...
Exactly this. As he famously said on stage he was the low paid beta tester for Apple. He was also sensitive to certain users opinion. I could only wish he was replying email on this latest MacBook Pro and decide to throw the damn thing out of the Window. Calling up Engineers at midnight and demand this to be fix or redesigned ASAP.
Without Steve we have been stuck with this butterfly keyboard for 4-5 years now, because Tim Cook decided it is a small problem and they need to amortise the cost of R&D.
I think part of Apple's issue is that Cook isn't that the guy at the top isn't a product guy -- it's the guy at the top could do (and from some rumors, possibly does?) his job with an iPad. I feel like, under Cook's tenure as CEO, the Mac has lagged, while the iPad significantly improved. Part of that is that the Mac was a mature platform when he took over, but a big part of that is that Cook can provide some of that Jobs-ian top-down product feedback that designers must listen to.
There certainly are people like that, it is just that unlike Jobs they have no voice on the matter.
Same with other companies.
Don't you mean "ahead of"?
As a temporal reference, it's definitely valid, but it bears a somewhat highfalutin connotation. It sounds like someone who is trying to wax poetic.
Not that I would fault a non-native speaker for using it; it's a very nuanced and probably subjective interpretation.
Honestly, I can’t even name single such change for iOS. At worse it is adding interface implementation.
About objective c and Xcode. Just lol. I love being able to debug by pressing single button and putting breakpoint. Android studio, being abominably ugly and slow, and killing battery like in 1 hour, still struggles to do that for native code.
Also, what is wrong with Objective C?
And, IMO, iOS/macOS/Cocoa/Xcode is best out there. And most importantly - most stable. Nice boutique experience, nice API, good documentation, everything is integrated and working.
Other platforms are even worse. Way worse. I am also doing Switch, KaiOS, Xbox, PS3/4, did Symbian and like dozen more obscure ones.
All these rants about XCode/iOS/UIKit/ObjC somehow being a terrible environment to develop for are presuming there is something significantly better out there. There isn't, it seems. You will find developers bitching about literally any development platform out there (except maybe Haskell when you are on HN ;-)
My personal experience is limited to C++/ObjC/Java/Python on Linux/macOS/iOS, and I can only agree that ObjC on Apple platforms is by far the easiest and most productive environment for me. I've only dabbled in Swift a tiny bit so far, but my feeling is that it's also a lot less hostile than C++. In terms of toolkits, Cocoa/UIKit is at least as good as Qt, and much better then e.g. GTK or the abominations you have to deal with if you develop Java applications. Don't know about Windows platforms but considering the endless list of technologies and frameworks that are supposed to supersede whatever came before it, it's likely not much better over there.
I have to restart XCode at least once an hour to get all my breakpoints back and several times a day if it crashes for no apparent reason and boots up with the project missing, empty or missing files. Fortunately I don't do a lot of app development any more but some low level C libs don't compile themselves (no: not possible to do this in any other language).
Stable is not what I use to describe XCode. Bloated with "do it the apple way" yes but not stable.
I can give you one. A few years back an important interface was arbitrarily renamed in the CoreBluetooth stack. I would look it up, but I’m on mobile and laying in bed. Ask tomorrow and I’ll find it.
anyway, I was overseeing a half-dozen BT apps for a hardware company at the time. Was a real pain to go through all those projects and #ifdef the interface name for the iOS version. Very odd change since I’ve never seen Apple do anything like that before either.
They’ve changed Bluetooth chipsets a number of times over the years and each one has its own behaviors which makes writing one single BLE communication library that works for all versions very difficult. For instance, in the latest chipset, if you try to increase throughput by using a mixture of ble characteristic writes with and without response, you can very easily end up in a deadlock situation. It appears the hardware buffer just drops ble packets including those with response if full (which appears to hold 5 packets in the latest 2019 MacBook Pro). Dropping without response packets is fine since they’re expected to be unreliable (and you can build a reliable protocol on top) but they drop the write with response packet which the firmware blocks forever on (you can see this pretty clearly when using a ble packet logger). There’s no timeout and all subsequent packets are queued and never sent. Reliable writes should never be dropped!
Every new MacOS/iOS release is a worrying event. Testing the betas which are super unstable increases the tension because you never know if they’ll fix certain breaking changes. Up until the latest beta, our app did not work on iOS or MacOS until they rolled back some ATS hardening because they didn’t like the certificate pinning style we did of manually evaluating trust (which worked countless versions back).
It's not horrible, but UINavigationController is quite infamous for changing internally with each release and behaving strangely with apps until you utter the right incantation to make it work right.
Airplay. Airplay has had several significant behavioural changes over the past five years, some of which still aren't even documented.
Airplay 2 wasn't so much a functionality release so much as throwing out a lot of technical debt.
Other than that, I wish that Apple did another Snow Leopard and focused for one year purely on fixing bugs in macos x instead of introducing new features.
As for API sets, SDKs and third-party app compatibility, they could still be tied to yearly milestones, e.g. "macOS 2020 January", so there would be no breaking changes for apps which advertise compatibility with that, at least until 2021.
Isn't that kinda what Windows 10 does now?
Though if quality control is bad, rolling updates means many broken updates spread over the year instead of an optional huge broken update every October. Right now I'm on Mojave, works well enough, and I can wait until next summer to update to Catalina, when hopefully the major bugs have been ironed out.
Snow Leopard also introduced major new features, like Quicktime X and the App Store. It wasn't quite what people seem to think it is now, 10 years later.
It does not explain why the latest stuff is so buggy.
Is Catalina that much more complex than, say, Mavericks? Are managers playing deadline chicken more?
I don't see evidence for this.
This release something is different, which either vastly exacerbates the issues listed, or causes other problems.
...I am interested in what the root cause of it is, but this is just a list of symptoms, and perhaps the output of the issues listed by the OP without whatever the magical Q/A process that historically somehow got things across the line in the end.
And then a few point releases later and it's all forgotten. And then the next .0 release arrives and the blog posts reappear.
I've run and tested every release going back to 2001 and it's been a while since a macOS release has been this buggy and caused serious data loss in some cases.
So even for .0 release, this has been pretty bad.
If you think this is what a bad OS looks like, you should try that.
Melted.
It eventually was very solid and is well-regraded today. But yeah, it’s a great example of the risk of the OSX.0 release.
Personally I try to wait until version ~4 of anything Apple. I’ve been very happy following this strategy.
It amazes and frustrates me to see people get all shocked about when I already knew this about Apple even before I was a customer. Fifteen years ago.
Nothing. Has. Changed.
Nothing.
At some point you need to blame yourself for being taken in again. It’s “fool me twice”, not “fool me eight times”
I can understand not developing new features for Safari 12, but speaking of regressions, why would you go break things that used to work a week ago?
You don't; Safari 13 runs on macOS Mojave (and macOS High Sierra, if you're still using that).
I do (I won't upgrade past High Sierra on an older iMac as it breaks text rendering on it's non-retina screen so badly).
https://www.howtogeek.com/358596/how-to-fix-blurry-fonts-on-...
at this point, i don't think you even have to do that terminal thing anymore; you can just enable it in settings.
You also have to disable and re-enable it during the Catalina install or it really messes things up.
> For some earlier versions of macOS, Safari might also be available separately from the Updates tab of the App Store.
Is that a message Github have put out, or have they accidently rolled out a new feature that has a bug in Safari 12? That seems more likely to me. Github's browser support is usually very good, and it'd be incredibly disappointing if they've broken something intentionally.
Best guess: they removed a polyfill somewhere.
Apple has very waterfall cycle. Everything is planned year after year to be released for the September event. When the deadline approach teams realized that are behind and they need to overwork. And when people get tired and under pressure, they usually introduce even more bugs.
The article also nails the solution: a more Agile workflow. But it ain't gonna happen: "Apple could address this scheduling problem by not packing so many features into each release, but that’s just not the company culture."
Android OS releases do not get nearly as much fanfare because a lot of core functionality is decoupled from the OS: app store(s), mail clients, browsers, todo lists, even the text messaging apps and some security frameworks.
Which of course is exactly why Apple keeps everything in one big release. They want lots of press talking about the brand new features.
If you integrate the apps directly into the OS then you can just say that no APIs exist, those are just features of the operating system itself.
Non-breaking API additions and userspace features which do not impact API can be rolled out throughout the year though. There are also changes to private API throughout the year since the Apple apps using them are distributed with that operating system release.
Generally, API grow up as private API that get adopted by other Apple apps, then may get promoted to public once they are stable and maintainable.
IMHO, the big issue with iOS 13 and Catalina this year was that there were several huge developer features and internal system refactoring which were maturing during beta. This slows down everyone who is dependent upon those features. The solution there is to require public API to have a higher level of maturity before that beta 1 release.
I disagree that Apple is waterfall, because their release dates are fixed, and they will change what will be delivered to make that date. I don't know if a twice annual major feature releases (and corresponding WWDC summer and WWDC winter) fixes anything, or if it just makes the life of third party developers harder.
You can't delay a new iPhone release because it's imperfect. They make phones to make money, and they are very good at it.
The real problem is that Apple needs to loosen the secrecy between engineering teams, as there's no good way to tell if your new Safari feature breaks something in System Preferences because the System Preferences developers are in another building and aren't under the right NDA to learn about your new Safari feature.
I never install Apple's newer OS'es because I have a lot of development related stuff setup on my machines and wouldn't want them to break post an update. But so far, this lag in my update schedule has served me really well for years now and looks like this won't be changing anytime soon for me, either.
After 6 months into the new version of iOS and MacOS, there is a lot less attention to fix problem in the previous version of the OS. It is even worse when it comes to firmware problems on older hardware.
If you have a 2+ year old Apple device you need to hope that all the security bugs on your hardware are also in the latest software or hardware, otherwise it may just never be fixed.
I work for a non-tech similarly big company that uses a lot of software (that we make ourselves as well as integrating vendors) and our processes and quality are even worse than Apple and Google.
But as an iOS dev I would happy if at least Xcode was built and tested properly...
It seems to work better in Safari than Whatsapp.
Bloody annoying.
The cursor will stay in the same place if you move your finger down some so it's not obscuring the selection; on a multi-line input, the first line's selection area extends down a half an inch or so, with all the lower lines displaced by a similar amount.
It's not too bad when you get used to it though I still miss the glass when I'm using my phone or my smaller iPad.
Most apps send analytics up already if you are not already aware, most don't ask for your permission to do so.
The difficulty is in identifying, in advance, what’s an unusual but recoverable situation, and what’s a bad bug.
[0] https://developer.apple.com/documentation/os/os_log_fault
99% of the macOS remain the same. The removal of 32bit Apps are long time coming. I just dont understand why it had so many problems.
Every MacOS upgrade has been a problem for a non-trivial number of users. It's much more likely that YOU didn't have a problem because you were new the platform and didn't have much stuff to migrate. If you just got a Mac in 2018 moving to Catalina is no problem at all. It will probably go flawlessly and the only issue you might is with Adobe software… but if you use Adobe software on any platform that's nothing new either.
Moving from PowerPC to X86 had a bunch of problems. Remember when they dropped Rosetta completely? Or when they dropped support for the first Intel Macs because they were 32-bit only that was a problem. Remember when they changed QuickTime? Or dropped AFP? How about dropping Firewire? Or how about the changes to Filevualt? Or when they integrated your Apple ID into the user login and then removed it? Or how about all those times you upgraded and iTunes stopped working and you had to reinstall it manually. Oh man, how about that total abandonment of OS X Server.
Apple has NEVER been good about upgrades. Ever. You buy an Apple device and it's good for that point in time. In 2-3 years when the warranty is up and the platform evolves it's anyone's guess as to what will happen.
In case you were wondering why 13.1 got rolled out so fast. Snark aside, this annoys me because the message is, "haha, didn't find it fast enough, and now we don't have to fix it." And you jackasses think this clown shoes attitude should be enshrined on a t-shirt?
...that made me mostly stop filing radars for older issues.
That's the last thing I expected to know about such a big company.
Considering the secrecy infra-team I would expect almost no integration tests.
That also means that Apple products are pretty bad when it come to security contrary to what Apple's marketing wants you to believe.
Over-optimization of existing processes, what Mr Cook made his name doing, seem to have gone a bridge too far.
Time to go back to making cool new products and not squeezing every last ounce of blood out of existing ones. And no, starting a TV production division doesn't count.
But is each release actually worse than the last?
My guess is, not really, though the perception persists for a couple main reasons:
(1) For a certain subset of people, the last release really was worse than ever before. New releases have new bugs, and those bugs will affect a certain subset of people that isn't necessarily the same as the bug from the last release. Those people complain (justifiably, I think) though of course people don't create a lot of posts to describe the problems they aren't having.
(2) We all naturally forget about the annoyances of years past while focusing on the current annoyances. (Generally, that is.)
For example, when I upgraded from Mojave to Catalina, an 'Moved Files' directory appeared that contained some files (that was once) in /usr/local/. I don't remember such directory appearing after an macOS update, and I've had many friends (that aren't really technical) appear that to them. There were lots of new applications (like Music.app and Podcasts.app), and data migration between internal databases weren't perfect.
I've installed Catalina two times, first by upgrading from Mojave and second a clean re-install. When I upgraded Mojave, I found too many bugs that I was worrying about data-loss, which lead to a full backup (I do backups regularly) and a clean re-install. (Admittedly, this was my first clean reinstall for a major macOS update) I clean-installed Catalina and manually restored all of my files from the backup, and except for some minor bugs I'm good.
It's a pity that updates aren't seamless, but if there's anyone having trouble with various Catalina bugs, (while Apple updates it's imperfect macOS updater) I would recommend a full clean re-install for macOS Catalina.
This is a consequence of the read-only root filesystem in Catalina: https://support.apple.com/en-us/HT210650
Even with SIP disabled you can't do shit to that volume until you remount rw (at least, this was reported to work in betas, haven't seen anyone test the shipped OS).
Actually, that's not the case, b.c. /usr/local/ isn't included in the read-only file system.
But, just like with police crime reporting, there can be an effect where metrics are massaged or are reported differently. With Apple, I think the issue is that crashes are avoided by design or by nature of growing complexity, which means that metrics will continually be going down, even if user-facing issues go up. An example being that a failed sync does not crash.
Apple has attempted to get ahead of this, recently, with the new Feedback Assistant allowing beta users to grab and report sysdiagnoses, but there's still a lot of work to do. I really appreciate the point the article makes:
> Besides the fact that bugs are expensive, both in support costs and engineer time, they’re starting to become a public relations concern.
Apple would be wise to heed this, instead of continuing to blindly trust metrics.
The moment your money parted with you, your importance ended. This was visible, among other things, in gutting departments that kept Apple alive when literally everyone else had better hw & sw - people who did long-term accounts with for example government customers, specific market areas, etc.
This tells you everything you need to know about the poor state of Apple's software. A large, untested code base that's been in development for years and years is going to reach a maximum point of complexity where the cost of adding new features exceeds the business value. The ROI turns upside down. That's when your technical debt turns into a bankruptcy and your software is kaput. It's quite conceivable that Mac OS, which is built on top of NeXTStep OS which dates back to the mid-80's, is reaching this state.
It'd be hard to know unless you worked there. It's just a wild theory, I might be wrong :)
I don’t think ”for a resource constrained company” makes a difference there.
That’s good, because I have a hard time thinking of Apple as resource constrained.
All I'm really saying is as rich as Apple is I don't think hiring more engineers is as easy as just deciding to hire more.
When I see a weird behavior I always wonder if it is a Apple's bug or a bug introduced by something trying to exploit a vulnerability.
I submitted the bug yesterday.
Almost all settings are at their recommended defaults, there is no third-party stuff that modifies system behavior, and I mostly only use Apple's own apps and services for stuff like music, books, cloud, mail etc.
And boy yes there are bugs. Not outright crashing/rebooting, but bugs there are.
I've been using macOS since Lion and I can't recall such a dismal release as Catalina's.
Just now, I had taken some screenshots in a game. One of the screenshots insisted on sitting outside the Screenshots stack for some reason (Stacks automatically collapse similar items on the desktop.)
When you open a book in Books.app, then view a different Desktop Space, the Books window automatically jumps to that space, even without the "Show on All Desktops" option.
Activity Monitor column widths randomly grow towards infinity.
Display Accessibility options randomly stop taking effect until relogging.
Widgets randomly rearrange themselves in the Notification Center.
Music/TV/Podcasts/App Store sometimes show no content, just blank views.
On the developer side, many bugs and missing documentation for SwiftUI.
I don't have the energy to type them all out here again after writing their bug reports.
If that doesn't happen to anyone else, I wonder if it's my iCloud-stored settings for Books.app
Reboot resolves the issue.
The point I’m making is that there is an awful lot of looking back with rose tinted glasses going on. It happens every time there is a new release. Thing is, every OS seems to suffer this, not just Apple.
From talking to a few friends who work at Apple, I believe the article when it says they're not too big on automated testing, which is a shame.
At any rate, nothing in there seems new, as in, that it would explain why this year's releases are particularly more buggy than in any previous year. Assuming that is actually the case; I imagine every year's releases are pretty buggy, but after the .1 release comes out, everyone forgets until the next year.
So just don't. What is your employer going to do? Fire you? Good, you don't want to work there anyway. And especially if you work at Apple, it is going to be easy to find a new job.
Refuse to ship crap. Refuse to work in insane conditions. If you don't it is not your employer's fault. It is yours. (I'm saying that in the context of highly qualified jobs, like engineering -- it does not apply to other situations where the employer has all the power and people are easily replaceable and sometimes have a hard time to find a job.)
Frustrating that this stuff is so finicky. It seems as simple as a USB keyboard which seem to generally work everywhere so why is it so hard to make work and keep it working.
I wonder if that is a reason there isn’t a stream of x.1 updates every few weeks as things are fixed?
These beta updates can go through a couple iterations before being released to the public, which is why it seems like there’s a long delay.
Let third party developer use those building blocks and add this magic!
Unlike GNU/Linux, only Apple's in-company devs get to work on the proprietary code base, to build features based on a small number of decision-makers, and test them before release. Questionable decisions in the core don't get questioned by a wider community of devs before they get released to the public.
In Jobs' days, this approach might have worked better due to (maybe smaller code base and) higher quality and dedication of their internal dev teams.
Open-sourcing macOS maybe wishful thinking, but it's not an unreasonable idea, considering it's not their main money-maker (anymore?). In my opinion, this would vastly improve its future development, active participation by motivated community, and quality control.
Maybe it’s time for the community to look deeper into formal methods.
This can be turned off in the preferences.
The battery level is reported as fine and everything works like normal from 100% to about 35%. At about 35% (could be 36 or 32 or whatever any given time--I can't see that the exact percentage matters), the phone crashes to powered off state. If I try to start it up with the power button, I get the "plug this in" indicator. If I start it using the hard reset method, then it'll power back up normally, and the battery will always report as 10% at this stage. It can stay like this for a few minutes up to a couple of hours, but it'll inevitably crash again if I don't plug it in. After it crashes, I can do a hard reset again and it'll come back up and the battery will often show something percentage in the 20's. Often if I try to use any app in this cycle, that'll cause a crash. If I do plug it in after a second crash, then suddenly the battery is reporting at maybe 23% again. Like, WTF?
It only started happening since iOS 13.
I would be happy if my iphone only lost most of its battery life. :)