Hacker News new | ask | show | jobs
Ask HN: To MacBook or Not to MacBook?
10 points by armajid 1340 days ago
I was reading up on becoming a hacker from Eric S. Raymond's HOWTO and it stated NOT to run MacOS since it is proprietary (which makes it difficult to learn how to hack) but I also remember reading Paul Graham's essay 'Return of the Mac' which highlighted the reasons why hackers (in 2005 anyway) started using Macs again (the OS and great hardware design).

My question is, in 2022, should a person learning to hack get and use a MacBook? I see the two sides and I'm conflicted.

If you suggest running a Linux VM through UTM on the M1 Macs, I will counter by stating that you can only run ARM ISOs and I imagine there may be problems with software not compiled for ARM which could hinder the learning process but what do you think?

10 comments

I think part of the question has to be to consider, what do you want to hack?

If you're interested in hacking on your computer's operating system, then you will find more flexibility with GNU/Linux or FreeBSD than with MacOS.

But if you're interested in higher-level applications -- tools, programming languages, artificial intelligence, numerical computing, etc. -- then the practical difference becomes much less.

My interests fall more at the higher level of programs, and have been happily using MacOS for most of the past 20 years.

Wow, thank you for sharing!
Depends on your sensitivity to ergonomic issues as well.

Millions of people use MacBooks happily, but I personally hate them for their glossy displays, shallow keyboards and sharp palmrest edges (perhaps related to my hand size, since edges on a 14" MBP cut into my palms). MacOS also stopped having subpixel rendering, so any non-300dpi external screen (meaning all non 8k screens in existence) will show fuzzy fonts.

If you are looking for a machine to use on the go, I'd steer away from them for the above reasons.

For hacking, you also lose much of the access to internals too, or when you don't, it's way harder to get it than on a GNU/Linux system.

I used to think this way too. Built in monitor (MBP) is actually really good IMO, better than the others at the price. Keyboard is poor, always the thing I hated about Apple products. But you can connect an external keyboard/mouse to it. And it beats the weird custom layouts you see on some gaming laptops that doesn't work so well for programming. A MBP is built for development.

Monitors are a problem in my experience and it does show fuzzy fonts. MacOS also has weird behaviour on some websites.

Still they're pretty good travel companions. The 2022 MBPs are light as a book and has excellent battery life - about 8 hours unplugged. I used to bring a MBP and my main Windows laptop to work, so you can put two in a backpack.

For travel, I prefer matte screens (glare really affects me, causing headaches as I try to focus around reflected windows and lights, and especially reflected motion from myself and the environment), good keyboards and even lighter laptops: while ~300gr of difference between a Thinkpad X1 Carbon and MBP14 is not much, it adds up in your bag. It's got a full day of battery too, though more is always better :)

Not to mention soft-touch rubbery palmrest: I hope they never move away from that, it's perfect (though I don't care about it being a fingerprint magnet, which it is).

This is really insightful, thank you!
> which makes it difficult to learn how to hack

This doesn’t make a lot of sense to me. It’s true that you can’t rebuild the kernel or os services, or modify the system very much at all so if that is the kind of hacking you want to learn, then you shouldn’t use a Mac.

However, if by ‘learn to hack’ you mean ‘learn to code applications and services’, then Macs are great. You can learn both Apple’s proprietary stuff and all of the significant open source tooling and languages.

I see what you mean, thank you.
Love this generation of MacBooks. I used to rice my Linux installs every few months and switch distros or wms and setup new servers. Now I just open my laptop and have at it.

My only suggestion is that you do try Linux a good amount. This can be for a variety of things and even doing this in a VM is good. Get used to the command line and understand how the system purrs.

I started this with Arch and their wiki. Their wiki is great in general even for non-Arch Linux. You could go the hardcore route and do Linux From Scratch on a VM. Or play around with a Raspberry Pi. Or buy an old Lenovo to run something on.

But otherwise my personal preference for a $2K-$4K machine is to get something I can rely on and with an easy repair path. Many won’t agree but Mac fits that book for me.

FWIW, Asahi Linux is making nice progress on Apple Silicon support: https://asahilinux.org/2022/07/july-2022-release/

> If you suggest running a Linux VM through UTM on the M1 Macs, I will counter by stating that you can only run ARM ISOs…

I think that's incorrect. From the UTM home page: "On Intel Macs, x86/x64 operating system can be virtualized. In addition, lower performance emulation is available to run x86/x64 on Apple Silicon as well as ARM64 on Intel."

Thanks for the correction. I would be concerned of the lower performance (how much lower?) but this may be a nonissue now.
In my experience hacking Linux on laptops can be a painful experience. WiFi, ACPI, GPU, etc can all be a source of pain and wasted effort. I'd much rather use a desktop and with BSD unless you have specific need to use Linux.

As a further issue with hacking, I find it best to use sacrificial desktop(s) and maintain a separate desktop for all core and admin work. There's no point in breaking my production system* because I've tried something new.

Most of my sacrificial systems are either my older systems or systems I've rescued from clients' dumpsters.

Linux is the better OS for hackers —- consider System76 and Franework Laptops.

The biggest downside of not having a Mac is that it prevents you from writing iOS/MacOS apps.

When you say 'prevents you from writing apps' do you mean native iOS apps which (at least to my knowledge) can only be done on Macs? Or do you mean other types of applications?
Ah yes, using things like XCode and the iOS/MacOS app build toolchain (legally, anyway)
iOS/iPadOS, sure. But macOS apps can be written in any language that can compile or run on macOS, and you can cross compile from any OS assuming the compiler is available on that OS (that is, you can cross compile on Windows or Linux for macOS). It's producing and distributing iOS/iPadOS apps that Apple has kept locked down.
Will take this into account, thank you.
Really depends what you're after. I personally have stuck with mac for the last 5 years for ease of use and build quality. After working on mining rigs, I really value all-in-one to avoid dealing with configuration issues and the like. If you're looking for that fine tuned granular control though, then mac won't ever satisfy.
Even I have stuck with mac for last 3 years. before that I mainly used windows.
I see, thank you.
the point of running linux is that it forces you to learn about linux. knowledge of linux pays dividends forever.

knowledge of macos is fine, but does not pay dividends.

Could you elaborate?
assuming you work in software, every server everywhere is linux.

knowledge you gain troubleshooting on your laptop can be reused later in production.

intuition you gain on your laptop guides you in production.

windows and macos servers are not a thing, so unless you work in IT, no dividends.

It assumes you go "low level" enough to work linux with servers. I've done mostly app dev the past 10 years, and haven't had to deal with linux yet. Even when dealing with servers, one can probably set up and scale a whole MEAN stack without any linux knowledge.

I don't disagree that it's useful knowledge but I guess I'm too old to be reaping the dividends on troubleshooting my laptop.

you already have troubleshoot your laptop. the dividends make that cheaper. would using linux mean more troubleshooting? possibly. or not. it depends.
I had to troubleshoot ubuntu a lot when I used it 12 or so years ago. Mac and Windows have been fairly trivial to troubleshoot in my experience.
I see, thank you.
CORRECTION: You can run x86/x64 operating systems via lower performance emulation on M1 Macs on UTM.

Thank you everyone for your input!