I'd actually prefer to be the other way around; Apple laptops are superior to anything else I can buy, but I hate the operating system.
The Macbook Pro I have issued from $work is far superior in comfort speed and usability to my expensive Ryzen Thinkpad that I purchased in the summer. I just don't particularly like developing/working on OS X.
I use an M1 Air and the hardware is exceptional (other than the keyboard obviously). Mac OS however is not. You need something like Rectangle installed just to get half-decent window management. Windows 11 wipes the floor with it on accessibility (for things like font tweaks and so forth). And the speed with which you can work under both Windows and Linux (Mint for example), using the keyboard almost exclusively, really puts Mac OS to shame.
If a non-Apple laptop maker did Apple-quality hardware with a better keyboard and anything like the Air's battery life then I'd be interested.
> What is the primary operating system in which you work?
This implies a single answer ("the") but they clearly allowed multiple (the percentages total way more than 100%)
IIRC in prior years they've asked similar questions, but without the multi-select, meaning the this year's survey can't be meaningfully compared with older surveys, for this question.
Unless non-US numbers skew it more than I think, I suspect a whole lot of those respondents had a choice between honestly answering one of two operating systems, given the wording of the question, and picked Linux over the other one for whatever reason, despite not running it on their workstation. I'd be shocked if figures for the US, at least, were over 10% Linux, as far as what developers use on their main pays-the-bills workstation. Students might skew as high as 25% (though that's still higher than I'd expect) but I don't think SO selection-biases so strongly toward students that it'd be enough to push the figure that high all on its own.
Who takes the time to fill in the SO questions? Not the 9 out of 10 checked-out corporate devs that do the minimum to collect a paycheck. These are also the people that will tolerate anything central IT gives them, even if the mouse cursor takes 2 seconds to render on screen. I am not at all surprised that the group that cares about more than the job, the job that takes the time to respond to SO, is also the group that cares deeply about what they use for doing their job. So if 25% of them responds Linux, that probably corresponds to 2.5% actual usage. Not that important, BTW: SO selects exactly the kind of people whose opinion I want to hear about their tooling.
What's surprising here is how deep windows is sinking. They were at one point famous for their dev tools. The fact that WSL (i.e. it runs Linux stuff) is now considered one of their top selling points for developers is almost too incredible to believe.
Sure, there's the usual HN- and HN-adjacent bubble of not recognizing that like 80% of working developers are just showing up 8-5 or 8:30-5 (was actual 9-5 ever really a thing?) killing Jira tickets using Java or C# on their corporate Windows box on which they (gasp!) don't even have admin access, and I bet that does have some correlation with who bothers to respond to SO polls (mostly not those folks, that is).
At two companies I recently (within 3 years) worked (one fortune 500, the other eternal hopeful start-up), developers used Linux (Debian, Ubuntu respectively) on their desktops. On a third company developers had laptops running a mixture of Windows and MacOS (given preference), but development was done within (remote) VMs sporting Linux. All US based (HQ in Silicon Valley), for all product/production servers were running Linux. Frankly, unless you explicitly write desktop applications for Windows or MacOS, I'd be surprised if you're not using Linux.
There is a clear ambiguity that feels very important - in one way my work's "primary operating system" is Debian because that's what our images are built using and what we deploy. But my computer is running OS X.
And anyone using Azure is probably deploying to Linux because it's cheaper and more performance. So Windows desktop users will also be selecting Linux.
If you're doing anything Docker, you probably prefer Linux.
So unless you're developing exclusively for Apple's ecosystem, you probably selected Linux on the survey.
Likewise my primary OS is Linux (NixOS, specifically) but my primary OS for anytime i don't want to be at my desk is my older Macbook Pro 2017 (2016? i forget) - also running Nix btw >:D
Eventually i imagine my laptop will also be Linux, but Mac is hard to beat for mobile operating. I'm tempted to try an M1 via Asahi at some point, assuming i can get NixOS on it.. but i don't have an M1 atm and am in no rush to buy one.
I’ve always answered that I use both Linux and Mac (recently I had to add windows as well) as I write on a Mac and run it on Linux. Regardless you shouldn’t just answer it as whatever your thin client is running as then the WSL option doesn’t make sense.
But that doesn't describe what we are paid to do. I regularly have to ensure solutions work in both OS X and in Docker / Debian. If the question was: "Which operating systems does your company target" the answer is both Debian and OS X. Because most developers work in OS X and our production machines run Debian.
Tried using a Mac, hated how the UI got in the way all the time. A few weird quirks with docker were annoying too, including slowness.
Now run Linux with LXDE on my 16GB laptop. Everything works well and it's blazingly fast. The UI is simple and functional, but not as beautiful as the MacOS UI.
I guess in the beginning we want all the bells and whistles, but with experience, all we want is control. Linux gives me that control to a much greater degree than a Mac.
As a mac user, I have no idea what MacOS UI you're referring to is.
I live exclusively in terminal or browser, all other apps are opened via terminal and closed with cmd+q.
I like macOS because it doesn't get in the way even when I almost never had to interact with Finder (which I still find weird every time I had to use it, for web uploads etc).
I constantly use iTerm (or even just the regular MacOS Terminal).
It's easy to have it take up the whole screen and the most "MacOS UI" I'll ever see is the title bar for the window, which yeah can be ugly to look at but really isn't something that keeps me from working or anything.
I guess IDE's use a ton of UI, but I wouldn't say that's MacOS cruft on its own.
Using a Windows or any of the Linux Distros as a desktop computer you will find that the GUI programs are designed around the idea of a file system, file paths, and generally creating and opening files. On Mac OS X you can use the terminal and be okay. But if you're doing something in the terminal and want to do now combine that with some GUI program, well, good luck. It probably won't even have a way to open files from a folder. The entire filesystem abstraction is hidden and deprecated. It is the core of the Mac OS intended experience.
`open -a NameOfAppYouWantToUse fileyouWantToOpen.foo` will reliably open a file with whichever app you want. Just `open path/to/directory` will open a Finder window to that directory. The file open dialog in macOS also exists and works just fine. You can drag file icons from GUI apps into terminal windows to insert their absolute path. You can drag files from Finder onto an app icon to open-with that app.
Transitioning between terminal workflow and GUI workflow feels better to me on macOS than either Linux or Windows; although with Listary Windows is decent.
Same experience. For me Finder is simply unusable, not sure if I'm not used to it but the experience is terrible for me. So I prefer to do everything through the terminal or use some TUI like https://github.com/jarun/nnn
The only time that I have to interact with the UI is when I have to do something on System Settings, which is also dreadful.
Yeah, Finder really isn't something you have to use very often (beyond very simply stuff). I mostly use Spotlight to open folders and files, and often use terminal for most moving/copying.
The most complicated thing I do in Finder is browsing pictures and installing an Application, both of which is does a perfectly fine job at.
I purchased a Lenovo laptop back when Macbooks switched to the touchbar design and I've been very happy. The latest M2 Macbook Airs are tempting for the longer battery life, but I rarely need long battery life anyway.
After using both, I honestly don't understand why devs use MacOS over Linux (my favorite: ZorinOS).
The advantages of Linux are too many too count and has a lot of customization that can provide some edge. I don't prefer customization anymore, just simplicity but it's a good thing that the options exist.
For me, I think these are the main issues with MacOS that ZorinOS doesn't out of the box:
> No screen edge tiling, spend more time managing application windows
> Inconsistent keyboard shortcuts, cmd and ctrl are used interchangeably for no reason (Biggest issue). Why do I need to do Ctrl+Tab to switch tabs but Cmd+T to create tabs? Why is History not Cmd/Ctrl+H in browsers? I need to memorize more shortcuts on MacOS for no reason, when it could very well just do it all with a single modifier key.
> Hidden dock doesn't appear unless I smash my cursor on the bottom edge. Dock Autohide is very finicky, ZorinOS' way is much more graceful and natural.
> No HDMI volume control
> Maximizing an app takes you to a totally new desktop
> Switching desktop animation is a bit too slow
> No window closing animations, but has window opening animations. Feels really unpolished
> Single click on dock to maximize the app but clicking maximized app doesn't minimize it. Why?
> Ctrl + Alt +T doesn't open terminal, it's like oxygen to me.
> Can't set VSCode to open with Ctrl + Alt + C.
> Can't set custom global shortcuts at all, even windows can to some extent
> Can't highlight text in terminal or anywhere to paste with middle click mouse button.
> Ctrl + C to cancel a command in terminal but Cmd + C to copy text in terminal. Ok, then why Cmd + T to open a new tab in terminal instead of ctrl?
> The shell startup time is too much on MacOS. I have to wait for a second for the shell to load before I start typing my commands. On Linux, pressing Ctrl+Alt+T and writing commands right away feels so good!
> No package manager by default, brew is honestly very slow compared to Linux solutions.
MacOS isn't unusable of course, I'd prefer it over Windows anyday but it just introduces a lot of UX friction Linux desktop just doesn't.
Endpoint security and production security are totally different things, usually done by different groups, with different threat models.
I also wouldn't characterize it as "harder to secure" but rather "extra work to support." A homogenous endpoint fleet makes all IT tasks significantly easier, and endpoint management tools for Linux tend to be less mature and more difficult to work with.
I expect this one to go the way of Internet Explorer.
Only 1 browser to secure! Infosec requires an activeX compatible browser for installing expensive security contraptions. IT can't possibly tolerate Firefox! What, there are more browsers out there? What, Microsoft creates a new browser? What, marketing sent out a new campaign only viewable in Chrome? What, our own site doesn't work in Internet Explorer, and nobody noticed in 2 years?
After fighting their own users for over a decade and looking very sad-kitten-face when every single one of their dastardly back-stabbing users did not follow the holy dictates from above, enterprise IT found out it was actually possible to secure a browser that was not internet explorer. I expect Linux to go the same way. In fact, it did just that for servers.
Well, a lot of software that I use is not on MacOS either. Lutris for example.
But yes, MacOS' software support is good because more people have Macs and there is also a lot of money to be made there but MacOS' DX/UX support is okay. Not great, not bad, just okay. I personally think Linux nailed the DX.
Engineering and development tools are on the whole far better supported under Linux.
I spend most of my time in Linux VMs in cloud, or in Docker etc running Linux now to do the $work I need, despite having a powerful 64GB M1 Macbook Pro issued by work. Why? Because that's what our production environment is. And that's where the right versions of things are.
Oh and fighting with Homebrew etc sucks. That it's 2022 and Apple ships a Unix without a modern Unix packaging system is ridiculous. Almost all professional dev types working on MacOS are using brew or similar systems -- why has Apple not noticed this and fixed their distribution/packaging system, which remains a throwback to 1990s Unix/NeXTStep?
At this point the Macbook itself I use primarily as a web browser and Zoom meeting joining tool. (And it's far better at this than my Linux laptop, which gave me constant headaches with multimonitor support etc).
I personally am not blown away by homebrew, but if it's truly what the community is going to use then Apple should embrace it properly and have all the core utilities, and all the stuff XCode etc adds, be presented as brew packages.
I've worked in positions where I've been told "choose your operating system", and places where I've been told "Mac or Windows".
Usually the latter comes down to the company having group-policies, or mandatory compliance software managed centrally.
Sometimes I've picked Linux and had to jump through hoops installing anti-virus, or other similar things.
Given the choice I'd pick Linux every time, but if that's not an option and I want the job then Mac is a good fallback. I'd rather quit my job - and have done so - than run Windows.
I'm "devops" these days, but I before that I was sysadmin. I always preferred to run a similar OS to those systems I managed.
These days with immutable containers, etc, it matters less. But a decent shell, the ability to run automation tools easily, etc makes a difference.
I know that WSL allows most things, and many devops tools are written in golang/rust, which are available for Windows, but I started at a time when Ruby, Perl, puppet, cfengine, etc, etc were basically not decent options on Windows.
I keep up, I use AWS, kubernetes, etc, but I'm used to flexible, scriptable, and predictable working environment - and for me that means Linux.
WSL doesn't help solve the lack of decent window management at all. I hate managing window sizes and overlaps; it's why I use a tiling window manager than handles such things for me. There is now tiling support for the others, but they are so manual as to be useless IMO.
The focus stealing proclivities of both macOS and Windows for new application windows can also go die in a fire as far as I'm concerned.
I've used i3 quite a bit, but to this day I still don't get where one would want a more complex window management than your standard L/R split? If I need more complexity than that, it's inevitably on the command line, and I'm in tmux anyway. I'd love to see a workflow with more splits where one wasn't on the command line.
Sometimes content is better as a top/bottom split (e.g., long lines). The ability to "rotate" the layout by 90° with a single keybind is very useful (I use XMonad myself). I can also put multiple windows on the "main" side and rotate between 2 "stable" and a larger set of "smaller" windows. This is handy when juggling RDP into N machines while waiting for Visual Studio or Xcode installations to do their thing.
I also enjoy the simple keybinds I have to sling windows between monitors and workspaces easily. I have no idea how I'd do that with any of the tools on macOS or Windows in a maintainable way (XMonad's configuration lets me cartesian product between (noun, key) and (verb, modifier) lists to make things very consistent).
WSL still means you need to deal with Windows, which some of us don't want to do.
There's an abundance of jobs available to you if you're a decent programmer, so avoiding the places which prevent you from running your OS of choice is a good first filter to apply.
Mandatory Windows workstations correlate heavily with environments where you spend half the day watching your workstation sit unresponsive because it's doing one damn corporate-mandated background task or another. I wouldn't rule out an all-Windows place completely but I'd see it as an orangish flag demanding clarification. Software in general is bad and time-wasting enough as it is, I don't want all that extra frustration from a pile of poorly-conceived shitware using far more processor cycles and disk IO than my actual work does.
> Usually the latter comes down to the company having group-policies, or mandatory compliance software managed centrally.
Yup. The company I work for kinda has this. Their security software does support Linux, but usually lags a bit. So to fully use it, you have to not apply the latest kernel updates. Makes total sense for a vendor promising to improve your "security posture".
They're working on improving the situation, from what I understand, but they're still not there yet. The provider is a company you've probably heard of, that doesn't allow you to download the installers if you're not signed in (they're not custom, since they still require you pass in some installation token to tie it to your tenant). Good times.
Fortunately for me, instead of bugging me to switch to Windows, they're bugging the vendor for improved Linux support. The reason being that we intend to run this on Linux servers, too, and don't expect to change those to Windows.
My previous gig was mostly working on a Vue project. It was a .NET shop server-side, so Windows all day. I _almost_ fought for a Linux or Mac machine until I realized my entire day was in VSCode writing Javascript that ran on whatever local nodejs server.
A new [nationality omitted] hire, Boris, wasn't a Windows fan so he immediately cracked open his laptop and added a hard drive running Linux dangling out the side, obviously not within the policies. He lasted about 2 weeks.
I use MacOS for development, and I too was used to a tiling wm on linux. Yabai[1] as a wm and skhd[2] were totally necessary. It's a bit of a pain to install, but once it's set up it's been completely frictionless for me.
I also choose to not disable SIP. The only thing that I miss is being able to disable animations, besides that I'm using it just fine, not as good as i3 but good enough for me.
the one actual thing that slays me about OS X is the workspace switch delay. Everything else is on the range from bad-but-tolerable to great, if I could just disable that one thing I'd love it so much more
All of these are minor features. Mac just works and apps look gorgeous. I love my Arch, but even the simplest Linux distro requires more work than a mac. Even getting an equivalent font rendering is hard. Even the most Linux compatible Dells and Thinkpads have issues that made me frustrated often. I love any Linux package manager and window manager over Mac, but random issues that require tweaking is a lot.
I've had mostly the same experience on ZorinOS. It just works, never crashed on me, never made me spend hours fixing some weird bug. All my hardware is fortunately well supported.
But yeah, I'd give MacOS more scores on the UI design.
> getting an equivalent font rendering is hard
I haven't had any such issues and I don't use Arch because ZorinOS provides me everything out of the box.
No, it’s really a sign that someone has built a very picky, idiosyncratic workflow and is unwilling to adapt to other systems. This isn’t a complaint about Macs. It’s a complaint about anything that doesn’t exactly match what the user already has.
Why should they have to adapt though. Computers are supposed to work for us, not the other way around. The issue with macs is that it’s very difficult to adapt it to suit any preferences one might have in their own workflow.
I’m not someone who spends much time configuring computers but as much as I will argue in favour of sane defaults, sometimes things do just boil down to personal preference. Apple make it very difficult to change things. (Microsoft, unfortunately, seem to be taking inspiration from Apple too).
It's easy to change Mac to your preferences. I have Alfred.app for key mapping, custom search. HazeOver.app to dim background windows. Alt-tab.app for window switching (making it look like Windows 10). NightOwl.app to switch to dark mode on a schedule. Karabiner.app, SensibleSideButtons.app, and the list goes on for me.
If a person is that sensitive to workflow, neither standard Mac or Linux will suffice.
I find Linux to be more difficult to customize because everyone is using different desktop distros which i think causes these types of apps to be buggy.
I don't think it's easy… you need to somehow magically know about this undocumented "alfred", hope it isn't malware, download it.
On plasma I open systemsettings, I search "shortcuts" and I can change all of the KDE ones in one place.
I think having it already there is easier than downloading unknown undocumented app. But just my opinion.
> I find Linux to be more difficult to customize because everyone is using different desktop distros which i think causes these types of apps to be buggy.
Sure, server stuff is hard, but desktop is much more limited.
Every solution you’ve posted there is a 3rd party application outside of macOS. Which really just proves my point.
If you have to resort to undocumented hacks to make changing basic things “easy” then it isn’t easy.
Whereas KDE (for example) provides all of that in its base install. You can roll with the defaults, which are pretty sane, or you can change them to suit your preferences.
> If a person is that sensitive to workflow, neither standard Mac or Linux will suffice.
That’s a pretty absurd conclusion. We aren’t talking about computer illiterate people here. We are talking about skilled IT professionals having personal occasional preferences that differ from what the defaults are.
To quote Monty Python: We are all individuals.
> I find Linux to be more difficult to customize because everyone is using different desktop distros which i think causes these types of apps to be buggy.
The fact that everyone can run different desktop distros is further proof that Linux is easy to customise!
There’s absolutely nothing wrong with preferring macOS. If that’s what you find better to use then good for you. But it’s a really large stretch to argue that Macs are more customisable or easier to customise than Linux systems.
Shortcuts are actually pretty consistent on macOS. In text fields, the Control-<char> and Option/Meta-<char> bindings mostly correspond to emacs keybindings, as is the default for most shells as well in the terminal. C-a/e for going to the beginning/end of a line, for instance.
All the CUI-style bindings like Windows' and Linux's Control-c for copy are done using Command instead. It's a change, sure, but a minor one that also deconflicts many bindings. How do you copy in the terminal on Windows and Linux? If it's C-c, how do you send sigint? How do you select all in a terminal if C-a defaults to going to the start of a line?
Most of the remaining inconsistencies or confusing bindings (Cmd-y for history in Safari) are a consequence of too many bindings. Cmd-h is already taken for hiding the current application and is a useful mnemonic across many applications, whereas Cmd-h[istory] is useful for a limited number of applications, and it would be inconsistent for those applications to override the system default.
At least on Linux I can have crystal clear (looking) font on my 2K 27" monitor.
On MacOS it looks blurry because they expect you to buy a higher DPI monitor - there's no subpixel rendering. If you want to share your monitor with your gaming PC as well (and you don't want to spend thousands on video card and monitor), you are left with subpar fonts on your MacOS.
This still unfortunately depends on what you're using it for. If development is your main use-case, MacOS will most certainly not work. It's absolutely dumbfounding how many darwin-specific bugs exist in common software (especially in the age of M1), but the real problems simply come from setting up a decent dev environment. Shopping around to customize MacOS in the way I like it is much more time-consuming than cloning my Nix dotfiles and building an environment from scratch.
It's still possible to use a Mac as a development machine, but the edges around it have gotten really sharp. Most of the Mac devs I know are writing code in a Linux VM, these days.
> If development is your main use-case, MacOS will most certainly not work.
To quote Big Lebowski, "that's just, like, your opinion, man".
I've used MacOS for development since 2008. PHP, Erlang, JS/TS, Python, Java, C#... It certainly does work.
Almost every[1] dev conference you go to you see people on MacBooks (a tiny percentage running Linux on them). Often the majority of people will be on MacBooks.
> Most of the Mac devs I know are writing code in a Linux VM, these days.
I have the exact opposite experience.
[1] Well, it's an exaggeration and bias of course, but...
If your primary use-case is delivering developer conferences, Macbooks are a pretty compelling option. Linux multimedia has been comparatively quite bad, and at least you reserve the right to complain when a Macbook breaks last-minute.
For pure development stuff, though? You're torturing yourself on MacOS. For every pretty menubar you enjoy, there's a dead POSIX zombie underneath your floorboard or an encroaching platform limitation coming from the top-down. Then you have to deal with the fact that MacOS is by-far the least stable software target of the Big Three OSes, and managing your libaries/software without third-party software is a nightmare. By the time you install all your package managers, Emacs/Vim plugins, browser-of-choice, three or four versions of bash and Git, Via Xcode, most people ask themselves why there isn't a better way.
Ultimately everyone's experience is anecdotal, but survey says that developers are turning over a GNU leaf...
> If your primary use-case is delivering developer conferences
Ah yes. All developers that go to developer conferences are there to deliver those conferences (whatever that means).
> For pure development stuff, though? You're torturing yourself on MacOS.
And you're saying that with the full knowledge and authority because?...
To reiterate. I've been developing exclusively in MacOS since 2008 in a variety of programming languages for a variety of things.
> there's a dead POSIX zombie underneath your floorboard or an encroaching platform limitation coming from the top-down.
Demagoguery.
> and managing your libaries/software without third-party software is a nightmare
wat
> By the time you install all your package managers, Emacs/Vim plugins, browser-of-choice, three or four versions of bash and Git, Via Xcode, most people ask themselves why there isn't a better way.
wat
I spend about as much time installing this as you spend installing the same on... well, any machine. Because most of that doesn't come preloaded with Linux either. I do agree that XCdoe Commandline Tools are a joke. But how many times a week do you install them (and other tools)? Zero? I can spend 5 extra minutes on my setup once every four years or so.
No idea what the FUD is about "several versions of bash and git", I use a single git and zsh (which is now default on MacOS).
And yes, I stopped using emacs a long time ago (which I used for three years... you guessed it: on MacOS [1]) and switched to a proper IDE.
It's just tiring. MacOS was my daily driver up through Mojave, but there came a point where the smoothness of the user experience wasn't worth the limitations of the software. There are hoops I can jump through to make Docker faster, or mount my NTFS drives, or even use Linux inside MacOS, but all of it feels redundant. Everything I use MacOS for exists on Linux, too; why was I using MacOS?
Maybe I'm scarred or spurned or something. MacOS has not been kind to my workflow over time though, and going back to using Monterey for work was an exercise in frustration.
> Everything I use MacOS for exists on Linux, too; why was I using MacOS?
So. MacOS wasn't for you, and you extrapolated it to "if you are on MacOS, it doesn't work". Well, it keeps working for me (and a great number of other developers)
For example, over the past 6 years across two jobs I haven't used Docker except for running some tests (bringing up and tearing down MySQL databases or using Google's pubsub emulator). So while it is slow, it hasn't been slow enough for me to care. I haven't had the need to mount NTFS drives. I havent' had the need to use Linux inside MacOS (and the few times I needed it in the past decade VirtualBox has been enough).
On the other hand... I needed to set up a Linux VM on a NAS to run a small family website I built in Elixir + Phoenix. I'm deifnitely rusty in Linux but ooh boy. Good luck getting a relatively recent release onto a system which insists that everything must come from a packge manager and installed via sudo for the entire system. Thank god for asdf, but it was still a pain and a half (because asdf builds everything from source and figuring out the names for the required libs is a masochistic sort of fun).
Look, the original thing I took issue with was the tired "Mac just works" routine. MacOS has changed, and it's much more opinionated now than it was 5 years ago. If your workflow didn't break, that's fine. Even still, MacOS needs a lot of modification before it's ready for development. It's a fine OS if you want to touch up photos or edit video for a living. For professional programmers, I am adamant that Linux is a more consistent experience than dealing with the issue du-jour in MacOS.
> Even still, MacOS needs a lot of modification before it's ready for development.
Just like every single OS. Your linux box doesn't come with most of the things you listed pre-installed and preconfigured: your vim/emacs plugins, your browser of choice, git, your speicifc versions of libraries etc. etc.
Edit: BTW there's a reason there are so many tools like pyenv, or SDKman, or asdf that first appear on Linux and then get ported to other systems. Because the rosy development paradise that is Linux is everything but.
> For professional programmers, I am adamant that Linux is a more consistent experience than dealing with the issue du-jour in MacOS.
Linux has it's own share of issues du jour that impact actual use of the operating system. And most of the issues I have with OS very rarely come down to the problem with the development tools/environments/what not. Hell, I switched to M1 as an experiment about a year after it came out... and everything just worked (big thanks to those who made stuff work under M1, but even non-converted tools kept working).
And I've personally seen many people switch away from Linux to MacOS precisely because they found the overall experience of being in MacOS better. Because even if you "just" develop stuff, you still want your machine to have all the human stuff: from reliable hibernation/sleep to good touchpads to crisp displays to media support to ... yes, "touch up photos or edit video" (not necessarily for a living).
I've been a windows dev and cloud dev using a Mac laptop for 13 years exclusively. I see a lot of arguing over some minor in-the-weeds issues, but I don't see people talking about the big things.
* Best-in-class hardware. Touchpad, M1 power, and battery life.
* With that, best-in-class drivers, I never have to mess with them. Sleep mode actually works.
* If you're an iPhone user (which I am) being able to text with people from the desktop is invaluable.
Everything I did with Windows development I did in VMWare, just having a stable laptop and touchpad was 90% of it for me. Windows actually runs better in VMWare on Mac than on native hardware because the hardware and drivers on Mac are so much better.
These days I'm a cloud dev. Which for me means only three apps I need. VSCode, a browser, and a good *nix terminal. Mac does all three great.
Hardware's great, I won't deny that (for the most part). Apple had a few embarassing design fuckups, but I like their trackpads enough to add it to my desk setup. Expensive little bugger, but nice to have.
That being said, if all you need is VSCode, a browser, and a good *NIX terminal, then Asahi Linux should feel pretty much finished to you. Or any hardware that promises good Linux support, really. With KDE and a Magic Trackpad, I can get the gesture-driven workflow I loved in MacOS without the... well, MacOS part.
Ultimately, you should use whatever suits you. I'm unconvinced that MacOS remains the best option for most developers, though.
Nope it bloody doesn't. The amount of missing features (why can't the scroll direction be different between touchpad and mouse? Why is there no native window management?), stupid bugs and simply undebuggable issues ("A USB device is consuming too much power, it has been disabled"... Which device, they all still work?? Or iPad screen sharing not working without any indication why, or the device refusing to go to sleep when connected to an external monitor that also charges, etc. etc.) just doesn't fit the "just works" bill. Some things work very well, many others don't or do but with subpar UX.
There is no driver debugging, no GRUB script editing with heart trepidation. No recovery drive on speed dial. No monkeying around LD_LIB_PRELOAD, no head scratching around arcane path conflicts.
Yes some features are missing and hard to add, but it's like a car with a lacklustre stereo. IME the Linux cae can't run for more than 100km without something breaking.
I ran Linux for four years. I spent a night getting it setup. Didn’t diddle with it except for major OS upgrades… and even that was, at most, a morning. The only issues I ran into was internal docs that assumed you were running OS X and those I could usually skip because on my machine it “just worked” like prod.
I run Linux at work and did all these things in the past 12 months, twice in fact because my Ubuntu install just randomly decided to nuke itself. Still not sure what happened.
Sorry, allow me to elaborate. I have a 34 inch UWQHD curved monitor, and to make the best use of the space available I want to split apps between that real estate. E.g. i might want VS Code to take half or 1/3 of the screen, or split evenly between two apps, or split into 4 zones. Windows and Gnome/KDE come with some basic shortcuts that allow you to do this, to an extent (e.g. Win/Super+Left/Right arrow will split the screen in half and send the app you're currently on to the left/right of it). On macOS there's nothing out of the box, so you have to download third party tools, the vast majority of which are paid (tankfully Rectangle isn't)
I get that it was a great bit of marketing, and it's become a fossilized idea in many people's heads, but I've never had the kind of bizarre failures in Linux that the article and the comments talk about regarding modern macOS.
> and apps look gorgeous.
This is a matter of taste. I dislike the Mac UI and the fact Macs only have one UI is one dealbreaker out of many.
Not for me - it still feels like, UXwise, it's stuck in the earl 2000s.
We're in 2022, and no window snapping? Randomly rearranging workspaces/desktops?
Forgetting which apps are on which monitor whenever it goes to sleep? Inconsistent shortcuts + lack of used-defined global shortcut assignment? Inability to set mouse acceleration?
Because the hardware is just so, so much better. I would absolutely prefer running Linux, but nothing comparable exists. Running yabai for tiling window management isn’t great, but it’s ok.
This used to be true, but no more. There's a lot of great hardware built for Linux or officially compatible with Linux. I'll just list a few comparable to MBP 16" since that's what I'm most familiar with:
* StarLabs Starfighter
* ThinkPad X1 Carbon Extreme
* TUXEDO Computers InfinityBook Pro 16"
> unsure if getting my dual displays working(Apple Studio Display, LG Ultrafine) will be a pita on linux
My guess would be because you're going from an OS that handled everything for you to a completely customizable OS like ArchLinux. I have never had issues getting dual displays to work on Fedora. I have 2 Benq displays connected via thunderbolt on Fedora now and have done similar with the LG Ultrafine.
Not sure about this Apple displays. But I have driven dual 4K displays off of my HP Elitebook 850 g7.
I have actually gone back to 2K displays and I find those better for programming. I am currently running 3 2K displays (all of them massive 32 inch) via a single cable to my docking station. I also have a thinkpad t420s this can do the same. Both of them running Ubuntu 22.04
Getting dual displays "working" is pretty trivial. Getting those two both working at the same time with the correct resolutions, DPI and fractional scaling will probably be close to impossible.
I use all three operating systems on an almost daily basis and from my experience things on a Mac tend to just work and Linux things tend to just stop working for no reason. Bluetooth is an example that immediately jumps out at me.
Everything works as long as you stay in the apple ecosystem. I had this weird problem where my wife's macbook was backing up all the photos and videos from google photos to icloud. I know nothing about macs, I got a mbp over a decade ago and put linux on it as soon as I figured out how. I found it quite harrowing figuring out how to remove all that from icloud, and prevent it from happening again. It still gives very odd errors seemingly related to what was probably an incorrect fix.
It's really interesting. Most of your reasons for preferring Linux are the same reasons why I prefer macOS. In the end, it is really about habit.
For context, I've used Desktop Linux from 1996 till 1998, 2002 till 2007 and tried again for the past two years with a Ryzen desktop.
The main reasons that bring me back to macOS (apart from the M1 / M2 hardware):
- I much much much prefer the macOS keyboard shortcut setup. Command+C works everywhere. On Linux, Ctrl+C works most of the time, but sometimes it's Ctrl+Shift+C or something else. I run into this far too often because I'm a create of habit.
- I also enjoy that basically all apps adhere to the same keyboard shortcuts. E.g. Command+T for new tab works not just in Terminal, but in every tabbed app.
- I haven't found a way to customise Gnome or KDE so that application switching with Expose / Mission Control works as fluid as on the Mac. I use this all the time to go to different windows.
- I like that the package manager is separate from the operating system. More than once have I run into a Linux situation where I had weird package conflicts and it was super tricky to get out of it. With Brew I just reinstall it and I'm done.
The predictability of having a particular keyboard shortcut do the exact same thing in Every. Single. Application. cannot be overstated. The benefits to your flow and productivity just from this simple convention are immeasurable.
> Ctrl + C to cancel a command in terminal but Cmd + C to copy text in terminal. Ok, then why Cmd + T to open a new tab in terminal instead of ctrl?
Because Ctrl+T swaps the two characters around the cursor, which is what it should do in a terminal (and in Mac OS, it does this in all text boxes in all applications). Mac OS is actually remarkably consistent about all of this. In Linux, Ctrl+A goes to the beginning of the line in a terminal, but it selects all text in other applications. In Mac, Ctrl+A goes to the beginning of the line, everywhere.
This is a weird but so so killer feature to me. Our lives are constantly about text editing in one way or another, having all the usual ways of navigating text available across the entire OS is the best feature of all.
Ditto, having consistent and useful text-editing keybindings in ~all fields (that use the native toolkit, at least) was something I didn't know I needed until I experienced it. Anything that's (even) less consistent than the real-world experience of that on MacOS feels... wrong, now.
I use this feature frequently too, but the downside is that it makes non-native textboxes stick out like sore thumbs because they don't implement it.
In fact, this is common to a lot of little poweruser features on macOS, and I think is a big driver of distaste towards non-native apps by long-time Mac users.
C-t swaps adjacent characters
C-b/f move backward/forward a character
C-p/n move up/down a line
C-k kills (cuts) to the end of the line
C-y yanks (pastes) what was killed (but does not use the same clipboard as Cmd-c)
C-h deletes backwards one character
C-d deletes forward one character
Probably more, but that about covers the ones I use.
Having observed colleagues use a variety of Linux computers for development (back when I still went to an office), these are the issues that I observed Linux devs struggle with that Macs devs didn't:
> Computer refuses to communicate with the dock.
> Bluetooth audio doesn't work.
> Screen resolutions get fucked when reconnecting monitors.
I haven't had these problems in 4+ years (since Ubuntu 18.04 LTS). I used to have occasional Bluetooth & screen resolution/inconsistent positioning problem with my work computer and, I fixed them using 1-liner scripts bound to keyboard shortcuts (restarting bluez, and calling xrandr with the right args), but this was a lifetime ago, during the v3.x/v4.x kernel days.
> Maximizing an app takes you to a totally new desktop
No, it doesn't. Fullscreening an app window takes you to a new desktop, or to be more precise, makes it fullscreen. If you just maximize it, it stays in the same desktop.
> Single click on dock to maximize the app but clicking maximized app doesn't minimize it. Why?
I have never seen that behavior. Single clicking on the dock selects the application, but does not maximize any windows.
> Ctrl + Alt +T doesn't open terminal, it's like oxygen to me.
Using iTerm, double tap command (this is an option you have to enable) will bring up a terminal. It is great.
> Ctrl + C to cancel a command in terminal but Cmd + C to copy text in terminal. Ok, then why Cmd + T to open a new tab in terminal instead of ctrl?
This one shouldn't be too shocking if you're familiar with terminals. In the terminal, the control characters are passed through intact to the terminal itself to do whatever it needs to do. Hijacking them for application (the terminal emulator itself) control would be bad behavior.
> If you just maximize it, it stays in the same desktop
The behaviour must be inconsistent then, because I just clicked the green icon on edge, safari and vscode and it popped me off to a new virtual window.
double clicking the title bar will maximise it vertically on Safari, and full screen on vscode and edge
That's not the maximize button, hover over it and you'll see an "enter full screen" text pop up with two other options (fullscreen with another application, one on the left and the other on the right). It hasn't been the maximize button for something like a decade now. Double clicking the title bar is not making VS Code fullscreen or moving it to a new virtual desktop on my computer, it just maximizes the window (or restores it once maximized). I have zero desire to use Edge so I'll let someone else work with you on that.
Mac’s and macOS (all the way back to 1985 and ‘System 1’) has never had the concept of maximising windows. What you are referring to too, and what the green button does, is makes the current window (not necessarily app) full screen.
All this predates the behaviours described that are followed by Windows and other OSS desktops. Neither is better, both depend on habit and familiarity. For some of us that used Mac’s since the 80’s, the Windows approach is a complete anathema. Organising the workspace into neat grids is not something many of need or have missed - that’s not to say that it’s pointless, but it doesn’t necessarily fit the workflow of macOS. As mentioned, there are myriad tools, most of them free, to add the behaviours that you seek.
I gave Linux a honest shot when my previous macbook keyboard died, however I could not make it work.
- Last time I tried, Linux could not do proper fractional scaling. I use 4k 27" displays and wish to use 1.5x scaling. macOS does it perfectly, Windows does it perfectly. Linux does all kinds of shitty stuff. Never could get it working properly. You either get blurry scaling or screen tearing and shit.
- Scroll inertia thing is fucked on Linux. Trackpads are not fun to use.
- I love clipboard managers, keeping history of clipboard, allowing search in previous entries etc. All solutions on Linux have been simply bad. And as far as I can tell, it is not even possible to properly do it on wayland.
- Laptops do not sleep properly. I tried 2 different devices, more than once they heated up in my backpack. I can't have that.
Note that I'm not a foreigner to Linux. I've been running and loving Linux servers my entire life and I can get around stuff pretty fine. I just don't have the stamina to deal with desktop linux.
When you get to multi displays with different native dot pitches you start running into issues. I have not been able to easily get my laptop to handle it's 4k internal monitor and a 2560x1440 external smoothly. Issues occur when I unplug the monitor and debugging microscopic 4k fonts isn't fun. Nor is 75 arcane commands from the internet and 14 ui tools that don't quite do what I need.
This happens on Mac and windows but on windows I just use force resolution on the Nvidia driver to add one extra mode, and on Mac switch res x did it.
That's a strange statement to make. Usually, one would try a given distribution, not Linux itself, without even going into considering the flavors of window managers (gnome, kde...) .
You must have tried Linux really quickly :p tongue-in-check
Curios, I tried a macbook in the first month after the launch of the 16inches with m1pro/max and I found fractional scaling in macos for my two 27 1440p display _extremely_ bad, especially fonts were renderized so bad it was hurting my eyes and almost unreadable, while on linux the rendering was immediately perfect
I assume most people needing fractional scaling on Mac are doing it with hidpi displays, where differences in text rendering aren’t visible and layout correctness is way more important. I have a 4k display scaled to 5k resolution to get more real estate, and there’s no difference in text clarity at that PPI.
I very much agree with all of this. I tried to use desktop Linux for years, and besides the UX issues you mentioned above, I also just found every desktop environment (I tried Gnome at length, grew up on KDE/Xfce) mildly clunky and lacking some essentially design spirit. Not everyone's cup of tea, I guess.
- fractional scaling is a known sore spot, but it seems like it's getting better fast. Wayland finally has fractional scaling and the upcoming release of KDE is coming with proper fractional scaling support.
- The laptop sleep setting is some that can be (sometimes) fixed by changing a bios setting (called something along the lines of 'Sleep State'). It's part of a Microsoft + Intel initiative to make PCs "more like smartphones," with all the extra "user friendliness" you would expect from that.
If you are on Wayland, fractional scaling should be working fine as of 2022. It'll be a little blurry in some cases until everything is native Wayland and fractional scaling is supported through all apps and compositors, but at the very least window geometries should be being scaled correctly unilaterally when you run Wayland today, heterogenous DPI, fractional DPI, whatever.
Can't comment on scroll inertia. Libinput has been working pretty well with my assortment of trackpads. Touch input seems ok on Wayland too, using an ITHC based device.
Have not had the sleep problem with Linux lately. Actually, the problem has kind of reversed - nowadays, this problem is more associated with Windows, thanks to Windows Modern Standby being impossible to disable on newer Intel processors. Still, sleep may be broken if you are using an NVIDIA based device. All I can say is, NVIDIA is one thing better avoided with Linux today. Obviously, if you want your best shot, using hardware that is designed and tested only on other OSes that has merely reverse engineered support in Linux is not going to give it to you, though I understand why people are not willing to fork the cash over to one of the few vendors like System76 that actually do a reasonable job.
You got me on clipboard management, that sucks today. I'm pretty sure it's not impossible in Wayland, but it'll need compositor support. KDE on X11 used to have great clipboard management; dunno what the status of that is in 2022, as I used KDE most in the KDE3 days. Clipboard management is hard for valid reasons though. Just like on all other operating systems, clipboard isn't really a place that data lives, it's an IPC layer. When you copy, nothing happens except for the advertisement that something has been copied to the clipboard. Sometimes clipboard operations hang if an app becomes unresponsive, and the act of "pasting" is not necessarily without side-effects. This makes active clipboard management pretty hard to get right, if it's possible at all with today's designs. The biggest problem is LOSING the clipboard when an app closes, in some environments. That really does need to be fixed. That said, believe it or not, it happens on Windows too, just, thankfully, not in most common scenarios.
>Last time I tried, Linux could not do proper fractional scaling. I use 4k 27" displays and wish to use 1.5x scaling. macOS does it perfectly
Depends on when you used it last time. On Linux we have two graphic systems, Xorg that doesn't support it, and Wayland that supports it out of box. Some distros switched to Wayland years ago, others still prefer Xorg as the default option, just change to Wayland during installation. I have 2 screens, each with different resolution and it's all fine.
>- Scroll inertia thing is fucked on Linux. Trackpads are not fun to use.
This is highly configurable on Plasma (KDE). I would say, too many possible options are given, but it's not as bad as on Windows where on one laptop double tab is double click, on another it means scroll-click. Plasma tries to fit everyone, but requires some turning like this.
>- I love clipboard managers, keeping history of clipboard, allowing search in previous entries etc. All solutions on Linux have been simply bad. And as far as I can tell, it is not even possible to properly do it on wayland.
We're back to Plasma, you can configure global clipboard and screen-independent clipboard, they would also share history and clipboard recorded is enabled on default.
>- Laptops do not sleep properly. I tried 2 different devices, more than once they heated up in my backpack. I can't have that.
This still suck very much, welcome to systemd integration layers that need to be done as root and you never know if it's working until you test it after a reboot.
Wayland by itself does not* support fractional scaling out of the box, or at least it didn’t until November of 2022 when the prerequisite protocol extensions were merged to the project.
And AFAIU clients (applications) still need to implement this protocol. Something like wxwidgets or old gtk versions probably won’t ever get to implementing it.
* Some compositors employ some workarounds to achieve this, like the scaling tricks where they render to a larger buffer and then downscale it…
For some reason I can’t use wayland properly without bugs. I have two screens and sometimes the split horizontally for some reason or one screen just won’t work.
I have no fancy setup. Most of the times Linux failed for me at Desktop things. So I Never used it for work despite server or container stuff. But now we have employees which have problems with Microsoft teams on Linux. At the problems may be the sound drivers.
We a lot problems like that when we want to integrating Linux desktops in our enterprise environment.
We are not using red hat or but have dedicated Linux computers.
The sleep thing is not unique to Linux at all. I've had that happen with my MBP, Windows laptops are affected by it too. It's just modern shitty standby. The best way to avoid that is to buy a device that still supports S3 sleep, many ThinkPads still do with the BIOS setting being labeled "Linux".
I've found fractional scaling OK on Linux doing it with Xrandr. It works the same way MacOS does it. A bit of a bear to setup although Ubuntu has had it easy to use in their version of Gnome since 20.04.
> Last time I tried, Linux could not do proper fractional scaling. I use 4k 27" displays and wish to use 1.5x scaling. macOS does it perfectly, Windows does it perfectly. Linux does all kinds of shitty stuff. Never could get it working properly. You either get blurry scaling or screen tearing and shit.
This is a bit of a workaround, but I've been using it for close to 5 years on Gnome / Ubuntu with a lot of success:
You can install gnome-tweaks, and modify the text scaling factor to fractional numbers (ex: I have it set to 1.4 on a 2560x1400 14" screen). The vast majority of applications use this to scale both text, and icons (chrome, terminal, file editor, desktop, etc).
And I realize as I type this that it's a "workaround", which kind of reiterates your point about it being difficult to use. That said, I personally feel like macOS has similar issues (docker, desktop handling, slightly.. different bash tools, etc), and a lot of it is a matter of using something you're not used to.
This is because the application devs didn’t call the function to enable it. It’s literally 1-2 lines of code and a quick Google search, but you have to know about it.
> - Laptops do not sleep properly. I tried 2 different devices
If you tried to install Linux on two random devices designed for Windows and they do not work flawlessly, then I am not surprised. My Librem 15, which came with Linux preinstalled, has 100% reliable sleep.
- that scaling scenario (same factor on multiple displays) works perfectly in my experience. What admittedly could use more work is mixed scaling, which works fine on wayland and okayish on X.
- I thought that was a patents thing?
- Compared to what? The clipboard managers on windows seemed all pretty bad.
- yeah, better than windows (e.g. see the linus tech tips rant about it), but s3sleep is much better still. Luckily many higher priced ones offer that as an option in the UEFI settings.
>I honestly don't understand why devs use MacOS over Linux
I turn the lid down on my laptop and it goes to sleep. It pull it up and the system comes back up. Reliably. Every single time.
I guess that narrows my choices down to Windows and MacOS. Between them I find it much harder to choose, but Macs just have a solid lead on the hardware front for now. The M1/M2 chips are just chef's kiss. And I don't know why most Windows laptops come with such junk webcams.
Edit: I almost forgot! Linux still doesn't have hardware accelerated video playback on browsers. How can anybody recommend using linux on their laptop despite this is beyond me. Is this a joke? Like do you guys just always keep your laptops plugged in all day? Why not just get a desktop at that point?
I do have hardware accelerated video playback on Firefox on Linux.
AFAIK it's easier to set up on Wayland, but I have it working on X.
edit:
Maybe I'm super lucky, but I rarely had problems with suspend on Linux. Having said that I prefer no suspend on closing the lid, and AFAIK that's not an option on MacOS.
I sometimes find it more convenient to carry a laptop to the meeting room or to a separate teleconferencing space (or even to the couch at home) with the lid closed.
Especially if I'm also carrying something in my other hand.
This assumes that you don't have stuff you would rather leave running in the background. Like compiling, or keeping an ssh session alive.
I at least sometimes see coworkers walking around with open laptops, which looks inconcenient. I am sure they have their reason for not closing the lid.
It does, but it still requires unlocking the session on resume, which is a minor inconvenience if you're just moving to a neighbouring room with a coffee cup in your other hand. Slightly more importantly, sometimes it's also convenient to keep network connections open, e.g. for ssh sessions.
Those aren't really problems, but it can be a minor matter of convenience, and I've set both my work and personal laptops to not suspend when the lid is closed.
I'm not saying that's in any way a better idea than keeping the typical default, and I have absolutely no opinion on what anybody else should do.
FWIW, I also don't care whether macOS gives an option for not triggering sleep when closing the lid, which was the original matter. But I don't agree that there's no reason to close the lid except for suspending.
>I do have hardware accelerated video playback on Firefox on Linux.
How much time did you have to spend fiddling with your config to get it working? Does it work reliably? Last I checked, it wasn't even possible with an NVIDIA card.
>Having said that I prefer no suspend on closing the lid, and AFAIK that's not an option on MacOS.
> How much time did you have to spend fiddling with your config to get it working? Does it work reliably? Last I checked, it wasn't even possible with an NVIDIA card
Max an hour. It's an Intel GPU on a cheapo netbook (hence the need to make it as efficient as possible). Arch wiki is quite decent for this kind of stuff.
I don't know about NVIDIA, I didn't own one since a long time.
That also eliminates windows. If I did that with my dell laptop and put in in my bag the battery would be drained and fans running on full blast very quickly.
On every single windows or mac laptop, I just seem to the same peace of mind I have come to expect from smartphones. Click, system goes to sleep. Click, system is up.
On linux, every time I approach the laptop, it is with that small but unshakable feeling of dread. What is my laptop going to do this time? Will it decide to come up with the same state I left it in? Or will it decide this is a good time to reboot?
even windows laptops are inconsistent with sleep working. how is this not enforced at a hardware level? randomly turning on and generating heat while inside a backpack seems like something that could physically damage the laptop.
> I turn the lid down on my laptop and it goes to sleep. It pull it up and the system comes back up. Reliably. Every single time.
It's not the case for my M1 MBP. Having it connected to an external USB C/Thunderbolt monitor makes it simply refuse to sleep, even when clicking on the Sleep button, closing the lid, etc. Even outside of that it's a crapshoot if simply closing the lid when on battery power will actually make it sleep, or i will realise on Monday it never slept.
In your Battery settings, do you have “Wake for network access” set to “Only on Power Adapter” or “Never”? If it’s on “Always”, your laptop could just be getting woken up frequently.
I don't even know what hardware accelerated video playback in a browser is. I've gotten along fine without it. I do keep my laptop plugged in all day. I don't get a desktop because a couple days a week I unplug it to drive to the office where I plug it in again. Rarely close the lid unless I'm about to put in in it's case and take it somewhere.
> I don't even know what hardware accelerated video playback in a browser is
It means that your browser uses the dedicated video card for rendering video frames and pushing it to your monitor instead of using the CPU.
Why you would want this? The same reason you use a straight-edge to draw a line and a compass to draw a circle. The right tool for the job. I'm sure most people here would have had the experience of the first time training their machine learning model on a GPU instead of the CPU and having their jaw drop at how much faster it was? GPUs are simply much better than CPUs at the things they are designed for. Sure, most CPUs are still powerful enough to push 1080p videos to the screen, but that comes at the cost of poor performance and battery life.
You shouldn’t be so dismissive of other people’s experiences just because they differ with your own.
I’ve been running Linux since the 90s and literally the only machine that’s ever been troublesome is my current one. But even the issues I’m having with this laptop are really no worse than the issues I’ve had with macOS.
I still have a MBP I use for work (and an iPhone and Apple Watch I bought for myself) so I’m bought into the Apple ecosystem and there is lots I do like about it. I just don’t believe Apple products are the pinnacle of perfection that others on here claim. Nor that Linux is the shit show that Apple fanboys make out.
Ultimately, computers are complex and people have subjective preferences. So what works for you might not for others. And visa versa. Assuming that your experience must mirror everyone else’s verbatim is a sign of arrogance rather than understanding.
So maybe instead of being dismissive that other people have had positive experiences, instead you should be grateful that there is a choice out there for people who are less receptive to the platforms that you personally prefer.
I have been using linux since 2008. Have installed and used it on at least a dozen laptops in the time. The number of times I have not faced any battery or suspend related issues is, well, zero.
I have been that guy who loved to customize every last ounce of the user facing experience of my system. (I still spend most of my time inside of Emacs irrespective of which OS I'm on.) I had a dotconfig folder that I used to carry around to different machines and it's fun and all that. But I'm no longer a student, I simply can not justify spending time tinkering around trying to get the basics working. Bad battery life is a deal breaker. Unreliable suspend is a deal breaker. No, I will not spend a minute trying to get it working. I would rather just run linux on virtualbox or, more recently, use Windows + WSL or a Mac.
>The battery does last about 6 hours of coding and browsing.
And does hardware accelerated video playback work on the browser?
> I have been using linux since 2008. Have installed and used it on at least a dozen laptops in the time. The number of times I have not faced any battery or suspend related issues is, well, zero.
This works with my current HP Spectre x360, I don't remember it ever working in any of the previous laptops.
> And does hardware accelerated video playback work on the browser?
I think the answer is not, as I notice about 6-8% of CPU load when watching videos in the browser.
macOS seems like it is becoming, unless you're an Apple developer, unfriendly for development, IMO. There's ways to get things done but it seems like you have to go through a lot of hoops to get it working.
I really like macOS but I am slowly moving towards Fedora on the laptop and Windows 11 with WSL on the desktop.
For general use and macOS/iOS development, definitely the former, macOS is far superior, IMO.
> macOS seems like it is becoming, unless you're an Apple developer, unfriendly for development, IMO.
It has become unfriendly for Apple development too. Increasing lockdown, endless permission prompts, bugs piling up into a mountain, and the forced OS updates required by Xcode.
Honestly because wrapping up an Arch config after 2 hours of tinkering and realizing your headphones don’t work because of esoteric driver issues is a key factor.
Linux is terrible on desktop - but it’s beautiful for everything else.
I cannot for the life of me understand why someone who values their time would choose an arch based distro. Arch devs have zero sense of accountability to their userbase.
A few months back, there was an issue with the master build of grub that would leave computers unbootable. It just so happened that the arch devs were using the master branch because nobody wanted to back port some security fixes.
Instead of owning up to the issue and apologizing, we got some lame half-assed excuses days after the event. When I asked the security dev about it, he patronized my concerns and told me I would be better off on an 'easier' distro.
I immediately formatted my drive and installed pop os, and I have had exactly zero issues since. Linux is fine on the desktop. Arch, however, is terrible.
> Honestly because wrapping up an Arch config after 2 hours of tinkering and realizing your headphones don’t work because of esoteric driver issues is a key factor.
Don't use arch if you are not prepared to configure it yourself.
I use Gnome desktop as it is very well designed (my opinion the best UX of all existing desktops, MAC OS is too much legacy). Only GTK is very weird to code (at least in python, neither Vala nor GTK-C are a good replacement).
For me I switched from a thinkpad running linux to an m1 macbook air for these reasons:
- safari (for testing and debugging, not daily driving)
- mobile app dev for iOS
- nicer hardware experience than any linux laptop I know of (superior screen with perfect hidpi support, best trackpad, actual all day battery life, top-notch performance) without any major compromises for my needs
- full hardware compatibility without any fiddling (my thinkpad required regular fiddling to deal with the fingerprint sensor and runaway power drain)
I don’t run into any of the issues you mention, but I use a very trackpad/mouse-oriented way of navigating because my brain refuses to remember lots of shortcuts, and I have an assortment of mac utility apps that fill the gaps (like moom for window tiling).
I need a laptop of roughly the build quality of an M1 MacBook Air supported at roughly the level of OSX with a UI more or less equal to Aqua. I tried putting a Mint on a late model Dell a few years ago and swore off Linux on a laptop for a few more years.
It has to just work. There's a lot to like in Linux, particularly in the Cloud but it still has to just work on a laptop.
> Ctrl + C to cancel a command in terminal but Cmd + C to copy text in terminal. Ok, then why Cmd + T to open a new tab in terminal instead of ctrl?
I don’t see what’s inconsistent there. Cmd+key sends a command to your terminal application, Ctrl+key sends a command to a process running in your terminal.
That’s why, for example, Cmd+C copies selected text in your terminal window, while Ctrl-Y yanks text in many applications (including many shells, via readline).
> After using both, I honestly don't understand why devs use MacOS over Linux
I have used Linux as my main driver on all my desktops and laptops between 1999 and 2021 until I migrated to Macbook Pro.
The simple reason is that maintaining basic operating system to do the basic things it should be doing should not be taking so much of my time. I am sick and tired of fixing another audio, wifi or power usage issue because package maintainers decided they have a different idea or spend time fixing my graphics driver every couple of months at the most inopportune time. I need to be able to open my laptop and reliably be able to continue with my work, is that so much to ask for?
So I switched to MacOS and for now I could not be happier. Setting up some things is as frustrating as it has always been for me but at least once I do it it tends to keep working.
Exactly the same here. One day, once again my ThinkPad stopped sleeping and the sound started clacking.
I decided it was enough for me and I bought a Mac. There are still some design choices from MacOS that I don't get, things I wish I could customize, but I definetely don't regret my decision.
Linux has HDMI volume control? Interesting. This piqued my curiosity and I wondered if Linux supports ReadyPlay and other DRM standards to support higher bitrate and higher resolution Netflix streaming.
It does not.
You can only get a low bitrate, awfully blocky and distorted (although pretty high resolution 720p) on Linux. The resolution is useless tho because the bitrate is so low.
> This piqued my curiosity and I wondered if Linux supports ReadyPlay and other DRM standards to support higher bitrate and higher resolution Netflix streaming.
I pay for my Netflix subscription. And when I want to watch a movie on my projector, I first torrent it (fiber optic, takes two minutes top), then play it. No random Internet issue. I torrent the x264 "webRIP" which I figure out is basically the film I paid for the right to watch using my subscription. I'm not a "data hoarder" / movie collector: I watch the movie then delete it. Same for series.
I started doing this after I upgraded my Netflix subscription to a higher tier then noticed streaming quality on OS X was still crap.
For Netflix at least, you can receive 1080p under non supported configurations by using a browser extension. Last time I checked, non-os default browsers are always 720p, which includes Google Chrome. There are extensions for Firefox and chromium browsers for 1080p playback. However, 4K is limited to Edge on Windows and Safari on macOS.
I may be missing the intended point, but AFAIK neither Windows nor Linux support HDMI volume control (I use all 3 regularly, but only Windows and Linux over HDMI). My Nvidia GPU is connected to a 4K 120Hz TV using HDMI for audio, the TV volume controls are independent of the OS volume settings. Unless OP meant macOS doesn't allow setting the volume independently of the HDMI device.
I know you're comparing "out of the box", but I don't think that's fair as developers spend ages customising everything anyway (dotfiles, etc.) and there are plenty of things macOS can do "out of the box" that most Linux distributions can't.
If I haven't quoted one of your items, it means I agree with it, but...
> No screen edge tiling, spend more time managing application windows
Yes, but you can install Hammerspoon or similar.
> Inconsistent keyboard shortcuts, cmd and ctrl are used interchangeably for no reason (Biggest issue). Why do I need to do Ctrl+Tab to switch tabs but Cmd+T to create tabs? Why is History not Cmd/Ctrl+H in browsers? I need to memorize more shortcuts on MacOS for no reason, when it could very well just do it all with a single modifier key.
Control-T (and many control-foo combinations) is already used in terminals. It's a standard emacs binding to transpose characters.
> Maximizing an app takes you to a totally new desktop
Agree, this is horrible, so I use Hammerspoon.
> Ctrl + Alt +T doesn't open terminal, it's like oxygen to me.
You can set any bindings like this up with Hammerspoon.
> Can't set VSCode to open with Ctrl + Alt + C.
You can set any bindings like this up with Hammerspoon.
> Can't set custom global shortcuts at all, even windows can to some extent
You can, with Hammerspoon.
> Ctrl + C to cancel a command in terminal but Cmd + C to copy text in terminal. Ok, then why Cmd + T to open a new tab in terminal instead of ctrl?
This was addressed above. Likewise it would be really annoying if Ctrl + C was to copy text in a terminal instead of being interrupt.
> The shell startup time is too much on MacOS. I have to wait for a second for the shell to load before I start typing my commands. On Linux, pressing Ctrl+Alt+T and writing commands right away feels so good!
I don't have this problem, not sure why you do. I can open a terminal instantly and start writing instantly.
As for why I use macOS, I actually use it only on my laptops (personal and work) because I find non-mac laptops ergonomically dreadful in comparison (e.g. trackpad, etc.). I know this is subjective and I'm sure plenty of people feel the opposite. I use Linux (with i3) on my desktop.
I'm not the grand parent, but your comment stuck out to me.
> I don't think that's fair as developers spend ages customising everything anyway
I've got into development. I use KDE Neon now and really, the only thing I customize on a new install is left single and double click defaults in the OS, changing system performance mode to prefer performance over battery and install the IDE and Yakuake for a better terminal.
Other than that, the starting development for me is literally just installing the IDE, cloning the repository and opening the project file (and the IDE will pull in all the dependencies, linter settings automatically).
> I can open a terminal instantly and start writing instantly.
One of the best things about Yakuake I love is that it's literally that. Hit F12, multi-tab terminal slides down like the old quake console (yes, that's where the name came from).
Having used Linux recently, Zorin as well, what I found was that MacOS I don’t need to fight to get things done. Not just that, but the quality and support for apps I use is much better. Things just feel more coherent.
When things don’t work on Linux, the last thing I want to do is open the terminal.
I currently use Mac. I’ve thought about switching to Linux (would be Arch + Plasma) — there’s a lot of things that bug me about Mac, but there’s a few major things that would badly break my workflow if I tried to switch:
- I’m used to a trackpad. I only had laptops growing up and never used a mouse; now, I can move the cursor very precisely on a trackpad, but I’m very inaccurate with a mouse. macOS’s trackpad support is miles beyond every other OS, in every aspect.
- I love the command key. There was a discussion just the other day on HN about how much more ergonomic it is to press modifiers with your thumbs; having to frequently reach over to control would be awkward to me. And having the command key for OS-level shortcuts be a different key than the control key for shortcuts in terminal apps is incredible, because I don’t have to memorize weird new shortcuts for basic functions like copy/paste/opening tabs in terminal apps. Perhaps I could swap the control and GUI keys on Linux, but I’d still have a lot of keyboard shortcuts to relearn, and I’d have to figure out what to do about terminal applications.
- I use a lot of music production software that’s Mac-only, so the best I could do is dual-boot, not leave macOS completely.
Still, last year it was time to upgrade my computer, and I was thinking about biting the bullet and making the switch because I wasn’t looking forward to buying a terrible butterfly keyboard touch bar Mac. But then the M1 MBP came out.
Maybe I’ll switch my workflows to Asahi Linux eventually, but it would take a lot of effort unless someone knows a good way to make these things less painful — especially the command keys.
As for the music production part, my favorite DAW is Studio One (which is sadly Windows-only, and I prefer Linux). So I just have a mostly untouched (except for music-related software) high-performance Windows VM set up (CPU core isolation, GPU passthrough, that kinda setup) that I boot up when making music.
I'm looking forward to Zrythm gaining more and more features and becoming an adequate alternative to mainstream DAWs.
Linux is a great environment if you just write code and use web apps.
It quickly becomes subpar once you have to use commercial applications, and can be a massive productivity drain after an update breaks some core feature of your hardware.
"Oh, neat. I applied a small patch and now I don't have audio."
> I honestly don't understand why devs use MacOS over Linux
For me it all comes down to the touchpad experience. Excellent on Macs, shitty on Linux laptops (and it's not just shitty touchpad hardware, but the combination of hardware and driver).
Most of your other points are just the regular differences between systems. If you're used to one, it's hard to get used to another (personally I like working on macOS more than Windows or Linux, and I need to switch regularly between all three).
I find this weird because I really miss having the thumb buttons from the Thinkpad touchpads. If it's a trackpad without buttons, then Mac does have an edge, but trackpad support under Ubuntu was fine.
A well thought out OS framework, modern programming languages, doesn't shove UNIX on our face, don't need to hunt for what devices work or not on some obcure Internet forums and howtos, a productive graphics API where developer productivity is taken into consideration,...
Simple - for things I care about - a GUI and integrating with things like printers, docs, and I am generally in the apple ecosystem - Linux is not worth my time to manage for day to day use on a laptop. I'm also well familiar with how to use/manage/install Linux on a variety of hardware (been doing it for a couple decades) as well as other Unices (ran BSD on a thinkpad for years and helped patch a wifi driver to support it).
For some people, we don't want to dicker with getting Linux to just work.
Yes, Docker on MacOS sucks and there are other tradeoffs. But the day to day management of not having to deal with drivers, sleep issues, etc. it's Mac over Linux for me.
I agreed with everything up until you actually listed your reasons - everything you listed is tantamount to personal preferences that doesn't have much to do with development.
I prefer linux dev because docker doesn't have to run in a VM and I'm closer to developing on the platform that I actually deploy on. That's it, those are the only two reasons.
There's issues with every OS, but I really can't stand the power management, thermal issues, and input driver issues I've had on many windows and linux laptops. There is nothing more frustrating than being tethered to a wall, while my laptop throttles, and I have to try every touchpad input 3 times to get it to work right.
I always prefer Linux over MacOS. That said, Linux on laptops has been a tremendous pain in my experience. There are simply too many non-standard parts and custom drivers to make laptops work and Linux struggles to enable you to use your laptop in ways that you would expect to out of the box. Case in point:
1) I chose the route of entirely disabling nvidia and using the built-in intell graphics cards. This was probably a mistake in hindsight. I did it because I wanted to use less battery, but, so much stuff seemed to work sub-optimally.
2) For chrome in particular, I had to jump through a lot of hoops just to get it to render things properly and play videos. This had knock-on effects with chromium apps like slack and zoom. I never got Zoom the app working on Linux, but was forced instead to use the browser version.
3) I ended up having to install a non-stock kernel to get a lot of things working.
4) I remember running into issues with sleep not working. I don't even remember exactly what I had to do to fix, but, it's another example of something a MacOS user will never have to think about.
Anways, I prefer Linux over MacOS so much that I was willing to experience a ton of pain to use it, but I could not honestly recommend it to others at the time. I hope it's gotten better since a few years ago, but I would be very surprised to hear it has. Each new generation of laptops brings new custom chipsets, hardware, etc. with no formal Linux support.
I was about to say: "Why not just use LibreOffice Impress?" - but the truth is that it's still far away from qualifying as a Powerpoint replacement. LO Writer has really gotten its act together over the years, and now handles Word documents very well and is a worthy replacement - Impress not as much.
So, I urge you to spend a little time trying to open your PPT presentations in Impress, and if/when you see issues with it - complain about them! As an active LO user (https://events.documentfoundation.org/libreoffice-conference...) I feel the user base is not putting enough pressure on developers to put focus on Impress polish.
I am fortunate enough to work at a place where I don't have to make more than bare minimum number of presentations. If I had to make a lot of them, then maybe I would have learned Impress up to a level. But as that isn’t the case, I stuck with PP. I only open PP at the last moment, and forget it after work is done.
I use PP at work and talks that I give occasionally (2-3 per year).
For other things, I just use Google Docs and Sheets. They are enough for my usecases.
As a challenge, last year, when I taught a class (as a volunteer)- I made all my slides with Impress. While it wasn’t painful, PP is miles better and smoother.
While there are many FOSS softwares where I regularly report issues, and donated, and even contributed to some, presentations is not that important to me to spend a lot of time at.
Oh, Impress is basically the same as PowerPoint, the differences are not significant. Here's a 11-minute video exemplifying the experience of creating a simple presentation from scratch:
> "As a challenge, last year, when I taught a class (as a volunteer)- I made all my slides with Impress."
You missed this bit?
I did use Impress to make slides for 7 classes (>100 slides).
I will go with PP for now.
And, yes, using computers since 6, having one for myself since 10- I need not really explicitly learn UIs of programs intended for non-tech mass users.
I had all the issues you describe until 2010… Then my apple macbook that I used to run linux died, I bought a thinkpad and everything has worked since then.
> I never got Zoom the app working on Linux, but was forced instead to use the browser version.
I think that's a feature, since zoom had many spyware scandals.
>> I never got Zoom the app working on Linux, but was forced instead to use the browser version.
>I think that's a feature, since zoom had many spyware scandals.
It's probably much easier to run on 100% Linux if you can dismiss away the inability to run common business apps as a "feature".
This is why I run a Linux VM on a Mac -- I do nearly all of my development work in the Linux VM, and am fully supported by our IT department on the OSX side to run our business apps.
What does the app (which is a website inside a copy of chromium) do that the website can't?
I've been using linux for work since when I started working. I also do daily zoom calls.
I tend to dismiss comments from people that clearly didn't run linux in the past decade but still keep complaining about the same things they experienced when they last tried it for 2 days in university.
If your laptop's screen runs optimally with fractional scaling (e.g. 1.5x), that's also still a mess under Linux under both Wayland and X11.
I have a laptop like this that I'm trying to run Fedora on instead of Windows but it's frustrating because the UI works best at 1.5x scale, which the DE (GNOME/KDE) handle ok, but third party apps are all over the place. It's difficult to goad even something as simple as Anki into doing the right thing at non-integer UI scales under Linux, whereas under Windows it works flawlessly.
My reason is that I spent about a decade using Linux as my main OS, only to finally try macOS/OSX (a workplace gave me a Macbook) and, after a couple months of adjustment, realize what a colossal amount of time & attention I'd been wasting with Linux, working around things that didn't function reliably or fussing here and there with things to make them work. I'd been totally blind to it until I saw how the other half lived. Now when I try to go back it's all I can see. Such experiments rarely last a week these days, though in some sense I still know Linux much better than I know MacOS, so it should have an advantage.
> No screen edge tiling, spend more time managing application windows
> Maximizing an app takes you to a totally new desktop
Spectacle or any of several other programs solves these. It's the only major piece of customization I do on any new Mac. First thing I install after Homebrew. I almost never manage windows with the mouse. One might object, "but that's not default!" but then Mac also catches shit for not being customizable, yet here I am, customizing it, so IDK, doesn't seem like a real objection if the proposed alternative is Linux where customization tends to be even more fiddly than that. FWIW Spectacle's not given me one single problem or glitch in something like eight or nine years of use. Install, grant accessibility permissions to it, use its menu to set it to start at launch, never think about it again until I set up a new Mac. I think there are, separately, also ways to change the behavior of the maximize button (in fact I think I used to use such a customization, before I discovered Spectacle)
> Hidden dock doesn't appear unless I smash my cursor on the bottom edge. Dock Autohide is very finicky, ZorinOS' way is much more graceful and natural.
As a hidden dock/taskbar lover since Win95 I'm not sure what you mean. I've not noticed a difference between its behavior and every other I've set to hidden, which includes most consumer versions of Windows, a couple server versions of same, plus XFCE, Gnome (1+), and KDE (2+) on Linux. But I've also never heard of ZorinOS so maybe it's doing something unique (and maybe really nice!)
> No window closing animations, but has window opening animations. Feels really unpolished
I just tried "new window" in a couple programs to see if I could figure out what you mean—maybe there's an animation and I'd just become blind to it. Still don't see it, steps to reproduce?
> Single click on dock to maximize the app but clicking maximized app doesn't minimize it. Why?
You don't minimize or maximize apps, but windows. Clicking an app in the dock focuses it, un-minimizing (not sure what you mean by "maximizing", here?) its active window if necessary. Doesn't seem inconsistent to me, and is probably a lot less surprising/annoying than if clicking an app that had all its windows minimized didn't restore any of them, or if clicking an app (interpreted by the OS as "foreground this thing", basically) instead minimized its windows (which one? All of them? If some are minimized already, then WTF? Swap them?). I mean, if you click on a pinned app that's not running, it launches the app—would you expect that clicking the dock icon a second time terminate the app?
> Ctrl + Alt +T doesn't open terminal, it's like oxygen to me.
> Can't set VSCode to open with Ctrl + Alt + C.
I don't fiddle with more advanced ways to map shortcuts in macOS (I've done less customization of everything in general, as I get older) but I'm like 99% sure these are easy fixes. Maybe not something exposed in settings, but still, easy to fix. And it's so workflow- or preference-specific that I don't think making it a default would be reasonable. I just launch everything with search on every platform these ...
> After using both, I honestly don't understand why devs use MacOS over Linux (my favorite: ZorinOS).
Why I use it: I just never had any good hardware for a linux laptop and I hate to tinker with configuration. There's always things that work so-so with linux laptops. Macbook gives good hardware, excellent system integration and I like the defaults out of the box. None of the things you listed have importance for me.
I would probably use a linux distro on a desktop machine though.
Linux is great to revive old macbooks that are no longer supported by Apple though. Linux mint on 10 years macbooks works great.
Because as soon as you need a stable experience for your workforce and do more than just write code (i.e. be responsible for also being human, integrating with the company, write documents and presentations that others can work on using familiar tools, use video conferencing, and do it the entire day while being mobile/on the move, most hardware isn't going to keep up, and the hardware that is will be hard to get running right with Linux or BSD. While it can be done if you're careful, it's a time/resource sink that really adds no benefit for the larger whole of the engineering effort within a company.
On top of that, the minor personal preferences of a workstations should really not be much of an issue in your professional career. It's not like you can tell all your customers, suppliers and colleagues to do things differently just because that's more comfortable for you. Nobody will pay for that.
The few people that do run whatever they want, however they want, have a much larger liability and much less support, but they are free to do so. In the event that friction is introduced due to the choices of anyone within the department, it's up to the non-standard one to address it. This gives everyone enough freedom but prevents unrealistic expectations.
I love using Linux from a platform perspective, but it has been terrible from a usability perspective. Awkward default keybinds, broken software all of the place (e.g. anti-blue tinting), twitchy trackpads that require constant reconfiguring vs. just being excellent out of the box, power savings just works and doesn't require explicit configuration. I find Macs terrible to run software on/write software for/fix by hand, but I think they're great for text editing and navigation which is how I spend the vast majority of my time
I switched to mac after about 10 years on linux, and I'm not going back.
I'm also very annoyed by most of the things you have listed, but there are two things that are a deciding factor in favor of mac for me:
1. In addition to webdev I sometimes need to do design, graphics, 3D art, and on linux most of the software just doesn't work. There's absolutely zero chance I'd be willing to cope with GIMP and Inkscape instead of using Photoshop and Affinity designer. There's a lot of other software (for screen recording and video editing, for instance), that works on mac and doesn't on linux.
2. On mac, things just work. On linux there's more customization, and open source software, but you pay for it dearly by having to spend hours (sometimes days) tinkering with configs and installing dependencies every time you're trying to get anything to work. I didn't mind that before, but at this point, I'm too old for this sh*t. I just want my laptop to work and help me do my work and make stuff, I don't want to cross my fingers and pray every time I need to install something I need to get anything done.
The short version for me is that in every corporate environment where I’ve been using Linux as a daily driver (Ubuntu), I have had Canonical recommended updates catastrophically break my install. That is, I see an update pop up, I install the recommended packages, and the next time I boot I cannot reach the desktop. Or WiFi doesn’t work anymore, or I have to switch to Nvidia drivers instead of the open source ones. And of course the company doesn’t have IT support for Linux, I have yet to work for one that does - there are always plenty of coworkers who are willing to help, but now two people are not getting work done.
These machines have been normal Dell Desktops and Laptops. Normal LTS versions of Ubuntu.
It has happened enough that I don’t trust Linux as a desktop system for whatever computer I’m using. I can absolutely use it, I’m comfortable on the command line.
I want Linux to be reliable for me as a desktop system. It’s the dream of truest owning your computing. But I haven’t had that experience yet.
MacOS is certainly not perfect, but I’m very happy with it, and it feels reliable to me.
> After using both, I honestly don't understand why devs use MacOS over Linux (my favorite: ZorinOS).
The simple answer is both Apple hardware and software support is well defined and is the gold standard.
Linux Desktop software support on the other hand is ill defined and even if the hardware claims to have support, it somewhat worse than macOS or even Windows thanks to the inconsistency of the Linux desktop stack letting it down.
This has been an eternal problem with the Linux desktop, and at this point you might as well use Windows with WSL2, since that is the best 'Linux Desktop'.
Everyone using Docker on a Mac is a Linux user; so, that's not terribly surprising. I personally ditched MacOS in my personal life for Linux a few years ago and haven't looked back. Modern Linux is pretty damn great. I have had nearly zero problems in like 2 years, with the worst being having to restart pulseaudio a few times on one particular update.
As a layperson, I would be very happy if it defied meme status and actually is. I'd like to have an alternative to Microsoft and Apple but only know basic stuff.
I have ditched MacBook Pro for whatever-brand with UNIX-like OS as well, due to decreasing user control of OS X which started happening around the time it was renamed to mac OS.
MacBook stopped feeling like my (quite expensive) hardware doing what I want and became an (even more expensive) device controlled by Apple often forcing unwanted changes on me.
I miss MacBook's touchpad but am happy with the trade-off.
User interface (can't get examples from the top of my head right now but less and less was configurable), privacy settings (it used to be "set what you want to share" and now it's "learn what is shared") and... a keyboard before the 2016/2017 fiasco.
I was increasingly locked out of my computer. Apple is now MacBook's superuser and I'm just the user. Their hardware is too expensive for that.
I wonder if Matlab being most hated relates to people being forced to learn it in undergrad and it being poorly taught etc. I’ve found it very useful but it took a fair amount of time to build up the set of tricks to doing things right. I would imagine a good replacement for it now is python but there is a huge reliance upon things like numpy and the various plotting libs — not sure what is being taught these days for the courses that previously used matlab — are they now using python a ton?
I think you're probably right that most developers only really had exposure to Matlab in undergrad statistics and engineering courses - sometimes simultaneously with Stata *shudder*...
But that doesn't mean they're wrong to hate it. It's a proprietary program with origins in the 1970s (that's 50+ years old!) and comes with a lot of cruft.
I don't know what university courses are using these days, but a lot of universities have data science majors now, so presumably there is some exposure to Python there. A lot of statistics courses also use R.
My professional experience with Matlab was having another team of mathematicians develop an inverse kinematics library in Matlab and us having to integrate that in a C++ Qt app on Windows. Let's say that experience wasn't great..
> I’ve found it very useful but it took a fair amount of time to build up the set of tricks to doing things right.
What kind of tricks are you thinking of?
> I wonder if Matlab being most hated relates to people being forced to learn it in undergrad and it being poorly taught etc.
To me, as someone who has used Matlab fairly extensively both being taught in undergrad and in programming-centric grad research, Matlab's one and only strength is in its being a one-and-done IDE/programming language. If you're using Matlab, then you're using it in an IDE that "just works" and was installed and configured simultaneously with Matlab itself: there's no real distinction between the two. Further (assuming you check the right boxes during installation [1]), all the possible packages you could ever have [2] are installed at the same time. So you get a super simple install and never have to think about installing or configuring anything ever again. I don't want to minimize how useful this is. Every other programming language I've ever used has had a huge amount of installation and configuration overhead, often an insurmountable barrier for non-programmers (e.g. scientists).
That said, I dread using Matlab, for many, many reasons. My top three reasons in no particular order: 1. you can only really define one function per same-named file, 2. errors are almost always one line long (no stack trace) and rarely give a line number in normal usage, 3. cell arrays. Cell arrays are basically just untyped lists, yet somehow mind-bendingly confusing to use.
[1] assuming you paid for the right to check those boxes. If anyone is wondering, to get all the boxes in a non-personal context would cost 100x more than whatever you're thinking (which is a bit of a straw man since no single person needs all the packages and institutions get crazy bundle deals). I haven't taken the time to add it all up, but base MATLAB is $900/year/computer, and each of the ~100 packages costs $500-2000/year/computer (skewing heavily to $500). So, roughly $50k/year/computer for everything. Which is silly, obviously. Most people only want a handful of packages so realistically it's only about $2-4k/year/computer. Only. However! If you just want it for non-commercial, non-academic, non-governmental use, you can buy Matlab for only $149 + $45p, where p is the number of packages you want.
[2] Literally, all the packages you can have. Package development is 98% limited to Mathworks-official packages.
Yea I would say the main set of tricks related to using cells, working with large text files, and working with things like meshgrid as a few examples. Super easy to get confused even with good documentation and examples. Matlab benefits from the various people who work at mathworks who fix things and communicate with customers when you find odd issues.
I switched to Mac in summer 2021 after 23 years of desktop Linux in all kinds of flavours.
I run Docker Desktop on OSX on an M1 Pro and haven't had any issues. Yes, you do need arm64 builds of things; the x86_64 emulation is indeed apocalyptically, unbearably slow. But otherwise, the shift to doing local development in docker-compose has been transparent and seamless.
I'm not sure that's my view of the value of local Docker. That's certainly my view of integration environment/CI-CD docker, but running it on my local machine is more about clean administrative separation from the rest of the OS and vaguely mimicking production -- not exactly mocking it.
I bet a lot of Mac users also use Linux systems jointly — at least in my circle it seems common to have a Linux desktop and a MacBook combo, for the best of both worlds. If you’re used to unix, it’s easy to go between the two. You can run any long-running programs and store your files on the desktop, and still have the nice UI and portability of the mac, with extra stability for all of the non-coding stuff as well
Similar setup here. I use a Mac laptop for all my general purpose work/programming/leisure, Linux servers I ssh into from the Mac for running jobs (ML stuff), and a windows laptop for playing games. Obviously a luxury to be able to have all three, but I think it allows me to use all three for the things they’re best at.
I use Linux, MacOS, FreeBSD, and Windows. All have their strengths, but for me it's:
* MacOS wins for laptops, hands down. Mac laptop hardware is by far my favorite these days (I used to be a Lenovo guy in the thinkpad era, but no more sadly), and hardware support for Mac is of course best on MacOS. There are a lot of things you have to get right in a laptop (touchpad controls, drivers for wireless devices, audio, etc.) and Linux never really nails it for me.
* FreeBSD for the majority of "appliances" (routers, storage, servers for running misc. tools like home automation)
* Linux for various open-source desktop tools that have poor BSD support, mostly around things that rely on GPU (e.g. Blender rendering)
* Windows for desktop media consumption (games, movies, etc.). I'm not happy with it, per se - things like HDR and surround sound have a lot of issues - but it works well enough and I already have it there for games. I should probably try MacOS's surround sound support - I know it handles HDR very well.
Linux desktops are also a lot more stable and easier to configure than Linux laptops, especially if the desktop is built with off-the-shelf components commonly sold at major computer hardware retailers.
The bulk of Linux laptop woes (improper hibernate, touchpad/lighting control, peripherals, GPU switching, battery life, etc.) directly stem from the hyper fragmented hardware and firmware specs used by various OEMs.
Yeah, that's where I am. Mac laptop for work, because the ARM Mac battery life is insane, Windows PC for games and Raspberry Pi with Linux for a home media server.
I've always found MacOS less productive than any Linux installation with desktop environments like XFCE or KDE, and also even less productive than Windows.
I found the complete opposite about using Linux on the desktop for work.
- Native MS Outlook and Teams apps are not available on Linux so everything has to be done thru the web browser since MS deprecated the Linux desktop client. Teams crashes in Chrome very often and running it in Edge means every link that is clicked opens in Edge. I do not want to use Edge.
- Font scaling issues at 4K, while I have tweaked a lot of apps to support this it is a constant battle to keep the fonts looking crisp thru updates and some apps just don't support great font scaling.
- Last week I had to reboot my desktop because a single press of CRTL+V was pasting things twice (this was also happening on right click > paste so it wasn't my keyboard)
- Random freezes when I close the laptop lid, which has been solved by some BIOS updates but it still happens.. just not as frequently.
- Bluetooth issues, switching between multiple devices isn't flawless.
- Package manager sprawl, homebrew maybe slow but it usually has the latest version of CLI apps I need to use. Whereas on Linux apt packages are usually way out of date, flatpak won't do CLI apps, asdf doesn't have enough of the tools I need, aqua is very inconvenient, nix takes a long time to configure. AUR is probably the best but you must run Arch. I run Fedora with Linuxbrew and don't need to spend effort on figuring how to install some random CLI binary I need.
Sorry if this sounded a little incoherent. There's more nuances I could go into but overall I do not want to spend days/weeks configuring my desktop OS. There's something to be said about MacOS having very opinionated decisions but for the most part everything just works for my needs and I don't have to struggle reading thru the Arch wiki or blog posts trying to get bluetooth devices to work or whatever is fighting me.
I really like seeing System76 building laptops that work smoothly with PopOS but even that there's struggles with certain hardware or software. It feels like using a Linux desktop is a constant game of cat and mouse on debugging odd issues.
Hmm you are right on that. Sometimes certain things are inconvenient on the Linux desktop world too. And also, some hardware combination just don't work good.
I use Mac because I love the desktop environment. But I do all my development on a linux machine using VSCode Remote. I used to do it on my Mac, but Docker issues got so frustrating - and VSCode Remote got so good - that it became worthwhile to use remote development.
The percentages are over 100%, and it doesn't appear clear to me that they are talking about development machine vs servers vs Docker images etc (for example, I've used all 3 OSes today, on the same physical machine)
Sure wish blind people could jump head-long into Linux. But nope it's only for the abled people. Linux's a11y stack is very old and only now getting tests written for it and such.
It’s a hard problem in FOSS. Either you have a company with resources enough to make it happen on an ongoing basis, or you spend X time scratching your own itch to perfection and then tiredly stop caring about the world moving on.
Which may explain some blind Linux users swearing by their setups like they are the best things since sliced bread, while others might be meh.
It would be damn nice, though, even for able-bodied folks to be able to use their computers or phones without having to look at them once in a while, and no, voice assistants in their current shape don’t really count. They are still far from being “instant” and understanding you unambigiously every time.
I would welcome software UIs that are usable by all people without having to go into some kind of low vision mode where everything is different. Or one-handed mode where everything is different.
I use them both. I have an old Lenovo laptop that still works handily with Arch. And I have an old MBP that I purchased for $1 when I left my previous job. And I have an M1 owned by my current employer.
The first thing I do with a new machine is clone my settings repo and run my install script. This way the shells, editors, git, gpg, etc. all feel the same.
Then the differences are all about the UI. I really like XFCE, and have it configured for really easy use. The Mac just isn't as flexible and you have to do things its way even if they're less efficient than you'd like. "The secret is not caring."
I did manage to get the external Mac mouse to not feel like a slug (even with the speed slider maxed out) with some command line trickery. Sometimes the rules can be bent.
498 comments
[ 1.8 ms ] story [ 236 ms ] threadam aware of hackintosh but not sure how well it works for dev productivity.
The Macbook Pro I have issued from $work is far superior in comfort speed and usability to my expensive Ryzen Thinkpad that I purchased in the summer. I just don't particularly like developing/working on OS X.
I use an M1 Air and the hardware is exceptional (other than the keyboard obviously). Mac OS however is not. You need something like Rectangle installed just to get half-decent window management. Windows 11 wipes the floor with it on accessibility (for things like font tweaks and so forth). And the speed with which you can work under both Windows and Linux (Mint for example), using the keyboard almost exclusively, really puts Mac OS to shame.
If a non-Apple laptop maker did Apple-quality hardware with a better keyboard and anything like the Air's battery life then I'd be interested.
This implies a single answer ("the") but they clearly allowed multiple (the percentages total way more than 100%)
IIRC in prior years they've asked similar questions, but without the multi-select, meaning the this year's survey can't be meaningfully compared with older surveys, for this question.
Here's 2021, for example:
https://insights.stackoverflow.com/survey/2021
What's surprising here is how deep windows is sinking. They were at one point famous for their dev tools. The fact that WSL (i.e. it runs Linux stuff) is now considered one of their top selling points for developers is almost too incredible to believe.
If you're doing anything Docker, you probably prefer Linux.
So unless you're developing exclusively for Apple's ecosystem, you probably selected Linux on the survey.
Eventually i imagine my laptop will also be Linux, but Mac is hard to beat for mobile operating. I'm tempted to try an M1 via Asahi at some point, assuming i can get NixOS on it.. but i don't have an M1 atm and am in no rush to buy one.
Only the first group uses Macs.
Not owning a Mac is a big red-flag for VC funding.
Now run Linux with LXDE on my 16GB laptop. Everything works well and it's blazingly fast. The UI is simple and functional, but not as beautiful as the MacOS UI.
I guess in the beginning we want all the bells and whistles, but with experience, all we want is control. Linux gives me that control to a much greater degree than a Mac.
I live exclusively in terminal or browser, all other apps are opened via terminal and closed with cmd+q.
I like macOS because it doesn't get in the way even when I almost never had to interact with Finder (which I still find weird every time I had to use it, for web uploads etc).
I constantly use iTerm (or even just the regular MacOS Terminal).
It's easy to have it take up the whole screen and the most "MacOS UI" I'll ever see is the title bar for the window, which yeah can be ugly to look at but really isn't something that keeps me from working or anything.
I guess IDE's use a ton of UI, but I wouldn't say that's MacOS cruft on its own.
`open -a NameOfAppYouWantToUse fileyouWantToOpen.foo` will reliably open a file with whichever app you want. Just `open path/to/directory` will open a Finder window to that directory. The file open dialog in macOS also exists and works just fine. You can drag file icons from GUI apps into terminal windows to insert their absolute path. You can drag files from Finder onto an app icon to open-with that app.
Transitioning between terminal workflow and GUI workflow feels better to me on macOS than either Linux or Windows; although with Listary Windows is decent.
The only time that I have to interact with the UI is when I have to do something on System Settings, which is also dreadful.
The most complicated thing I do in Finder is browsing pictures and installing an Application, both of which is does a perfectly fine job at.
On my Windows desktop I use WSL for my development because it is Unix based with tons of compatibility for modern software.
I do not use Windows to develop (outside of Godot Game Engine sometimes).
The advantages of Linux are too many too count and has a lot of customization that can provide some edge. I don't prefer customization anymore, just simplicity but it's a good thing that the options exist.
For me, I think these are the main issues with MacOS that ZorinOS doesn't out of the box:
> No screen edge tiling, spend more time managing application windows
> Inconsistent keyboard shortcuts, cmd and ctrl are used interchangeably for no reason (Biggest issue). Why do I need to do Ctrl+Tab to switch tabs but Cmd+T to create tabs? Why is History not Cmd/Ctrl+H in browsers? I need to memorize more shortcuts on MacOS for no reason, when it could very well just do it all with a single modifier key.
> Hidden dock doesn't appear unless I smash my cursor on the bottom edge. Dock Autohide is very finicky, ZorinOS' way is much more graceful and natural.
> No HDMI volume control
> Maximizing an app takes you to a totally new desktop
> Switching desktop animation is a bit too slow
> No window closing animations, but has window opening animations. Feels really unpolished
> Single click on dock to maximize the app but clicking maximized app doesn't minimize it. Why?
> Ctrl + Alt +T doesn't open terminal, it's like oxygen to me.
> Can't set VSCode to open with Ctrl + Alt + C.
> Can't set custom global shortcuts at all, even windows can to some extent
> Can't highlight text in terminal or anywhere to paste with middle click mouse button.
> Ctrl + C to cancel a command in terminal but Cmd + C to copy text in terminal. Ok, then why Cmd + T to open a new tab in terminal instead of ctrl?
> The shell startup time is too much on MacOS. I have to wait for a second for the shell to load before I start typing my commands. On Linux, pressing Ctrl+Alt+T and writing commands right away feels so good!
> No package manager by default, brew is honestly very slow compared to Linux solutions.
MacOS isn't unusable of course, I'd prefer it over Windows anyday but it just introduces a lot of UX friction Linux desktop just doesn't.
I hope those "Infosec's" don't have Linux servers to secure ;)
It is harder to find anti virus software that runs on Linux, at least I am told.
Ah the snakeoil that drive a whole industry ;)
You can make it work but it requires more effort than most corp teams are willing to put up with.
True but often 24x7 connected to the world...but yeah you are right, not often do you loose a whole server ;)
I also wouldn't characterize it as "harder to secure" but rather "extra work to support." A homogenous endpoint fleet makes all IT tasks significantly easier, and endpoint management tools for Linux tend to be less mature and more difficult to work with.
Only 1 browser to secure! Infosec requires an activeX compatible browser for installing expensive security contraptions. IT can't possibly tolerate Firefox! What, there are more browsers out there? What, Microsoft creates a new browser? What, marketing sent out a new campaign only viewable in Chrome? What, our own site doesn't work in Internet Explorer, and nobody noticed in 2 years?
After fighting their own users for over a decade and looking very sad-kitten-face when every single one of their dastardly back-stabbing users did not follow the holy dictates from above, enterprise IT found out it was actually possible to secure a browser that was not internet explorer. I expect Linux to go the same way. In fact, it did just that for servers.
I assume in lots of cases devs have a fair amount of leeway in installing stuff locally, maybe if you set up a VM you run a whole desktop in there.
Currently I am using Zed editor that is Mac only for now.
But yes, MacOS' software support is good because more people have Macs and there is also a lot of money to be made there but MacOS' DX/UX support is okay. Not great, not bad, just okay. I personally think Linux nailed the DX.
Engineering and development tools are on the whole far better supported under Linux.
I spend most of my time in Linux VMs in cloud, or in Docker etc running Linux now to do the $work I need, despite having a powerful 64GB M1 Macbook Pro issued by work. Why? Because that's what our production environment is. And that's where the right versions of things are.
Oh and fighting with Homebrew etc sucks. That it's 2022 and Apple ships a Unix without a modern Unix packaging system is ridiculous. Almost all professional dev types working on MacOS are using brew or similar systems -- why has Apple not noticed this and fixed their distribution/packaging system, which remains a throwback to 1990s Unix/NeXTStep?
At this point the Macbook itself I use primarily as a web browser and Zoom meeting joining tool. (And it's far better at this than my Linux laptop, which gave me constant headaches with multimonitor support etc).
Pray tell, what is a "modern unix packaging system"?
- The multitude of apts yums etc. that still require sudo for even basic user software?
- snap? If understand it correctly, there is still a multitude of issues with it and heated debates in various coreners of the internet
- nix? the one that no one truly understands and is half-baked at best?
Any other from this list? https://en.wikipedia.org/wiki/List_of_software_package_manag...
I wish I could use Linux on my work laptop, unfortunately we aren't given such option. Had it not been for WSL, perhaps I'd request a MacBook.
Usually the latter comes down to the company having group-policies, or mandatory compliance software managed centrally.
Sometimes I've picked Linux and had to jump through hoops installing anti-virus, or other similar things.
Given the choice I'd pick Linux every time, but if that's not an option and I want the job then Mac is a good fallback. I'd rather quit my job - and have done so - than run Windows.
Chad!
These days with immutable containers, etc, it matters less. But a decent shell, the ability to run automation tools easily, etc makes a difference.
I know that WSL allows most things, and many devops tools are written in golang/rust, which are available for Windows, but I started at a time when Ruby, Perl, puppet, cfengine, etc, etc were basically not decent options on Windows.
I keep up, I use AWS, kubernetes, etc, but I'm used to flexible, scriptable, and predictable working environment - and for me that means Linux.
The focus stealing proclivities of both macOS and Windows for new application windows can also go die in a fire as far as I'm concerned.
I also enjoy the simple keybinds I have to sling windows between monitors and workspaces easily. I have no idea how I'd do that with any of the tools on macOS or Windows in a maintainable way (XMonad's configuration lets me cartesian product between (noun, key) and (verb, modifier) lists to make things very consistent).
There's an abundance of jobs available to you if you're a decent programmer, so avoiding the places which prevent you from running your OS of choice is a good first filter to apply.
Yup. The company I work for kinda has this. Their security software does support Linux, but usually lags a bit. So to fully use it, you have to not apply the latest kernel updates. Makes total sense for a vendor promising to improve your "security posture".
They're working on improving the situation, from what I understand, but they're still not there yet. The provider is a company you've probably heard of, that doesn't allow you to download the installers if you're not signed in (they're not custom, since they still require you pass in some installation token to tie it to your tenant). Good times.
Fortunately for me, instead of bugging me to switch to Windows, they're bugging the vendor for improved Linux support. The reason being that we intend to run this on Linux servers, too, and don't expect to change those to Windows.
A new [nationality omitted] hire, Boris, wasn't a Windows fan so he immediately cracked open his laptop and added a hard drive running Linux dangling out the side, obviously not within the policies. He lasted about 2 weeks.
[1] https://github.com/koekeishiya/yabai [2] https://github.com/koekeishiya/skhd
Yabai is a more complete windows manager. It has some features like:
- Automatic Tiling, Stack or Floating windows
- Shortcuts to move between windows based on position (like other tiling wms)
- Create, move and destroy workspaces
- Move apps to specific workspaces
- Windows borders
Plus it integrates really well with https://github.com/Jean-Tinland/simple-bar
[1]: https://github.com/ianyh/Amethyst/
I've had mostly the same experience on ZorinOS. It just works, never crashed on me, never made me spend hours fixing some weird bug. All my hardware is fortunately well supported.
But yeah, I'd give MacOS more scores on the UI design.
> getting an equivalent font rendering is hard
I haven't had any such issues and I don't use Arch because ZorinOS provides me everything out of the box.
It was a long list anyway, having that many “minor issues” is a major issue.
I’m not someone who spends much time configuring computers but as much as I will argue in favour of sane defaults, sometimes things do just boil down to personal preference. Apple make it very difficult to change things. (Microsoft, unfortunately, seem to be taking inspiration from Apple too).
If a person is that sensitive to workflow, neither standard Mac or Linux will suffice.
I find Linux to be more difficult to customize because everyone is using different desktop distros which i think causes these types of apps to be buggy.
I don't think it's easy… you need to somehow magically know about this undocumented "alfred", hope it isn't malware, download it.
On plasma I open systemsettings, I search "shortcuts" and I can change all of the KDE ones in one place.
I think having it already there is easier than downloading unknown undocumented app. But just my opinion.
> I find Linux to be more difficult to customize because everyone is using different desktop distros which i think causes these types of apps to be buggy.
Sure, server stuff is hard, but desktop is much more limited.
Every solution you’ve posted there is a 3rd party application outside of macOS. Which really just proves my point.
If you have to resort to undocumented hacks to make changing basic things “easy” then it isn’t easy.
Whereas KDE (for example) provides all of that in its base install. You can roll with the defaults, which are pretty sane, or you can change them to suit your preferences.
> If a person is that sensitive to workflow, neither standard Mac or Linux will suffice.
That’s a pretty absurd conclusion. We aren’t talking about computer illiterate people here. We are talking about skilled IT professionals having personal occasional preferences that differ from what the defaults are.
To quote Monty Python: We are all individuals.
> I find Linux to be more difficult to customize because everyone is using different desktop distros which i think causes these types of apps to be buggy.
The fact that everyone can run different desktop distros is further proof that Linux is easy to customise!
There’s absolutely nothing wrong with preferring macOS. If that’s what you find better to use then good for you. But it’s a really large stretch to argue that Macs are more customisable or easier to customise than Linux systems.
All the CUI-style bindings like Windows' and Linux's Control-c for copy are done using Command instead. It's a change, sure, but a minor one that also deconflicts many bindings. How do you copy in the terminal on Windows and Linux? If it's C-c, how do you send sigint? How do you select all in a terminal if C-a defaults to going to the start of a line?
Most of the remaining inconsistencies or confusing bindings (Cmd-y for history in Safari) are a consequence of too many bindings. Cmd-h is already taken for hiding the current application and is a useful mnemonic across many applications, whereas Cmd-h[istory] is useful for a limited number of applications, and it would be inconsistent for those applications to override the system default.
At least on Linux I can have crystal clear (looking) font on my 2K 27" monitor.
On MacOS it looks blurry because they expect you to buy a higher DPI monitor - there's no subpixel rendering. If you want to share your monitor with your gaming PC as well (and you don't want to spend thousands on video card and monitor), you are left with subpar fonts on your MacOS.
This still unfortunately depends on what you're using it for. If development is your main use-case, MacOS will most certainly not work. It's absolutely dumbfounding how many darwin-specific bugs exist in common software (especially in the age of M1), but the real problems simply come from setting up a decent dev environment. Shopping around to customize MacOS in the way I like it is much more time-consuming than cloning my Nix dotfiles and building an environment from scratch.
It's still possible to use a Mac as a development machine, but the edges around it have gotten really sharp. Most of the Mac devs I know are writing code in a Linux VM, these days.
To quote Big Lebowski, "that's just, like, your opinion, man".
I've used MacOS for development since 2008. PHP, Erlang, JS/TS, Python, Java, C#... It certainly does work.
Almost every[1] dev conference you go to you see people on MacBooks (a tiny percentage running Linux on them). Often the majority of people will be on MacBooks.
> Most of the Mac devs I know are writing code in a Linux VM, these days.
I have the exact opposite experience.
[1] Well, it's an exaggeration and bias of course, but...
For pure development stuff, though? You're torturing yourself on MacOS. For every pretty menubar you enjoy, there's a dead POSIX zombie underneath your floorboard or an encroaching platform limitation coming from the top-down. Then you have to deal with the fact that MacOS is by-far the least stable software target of the Big Three OSes, and managing your libaries/software without third-party software is a nightmare. By the time you install all your package managers, Emacs/Vim plugins, browser-of-choice, three or four versions of bash and Git, Via Xcode, most people ask themselves why there isn't a better way.
Ultimately everyone's experience is anecdotal, but survey says that developers are turning over a GNU leaf...
Ah yes. All developers that go to developer conferences are there to deliver those conferences (whatever that means).
> For pure development stuff, though? You're torturing yourself on MacOS.
And you're saying that with the full knowledge and authority because?...
To reiterate. I've been developing exclusively in MacOS since 2008 in a variety of programming languages for a variety of things.
> there's a dead POSIX zombie underneath your floorboard or an encroaching platform limitation coming from the top-down.
Demagoguery.
> and managing your libaries/software without third-party software is a nightmare
wat
> By the time you install all your package managers, Emacs/Vim plugins, browser-of-choice, three or four versions of bash and Git, Via Xcode, most people ask themselves why there isn't a better way.
wat
I spend about as much time installing this as you spend installing the same on... well, any machine. Because most of that doesn't come preloaded with Linux either. I do agree that XCdoe Commandline Tools are a joke. But how many times a week do you install them (and other tools)? Zero? I can spend 5 extra minutes on my setup once every four years or so.
No idea what the FUD is about "several versions of bash and git", I use a single git and zsh (which is now default on MacOS).
And yes, I stopped using emacs a long time ago (which I used for three years... you guessed it: on MacOS [1]) and switched to a proper IDE.
[1] This was my init.el https://gist.github.com/dmitriid/4078311
Maybe I'm scarred or spurned or something. MacOS has not been kind to my workflow over time though, and going back to using Monterey for work was an exercise in frustration.
So. MacOS wasn't for you, and you extrapolated it to "if you are on MacOS, it doesn't work". Well, it keeps working for me (and a great number of other developers)
For example, over the past 6 years across two jobs I haven't used Docker except for running some tests (bringing up and tearing down MySQL databases or using Google's pubsub emulator). So while it is slow, it hasn't been slow enough for me to care. I haven't had the need to mount NTFS drives. I havent' had the need to use Linux inside MacOS (and the few times I needed it in the past decade VirtualBox has been enough).
On the other hand... I needed to set up a Linux VM on a NAS to run a small family website I built in Elixir + Phoenix. I'm deifnitely rusty in Linux but ooh boy. Good luck getting a relatively recent release onto a system which insists that everything must come from a packge manager and installed via sudo for the entire system. Thank god for asdf, but it was still a pain and a half (because asdf builds everything from source and figuring out the names for the required libs is a masochistic sort of fun).
So your mileage and mine definitely vary.
Just like every single OS. Your linux box doesn't come with most of the things you listed pre-installed and preconfigured: your vim/emacs plugins, your browser of choice, git, your speicifc versions of libraries etc. etc.
Edit: BTW there's a reason there are so many tools like pyenv, or SDKman, or asdf that first appear on Linux and then get ported to other systems. Because the rosy development paradise that is Linux is everything but.
> For professional programmers, I am adamant that Linux is a more consistent experience than dealing with the issue du-jour in MacOS.
Linux has it's own share of issues du jour that impact actual use of the operating system. And most of the issues I have with OS very rarely come down to the problem with the development tools/environments/what not. Hell, I switched to M1 as an experiment about a year after it came out... and everything just worked (big thanks to those who made stuff work under M1, but even non-converted tools kept working).
And I've personally seen many people switch away from Linux to MacOS precisely because they found the overall experience of being in MacOS better. Because even if you "just" develop stuff, you still want your machine to have all the human stuff: from reliable hibernation/sleep to good touchpads to crisp displays to media support to ... yes, "touch up photos or edit video" (not necessarily for a living).
* Best-in-class hardware. Touchpad, M1 power, and battery life.
* With that, best-in-class drivers, I never have to mess with them. Sleep mode actually works.
* If you're an iPhone user (which I am) being able to text with people from the desktop is invaluable.
Everything I did with Windows development I did in VMWare, just having a stable laptop and touchpad was 90% of it for me. Windows actually runs better in VMWare on Mac than on native hardware because the hardware and drivers on Mac are so much better.
These days I'm a cloud dev. Which for me means only three apps I need. VSCode, a browser, and a good *nix terminal. Mac does all three great.
That being said, if all you need is VSCode, a browser, and a good *NIX terminal, then Asahi Linux should feel pretty much finished to you. Or any hardware that promises good Linux support, really. With KDE and a Magic Trackpad, I can get the gesture-driven workflow I loved in MacOS without the... well, MacOS part.
Ultimately, you should use whatever suits you. I'm unconvinced that MacOS remains the best option for most developers, though.
I checked this out, am I right that this is prerelease alpha quality? I should really switch to this??
Nope it bloody doesn't. The amount of missing features (why can't the scroll direction be different between touchpad and mouse? Why is there no native window management?), stupid bugs and simply undebuggable issues ("A USB device is consuming too much power, it has been disabled"... Which device, they all still work?? Or iPad screen sharing not working without any indication why, or the device refusing to go to sleep when connected to an external monitor that also charges, etc. etc.) just doesn't fit the "just works" bill. Some things work very well, many others don't or do but with subpar UX.
Yes some features are missing and hard to add, but it's like a car with a lacklustre stereo. IME the Linux cae can't run for more than 100km without something breaking.
In fact, I don't remember ever needing to use LD_LIB_PRELOAD. Or driver debugging.
Linux is not perfect, my current laptop did not work perfectly until Ubuntu 22.04.
But your description of things is way hyperbolic.
What does this even mean?
I don't think Macs can claim that anymore, if they ever could:
https://mjtsai.com/blog/2022/12/27/ventura-issues/
https://news.ycombinator.com/item?id=34155875
I get that it was a great bit of marketing, and it's become a fossilized idea in many people's heads, but I've never had the kind of bizarre failures in Linux that the article and the comments talk about regarding modern macOS.
> and apps look gorgeous.
This is a matter of taste. I dislike the Mac UI and the fact Macs only have one UI is one dealbreaker out of many.
Not for me - it still feels like, UXwise, it's stuck in the earl 2000s.
We're in 2022, and no window snapping? Randomly rearranging workspaces/desktops? Forgetting which apps are on which monitor whenever it goes to sleep? Inconsistent shortcuts + lack of used-defined global shortcut assignment? Inability to set mouse acceleration?
Just how low are your expectations?
Can't you do this from System Preferences > Keyboard > Shortcuts > App Shortcuts?
I know third-party apps are not as good as native support, but here are my recommendations in case anyone is interested. Both worth their price.
> no window snapping?
I've been a happy Divvy [0] user for years.
> Inability to set mouse acceleration?
BetterTouchTool [1] can customize mouse acceleration beyond what user can do in System Preferences.
[0] Divvy. https://apps.apple.com/us/app/divvy-window-manager/id4138575...
[1] BetterTouchTool. https://folivora.ai
> cmd and ctrl are used interchangeably
Not sure which apps you are talking about, but I've not encountered any apps that use Ctrl-T to open a new tab. They are all Cmd-T.
hardware: M1/M2(!!), display, touchpad. hard to imagine wanting any laptop that's not Apple silicon right now.
unsure if getting my dual displays working(Apple Studio Display, LG Ultrafine) will be a pita on linux
My guess would be because you're going from an OS that handled everything for you to a completely customizable OS like ArchLinux. I have never had issues getting dual displays to work on Fedora. I have 2 Benq displays connected via thunderbolt on Fedora now and have done similar with the LG Ultrafine.
I have actually gone back to 2K displays and I find those better for programming. I am currently running 3 2K displays (all of them massive 32 inch) via a single cable to my docking station. I also have a thinkpad t420s this can do the same. Both of them running Ubuntu 22.04
For context, I've used Desktop Linux from 1996 till 1998, 2002 till 2007 and tried again for the past two years with a Ryzen desktop.
The main reasons that bring me back to macOS (apart from the M1 / M2 hardware):
- I much much much prefer the macOS keyboard shortcut setup. Command+C works everywhere. On Linux, Ctrl+C works most of the time, but sometimes it's Ctrl+Shift+C or something else. I run into this far too often because I'm a create of habit.
- I also enjoy that basically all apps adhere to the same keyboard shortcuts. E.g. Command+T for new tab works not just in Terminal, but in every tabbed app.
- I haven't found a way to customise Gnome or KDE so that application switching with Expose / Mission Control works as fluid as on the Mac. I use this all the time to go to different windows.
- I like that the package manager is separate from the operating system. More than once have I run into a Linux situation where I had weird package conflicts and it was super tricky to get out of it. With Brew I just reinstall it and I'm done.
Because Ctrl+T swaps the two characters around the cursor, which is what it should do in a terminal (and in Mac OS, it does this in all text boxes in all applications). Mac OS is actually remarkably consistent about all of this. In Linux, Ctrl+A goes to the beginning of the line in a terminal, but it selects all text in other applications. In Mac, Ctrl+A goes to the beginning of the line, everywhere.
In fact, this is common to a lot of little poweruser features on macOS, and I think is a big driver of distaste towards non-native apps by long-time Mac users.
huh TIL! and Ctrl+E goes to the end. amazing thanks
> Computer refuses to communicate with the dock.
> Bluetooth audio doesn't work.
> Screen resolutions get fucked when reconnecting monitors.
No, it doesn't. Fullscreening an app window takes you to a new desktop, or to be more precise, makes it fullscreen. If you just maximize it, it stays in the same desktop.
> Single click on dock to maximize the app but clicking maximized app doesn't minimize it. Why?
I have never seen that behavior. Single clicking on the dock selects the application, but does not maximize any windows.
> Ctrl + Alt +T doesn't open terminal, it's like oxygen to me.
Using iTerm, double tap command (this is an option you have to enable) will bring up a terminal. It is great.
> Ctrl + C to cancel a command in terminal but Cmd + C to copy text in terminal. Ok, then why Cmd + T to open a new tab in terminal instead of ctrl?
This one shouldn't be too shocking if you're familiar with terminals. In the terminal, the control characters are passed through intact to the terminal itself to do whatever it needs to do. Hijacking them for application (the terminal emulator itself) control would be bad behavior.
The behaviour must be inconsistent then, because I just clicked the green icon on edge, safari and vscode and it popped me off to a new virtual window.
double clicking the title bar will maximise it vertically on Safari, and full screen on vscode and edge
All this predates the behaviours described that are followed by Windows and other OSS desktops. Neither is better, both depend on habit and familiarity. For some of us that used Mac’s since the 80’s, the Windows approach is a complete anathema. Organising the workspace into neat grids is not something many of need or have missed - that’s not to say that it’s pointless, but it doesn’t necessarily fit the workflow of macOS. As mentioned, there are myriad tools, most of them free, to add the behaviours that you seek.
- Last time I tried, Linux could not do proper fractional scaling. I use 4k 27" displays and wish to use 1.5x scaling. macOS does it perfectly, Windows does it perfectly. Linux does all kinds of shitty stuff. Never could get it working properly. You either get blurry scaling or screen tearing and shit.
- Scroll inertia thing is fucked on Linux. Trackpads are not fun to use.
- I love clipboard managers, keeping history of clipboard, allowing search in previous entries etc. All solutions on Linux have been simply bad. And as far as I can tell, it is not even possible to properly do it on wayland.
- Laptops do not sleep properly. I tried 2 different devices, more than once they heated up in my backpack. I can't have that.
Note that I'm not a foreigner to Linux. I've been running and loving Linux servers my entire life and I can get around stuff pretty fine. I just don't have the stamina to deal with desktop linux.
Genuinely curious did xrandr not work for you? I have the same setup and use 1.5 scaling. (Ubuntu focal).
This happens on Mac and windows but on windows I just use force resolution on the Nvidia driver to add one extra mode, and on Mac switch res x did it.
So sadly Mac is my main good travel PC option.
You must have tried Linux really quickly :p tongue-in-check
Or you were running headless xD
- fractional scaling is a known sore spot, but it seems like it's getting better fast. Wayland finally has fractional scaling and the upcoming release of KDE is coming with proper fractional scaling support.
- The laptop sleep setting is some that can be (sometimes) fixed by changing a bios setting (called something along the lines of 'Sleep State'). It's part of a Microsoft + Intel initiative to make PCs "more like smartphones," with all the extra "user friendliness" you would expect from that.
Can't comment on scroll inertia. Libinput has been working pretty well with my assortment of trackpads. Touch input seems ok on Wayland too, using an ITHC based device.
Have not had the sleep problem with Linux lately. Actually, the problem has kind of reversed - nowadays, this problem is more associated with Windows, thanks to Windows Modern Standby being impossible to disable on newer Intel processors. Still, sleep may be broken if you are using an NVIDIA based device. All I can say is, NVIDIA is one thing better avoided with Linux today. Obviously, if you want your best shot, using hardware that is designed and tested only on other OSes that has merely reverse engineered support in Linux is not going to give it to you, though I understand why people are not willing to fork the cash over to one of the few vendors like System76 that actually do a reasonable job.
You got me on clipboard management, that sucks today. I'm pretty sure it's not impossible in Wayland, but it'll need compositor support. KDE on X11 used to have great clipboard management; dunno what the status of that is in 2022, as I used KDE most in the KDE3 days. Clipboard management is hard for valid reasons though. Just like on all other operating systems, clipboard isn't really a place that data lives, it's an IPC layer. When you copy, nothing happens except for the advertisement that something has been copied to the clipboard. Sometimes clipboard operations hang if an app becomes unresponsive, and the act of "pasting" is not necessarily without side-effects. This makes active clipboard management pretty hard to get right, if it's possible at all with today's designs. The biggest problem is LOSING the clipboard when an app closes, in some environments. That really does need to be fixed. That said, believe it or not, it happens on Windows too, just, thankfully, not in most common scenarios.
Depends on when you used it last time. On Linux we have two graphic systems, Xorg that doesn't support it, and Wayland that supports it out of box. Some distros switched to Wayland years ago, others still prefer Xorg as the default option, just change to Wayland during installation. I have 2 screens, each with different resolution and it's all fine.
>- Scroll inertia thing is fucked on Linux. Trackpads are not fun to use.
This is highly configurable on Plasma (KDE). I would say, too many possible options are given, but it's not as bad as on Windows where on one laptop double tab is double click, on another it means scroll-click. Plasma tries to fit everyone, but requires some turning like this.
>- I love clipboard managers, keeping history of clipboard, allowing search in previous entries etc. All solutions on Linux have been simply bad. And as far as I can tell, it is not even possible to properly do it on wayland.
We're back to Plasma, you can configure global clipboard and screen-independent clipboard, they would also share history and clipboard recorded is enabled on default.
>- Laptops do not sleep properly. I tried 2 different devices, more than once they heated up in my backpack. I can't have that.
This still suck very much, welcome to systemd integration layers that need to be done as root and you never know if it's working until you test it after a reboot.
And AFAIU clients (applications) still need to implement this protocol. Something like wxwidgets or old gtk versions probably won’t ever get to implementing it.
* Some compositors employ some workarounds to achieve this, like the scaling tricks where they render to a larger buffer and then downscale it…
We a lot problems like that when we want to integrating Linux desktops in our enterprise environment.
We are not using red hat or but have dedicated Linux computers.
I've found fractional scaling OK on Linux doing it with Xrandr. It works the same way MacOS does it. A bit of a bear to setup although Ubuntu has had it easy to use in their version of Gnome since 20.04.
This is a bit of a workaround, but I've been using it for close to 5 years on Gnome / Ubuntu with a lot of success:
You can install gnome-tweaks, and modify the text scaling factor to fractional numbers (ex: I have it set to 1.4 on a 2560x1400 14" screen). The vast majority of applications use this to scale both text, and icons (chrome, terminal, file editor, desktop, etc).
And I realize as I type this that it's a "workaround", which kind of reiterates your point about it being difficult to use. That said, I personally feel like macOS has similar issues (docker, desktop handling, slightly.. different bash tools, etc), and a lot of it is a matter of using something you're not used to.
If you tried to install Linux on two random devices designed for Windows and they do not work flawlessly, then I am not surprised. My Librem 15, which came with Linux preinstalled, has 100% reliable sleep.
- I thought that was a patents thing?
- Compared to what? The clipboard managers on windows seemed all pretty bad.
- yeah, better than windows (e.g. see the linus tech tips rant about it), but s3sleep is much better still. Luckily many higher priced ones offer that as an option in the UEFI settings.
I turn the lid down on my laptop and it goes to sleep. It pull it up and the system comes back up. Reliably. Every single time.
I guess that narrows my choices down to Windows and MacOS. Between them I find it much harder to choose, but Macs just have a solid lead on the hardware front for now. The M1/M2 chips are just chef's kiss. And I don't know why most Windows laptops come with such junk webcams.
Edit: I almost forgot! Linux still doesn't have hardware accelerated video playback on browsers. How can anybody recommend using linux on their laptop despite this is beyond me. Is this a joke? Like do you guys just always keep your laptops plugged in all day? Why not just get a desktop at that point?
AFAIK it's easier to set up on Wayland, but I have it working on X.
edit:
Maybe I'm super lucky, but I rarely had problems with suspend on Linux. Having said that I prefer no suspend on closing the lid, and AFAIK that's not an option on MacOS.
Especially if I'm also carrying something in my other hand.
I at least sometimes see coworkers walking around with open laptops, which looks inconcenient. I am sure they have their reason for not closing the lid.
Those aren't really problems, but it can be a minor matter of convenience, and I've set both my work and personal laptops to not suspend when the lid is closed.
I'm not saying that's in any way a better idea than keeping the typical default, and I have absolutely no opinion on what anybody else should do.
FWIW, I also don't care whether macOS gives an option for not triggering sleep when closing the lid, which was the original matter. But I don't agree that there's no reason to close the lid except for suspending.
How much time did you have to spend fiddling with your config to get it working? Does it work reliably? Last I checked, it wasn't even possible with an NVIDIA card.
>Having said that I prefer no suspend on closing the lid, and AFAIK that's not an option on MacOS.
Yes it is.
Max an hour. It's an Intel GPU on a cheapo netbook (hence the need to make it as efficient as possible). Arch wiki is quite decent for this kind of stuff.
I don't know about NVIDIA, I didn't own one since a long time.
On every single windows or mac laptop, I just seem to the same peace of mind I have come to expect from smartphones. Click, system goes to sleep. Click, system is up.
On linux, every time I approach the laptop, it is with that small but unshakable feeling of dread. What is my laptop going to do this time? Will it decide to come up with the same state I left it in? Or will it decide this is a good time to reboot?
It's not the case for my M1 MBP. Having it connected to an external USB C/Thunderbolt monitor makes it simply refuse to sleep, even when clicking on the Sleep button, closing the lid, etc. Even outside of that it's a crapshoot if simply closing the lid when on battery power will actually make it sleep, or i will realise on Monday it never slept.
Undocking/docking works fine. Perhaps you have some process running that is preventing sleep.
Yes it does.
This is exactly how my Librem 15 works with Linux and Qubes OS.
It means that your browser uses the dedicated video card for rendering video frames and pushing it to your monitor instead of using the CPU.
Why you would want this? The same reason you use a straight-edge to draw a line and a compass to draw a circle. The right tool for the job. I'm sure most people here would have had the experience of the first time training their machine learning model on a GPU instead of the CPU and having their jaw drop at how much faster it was? GPUs are simply much better than CPUs at the things they are designed for. Sure, most CPUs are still powerful enough to push 1080p videos to the screen, but that comes at the cost of poor performance and battery life.
So does my laptop. And my sister's laptop; and my father's laptop; and my cousin's laptop; you see where I'm going.
>Linux still doesn't have hardware accelerated video playback on browsers.
I don't know about Chromium, but Firefox has.
>Like do you guys just always keep your laptops plugged in all day?
No, because I installed Linux its battery now last longer than on Windows.
I’ve been running Linux since the 90s and literally the only machine that’s ever been troublesome is my current one. But even the issues I’m having with this laptop are really no worse than the issues I’ve had with macOS.
I still have a MBP I use for work (and an iPhone and Apple Watch I bought for myself) so I’m bought into the Apple ecosystem and there is lots I do like about it. I just don’t believe Apple products are the pinnacle of perfection that others on here claim. Nor that Linux is the shit show that Apple fanboys make out.
Ultimately, computers are complex and people have subjective preferences. So what works for you might not for others. And visa versa. Assuming that your experience must mirror everyone else’s verbatim is a sign of arrogance rather than understanding.
So maybe instead of being dismissive that other people have had positive experiences, instead you should be grateful that there is a choice out there for people who are less receptive to the platforms that you personally prefer.
Linux does that on my laptop. In fact, I just close the lid, put it in his bag, and forget about it.
The battery does last about 6 hours of coding and browsing. It's not 12 hours like the Apples, but it has been enough for my writing sessions.
I do agree about the junk webcam :/
I have been that guy who loved to customize every last ounce of the user facing experience of my system. (I still spend most of my time inside of Emacs irrespective of which OS I'm on.) I had a dotconfig folder that I used to carry around to different machines and it's fun and all that. But I'm no longer a student, I simply can not justify spending time tinkering around trying to get the basics working. Bad battery life is a deal breaker. Unreliable suspend is a deal breaker. No, I will not spend a minute trying to get it working. I would rather just run linux on virtualbox or, more recently, use Windows + WSL or a Mac.
>The battery does last about 6 hours of coding and browsing.
And does hardware accelerated video playback work on the browser?
This works with my current HP Spectre x360, I don't remember it ever working in any of the previous laptops.
> And does hardware accelerated video playback work on the browser?
I think the answer is not, as I notice about 6-8% of CPU load when watching videos in the browser.
I really like macOS but I am slowly moving towards Fedora on the laptop and Windows 11 with WSL on the desktop.
For general use and macOS/iOS development, definitely the former, macOS is far superior, IMO.
It has become unfriendly for Apple development too. Increasing lockdown, endless permission prompts, bugs piling up into a mountain, and the forced OS updates required by Xcode.
Linux is terrible on desktop - but it’s beautiful for everything else.
A few months back, there was an issue with the master build of grub that would leave computers unbootable. It just so happened that the arch devs were using the master branch because nobody wanted to back port some security fixes.
Instead of owning up to the issue and apologizing, we got some lame half-assed excuses days after the event. When I asked the security dev about it, he patronized my concerns and told me I would be better off on an 'easier' distro.
I immediately formatted my drive and installed pop os, and I have had exactly zero issues since. Linux is fine on the desktop. Arch, however, is terrible.
Don't use arch if you are not prepared to configure it yourself.
- safari (for testing and debugging, not daily driving)
- mobile app dev for iOS
- nicer hardware experience than any linux laptop I know of (superior screen with perfect hidpi support, best trackpad, actual all day battery life, top-notch performance) without any major compromises for my needs
- full hardware compatibility without any fiddling (my thinkpad required regular fiddling to deal with the fingerprint sensor and runaway power drain)
I don’t run into any of the issues you mention, but I use a very trackpad/mouse-oriented way of navigating because my brain refuses to remember lots of shortcuts, and I have an assortment of mac utility apps that fill the gaps (like moom for window tiling).
It has to just work. There's a lot to like in Linux, particularly in the Cloud but it still has to just work on a laptop.
I don’t see what’s inconsistent there. Cmd+key sends a command to your terminal application, Ctrl+key sends a command to a process running in your terminal.
That’s why, for example, Cmd+C copies selected text in your terminal window, while Ctrl-Y yanks text in many applications (including many shells, via readline).
I have used Linux as my main driver on all my desktops and laptops between 1999 and 2021 until I migrated to Macbook Pro.
The simple reason is that maintaining basic operating system to do the basic things it should be doing should not be taking so much of my time. I am sick and tired of fixing another audio, wifi or power usage issue because package maintainers decided they have a different idea or spend time fixing my graphics driver every couple of months at the most inopportune time. I need to be able to open my laptop and reliably be able to continue with my work, is that so much to ask for?
So I switched to MacOS and for now I could not be happier. Setting up some things is as frustrating as it has always been for me but at least once I do it it tends to keep working.
I decided it was enough for me and I bought a Mac. There are still some design choices from MacOS that I don't get, things I wish I could customize, but I definetely don't regret my decision.
Linux has HDMI volume control? Interesting. This piqued my curiosity and I wondered if Linux supports ReadyPlay and other DRM standards to support higher bitrate and higher resolution Netflix streaming.
It does not.
You can only get a low bitrate, awfully blocky and distorted (although pretty high resolution 720p) on Linux. The resolution is useless tho because the bitrate is so low.
I pay for my Netflix subscription. And when I want to watch a movie on my projector, I first torrent it (fiber optic, takes two minutes top), then play it. No random Internet issue. I torrent the x264 "webRIP" which I figure out is basically the film I paid for the right to watch using my subscription. I'm not a "data hoarder" / movie collector: I watch the movie then delete it. Same for series.
I started doing this after I upgraded my Netflix subscription to a higher tier then noticed streaming quality on OS X was still crap.
If you’re using Safari, streaming quality will be the same on OS X as on your smart TV. If you use Chrome or another browser, yeah quality does suck.
Chrome does not support the DRM that the studios require for higher bitrate streaming
I may be missing the intended point, but AFAIK neither Windows nor Linux support HDMI volume control (I use all 3 regularly, but only Windows and Linux over HDMI). My Nvidia GPU is connected to a 4K 120Hz TV using HDMI for audio, the TV volume controls are independent of the OS volume settings. Unless OP meant macOS doesn't allow setting the volume independently of the HDMI device.
If I haven't quoted one of your items, it means I agree with it, but...
> No screen edge tiling, spend more time managing application windows
Yes, but you can install Hammerspoon or similar.
> Inconsistent keyboard shortcuts, cmd and ctrl are used interchangeably for no reason (Biggest issue). Why do I need to do Ctrl+Tab to switch tabs but Cmd+T to create tabs? Why is History not Cmd/Ctrl+H in browsers? I need to memorize more shortcuts on MacOS for no reason, when it could very well just do it all with a single modifier key.
Control-T (and many control-foo combinations) is already used in terminals. It's a standard emacs binding to transpose characters.
> Maximizing an app takes you to a totally new desktop
Agree, this is horrible, so I use Hammerspoon.
> Ctrl + Alt +T doesn't open terminal, it's like oxygen to me.
You can set any bindings like this up with Hammerspoon.
> Can't set VSCode to open with Ctrl + Alt + C.
You can set any bindings like this up with Hammerspoon.
> Can't set custom global shortcuts at all, even windows can to some extent
You can, with Hammerspoon.
> Ctrl + C to cancel a command in terminal but Cmd + C to copy text in terminal. Ok, then why Cmd + T to open a new tab in terminal instead of ctrl?
This was addressed above. Likewise it would be really annoying if Ctrl + C was to copy text in a terminal instead of being interrupt.
> The shell startup time is too much on MacOS. I have to wait for a second for the shell to load before I start typing my commands. On Linux, pressing Ctrl+Alt+T and writing commands right away feels so good!
I don't have this problem, not sure why you do. I can open a terminal instantly and start writing instantly.
As for why I use macOS, I actually use it only on my laptops (personal and work) because I find non-mac laptops ergonomically dreadful in comparison (e.g. trackpad, etc.). I know this is subjective and I'm sure plenty of people feel the opposite. I use Linux (with i3) on my desktop.
> I don't think that's fair as developers spend ages customising everything anyway
I've got into development. I use KDE Neon now and really, the only thing I customize on a new install is left single and double click defaults in the OS, changing system performance mode to prefer performance over battery and install the IDE and Yakuake for a better terminal.
Other than that, the starting development for me is literally just installing the IDE, cloning the repository and opening the project file (and the IDE will pull in all the dependencies, linter settings automatically).
> I can open a terminal instantly and start writing instantly.
One of the best things about Yakuake I love is that it's literally that. Hit F12, multi-tab terminal slides down like the old quake console (yes, that's where the name came from).
Also, I get less flack from the IT department if I'm on something standard.
When things don’t work on Linux, the last thing I want to do is open the terminal.
- I’m used to a trackpad. I only had laptops growing up and never used a mouse; now, I can move the cursor very precisely on a trackpad, but I’m very inaccurate with a mouse. macOS’s trackpad support is miles beyond every other OS, in every aspect.
- I love the command key. There was a discussion just the other day on HN about how much more ergonomic it is to press modifiers with your thumbs; having to frequently reach over to control would be awkward to me. And having the command key for OS-level shortcuts be a different key than the control key for shortcuts in terminal apps is incredible, because I don’t have to memorize weird new shortcuts for basic functions like copy/paste/opening tabs in terminal apps. Perhaps I could swap the control and GUI keys on Linux, but I’d still have a lot of keyboard shortcuts to relearn, and I’d have to figure out what to do about terminal applications.
- I use a lot of music production software that’s Mac-only, so the best I could do is dual-boot, not leave macOS completely.
Still, last year it was time to upgrade my computer, and I was thinking about biting the bullet and making the switch because I wasn’t looking forward to buying a terrible butterfly keyboard touch bar Mac. But then the M1 MBP came out.
Maybe I’ll switch my workflows to Asahi Linux eventually, but it would take a lot of effort unless someone knows a good way to make these things less painful — especially the command keys.
I'm looking forward to Zrythm gaining more and more features and becoming an adequate alternative to mainstream DAWs.
It quickly becomes subpar once you have to use commercial applications, and can be a massive productivity drain after an update breaks some core feature of your hardware.
"Oh, neat. I applied a small patch and now I don't have audio."
For me it all comes down to the touchpad experience. Excellent on Macs, shitty on Linux laptops (and it's not just shitty touchpad hardware, but the combination of hardware and driver).
Most of your other points are just the regular differences between systems. If you're used to one, it's hard to get used to another (personally I like working on macOS more than Windows or Linux, and I need to switch regularly between all three).
For some people, we don't want to dicker with getting Linux to just work.
Yes, Docker on MacOS sucks and there are other tradeoffs. But the day to day management of not having to deal with drivers, sleep issues, etc. it's Mac over Linux for me.
I prefer linux dev because docker doesn't have to run in a VM and I'm closer to developing on the platform that I actually deploy on. That's it, those are the only two reasons.
1) I chose the route of entirely disabling nvidia and using the built-in intell graphics cards. This was probably a mistake in hindsight. I did it because I wanted to use less battery, but, so much stuff seemed to work sub-optimally.
2) For chrome in particular, I had to jump through a lot of hoops just to get it to render things properly and play videos. This had knock-on effects with chromium apps like slack and zoom. I never got Zoom the app working on Linux, but was forced instead to use the browser version.
3) I ended up having to install a non-stock kernel to get a lot of things working.
4) I remember running into issues with sleep not working. I don't even remember exactly what I had to do to fix, but, it's another example of something a MacOS user will never have to think about.
Anways, I prefer Linux over MacOS so much that I was willing to experience a ton of pain to use it, but I could not honestly recommend it to others at the time. I hope it's gotten better since a few years ago, but I would be very surprised to hear it has. Each new generation of laptops brings new custom chipsets, hardware, etc. with no formal Linux support.
Using Linux ~99.9% of times at both work and personal use for the last five years. 0.1% is Windows, because PowerPoint.
Using Pop OS (NVIDIA) for the last 2.5 years, and Linux Mint before that.
I have near zero issues, and spent contiguous months and years without any Linux Evenings [0]. Had 3-4 Linux Evenings in these 5 years.
[0]: https://news.ycombinator.com/item?id=34013195
I was about to say: "Why not just use LibreOffice Impress?" - but the truth is that it's still far away from qualifying as a Powerpoint replacement. LO Writer has really gotten its act together over the years, and now handles Word documents very well and is a worthy replacement - Impress not as much.
So, I urge you to spend a little time trying to open your PPT presentations in Impress, and if/when you see issues with it - complain about them! As an active LO user (https://events.documentfoundation.org/libreoffice-conference...) I feel the user base is not putting enough pressure on developers to put focus on Impress polish.
Also, donations help: https://www.libreoffice.org/donate/
... then maybe in a couple of years you could ditch PowerPoint and make your 99.9% into 100%.
I use PP at work and talks that I give occasionally (2-3 per year).
For other things, I just use Google Docs and Sheets. They are enough for my usecases.
As a challenge, last year, when I taught a class (as a volunteer)- I made all my slides with Impress. While it wasn’t painful, PP is miles better and smoother.
While there are many FOSS softwares where I regularly report issues, and donated, and even contributed to some, presentations is not that important to me to spend a lot of time at.
Oh, Impress is basically the same as PowerPoint, the differences are not significant. Here's a 11-minute video exemplifying the experience of creating a simple presentation from scratch:
https://www.youtube.com/watch?v=DDmEvjs4iBw
... frankly, I wouldn't even watch it, just pretend PowerPoint came out with a new version where they tweaked the UI a bit.
You missed this bit?
I did use Impress to make slides for 7 classes (>100 slides).
I will go with PP for now.
And, yes, using computers since 6, having one for myself since 10- I need not really explicitly learn UIs of programs intended for non-tech mass users.
I had all the issues you describe until 2010… Then my apple macbook that I used to run linux died, I bought a thinkpad and everything has worked since then.
> I never got Zoom the app working on Linux, but was forced instead to use the browser version.
I think that's a feature, since zoom had many spyware scandals.
>I think that's a feature, since zoom had many spyware scandals.
It's probably much easier to run on 100% Linux if you can dismiss away the inability to run common business apps as a "feature".
This is why I run a Linux VM on a Mac -- I do nearly all of my development work in the Linux VM, and am fully supported by our IT department on the OSX side to run our business apps.
I've been using linux for work since when I started working. I also do daily zoom calls.
I tend to dismiss comments from people that clearly didn't run linux in the past decade but still keep complaining about the same things they experienced when they last tried it for 2 days in university.
I have a laptop like this that I'm trying to run Fedora on instead of Windows but it's frustrating because the UI works best at 1.5x scale, which the DE (GNOME/KDE) handle ok, but third party apps are all over the place. It's difficult to goad even something as simple as Anki into doing the right thing at non-integer UI scales under Linux, whereas under Windows it works flawlessly.
> No screen edge tiling, spend more time managing application windows
> Maximizing an app takes you to a totally new desktop
Spectacle or any of several other programs solves these. It's the only major piece of customization I do on any new Mac. First thing I install after Homebrew. I almost never manage windows with the mouse. One might object, "but that's not default!" but then Mac also catches shit for not being customizable, yet here I am, customizing it, so IDK, doesn't seem like a real objection if the proposed alternative is Linux where customization tends to be even more fiddly than that. FWIW Spectacle's not given me one single problem or glitch in something like eight or nine years of use. Install, grant accessibility permissions to it, use its menu to set it to start at launch, never think about it again until I set up a new Mac. I think there are, separately, also ways to change the behavior of the maximize button (in fact I think I used to use such a customization, before I discovered Spectacle)
> Hidden dock doesn't appear unless I smash my cursor on the bottom edge. Dock Autohide is very finicky, ZorinOS' way is much more graceful and natural.
As a hidden dock/taskbar lover since Win95 I'm not sure what you mean. I've not noticed a difference between its behavior and every other I've set to hidden, which includes most consumer versions of Windows, a couple server versions of same, plus XFCE, Gnome (1+), and KDE (2+) on Linux. But I've also never heard of ZorinOS so maybe it's doing something unique (and maybe really nice!)
> No window closing animations, but has window opening animations. Feels really unpolished
I just tried "new window" in a couple programs to see if I could figure out what you mean—maybe there's an animation and I'd just become blind to it. Still don't see it, steps to reproduce?
> Single click on dock to maximize the app but clicking maximized app doesn't minimize it. Why?
You don't minimize or maximize apps, but windows. Clicking an app in the dock focuses it, un-minimizing (not sure what you mean by "maximizing", here?) its active window if necessary. Doesn't seem inconsistent to me, and is probably a lot less surprising/annoying than if clicking an app that had all its windows minimized didn't restore any of them, or if clicking an app (interpreted by the OS as "foreground this thing", basically) instead minimized its windows (which one? All of them? If some are minimized already, then WTF? Swap them?). I mean, if you click on a pinned app that's not running, it launches the app—would you expect that clicking the dock icon a second time terminate the app?
> Ctrl + Alt +T doesn't open terminal, it's like oxygen to me.
> Can't set VSCode to open with Ctrl + Alt + C.
I don't fiddle with more advanced ways to map shortcuts in macOS (I've done less customization of everything in general, as I get older) but I'm like 99% sure these are easy fixes. Maybe not something exposed in settings, but still, easy to fix. And it's so workflow- or preference-specific that I don't think making it a default would be reasonable. I just launch everything with search on every platform these ...
> brew doesn't support multiple users (really [0])
[0] https://www.codejam.info/2021/11/homebrew-multi-user.html
Why I use it: I just never had any good hardware for a linux laptop and I hate to tinker with configuration. There's always things that work so-so with linux laptops. Macbook gives good hardware, excellent system integration and I like the defaults out of the box. None of the things you listed have importance for me.
I would probably use a linux distro on a desktop machine though.
Linux is great to revive old macbooks that are no longer supported by Apple though. Linux mint on 10 years macbooks works great.
Wait, Linux allows you this?! How?
On top of that, the minor personal preferences of a workstations should really not be much of an issue in your professional career. It's not like you can tell all your customers, suppliers and colleagues to do things differently just because that's more comfortable for you. Nobody will pay for that.
The few people that do run whatever they want, however they want, have a much larger liability and much less support, but they are free to do so. In the event that friction is introduced due to the choices of anyone within the department, it's up to the non-standard one to address it. This gives everyone enough freedom but prevents unrealistic expectations.
I'm also very annoyed by most of the things you have listed, but there are two things that are a deciding factor in favor of mac for me:
1. In addition to webdev I sometimes need to do design, graphics, 3D art, and on linux most of the software just doesn't work. There's absolutely zero chance I'd be willing to cope with GIMP and Inkscape instead of using Photoshop and Affinity designer. There's a lot of other software (for screen recording and video editing, for instance), that works on mac and doesn't on linux.
2. On mac, things just work. On linux there's more customization, and open source software, but you pay for it dearly by having to spend hours (sometimes days) tinkering with configs and installing dependencies every time you're trying to get anything to work. I didn't mind that before, but at this point, I'm too old for this sh*t. I just want my laptop to work and help me do my work and make stuff, I don't want to cross my fingers and pray every time I need to install something I need to get anything done.
As a heavy terminal user this bothers me a lot..
Control+T and Control+C has very special use for the shell. I don't want a terminal "app" taking over those bindings for a misc feature.
I don't get why the Meta key is rarely used in Linux desktops.
These machines have been normal Dell Desktops and Laptops. Normal LTS versions of Ubuntu.
It has happened enough that I don’t trust Linux as a desktop system for whatever computer I’m using. I can absolutely use it, I’m comfortable on the command line.
I want Linux to be reliable for me as a desktop system. It’s the dream of truest owning your computing. But I haven’t had that experience yet.
MacOS is certainly not perfect, but I’m very happy with it, and it feels reliable to me.
The simple answer is both Apple hardware and software support is well defined and is the gold standard.
Linux Desktop software support on the other hand is ill defined and even if the hardware claims to have support, it somewhat worse than macOS or even Windows thanks to the inconsistency of the Linux desktop stack letting it down.
This has been an eternal problem with the Linux desktop, and at this point you might as well use Windows with WSL2, since that is the best 'Linux Desktop'.
But being an iOS dev... you just can't get away from macOS. Even with a lot of the great tooling out there.
I have been running Linux since the beginning and also have four laptops running Linux.
MacBook stopped feeling like my (quite expensive) hardware doing what I want and became an (even more expensive) device controlled by Apple often forcing unwanted changes on me.
I miss MacBook's touchpad but am happy with the trade-off.
what were you able to control before that you can't anymore?
I was increasingly locked out of my computer. Apple is now MacBook's superuser and I'm just the user. Their hardware is too expensive for that.
What I like to do with this is have two versions of hosts file and two versions of /etc/pf.conf
In one setting, I use https://gitlab.com/intr0/AppleBlock/-/blob/master/AppleBlock... in the hosts file and block the whole 17.X.X.X ip range (Apple's range) in the pf.conf
The other setting doesn't have any of these blocks
Whenever I need some apple service (e.g. updates or apple developer stuff), I run a script to toggle the blocks
The benefit of this approach is you get apple services only when you need them
Still hackt, but a one liner at least
Disclaimer: have never touched matlab
https://www.mathworks.com/matlabcentral/answers/1684819-why-...
But that doesn't mean they're wrong to hate it. It's a proprietary program with origins in the 1970s (that's 50+ years old!) and comes with a lot of cruft.
I don't know what university courses are using these days, but a lot of universities have data science majors now, so presumably there is some exposure to Python there. A lot of statistics courses also use R.
What kind of tricks are you thinking of?
> I wonder if Matlab being most hated relates to people being forced to learn it in undergrad and it being poorly taught etc.
To me, as someone who has used Matlab fairly extensively both being taught in undergrad and in programming-centric grad research, Matlab's one and only strength is in its being a one-and-done IDE/programming language. If you're using Matlab, then you're using it in an IDE that "just works" and was installed and configured simultaneously with Matlab itself: there's no real distinction between the two. Further (assuming you check the right boxes during installation [1]), all the possible packages you could ever have [2] are installed at the same time. So you get a super simple install and never have to think about installing or configuring anything ever again. I don't want to minimize how useful this is. Every other programming language I've ever used has had a huge amount of installation and configuration overhead, often an insurmountable barrier for non-programmers (e.g. scientists).
That said, I dread using Matlab, for many, many reasons. My top three reasons in no particular order: 1. you can only really define one function per same-named file, 2. errors are almost always one line long (no stack trace) and rarely give a line number in normal usage, 3. cell arrays. Cell arrays are basically just untyped lists, yet somehow mind-bendingly confusing to use.
[1] assuming you paid for the right to check those boxes. If anyone is wondering, to get all the boxes in a non-personal context would cost 100x more than whatever you're thinking (which is a bit of a straw man since no single person needs all the packages and institutions get crazy bundle deals). I haven't taken the time to add it all up, but base MATLAB is $900/year/computer, and each of the ~100 packages costs $500-2000/year/computer (skewing heavily to $500). So, roughly $50k/year/computer for everything. Which is silly, obviously. Most people only want a handful of packages so realistically it's only about $2-4k/year/computer. Only. However! If you just want it for non-commercial, non-academic, non-governmental use, you can buy Matlab for only $149 + $45p, where p is the number of packages you want.
[2] Literally, all the packages you can have. Package development is 98% limited to Mathworks-official packages.
I run Docker Desktop on OSX on an M1 Pro and haven't had any issues. Yes, you do need arm64 builds of things; the x86_64 emulation is indeed apocalyptically, unbearably slow. But otherwise, the shift to doing local development in docker-compose has been transparent and seamless.
* MacOS wins for laptops, hands down. Mac laptop hardware is by far my favorite these days (I used to be a Lenovo guy in the thinkpad era, but no more sadly), and hardware support for Mac is of course best on MacOS. There are a lot of things you have to get right in a laptop (touchpad controls, drivers for wireless devices, audio, etc.) and Linux never really nails it for me.
* FreeBSD for the majority of "appliances" (routers, storage, servers for running misc. tools like home automation)
* Linux for various open-source desktop tools that have poor BSD support, mostly around things that rely on GPU (e.g. Blender rendering)
* Windows for desktop media consumption (games, movies, etc.). I'm not happy with it, per se - things like HDR and surround sound have a lot of issues - but it works well enough and I already have it there for games. I should probably try MacOS's surround sound support - I know it handles HDR very well.
The bulk of Linux laptop woes (improper hibernate, touchpad/lighting control, peripherals, GPU switching, battery life, etc.) directly stem from the hyper fragmented hardware and firmware specs used by various OEMs.
The user experience on MacOS is frustrating. NayamAmarshe has already provided some examples in another comment (https://news.ycombinator.com/item?id=34164174).
- Native MS Outlook and Teams apps are not available on Linux so everything has to be done thru the web browser since MS deprecated the Linux desktop client. Teams crashes in Chrome very often and running it in Edge means every link that is clicked opens in Edge. I do not want to use Edge.
- Font scaling issues at 4K, while I have tweaked a lot of apps to support this it is a constant battle to keep the fonts looking crisp thru updates and some apps just don't support great font scaling.
- Last week I had to reboot my desktop because a single press of CRTL+V was pasting things twice (this was also happening on right click > paste so it wasn't my keyboard)
- Random freezes when I close the laptop lid, which has been solved by some BIOS updates but it still happens.. just not as frequently.
- Bluetooth issues, switching between multiple devices isn't flawless.
- Package manager sprawl, homebrew maybe slow but it usually has the latest version of CLI apps I need to use. Whereas on Linux apt packages are usually way out of date, flatpak won't do CLI apps, asdf doesn't have enough of the tools I need, aqua is very inconvenient, nix takes a long time to configure. AUR is probably the best but you must run Arch. I run Fedora with Linuxbrew and don't need to spend effort on figuring how to install some random CLI binary I need.
Sorry if this sounded a little incoherent. There's more nuances I could go into but overall I do not want to spend days/weeks configuring my desktop OS. There's something to be said about MacOS having very opinionated decisions but for the most part everything just works for my needs and I don't have to struggle reading thru the Arch wiki or blog posts trying to get bluetooth devices to work or whatever is fighting me.
I really like seeing System76 building laptops that work smoothly with PopOS but even that there's struggles with certain hardware or software. It feels like using a Linux desktop is a constant game of cat and mouse on debugging odd issues.
I've dealt with Mac couple of times and did not really have any "this is it" moments never mind inflated price.
Which may explain some blind Linux users swearing by their setups like they are the best things since sliced bread, while others might be meh.
It would be damn nice, though, even for able-bodied folks to be able to use their computers or phones without having to look at them once in a while, and no, voice assistants in their current shape don’t really count. They are still far from being “instant” and understanding you unambigiously every time.
I would welcome software UIs that are usable by all people without having to go into some kind of low vision mode where everything is different. Or one-handed mode where everything is different.
The first thing I do with a new machine is clone my settings repo and run my install script. This way the shells, editors, git, gpg, etc. all feel the same.
Then the differences are all about the UI. I really like XFCE, and have it configured for really easy use. The Mac just isn't as flexible and you have to do things its way even if they're less efficient than you'd like. "The secret is not caring."
I did manage to get the external Mac mouse to not feel like a slug (even with the speed slider maxed out) with some command line trickery. Sometimes the rules can be bent.