[HN Gopher] Writing ARM64 Code for Apple Platforms
       ___________________________________________________________________
        
       Writing ARM64 Code for Apple Platforms
        
       Author : ingve
       Score  : 141 points
       Date   : 2021-06-24 11:07 UTC (11 hours ago)
        
 (HTM) web link (developer.apple.com)
 (TXT) w3m dump (developer.apple.com)
        
       | kingsuper20 wrote:
       | I wonder to what extent the M1 has been designed with thoughts
       | towards vendor lock-in?
        
         | api wrote:
         | I don't think it matters, since MacOS itself is a compilation
         | target that differs completely from others. If they made the
         | CPU different, that would just make its differences yet another
         | aspect of MacOS as a target.
         | 
         | In other words I don't think it would be any more of a special
         | snowflake than it is.
         | 
         | If they dropped ARM64 compatibility (in other words stopped
         | making Apple Silicon a superset of ARM64), this would be stupid
         | in that it would make the platform less useful. It would make
         | it impossible to e.g. run ARM64 Linux or Windows in a VM which
         | is a fundamental use case of the machine for developers. I
         | doubt they'd do this.
        
           | pjmlp wrote:
           | Why not?
           | 
           | As long as Swift and Objective-C development is the same as
           | always, that is their public, not people that should be
           | giving money to Linux or Windows OEMs.
        
             | saagarjha wrote:
             | People write C and C++ for those platforms too. And a lot
             | of programming languages that Apple doesn't ship compilers
             | for.
        
         | spacedcowboy wrote:
         | The Apple ABI was burnt into physical hardware while ARM was
         | still finalizing some of the 64-bit details, which is why there
         | are minor differences.
         | 
         | X18 is very specifically called out as "for the platform: do
         | not use", though, so things like GNU MP [1] moaning that Apple
         | hasn't specified how they use x18, and them using it _anyway_
         | are just ridiculous.
         | 
         | 'While we added support for Apple's new Arm based computers,
         | our support has a problem. The problem is that Apple reserves
         | CPU register x18, but GMP's mpn/arm64 assembly code uses that
         | register. While GMP runs fine in our tests, we expect things to
         | go awry in some execution situation. (Apple has not been kind
         | enough to specify how they use x18. Therefore, we don't know
         | what the consequences of using x18 might be.)'
         | 
         | [1] https://gmplib.org/
        
           | nneonneo wrote:
           | Now that these differences are documented, are they going to
           | have to be maintained forever? Or is there any chance that
           | the Apple ABI could converge to the AArch64 ABI over time?
        
             | gjsman-1000 wrote:
             | Probably forever. AFAIK IANAE (I am not an engineer), to
             | change this would require breaking compatibility with all
             | iOS and macOS ARM binaries and telling developers that for
             | optimal performance without using Rosetta 3, they need to
             | compile toward "(new) Apple Silicon." It's probably not
             | going to happen.
        
               | somebody_amzn wrote:
               | You don't need a translator. The ABI is a software
               | construct, not an hardware one.
               | 
               | What would be needed though is to have two copies of the
               | system libraries in such a case, targeting different
               | ABIs. That's of course very unlikely to happen.
        
               | saagarjha wrote:
               | There are already two different ABIs for Apple silicon,
               | although one (arm64e) is mostly reserved for Apple's use
               | at the moment. Apple could choose to finalize the ABI for
               | that with x18 being available to applications, although
               | this is quite unlikely.
        
               | olliej wrote:
               | No there aren't and you know that.
               | 
               | Arm64e has the exact same abi as arm64, but in arm64 mode
               | the pac instructions are no ops.
               | 
               | Otherwise as the parent says apple would need multiple
               | copies of the system libraries.
        
               | [deleted]
        
           | benou wrote:
           | I think it was fixed 2 weeks after the announcement:
           | https://gmplib.org/repo/gmp/rev/5f32dbc41afc
           | 
           | I am more reading this as 'we just enabled compilation for
           | Apple M1 but it is highly experimental, use at your own risk
           | until it is properly fixed'.
           | 
           | I think you misinterpreted their stance.
        
           | chrisseaton wrote:
           | Are they not able to stop using the register? Why keep
           | touching a rail that you've been told might be electrified?
        
             | vetinari wrote:
             | Their code is older than M1. That rail, when supplied by
             | other vendors, was not live.
        
               | chrisseaton wrote:
               | Yeah I get that... but that doesn't meet the current ABI
               | so change it.
        
               | zorgmonkey wrote:
               | It is already fixed
               | https://gmplib.org/repo/gmp/rev/5f32dbc41afc
        
               | stephencanon wrote:
               | But younger than Apple's arm64 ABI, and younger than
               | ARM's ABI docs which reserve it for platform use. Any
               | software intended to target multiple platforms should
               | never have been using it.
        
           | smoldesu wrote:
           | Unless Apple can produce a sufficient explanation of _why_
           | you wouldn 't use that register, I see no reason why
           | developers wouldn't.
        
             | aarch64 wrote:
             | Here is ARM's explanation in the AAPCS64 (ARM 64-bit
             | Architecture Procedure Call Standard):
             | 
             | > Software developers creating platform-independent code
             | are advised to avoid using r18 if at all possible. Most
             | compilers provide a mechanism to prevent specific registers
             | from being used for general allocation; portable hand-coded
             | assembler should avoid it entirely. It should not be
             | assumed that treating the register as callee-saved will be
             | sufficient to satisfy the requirements of the platform.
             | Virtualization code must, of course, treat the register as
             | they would any other resource provided to the virtual
             | machine.
             | 
             | From: https://github.com/ARM-software/abi-
             | aa/blob/2bcab1e3b22d5517...
        
               | somebody_amzn wrote:
               | To elaborate:
               | 
               | On Darwin, x18 is used as a scratch register in context
               | switches on hardware where Meltdown mitigations are
               | needed.
               | 
               | As such, it is cleaned on each ctx switch on that
               | hardware.
               | 
               | On M1, it's currently usable by applications, but that is
               | not part of the ABI contract and might change at any time
               | without notice.
               | 
               | On Windows, x18 is the TEB (thread environment block)
               | register. It must as such _not_ be touched by apps
               | either.
        
               | saagarjha wrote:
               | x18 happens to also be used by Rosetta, and is restored
               | in those cases.
        
               | NobodyNada wrote:
               | > On Darwin, x18 is used [...] on hardware where Meltdown
               | mitigations are needed. [...] On M1, it's currently
               | usable by applications
               | 
               | I'm confused. x18 is an ARM register, but I thought
               | Meltdown only affected x86 chips. Were iOS devices
               | vulnerable to Meltdown too? Or did you mean not x18
               | specifically but some equivalent OS-reserved x86
               | register?
        
               | somebody_amzn wrote:
               | Yeah, Meltdown did affect quite some Arm CPUs, including
               | the Cortex-A75 too.
               | 
               | However, due to specific features of the Arm
               | architecture, it was patchable without a significant
               | performance hit.
               | 
               | (see this section:
               | https://siguza.github.io/KTRR/#meltdownspectre-
               | mitigations-1..., which made the need for actually doing
               | a page table switch avoidable)
        
               | NobodyNada wrote:
               | Interesting, thanks for the link!
        
         | adevx wrote:
         | I'm in the market for a new laptop, but can't get myself to buy
         | an Apple laptop despite some nice innovation on the CPU front.
         | The lock-in, the dragging their feed and outright stalling web
         | innovation with Safari, the "Sideloading in this case is
         | eliminating choice" newspeak. It's just not something I want to
         | support.
        
           | least wrote:
           | > outright stalling web innovation with Safari
           | 
           | Not adopting technologies at the rate of the market leader
           | who is pushing for more and more control over the web might
           | be "stalling web innovation" but the alternative universe is
           | one where Chrome has no meaningful check against its hegemony
           | of the web and can freely create new technology in support of
           | Google's mission to harvest private information and serve
           | advertisements to its users.
           | 
           | > Sideloading in this case is eliminating choice
           | 
           | There is nothing on MacOS that is preventing installing and
           | running arbitrary code on your machine. Elevation of
           | privileges is required for some of that code, but it is there
           | for those that need or want it and a sane default exists for
           | everyone else. This is the case with every modern operating
           | system, including free ones.
        
             | Jcowell wrote:
             | > There is nothing on MacOS that is preventing installing
             | and running arbitrary code on your machine. Elevation of
             | privileges is required for some of that code, but it is
             | there for those that need or want it and a sane default
             | exists for everyone else. This is the case with every
             | modern operating system, including free one
             | 
             | Actually, there is but not In the way you expect. When the
             | M1 Mac's we're released, you could sideline iOS and iPadOS
             | apps but that was blocked by Apple in a later update. On
             | the surface this is a means of clamping down on app piracy
             | and unauthorized use of an app but also a a blockage all
             | the same.
        
               | djrogers wrote:
               | Any app creator can release their iOS / iPadOS app for
               | Apple Silicon Macs if they choose to, I'm not sure I'd
               | paint Apple as the bad guy here if a vendor doesn't want
               | their iOS app running on macOS.
        
               | Jcowell wrote:
               | I'm not taking about Availability of iOS App in the MacOS
               | App Store that devs can opt in and out of. I'm talking
               | explicitly about side loading iOS/iPadOS apps to MacOS.
               | This was possible when M1 apps were released and then
               | explicitly blocked by Apple after an update.
        
               | least wrote:
               | That's a good point and it's something I did overlook,
               | despite complaining about it when they changed this. I
               | would argue though that this is DRM just like Denuvo is
               | for video games or widevine for a lot of streaming
               | content and wouldn't really consider it the same thing as
               | Apple restricting running arbitrary code in the
               | traditional sense. If something like Gatekeeper made
               | things unsigned by Apple impossible to run rather than
               | simply being annoying (which I mean, is kind of the point
               | of it) then I'd be more inclined to agree with the
               | sentiment.
        
           | jmull wrote:
           | > ...dragging their feed and outright stalling web innovation
           | with Safari...
           | 
           | You aren't entirely wrong here, but we are one thin plank
           | from the web being whatever Google says it is.
           | 
           | I know we don't live in an ideal web development world, but
           | we are awfully close to something much worse.
        
           | rickdeckard wrote:
           | I feel you. I'm at a point where I can't go on and support
           | that ecosystem with my money, as they envision a future of
           | the whole IT/CE industry which I increasingly disagree with.
           | 
           | But it's hard to explain the implications of Apple's business
           | model to someone who is just happy how well his AirPods are
           | integrating with all his other Apple stuff, and offended how
           | other companies simply don't make anything equally well
           | integrated with his iPhone...
        
           | nickpp wrote:
           | I believe side-loading on Mac OS is not a problem. It is only
           | restricted in iOS.
        
             | gjsman-1000 wrote:
             | Sideloading on the M1 is fairly easy. @marcan42, who is
             | developing Linux for M1, is very clear that Apple _actively
             | went out of their way_ to make sideloading possible in a
             | secure manner.
             | 
             | Also, for everyone who says Apple is going to lock MacOS
             | down, that's not going to happen with the M1 at least. The
             | ability to run older versions of MacOS, alongside Linux
             | support coming, means it's not happening. Despite what the
             | conspiracy theorists say.
        
               | ericflo wrote:
               | Linux on M1 and sideloading OSX apps are fairly
               | orthogonal. Bootloader/sideloading term mixup maybe?
        
               | johnwalkr wrote:
               | It's 2 separate points, Apple explicitly said they allow
               | sideloading (I wouldn't even call it side loading, it's
               | just "install from outside the app store" and "allow
               | unsigned applications if you want") and booting any other
               | OS is allowed, there is even some amount of Apple
               | documentation on how to do it, and success with both BSD
               | and linux. Drivers are of course an issue.
        
               | notriddle wrote:
               | They are not orthogonal. If you can install Linux, then
               | you can sideload apps on macOS. It might involve invasive
               | XNU patching with a hex editor, but it can be done.
               | 
               | It's not that involved, by the way. There's a command
               | that you run to turn off gatekeeper [1].
               | 
               | [1]: https://disable-gatekeeper.github.io/
        
               | chipotle_coyote wrote:
               | I think the OP is pointing out that installing Mac apps
               | from places other than the App Store is not what most (if
               | any) Mac users would call "sideloading". We just call it
               | "installing." :)
        
               | Wowfunhappy wrote:
               | Exactly, and this goes beyond mere self-signed code
               | (Gatekeeper) and into things like SIP and private
               | entitlements. As long as the user controls the
               | bootloader, the user can also patch the OS to do whatever
               | they want.
        
           | criddell wrote:
           | Have you given much thought to the opposite idea - that web
           | innovation is ultimately bad for users?
        
             | adevx wrote:
             | I think having an open, equal opportunity platform not
             | policed by any specific vendor is a good thing. It could
             | pave the way for a mobile OS like Mozilla envisioned with
             | the discontinued Firefox OS. There is of course this
             | massive influence of Google which could steer web
             | innovation in the wrong direction.
        
               | criddell wrote:
               | I've been talking about this a lot lately, so maybe I'm
               | repeating myself, but Ellen Ullman's (very good) book
               | _Life in Code_ she writes about Whitfield Diffie 's (of
               | Diffie-Hellman fame) speech at the 2000 Computers,
               | Freedom, and Privacy conference in Toronto.
               | 
               | > "We were slaves to the mainframe! he said. Dumb
               | terminals! That's all we had. We were powerless under the
               | big machine's unyielding central control. Then we escaped
               | to the personal computer, autonomous, powerful. Then
               | networks. The PC was soon rendered to be nothing but a
               | "thin client," just a browser with very little software
               | residing on our personal machines, the code being on
               | network servers, which are under the control of
               | administrators. Now to the web, nothing but a thin, thin
               | browser for us. All the intelligence out there, on the
               | net, our machines having become dumb terminals again."
               | 
               | I think yielding control back to remote administrators is
               | ultimately a mistake if you care about freedom and
               | privacy. It's why I've come to believe the web, as a
               | platform, is in some ways a giant step backwards (and I
               | do realize that's not a popular opinion here).
               | 
               | I like that Apple is slowing things down. Users are
               | better served by well written native apps IMHO. It makes
               | life more difficult for those of us who write software
               | but also for those who want to sell to, spy on, or
               | control users.
        
           | smoldesu wrote:
           | I'm in a (similar) boat. I'd probably be a lot more
           | interested if Apple gave me more control over the hardware.
        
             | EricE wrote:
             | What control are you lacking? Are you positive you are
             | lacking control or just espousing a knee jerk opinion?
             | 
             | Indeed, a comment in this thread points out that others
             | have reported Apple went out of their way to allow secure
             | access to the hardware on peer with what apple does with
             | macOS - your generic concerns seem utterly without merit.
        
               | wayneftw wrote:
               | Perhaps you're not sure what kinds of controls you're
               | missing because you haven't often left the Apple bubble?
               | Here are the types of control that I enjoy as a
               | Linux/Windows PC user:
               | 
               | - All of my non-Mac PCs have a BIOS interface that lets
               | me control very low level behaviors of my motherboard and
               | CPU. Macs expose just the bare minimum.
               | 
               | - Windows, and to a much greater extent Linux both offer
               | vastly more API hooks to customize things that I want
               | about the OS. Apple does things like making
               | NSScreen.visibleRect readonly so that only their Dock
               | program can change it and nobody else. Meanwhile, on
               | Windows/Linux I can programatically do just about
               | anything I choose to, so I can replace the taskbar (and
               | even app window chrome/menus) with something else if I
               | want.
               | 
               | - Macs have extremely limited GUI configuration options.
               | You can't even change the color of your mouse pointer
               | from black to white if you wish to! You can't have
               | "themes" that change anything significant. You can only
               | put the Dock left/right/bottom. You can't move the menu
               | bar. For a long, long time you could only resize app
               | windows by the lower right corner until they finally
               | implemented that. It's very often Apple's way or the
               | highway - and there's a reason why that phrase is often
               | associated directed towards Apple; because they just
               | don't offer nearly as much control to users...
               | 
               | - Even if you try to customize these things by using
               | third party hacks, there's no guarantee that your hack
               | will continue to work after an update - and that's a loss
               | of control. My Macs have broken many times from updates,
               | way more than any of my real PCs. Even if I do hack
               | Windows to do something that I want, Microsoft bends over
               | backwards to stay compatible. Obviously Linux offers even
               | more control, i.e. you can get right into the source code
               | of almost anything on your desktop.
               | 
               | - I can only run macOS on Apple hardware. This is a
               | severe loss of control for users. If Apple decided to
               | stop making Intel machines tomorrow, I'd be screwed.
               | 
               | - If I'm running a cloud business, I can't even rent out
               | a cloud Mac for an hour at a time. I have to rent it out
               | for 24 hours at a time. That's a loss of control.
               | 
               | I'm sure I missed some things because I wrote this pretty
               | quickly. I thought at some point that I should keep a
               | running list of things that Macs just can't do, but that
               | would be a waste of time - better to just accept things
               | and relegate my Macs for doing iOS/Mac things only. So
               | that's exactly what I did.
        
               | Wowfunhappy wrote:
               | > Apple does things like making NSScreen.visibleRect
               | readonly so that only their Dock program can change it
               | and nobody else. Meanwhile, on Windows/Linux I can
               | programatically do just about anything I choose to, so I
               | can replace the taskbar (and even app window
               | chrome/menus) with something else if I want.
               | 
               | If you turn SIP off, you should be able to swizzle those
               | methods with your own implementations. I admittedly
               | haven't tried with NSScreen.visibleRect specifically, but
               | I've swizzled plenty of other low-level objective-c
               | stuff. When I need to go even deeper, there's dyld
               | interposing.
               | 
               | You just need to turn off SIP. It's the magic switch that
               | lets you do whatever you want. Some people argue "letting
               | the user do whatever they want" is poor security, and
               | perhaps it is, but you can't have it both ways--either
               | grant yourself control and accept the security
               | consequences, or leave Apple in control and accept the
               | restrictions.
        
               | chipotle_coyote wrote:
               | A whole lot of what you're describing -- not all,
               | obviously, but a good chunk -- have to do with not being
               | able to significantly affect the _aesthetics_ of the
               | operating system, or in some cases, the functionality of
               | the widgets. This is fair, but I think people who haven
               | 't really gotten deep into "the Apple bubble" don't
               | really understand how much control Apple does, in fact,
               | give you over the _functionality_ of the operating
               | system, whether through OS-level features or hooks third-
               | party applications _can_ latch onto. When I think of
               | "customizing my environment," I think of running things
               | like Alfred and Keyboard Maestro. I think of using
               | Automator (and soon, Shortcuts) to control applications
               | and create system-wide services like "select any Markdown
               | text in any application and convert it to BBCode, HTML,
               | or Rich Text". I think of editing the default keyboard
               | finding file to add ^W as "select word" in every
               | application that uses standard system input. None of
               | these are "hacks" that are going to go away tomorrow.
               | Personally, I don't care whether I can "move the menu
               | bar" (where the hell would I move it?) or turn window
               | chrome purple, and I don't _really_ care that I can only
               | put the dock in one of three places. :)
               | 
               | As for some of the others, well, again, yes and no. I
               | mean, in the history of computing, "I can only run
               | FooCo's OS on FooCo's hardware" was the norm"; I don't
               | think it's Apple's fault if you can't rent out a cloud
               | Mac for an hour at a time; I think it's debatable whether
               | the lack of fine-grained editing of BIOS settings is a
               | material loss on the Mac platform.
               | 
               | Also,
               | 
               | > If Apple decided to stop making Intel machines
               | tomorrow, I'd be screwed.
               | 
               | I have bad news. :)
        
               | nonameiguess wrote:
               | I'm mostly a big fan of my Macbook Air, first Mac I've
               | owned in 15 years. But I'd jump for joy if they'd just
               | let me control the auto-open feature of Music.app that
               | forces it to the front every time I take my headphone off
               | and put them back on. I'm in a damn meeting. How on earth
               | did they ever come to the decision that they should
               | assume everyone using headphones is listening to music?
               | 
               | I scoured the Internet and this has apparently been a
               | problem for at least six years, and Apple keeps breaking
               | all the workarounds people find to disable the behavior.
        
           | jamespo wrote:
           | Why would Apple want to join the Chrome arms race that Google
           | is pushing for their own benefit?
        
         | rickdeckard wrote:
         | It was for sure designed to bring the locked architecture and
         | tight value-chain control from iOS into the macOS space, in a
         | slow transition which doesn't alienate the existing userbase
         | (like the frog in a pot analogy).
         | 
         | For example, I don't expect them to address the situation with
         | the Hackintosh market (people running macOS on custom PCs).
         | They will simply fade-out OS-support for Intel CPU's, AMD GPUs
         | and so on at one point, and then basically close the door
         | behind all the M1/Mx users...
        
           | gjsman-1000 wrote:
           | They never supported Hackintoshes, and you need to remember
           | there was a 20-year period before Intel where hackintoshes
           | weren't possible. Apple is closing something they never
           | supported and that wasn't there for the two decades prior, so
           | I can hardly fault them.
           | 
           | For how well-known "hackintoshing" is, remember that the Mac
           | has spent the majority of its existence without this ability.
        
           | pram wrote:
           | The description of Hackintosh as a "market" is pretty amusing
        
         | lucasyvas wrote:
         | Probably to the same level of everything else they do - "We are
         | doing what we want, so get on board if you are interested"
         | 
         | If that leads to lock-in, it's a happy accident.
        
           | smoldesu wrote:
           | Can anyone else name an industry where this would be allowed?
           | 
           | Imagine if John Deere decided to switch all of their tractors
           | to a proprietary gasoline formula, and said "We're doing what
           | we want, so get on board if you're interested".
           | 
           | They would be sued before the sun went down.
        
             | gjsman-1000 wrote:
             | Except here's the twist: Imagine if John Deere made their
             | tractors _from day one_ with the proprietary gasoline
             | formula. And that people liked their tractors _from day
             | one_ and grew them into the behemoth they are today despite
             | the formula.
             | 
             | That's more like what the current situation is.
        
             | macintux wrote:
             | A better analogy would be if Deere required a new fuel
             | formulation that all the industry players had access to but
             | no one else had sufficient clout/"courage" to use.
        
             | defaultname wrote:
             | Do Apple devices use special Apple Electricity? No? Then
             | your analogy is nonsensical, as analogies always are.
        
             | rdsnsca wrote:
             | John Deer tractors are locked down... just go talk to a
             | real farmer and see what he says.
        
             | nonameiguess wrote:
             | John Deere unfortunately does do this. To the court's
             | credit, at least they keep losing right to repair lawsuits.
             | To law enforcement's discredit, they don't change the
             | behavior and suffer no punishment.
        
           | burlesona wrote:
           | I think many will interpret this as sarcasm, but it's
           | actually spot-on. If you watch Apple's history, they're
           | strongly opinionated and they always do what they believe is
           | best for users, regardless of what developers or critics
           | think.
           | 
           | This usually works out well. I think the one big conflict is
           | that Apple is also very diligent about it's profit margins,
           | and while this _usually_ doesn't conflict with "what's best
           | for the user," where Apple gets in trouble is when it does.
           | 
           | One prominent example: there's really no reason to think that
           | the 5GB of free iCloud storage is sufficient anymore.
           | Maintaining cloud storage isn't free, so I understand why
           | they don't want to offer more than a "free trial" so to
           | speak, but I would guess this hurts a lot of users who have a
           | degraded user experience on their phone because they don't
           | have enough storage for iCloud backups, for example. It would
           | make more sense to me if they would offer something like
           | "system backups don't count against your storage cap" and
           | then include two years of iCloud 50GB with the purchase of
           | the phone. That conflicts with the profit margins, though, so
           | the 5GB teaser stays around.
        
             | gjsman-1000 wrote:
             | I think it's part of an onboarding strategy, because
             | remember that the next tier is $1/mo., or $12 a year.
             | Peanuts. It could easily be rolled into the purchase price
             | of the device for a year or two. Apple TV+ which come with
             | a year free with purchasing an iPhone would be $60 a year,
             | or 5 years of iCloud 50GB.
             | 
             |  _However_ , by charging peanuts, you got the user into a
             | subscription, which is the important bit. A person in a
             | subscription who jumped the hurdle of not paying vs paying
             | a little is much more likely to upgrade later.
             | 
             | It also plays into a Steve Jobs strategy, for better or
             | worse. Many people don't hear about this, but Steve Jobs
             | had a view that people don't value things that are free. He
             | made the Cafe at Apple HQ subsidized but require payment,
             | not that Apple couldn't afford it, but because he knew
             | people wouldn't respect free food. This view of Apple's,
             | that people don't value things they didn't pay for, seems
             | to permeate many of their business decisions.
        
               | smoldesu wrote:
               | > This view of Apple's, that people don't value things
               | they didn't pay for, seems to permeate many of their
               | business decisions.
               | 
               | This would explain why their users are so quick to defend
               | the 30% cut, with sunken cost taken into account.
        
               | burlesona wrote:
               | Yes, I think you're exactly right. Overall it's a good
               | business strategy. I just personally think that in this
               | case, it's an example of "what's best for profit margins"
               | conflicting with "the best user experience for most
               | users," and the awkward place they've landed today is how
               | they've split that difference.
        
           | madia_leva wrote:
           | Accident, yeah
        
         | burlesona wrote:
         | To exactly the same extent as everything Apple does. If they
         | genuinely believe that they can create a custom X that works
         | better than all the other options, and that compatibility with
         | the rest of the world would hold back the user experience, then
         | they go for it and don't worry about compatibility.
         | 
         | Whether you, as a user, agree with their decisions, is a
         | different story. Apple doesn't care about making products for
         | _everyone_ , so to them if 70% of the market doesn't like their
         | design but 30% absolutely loves it - and they can make
         | sustainable profits selling to that 30% - then that's fine.
         | 
         | Apple thinks of it's products like game consoles. We don't get
         | mad at Sony that PlayStation games don't run on Windows... we
         | understand that Sony has designed a complete package offering
         | and then we either like it and buy it... or we don't. And
         | that's fine.
         | 
         | People get confused about Apple's choices because they make
         | Macs, which are a lot like PCs and partially compatible. But
         | Apple doesn't see the Mac as part of the PC ecosystem, it sees
         | the Mac and all its products as the distinct, standalone, Apple
         | platform, which is a complete package offering. And Apple
         | expects users to either like that and buy it, or not.
        
           | smoldesu wrote:
           | > Apple doesn't care about making products for everyone
           | 
           | Can you give me a quote from the company or an otherwise
           | official statement that supports this?
        
             | pjmlp wrote:
             | Anyone that has been around long enough to remember the
             | days of Atari, Amiga, PC, Archimedes, PC.
        
             | least wrote:
             | It doesn't require a statement from Apple for someone to
             | ascribe intent from a company's actions. It's of course
             | just speculation and may not align with what the company
             | officially states or what the intent is internally. It's
             | simply an opinion.
        
             | macintux wrote:
             | They've certainly said on multiple occasions they won't
             | make cheap computers, which by definition excludes a big
             | percentage of the potential market.
             | 
             | https://www.huffpost.com/entry/apple-ceo-tim-cook-
             | expensive-...
        
             | xuki wrote:
             | https://youtu.be/gnU9Vgt8Hmg?t=9
        
           | jayd16 wrote:
           | >We don't get mad at Sony that PlayStation games don't run on
           | Windows...
           | 
           | Actually there was much rejoicing when the Playstation moved
           | to x86_64.
        
             | gogopuppygogo wrote:
             | That was due to how horrible it was to program an app for
             | the cell processor.
        
           | amelius wrote:
           | > Apple thinks of it's products like game consoles.
           | 
           | And at the same time Apple expects me to build my business on
           | those products.
        
             | bobsomers wrote:
             | Plenty of games run on multiple consoles, despite having
             | completely different operating systems, graphics APIs, etc.
             | 
             | It's certainly a pain, but cross-platform development has
             | always been a thing so it's not a unique pain to Apple
             | platforms.
        
               | amelius wrote:
               | It's not just the development. It's the fact the Apple
               | takes control over the distribution of software on their
               | platform.
        
           | [deleted]
        
           | incanus77 wrote:
           | I have been an Apple ecosystem developer for the past 19
           | years and this is the best, most succinct explanation of
           | Apple's outlook re: openness for the HN crowd that I've seen.
           | I don't always agree with the stance, more so in recent
           | years, but understanding that it is what governs things, not
           | a nascent PC market world view, is important to factor in
           | when making hardware, lifestyle, and career choices.
        
           | pjmlp wrote:
           | Linux devs giving money to Apple instead of GNU/Linux OEMs
           | are the ones that got mixed up what Apple eco-system is
           | supposed to be.
           | 
           | Most of them never used the old Mac OS, GUI based, with
           | Object Pascal/C++ tooling, and zero POSIX.
        
           | gjsman-1000 wrote:
           | It's also important to remember that Apple doesn't want to be
           | like a PC or Android phone. They've said so in court filings.
           | They view themselves as separate, and they also say that if
           | you want sideloading, _you have that choice_ by joining the
           | other side.
           | 
           | In Apple's view, they are encouraging customer choice because
           | customers have the ability to choose an open experience, or a
           | closed experience, and the desire to force all experiences to
           | be open removes choice. It's an argument very contrary to us
           | on Hacker News but that's what Apple tries to get at.
        
             | djrogers wrote:
             | > they also say that if you want sideloading, you have that
             | choice by joining the other side.
             | 
             | That's a bit of a stretch of what they said - they were
             | specifically referring to iOS there, and pointing out that
             | there are other choices (including macOS) that offer side-
             | loading or direct installs.
             | 
             | Taking that one comment to imply that Apple doesn't want to
             | build any platforms that aren't completely locked down is,
             | imho, a step too far.
        
             | realusername wrote:
             | That argument would work a little better if they did not
             | market their phones as a computer replacement in the first
             | place...
             | 
             | Apart from that, I think with only two companies on the
             | mobile market, even them can't really argue against the
             | obvious lack of competition.
        
               | Jcowell wrote:
               | I've seen the iPad marketed as such but never the iPhone.
        
               | realusername wrote:
               | Just have a look at the difference between an Iphone ad
               | and a PS4 ad. On one side you have screen, processor, new
               | apps & all the productive things you can do with the
               | phone, on the PS4 side you have games games and more
               | games. The marketing difference is obvious.
        
               | burlesona wrote:
               | This is subtle, but they're not advertising the iPad as a
               | replacement for a PC or Mac.
               | 
               | They're advertising an iPad as a replacement for _the
               | things most people use a PC or Mac for._
               | 
               | An iPad is certainly not a viable PC replacement for me,
               | nor most of HN I would guess. But for a lot of "casual
               | users," who really just surf the web, watch videos, etc,
               | it's great.
               | 
               | What's way more interesting is how iPad has become
               | appealing to a lot of "semi-power users," like
               | photographers and videographers. These are people who,
               | twenty years ago, really needed to be computer savvy to
               | do their work, but didn't (and still don't) think of
               | themselves as "computer people." Or to put that a
               | different way, they "use a computer for work," but they
               | don't "work on computers." That audience has been greatly
               | expanded as iOS devices have lowered the cost and skill
               | barriers to entry making a lot of content creation
               | possible.
               | 
               | For those of us who actually "work on computers," I don't
               | see iOS devices ever being a great fit... or at least not
               | any time soon. But for others, an iPad might do
               | everything the user wants from a computer, and maybe do
               | it faster and easier as well. That's what Apple is
               | advertising.
        
               | realusername wrote:
               | > This is subtle, but they're not advertising the iPad as
               | a replacement for a PC or Mac.
               | 
               | > They're advertising an iPad as a replacement for the
               | things most people use a PC or Mac for.
               | 
               | To me that sounds pretty similar, they advertise it with
               | similar features, functions and in practice it's also
               | used similarly.
        
               | goalieca wrote:
               | > That argument would work a little better if they did
               | not market their phones as a computer replacement in the
               | first place...
               | 
               | It's a very effective alternative model. Steve jobs said
               | no stylus and no separate keyboard and it did quite
               | effectively replace PCs at a lot of boring office tasks
               | that any manager would need.
        
           | saagarjha wrote:
           | This is mostly true but it is also almost entirely irrelevant
           | to answering the specific question. The actual answer is
           | "it's pretty much standard 64-bit ARM".
        
       ___________________________________________________________________
       (page generated 2021-06-24 23:01 UTC)