
Moving out of macOS: Making Linux habitable - hrishios
https://hrishioa.github.io/moving-out-of-macos-making-linux-habitable/
======
Hackbraten
> 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.

~~~
hrishios
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.

~~~
Hackbraten
Thanks for explaining.

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.

~~~
tbodt
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.

~~~
Hackbraten
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?

------
gigatexal
I did this: installed Ubuntu 20.04 LTS and i3 (specifically regolith’s take on
i3 using their PPA). (Regolith-Linux.org)

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.

~~~
hrishios
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.

~~~
gigatexal
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.

~~~
hrishios
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.

