> An iPad with a keyboard running on an ARM chip might honestly be a great computer for the vast majority of users, but I don’t see my requirements fitting into that box - at least for the next five years.
I’d really like to know more about what you mean by that.
How does a developer’s or power user’s experience depend on the CPU architecture?
Looking forward to the follow-up article in the hope for a little more background.
The architecture matters to me for a number of reasons -
With Apple's history over the last few years, I don't expect the sheer amount of legacy software I use on a regular basis to be taken care of when the new architecture comes around. Under legacy I'm also including applications with a single developer that can't really go multi-architecture, applications with niche communities that Apple will take a long time (if they do) getting around to writing drivers, providing documentation and support around porting.
Now the most common rebuttal to this is either Rosetta or that this is how technology works. For Rosetta, just based on the sheer difference in instructions I don't see an easy transition here that works off the bat. IMHO Intel's compiler design also beats Apple's, and I don't see niche apps working right or complete for a long time, and I see a lot of apps being left behind.
But I do understand that this is how technology moves forward, and I think that if they can make it happen (it's still a big if in my mind but I'm aware I know very little here), it will be a big step forward. If anyone can do it today, it's probably Apple. However, I have very little doubt that the transition will be fraught with problems, especially for power users, and it's a personal choice not to live through that transition with Apple.
I'll also add that while I see the strong possibility of personal computing moving to ARM, I'm less convinced by the arguments for cloud. As I primarily develop backends and do cloud arch, I would much prefer to build as close to deploy as conveniently possible.
Now for the iPad part - and this is simply how I feel watching and living in the ecosystem for some time - I think Apple intends to turn the Macbook into the iPad, with one big happy ecosystem of apps that work on everything. While I think this is great for the general public, I'm yet to be convinced that it won't end up with a mediocre experience on everything[1] especially the Macbook. I see the value of a computer that isn't a computer (what's a computer?), but I think that (intentionally) overlooks power-users that use the computer to build things for computers and video and audio professional, to name a few.
1 - With iPad apps being available on the Mac within days of release and minimal developer intervention, I cannot see how it would not be a mediocre experience. How do you do multi-touch on a trackpad?
Again, if anyone can do it it's Apple, but I don't believe it will be an easy journey or one that's going in a direction I can join in. I do still have the option to leave, so I am.
I’m a bit more optimistic on several fronts. For example, Homebrew already has over 200 packages working on both Apple Silicon and Intel.
About Rosetta: I think the difference in instructions is overstated. Apple has tons of experience in that, and it shows. If the sheer difference in instructions were the only concern, Rosetta would work 100 % of the time.
Examples for actual translation issues in practice:
- software that uses JIT but doesn’t meet the Apple Silicon restrictions yet;
- software that makes assumptions on virtual memory page sizes;
- software that’s (partially) written in x86_64 assembly;
- native software that needs a library which is only available on Rosetta, or vice versa.
The majority of apps doesn’t fall under those cases though, and most seem to work fine already. Still, all those little special cases add up, and a couple important pieces of software still have a long way to go, such as GCC, OpenJDK, Chrome, and Firefox.
So I think you may have a point there about the niche apps. I’m betting on those issues to be solved eventually but what do I know. The points you’ve made do make sense, and I can see how one ends up leaving the platform.
3/4 of the practical issues you mention are either not issues or won't be issues on shipped hardware. JIT, page size, and assembly code will all behave the same as they do on x86.
JIT is subject to W^X on Apple Silicon, which isn’t a thing on x86. Existing JIT code usually doesn’t respect W^X so it will keep crashing until the app is fixed. Unless fixed, how do you feel it’s ever going to run natively?
Not sure what you’re trying to say about assembly. How would a native Apple Silicon app be able to use a library whose source code contains x86_64 inline assembly?
You're right, and I wasn't talking about getting the instruction coverage right - most software will have some idiosyncracies that will need to be discovered and worked around. Apple, as big as they are, will still need to discover some of these things in prod post release, I would be surprised if they didn't.
I'm sure Spotify and Safari and the like will work on launch day, but I'm not too sure about Postico, Disk Inventory X and others.
All of this would be fine if I trusted Apple to care about developers and niche users, but I just don't see it.
Any thoughts on what you love and miss about the switch? I haven't tried out i3 yet (I need to get a little more comfortable with my backups before I swing window managers around - I've been burned before!)
I think I'll definitely buy an ARM Mac (or an iPad) for media and other things, and will still recommend it to friends and family once they're done with the transition, if all goes well. The polish around the Mac ecosystem is still unmatched, if you color within the lines.
There’s definitely something to be said about the it-just-works nature of macOS. But I primarily use docker and Linux and while I love brew I want an OS with a first party package manager (and honestly what is a Linux distribution without a package manager?). I also hate that in the Mac docker requires a VM and running docker on my Mac causes my laptop to turn into a rocket ship. And honestly I just love a true tiling manager. Basically it’s just a tool for me that I seem to gravitate to and for productivity I’m all in on Linux.
That's one of the biggest reasons I left - docker. Windows is inching closer with WSL and Windows Terminal, so I might check it out in a year or so once it's stabilized. But needing to run a VM with impossible image build times (forget about running minikube) is definitely something I don't miss anymore.
You can pay for a tiling manager on the Mac, but it's definitely not as good as the alternative.
10 comments
[ 3.3 ms ] story [ 35.5 ms ] threadI’d really like to know more about what you mean by that.
How does a developer’s or power user’s experience depend on the CPU architecture?
Looking forward to the follow-up article in the hope for a little more background.
With Apple's history over the last few years, I don't expect the sheer amount of legacy software I use on a regular basis to be taken care of when the new architecture comes around. Under legacy I'm also including applications with a single developer that can't really go multi-architecture, applications with niche communities that Apple will take a long time (if they do) getting around to writing drivers, providing documentation and support around porting.
Now the most common rebuttal to this is either Rosetta or that this is how technology works. For Rosetta, just based on the sheer difference in instructions I don't see an easy transition here that works off the bat. IMHO Intel's compiler design also beats Apple's, and I don't see niche apps working right or complete for a long time, and I see a lot of apps being left behind.
But I do understand that this is how technology moves forward, and I think that if they can make it happen (it's still a big if in my mind but I'm aware I know very little here), it will be a big step forward. If anyone can do it today, it's probably Apple. However, I have very little doubt that the transition will be fraught with problems, especially for power users, and it's a personal choice not to live through that transition with Apple.
I'll also add that while I see the strong possibility of personal computing moving to ARM, I'm less convinced by the arguments for cloud. As I primarily develop backends and do cloud arch, I would much prefer to build as close to deploy as conveniently possible.
Now for the iPad part - and this is simply how I feel watching and living in the ecosystem for some time - I think Apple intends to turn the Macbook into the iPad, with one big happy ecosystem of apps that work on everything. While I think this is great for the general public, I'm yet to be convinced that it won't end up with a mediocre experience on everything[1] especially the Macbook. I see the value of a computer that isn't a computer (what's a computer?), but I think that (intentionally) overlooks power-users that use the computer to build things for computers and video and audio professional, to name a few.
1 - With iPad apps being available on the Mac within days of release and minimal developer intervention, I cannot see how it would not be a mediocre experience. How do you do multi-touch on a trackpad?
Again, if anyone can do it it's Apple, but I don't believe it will be an easy journey or one that's going in a direction I can join in. I do still have the option to leave, so I am.
I’m a bit more optimistic on several fronts. For example, Homebrew already has over 200 packages working on both Apple Silicon and Intel.
About Rosetta: I think the difference in instructions is overstated. Apple has tons of experience in that, and it shows. If the sheer difference in instructions were the only concern, Rosetta would work 100 % of the time.
Examples for actual translation issues in practice: - software that uses JIT but doesn’t meet the Apple Silicon restrictions yet; - software that makes assumptions on virtual memory page sizes; - software that’s (partially) written in x86_64 assembly; - native software that needs a library which is only available on Rosetta, or vice versa.
The majority of apps doesn’t fall under those cases though, and most seem to work fine already. Still, all those little special cases add up, and a couple important pieces of software still have a long way to go, such as GCC, OpenJDK, Chrome, and Firefox.
So I think you may have a point there about the niche apps. I’m betting on those issues to be solved eventually but what do I know. The points you’ve made do make sense, and I can see how one ends up leaving the platform.
Not sure what you’re trying to say about assembly. How would a native Apple Silicon app be able to use a library whose source code contains x86_64 inline assembly?
I'm sure Spotify and Safari and the like will work on launch day, but I'm not too sure about Postico, Disk Inventory X and others.
All of this would be fine if I trusted Apple to care about developers and niche users, but I just don't see it.
I’m never going back to MacOS for work but will buy an ARM Mac for personal as I’m still very much in the ecosystem.
I think I'll definitely buy an ARM Mac (or an iPad) for media and other things, and will still recommend it to friends and family once they're done with the transition, if all goes well. The polish around the Mac ecosystem is still unmatched, if you color within the lines.
You can pay for a tiling manager on the Mac, but it's definitely not as good as the alternative.