Hacker News new | past | comments | ask | show | jobs | submit login

This article is missing the best part, that the new Xcode you have to use to build your app was released today at 11 AM, with a build number of ‘208. It was a really strange build in that it was missing components to build for Apple silicon: for that you need to use the old beta, which Apple has kept up on their website so you can juggle both. But that’s not all! Soon afterwards they changed the website saying the new Xcode was actually build ’209. Around this time people had finished downloading the update, which was slow because everyone was freaking out about getting their app ready in time and grabbing it at the same time, and they realized that Xcode wouldn’t let them upload their updates. So everyone thought that of course build ‘209 was the right thing to get so they hit the website again to download the file…except Apple doesn’t do checksums, obviously, they do a really slow verification thing that every iOS developer hates with a passion and gives no useful information. In this case manually running the checksums told everyone that while Apple had updated the version they claimed to be have on their website, everyone was still getting build 208 and this build could not be used to submit updates. Then, later in the afternoon, Apple flipped the switch to allow build ‘208 to submit updates (which now need to go through review…). But that’s not all! In the evening at around 7 people started getting a different Xcode, the actual build ‘209 they claimed there were distributing all along…and now every developer is stuck with the decision of whether they should pull their old binary they uploaded and recompile with build ‘209 (as there are many differences between the two, based on a diff -r) or wing it. Totally uncool, totally unnecessary. If anything the blog post is not strongly worded enough about how much of a affront this is to developers.

Edit: and guess what, if Apple didn’t have advance notice of this do you think their own build process could have handled it? I’d bet money on “no”. XBS takes hours itself to spin up a new build, and with the usual testing a validation you see even the fastest updates taking at least a day. Back in iOS 7 it took them two to get critical fixes out the door, and patching the unc0ver 0-day took like a week for reference.

> iOS developer hates with a passion and gives no useful information

That's typical Apple, they are allergic to technical info and error display, when things are not working, there's no way to know why.

All in the name of UI cleanliness and simplicity. Like how there's no way to manually trigger the firmware update for the AirPods. You just have to keep them plugged in next to your iPhone and ... wait ... until some magic pixie in Apple's cloud decides it's time to push the update to you.

Steve Jobs used to say it over and over again when criticized by angry developers[1] that their main focus will always be users instead of developers and that the latter will just have to suck it up if they want to get a piece of the lucrative Apple user base pie.

In comedic contrast, here's a sweaty Steve Balmer shouting "Developers!" for half a minute.[2]

Ah, the early 2000's, with Apple and Microsoft battling it out, what a time to be alive.



I watched the whole video of Jobs, and I enjoyed it and took something away from it. I also don't think that it applies to this conversation.

From Jobs's perspective here, App Store developers are also customers. So while he is talking about starting at the customers' perspective, rather than the engineers, I believe he's only talking about Apple engineers. 3rd party software devs that are building the Apple ecosystem are:

1. Paying for the privelege of being an Apple Developer

2. Paying Apple a portion of their own earnings.

3. Opting to develop for Apple, rather than other platforms

So if we are Apple developers, we are customers, and according to Jobs's philosophy laid out here, it's Apple's job to deliver value to us (as well as the actual end users).

It’s far worse than that I’m afraid, but that’s not really important.

AppStore was about enforcing expanded Human Interface Guidelines to ensure overall product quality while getting some money to the indie devs that had historically starved due to market fragmentation. The combination of overall user experience, apps and Tim Apple’s buying up all the manufacturing capacity in ChYna (to lockout competitors —a lesson they learned from the PC knock-off days) assured ..$2T!

Apple does deliver value - a huge market of higher paying buyers than Android.

That's their value. Not that their software releases will always be perfect.

None of you will stop making iOS apps over this.

Just because some value is delivered in the form of paying customers doesn't mean Apple (or any business) should stop thinking about other ways to deliver value to their customers (being developers in this case).

Full disclosure - I have developed many apps for iOS, but have never monetized them. I have used both Hybrid and native tech to do this. It has been probably 5 years since I've done Hybrid and about 15 months since I made a native app.

I don't think that they are - they've added numerous features to their hardware that software devs can interact with.

Honestly we just expect everything of everyone else and nothing of ourselves anymore. So they had some wonky version releases, like none of us on here have ever had issues like that before.

> App Store developers are also customers

I found the concept of monopsony to be quite interesting here.

> their main focus will always be users instead of developers and that the latter will just have to suck it up if they want to get a piece of the lucrative Apple user base pie

Developers are users as well. In the early days of computing, both terms were actually synonymous. If Apple designed the user interface of its programming environment so that the software developer cannot find out what went wrong and why, Apple deserves all the hatred it gets.

Also, this "lucrative Apple pie" is the only reason anyone even cares about it. If money is removed from the equation, I have no doubt developers would rather invest their time on a Linux system that doesn't insult their intelligence.

Yeah, I guess some people decided that technical errors helping you to find what is going on are "ugly".

Mac/iOS error: App just disappears

Android error: App displays error and disappears

Windows error: App displays error, possibly writes to error log, dumps memory to disk, and suggests you visit a URL that provides no useful information.

None of them are great, but at least Windows gives you something to search for.

EDIT: Formatting

Windows even offers to resolve the issue which, as I understand it, has never in the history of time resolved anything.

In Windows 8.1, if the Sound service crashes, clicking on the sound icon with an (X) on it will bring up a UAC prompt. Going through that will get the "resolve the issue" prompt to restart the Sound service, which will fix the issue.

Not having the problem in the first place would be better. Automatically solving the problem would be great! But, for once ever, I can safely say that this does sometimes fix problems.

Why use windows 8.1 today? Windows 10 was a free upgrade and a major improvement.

Windows 8.1 works, uses significantly less RAM, lets you disable the telemetry, lets you create new users without a Microsoft account, doesn't move things around all the time, has a non-Chromium-based browser built into it, doesn't automatically install Metro apps…

The only real downsides versus Windows 10 are the Start Screen and the conhost implementation, but Classic Shell and Powershell fix both of those.

The only time it did something for me was when the network diagnostic tool requested a new dhcp lease because I “did not have Internet access.”

On the Mac you get a crash dialog with a report button that can show a detailed crash report with a stack trace. Much more useful than Windows errors. Like I used to have a series of Safari crashes where the stack trace clearly showed it was a Unicode bug

Crash logs are available on iOS in the settings.

Yeah agree, and I'd say it's better to hide them away in settings because most users have no idea what those error messages mean.

For example my auntie calling me in tears because windows "had performed an illegal operation" (verbatim error message text) and she was terrified she was going to prison.

Stongly disagree, as much as this example is hilarious and toching, it really isn't typical.

Many non-dev folks around me have resolved windows errors by typing the error message or code into google - if they are spesific and well written, they enable you to do that!

Strongly agree with you. When Apple things fails to 'just work' it is a nightmare. I used to have this issue for downloading MacOS updates. My internet wasn't too fast and it would get interrupted and restart from zero. Who can't do download resume in the last 10 years, I would assume only apple. My office network was faster and we also had those cache server, it worked for everyone except me. MacOS provided zero hint and it 'just failed to work'. Office internet was fast enough to download in multi MB/s yet Apple update weeks after released (so I don't think there was rush and it was US night) would have speeds 50 KB/s to < 500 KB/s and of course you can't choose a mirror or whatever cause it 's meant to 'just work'.

This is just one example that I vividly recall. The simplest of operation downloading of an update, only apple can make it as big a nightmare as it was. Now they do a lot of things fabulously but when the fail they just fall on their face and ignore it or they would fail where I can't even imagine how to fail this bad.

The latest blunder (again download), my iPhone lost it's wifi after a fall and wow! behold you can't download an update over cellular. Apple will make you save your money by not using your expensive cellular data after all it's so much more expensive than your $800 phone.

A lot of people seemingly don't have the patience or knowledge to do this, unfortunately :( I know people sneer about "computer classes", but I think it would be very useful to have people learn to try to solve their problems by themselves.

Windows has been getting worse and worse at this as it increasingly follows the bone-headed trends started by Apple and shitty web designers.

Seems about the same as always. Either Windows is working, or you get a blue screen that says ":( Error code: WE_AUTO_INSTALLED_A_SHITTY_DRIVER_FOR_HARDWARE_YOU_DONT_CARE_ABOUT_AND_IT_OVERWROTE_THE_OS'S_MEMORY"

Then you google it and the first 300 results say you need to install their malware to fix the problem. Never change, Internet... never change.

On Android, if you tap the button to report the error, it will show you a stack trace and other information that are often enough to diagnose crashes in third party apps.

macOS has an option to show detailed crash reports, which can be more detailed than Windows' crash alerts, along with a field for describing what you were doing or attempting to do.

See TinkerTool for an easy way to enable such options:


Over here on Windows side not everything is "Developers!" as it should be though.

True, but I can still run my program that I compiled back in 1999.

you also have largely the same OS and hardware architecture that you did in 1999

You make it sound like it's a bad thing.

My company can build and maintain a really big program with a minimal number of developers because Windows is so backwards-compatible. No need to rebuild everything every 3 years because APIs changed or some framework got deprecated. It's just running and running and running on our customer's hardware.

Microsoft takes backward-compatibility as seriously as Apple takes product aesthetics.

I read a good article years ago about microsoft and philosophical struggles with backwards compatibility.

Here was an interesting bit:

> I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.


I wish there was a bit more of that on the Win32/UWP reboot (Project Reunion, WinUI 3), .NET unification, C++/CX replacement.

I think Microsoft is at the point we're the old guard is leaving and the new hip kids take over who mostly only plugged libraries together because they never needed to write assembly.

Maybe the knowledge of how to make backwards compatible systems is even slowly leaving with the old guard and they just will never know how to make it work ever again.

A colleague of mine is very active in Microsoft's GitHub repos and is complaining daily that no employee there seems to know how their own software works. He routinely needs to explain Microsoft employees that their ideas will not work because of $generic_windows_api_behavior.

Yeah these whipper snappers can't possibly pick up c and assembly. Only boomers and gen x can do that.

Knowledge can be lost. There is a stark difference between using a tool and mastering a tool. It's even harder for theoretical knowledge. Don't use it, lose it.

Look at the US space program for example. It took them 12 years from the first man in space to go to the moon. Nowadays Space X, Blue Origin etc. seem to have to re-learn everthing and edge themselves slowly towards launching manned missions. They very likely have the books about space flight but not much experience.

I'm not saying that young people don't know assembly and C. What I'm saying is that most younger people don't need assembly and C, so they are a lot less proficient in it. Hardware has become so fast, it doesn't matter that JavaScript is 20x times slower, so people nowadays write entire desktop programs in JavaScript that are slow on not-cutting-edge hardware and have bad OS integration.

No offense, but I can still "roll my own" desktop with Linux and Windows, replacing components out as needed. I understand that this sounds like some technical hurdle to many, but it also feels like a cause to the rising hardware illiteracy of the average citizen.

I might be conflating causation and correlation, admittedly. I've always enjoyed the hardware aspect of computers, so it's hard to look at this sort of thing completely objectively.

Modern Linux kernels can also run binaries compiled in the 90s. Apple just doesn't care.

Sure, if they're statically compiled with no non-kernel dependencies whatsoever. Once Linux userspace gets involved it is a shitshow.

Right. Most Linux user space software actually subscribes to the Apple philosophy of breaking everything in the name of progress. From what I've read, even GNU rejects binary compatibility concerns because to do otherwise would help proprietary software, sometimes resulting in breakages in vital stuff like glibc.

> statically compiled with no non-kernel dependencies whatsoever

I'd love that. Would be great if we could even get rid of the C library. Compilers should emit Linux system call code directly.

This makes fixable library bugs more or less impossible to fix.

Look at how many DLLs get updated in a typical windows security update.

Most of those would have been permanent security vulnerabilities if everything was statically linked.

That shouldn't happen assuming the Linux distribution maintainers update everything whenever a library gets fixed. I agree that dynamic linking produces significantly less work for maintainers.

You know, apple did a really good job on this in the past - with rosetta to emulate PPC when the first intel macs came out.

It's too bad they just don't make VM stuff available, and make it available for a long time.

Yes it might be only nostalgia, but why don't they have something simple like dosbox for macos that would run mac classic apps or recent stuff.

I guess you just have to keep your old systems around

Lol what hardware do you think apple uses? ARM and Intel/AMD are all ancient designs with improvements bolted on.

Macs only just work, don't expect much else.

Until they don't, or put your display to eternal sleep with no way to ever wake up, or...

Well, I think you might be misunderstanding this a bit. What happens is that you download a compressed application and that is signed by Apple to prevent tampering, I assume to prevent XcodeGhost-like malware. The issue is that 1. this only tells you that the file you have came from Apple but not what it contains and 2. Xcode is massive and downloading it, verifying it and then uncompressing it to run it and check its build number takes ages: you could have a gigabit connection and a 18-core iMac Pro and you’re still looking at half an hour from opening the developer downloads site to being able to check to see what you just downloaded. When Apple messes up their labeling/caching/whatever you can see why a SHA would be extremely useful, as I know people who repeated this process multiple times through the day in hopes of getting the build Apple claimed they should have. (Eventually people started spreading hashes, not verifying the archive, and sharing it around via file hosting sites like Dropbox, which totally defeats the point of all of these things, so good job Apple on making this process so annoying that people will just jump through the hoops to bypass it.)

The last beta was 28Gb, nearly double the size of version 11.

What? Are delta updates not a thing?

Not for beta releases of Xcode, since they’re only provided through the developer site (not the App Store) and you have to download a full installer every single time.

That's some lazy bullshit.

Not an installer, but a compressed (and signed) archive of the thing.

That’s bizarre. They provide delta OTA updates for iOS betas...

Xcode betas just don't go through software update for whatever reason. Not sure why.

Question - why are apple downloads slow - I don't get it.

I've downloaded lots of stuff from google. Its rarely slow.

I use cloudfront on AWS - also rarely slow.

Apple - often slow. They have billions - is there something wrong with their caching layer at ISPs etc?

They're actually usually pretty decent, back when I had a gigabit connection I would regularly saturate it with Xcode or macOS or whatever beta Apple had the for the week. The issue is that when they're rushing and developers are rushing they just don't handle the load well at all–right after presentation when new things get posted is usually a bad time :/ Perhaps they just don't scale very well.

That is what I mean. When netflix releases a popular new show - it basically still streams etc. The bandwidth must still be nuts.

Apple falls over after big events for developers etc. Is there not a cashing layer locally at ISP level - ie, push '209 out in advance to ISP cache, then everyone can gobble it up when you announce and link on your website?

It really depends on region. I have seen in US, most of the downloads are fast as that is their main region I guess. As the network latency does not matter when downloading big files, I use that VPN and get much better speed than using local CDN.

Mac mini's don't have fast NICs, and they're probably still unable to use the current Mac Pros for production reasons. The old Mac Pros keep rolling off the rack.

Apple is likely not using Mac hardware for the majority of their datacenters: https://www.quora.com/What-OS-used-on-the-servers-in-Apples-...

A Mac Mini with gigabit ethernet can saturate a gig and not break a sweat.

A Mac Mini with a 10G Ethernet port can saturate 10G.

So, how are they not fast?

Gee, it sounds like even devs internally weren't aware of it and everyone's scrambling.

Probably. Unless they’re something that clearly explains why this update just had to go out tomorrow, like new iPhones shipping or something, the people who signed off on this should be writing a report tomorrow about how badly they’ve damaged developer relations and created a huge amount of work internally for the app review team and probably the engineering as well. The fact that the main part of the even from today that I care about is a ten second snippet from Tim instead of how fast A14 Bionic is or whatever is a really bad look for how much this has ruined developer trust in Apple.

It's likely because of the Apple Watch Series 6, which will almost certainly release with WatchOS 7, which is in-turn only compatible with iOS 14. The Series 6 launches Friday, so if they wanted to delay iOS 14, they'd have to delay that launch too.

> The Series 6 launches Friday, so if they wanted to delay iOS 14, they'd have to delay that launch too.

Or they could have just launched both on Friday.

I had so much fun reading that!

Is XBS Apple’s internal build system for their operating systems?


Definition of incompetent:

a: lacking the qualities needed for effective action

b: unable to function properly

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact