I'm wondering what an 'objective take' on such a complex topic would be. My guess (& I'm happy to admit it's no more than that) is that subjective takes is all we've got.
Nothing in that article seemed surprising or especially odd. Most software development shops operate that way, especially the bits about management and feature culling before deadlines.
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.
I’ve been super annoyed at some bugs in iOS Safari. In particular, double tap to zoom on web pages is completely broken. It’s a really old feature that just suddenly stopped working in the new iOS release.
Yep just noticed this today. Why remove this feature ? Did people complain about this during beta and Apple ignore it. Although zooming in by pinching and then double tapping reverts to original size which is nowhere near as useful. Fingers crossed for a point release that brings this back.
It's actually still around, however on some pages Safari will go into some sort of weird state where scrolling is slightly broken (you can't overscroll and have the page bounce back is the indicator that you're in the broken state). When you're in that state, double tapping to zoom doesn't work either. I find that I mostly encounter this bug on Reddit.
That reminds me, during iOS 8, the Safari back button was broken for VoiceOver users. For half a year. They fixed it a few months before the next release :-(
I can only surmise (hope) that their resources are diverted towards Something Big. Could be ARM macOS and/or AR glasses. Not that this excuses the bugginess of their current core products.
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.
They seem to have at least a fair bit of effort devoted to reversing earlier maligned decisions, given the new Mac Pro, thicker iPhones with larger batteries, and the rumors about ditching butterfly switches on the laptops.
With their culture, something big will be worked on by a relatively small team in total secrecy. The team, in name of secrecy, will repeat the same mistakes that some other teams are fixing elsewhere.
Secrecy inside a company may help a team to focus on only one thing but it also prevents people from understanding the "big picture" and unless there is a special process for "sharing lessons learned", people repeats the same mistakes over and over. It is a little sad.
>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.
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 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.
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.
I'm on the second-latest MacBook Pro. I completely erased my disk and installed a fresh copy of Catalina when it was released. It's been patched with the post-release update.
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.
My earlier comment about files disappearing from Music.app: [0]
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.
The public beta, code named Kodiak was awful. As were, 10.0 (Cheetah), 10.1 (Puma), 10.2 (Jaguar) and 10.3 (Panther). 10.4 (Tiger) was initially terrible, but did improve massively. 10.5 (Lion) was comparatively awful and quite jarring with it’s nit insignificant UI overhaul...
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.
It’s simpler than all that. They’re buggy because Apple inexplicably decided they need to ship a new OS every year rather than when the features are ready. Reap what you sow.
I am also finding text selection in iOS 13 hit/miss. I either cannot activate the text selection or I cannot select without the cursor jumping all over the place. Also, I miss the magnifying glass for text selection. Did Apple remove that?
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.
Since the iOS 13 update, I'd had this happen almost daily:
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. :)
Every .0 release for iOS and OSX has been buggy. Every single one.
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.
May I be Goldilocks? I’ve used basically every iOS beta. Beta 1 is always AWFUL. Then it gets better and better. iOS 13 is probably the worst, but only incrementally so. It’s hardly worth having a fuss.
I must be some kind of unicorn then. I used iOS 13 betas since beta 1 and never encountered any problems. In contrast, I recall having all sorts of problems with iOS 9, 10, and either 11 or 12 (but not both). In one of these other betas, GPS was effectively completely broken on all AT&T iPhone X for the two week beta.
My very first Mac was the PowerBook G4, and I waited over a month to buy it even though there was a game I wanted to play because they hadn’t hit the 0.2 release of the OS.
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”
This was also my experience. I am always perplexed by these pearl-clutching post-Jobs threads, which also pop up on the hardware side as if no Mac hardware had thermal issues or other hardware faults while Jobs was at the helm.
As a VoiceOver user, I can provide a lesser known perspective. I've gotten used to waiting several months until I actually install a new major release. With the exception of iOS 12, basically all releases since iOS 5 were quite buggy when it comes to apples screen reader VoiceOver. Luckily, applevis.com these days publishes a list of known problems with accessibility on iOS a few days before every major release. So those of us that depend on lesser mainstream features feel the bad release quality already since quite a long time. Still, with all the hickups that Apple has during new releases, their accessibility stack is still lightyears before Android.
That’s what that means, “before” being the opposite of “behind”. It’s just not as common a construction in most English locales as it used to be. It does still get more restricted usage in this sense: when considering the future, “this is what lies before us” wouldn’t sound out of place.
Out of this context, I would assume that "before" is being used as a location instead of a temporal reference. I.e. "this" referring to some kind of object; "the food was laid before us".
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.
The way I've heard one company deal with noticing non-crashing bugs is to treat warning logs as 'crashes' with backtrace snapshots and upload them as specially tagged non-fatal crashes. Might help apple see if clients are having specific icloud issues.
This seems like a really good idea to me. Is it possible to do in a way that preserves privacy and doesn’t basically become a hidden “telemetry” system?
Opt-in analytics fail to account for people who turn them off because they don't like opt-in analytics. So you might be getting more data, but it might not necessarily be any more representative.
Apple has been doing exactly this for many years. [0] It appears to have become public API 3 years ago, but that says nothing about when it was used internally.
The difficulty is in identifying, in advance, what’s an unusual but recoverable situation, and what’s a bad bug.
After doing some iOS/Mac development, I'd say some bugginiess is caused by changing APIs and behaviors inflicted by Apple, expected to be absorbed/dealt with by developers. They mercilessly do this with every release and no doubt that affects their internal projects. Also, xcode has gone the way of iTunes and ObjC was always a huge pain. It's a really hostile environment to develop in, where you're having to play catch up all the time.
Wow. My experience is opposite. Been in iOS development for over 10 years already, little less for Android.
App made for iOS still works with very minor adjustments, while on Android it’s a mess. We was forced to change build system several times, breaking changes and just silly API renames, service depreciations, generations of push services, forcing firebase and AndroidX, change of permission model, of concurrency model.
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.
Yes. Thing is this are de-facto only two platforms alive. Yes. Mobile (and desktop) developers life suck. But someone has to write all that software.
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.
It is. With microsoft it's another problem: too much technologies. All are OK-is, but ultimately deprecated. MFC, WinForms, WPF, Silverlight, you name it. But, to be clear, I think Visual Studio has close 2nd place in desktop development experience after Xcode.
Also, IMO, VS is way better IDE that Xcode for generic C++ projects.
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.
Lol this one was painful. And they also moved where the peripheral identifier is located in the object hierarchy to a superclass CBPeer which was wrapped in available MacOS 13+. So all my existing code that referenced the identifier on the CBPeripheral where it was prior to MacOS 13 needed warning suppression since identifier has been available through the object hierarchy on peripheral since forever
I support a MacOS app that connects to hardware devices via Bluetooth low energy and/or USB back to 10.7. First off, Apple makes it damn near impossible to test old versions, but we have every OS in a parallels VM and have copies. Every single release introduces breaking changes. We also bundle a version of our app on the hardware device and this is a big deal for us when an old version stops running on a new machine/OS. The way they’ve changed ATS over the years has broken across major versions.
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).
> Honestly, I can’t even name single such change for iOS.
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.
iOS 13 has been pretty much flawless for me. However, I am waiting to update to Catalina until 2020 because support for 32 bit apps and OpenGL has been pulled.
I made a mistake of installing Catalina. Since the day the system is acting up weird. Apart from rejecting 32-bits apps, Catalina is also having memory kind of issues. After working for a few hours things start getting weird, chrome's extensions start crashing, if I try to open a new tab it does not let me load the page. I also start getting messages "X Application can not be opened" where X is ANY application I wish to open. The issue got a bit better after a recent 1 GB update but the main problem persists. I am seriously considering to downgrade to Mojave.
I'm still on High Sierra on my 2015 Macbook Pro. I haven't upgraded my OS nor my machine and pretty happy with it (I only accept updates within my OS version itself) . On my home machine, I do use Mojave, which by itself is quite buggy and I'm waiting for some more fixes before I upgrade my Macbook Pro to Mojave as well.
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.
The "Regressions Get Fixed. Old Bugs Get Ignored." thought does not help your strategy.
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.
Google is just as bad at this and have many of the same issues of too many things being built at the same time. Googlers often lament that fixing bugs is never a priority to new features which is pretty much Apple as well. Perhaps too much complex technology is hard to do.
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...
Same here. The "You need a newer Xcode to compile this" pops up more and more often though (e.g. with vulkan stuff), so I guess I'll have to upgrade soon... probably to Mojave.
The author used to work at Apple, but no longer does, so they probably can’t comment accurately on anything super recent. I agree with you, it doesn’t really deliver on the title, but I still found it an interesting read. But yeah, a more accurate title would be something like “common causes of quality issues in Apple software.”
I agree, the question is more: if that’s the culture historically, and accurately how did it ever work?
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.
I refuse to install iOS 13.0 because it's so buggy, and refuse to install Catalina because all it does is take away features rather than adding value. They can't seem to stop to fix what's already broken, so they add a few things, break a few more and remove some I use and say "the emperor's new clothes are awesome."
I have a theory that this year tons of stuff was rewritten in Swift, because with the lockdown of the ABI it's now possible to write libraries in Swift. This might be why this year is a bumper crop of bugs.
It makes very little sense for a resource constrained company to rewrite stuff that just works in Swift especially when it has a lot of low-level code. What they do sometimes is adding a Swift-friendly API layer around the Objective-C(++) code. Newer libraries that are not too low-level oriented might get written in Swift nowadays.
I wonder if that is true in reality. I know at one company I interviewed maybe 80 people. Of those I think 3 or 4 were hired. The point being it was hard to find qualified people. You could argue they should offer more money and they'd get more applicants. Say they offered 4x what they are offering now. They'd likely just end up with a bidding war with the other rich tech companies and so in the end nothing would happen (if all the companies raise their salaries then it seems arguable that there'd be little affect on applicants).
Other solutions might be longer term like investing in education or hiring less experienced people and training. Others might be opening more remote offices hoping to find more talent in other locations.
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.
Tangentially related: GitHub has already dropped support for Mojave. The whole site is now broken in Safari 12 because it’s no longer the “current” version of the browser. Well, it is if you run Mojave, as you need to upgrade the entire system to get Safari 13.
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?
i had this problem as well, the first time i tried to upgrade to mojave. but at some point, apple made it possible to re-enable sub-pixel anti-aliasing.
Safari 13 is supported on Mojave. You can install it in System Preferences->Software Updates (there's a link that says "more updates" or "other updates" or something along those lines).
Thanks you, I did not know this. I looked into it a few days ago and Apple’s support page[1] seemed to tell me pretty clearly that I had to upgrade. I know see the small print that says:
> For some earlier versions of macOS, Safari might also be available separately from the Updates tab of the App Store.
I suppose no-one is reading this thread anymore, but for the record I was now able to check, and I do not have an option to download Safari, neither in the App Store nor after clicking the secret link in System Preferences.
GitHub has already dropped support for Mojave. The whole site is now broken in Safari 12 because it’s no longer the “current” version of the browser.
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.
I did not look into the details. There is a warning at the top of the page, and stuff that has worked before, like previewing markdown in comments, is broken.
Sorry, what is complete disinformation? I suppose I was wrong to say it isn’t possible to update to Safari 13 without updating the OS as people say they have done it. But I genuinely don’t have the option, after checking everywhere I’ve been instructed to.
When I interviewed at Apple last year, they emphasized their use of various robotic contraptions for end-to-end testing over unit tests. One engineer remarked that 20% test coverage was considered on the high end for his team.
They should have more automated tests. But considering this article does not surprise me at all.
That also mean probably almost no exploration/fuzzy tests.
The kernel may be one of the few exceptions.
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.
Considering that they own the entire stack, I honestly think that one of the unofficial integration tests for lower-level components is when the apps sitting on fail to work.
tvOS 13 seems to also be buggy. After the update I can no longer wake it via HDMI/CEC. Once I wake it some other (inconvenient) way then HDMI/CEC control works. Wake up was working on tvOS 12
strange, I haven't had that issue. I have 4 devices connected to the TV; A Mac Mini (running Ubuntu), An Apple TV, a PS4, and a Switch. If I turn any one device on it will wake up the TV if off and eventually switch to that device's input. But I haven't had any device switch the input to the TV out of order that I remember. I wonder what the issue is. My Apple TV is only used for 2 things, Kodi and Amazon Prime. I wonder if it's a particular app? I'm using the Apple TV 4k (not sure if that's the newest model or if there is another since)
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 did not work for Apple but this article describes exactly what I was thinking.
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."
They could simply decouple the apps from the OS, like Android. Safari and Mail.app do not need to be tied to OS releases.
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.
I think you're right about the decoupling. But I don't think they do it this way for press reasons to be honest. Apple is all about integration, And it makes sense that this applies to Apps/OS as it does to OS/Hardware. Also, most buzz is generated by OS level changes (Dark mode etc.).
I wonder if there's some anti-trust consideration to it. If Apple were able to update all their apps separately from the OS that would mean they had accessible APIs to do it. People would complain a lot more loudly about Apple blocking replacement functionality and Apple wouldn't want to allow a replacement for, eg, the messages app.
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.
Apple operating systems are on a semantic versioning system with regards to API. The idea is that API only break on the major version update which is released each year (ignoring that a the OS X version has a "10" in front of it).
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.
"Agile" is only about software and it doesn't always work even for tiny projects. Apple's products are so much more than this. Distribution, marketing, manufacturing, support etc.
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.
Microsoft tried doing that with the bi-yearly Windows 10 feature updates, and now they are moving to a yearly release cycle because there were too many bugs getting into releases even with an army of "insiders" (although it should be an army of QA people that are in Redmond). They don't release major updates to system applications between releases either (The rewrite of Edge and WSL2 are planned for release 20H1).
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.
367 comments
[ 3.7 ms ] story [ 315 ms ] threadFrom 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.
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.
https://news.ycombinator.com/newsguidelines.html
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.
[0] https://news.ycombinator.com/item?id=21318159
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.
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.
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. :)
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”
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.
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
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.
I submitted the bug yesterday.
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 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.
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.
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.
1: https://support.apple.com/en-us/HT204416
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.
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.
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.
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.