Hacker News new | past | comments | ask | show | jobs | submit login
More developers use Linux than Mac, according to 2022 StackOverflow survey (omglinux.com)
487 points by jasoneckert on Dec 28, 2022 | hide | past | favorite | 481 comments



This was news already a few days ago

https://news.ycombinator.com/item?id=34130894


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

Here's 2021, for example:

https://insights.stackoverflow.com/survey/2021


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.


Operating system in which you use your IDE / work tools. Don't complicate it.


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.


What if i run some remote development tools like gh codespaces or the like?


Whatever operating system your thin client runs.


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.


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.


Interesting that the 2021 survey already has Linux ranked higher than MacOS. Makes this article's headline not nearly as interesting, IMO.


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.


I've recently got a MacBook at work (after years of Windows/Linux usage) and was amazed by one feature. When I close the lid of the laptop and leave it for 2 days, its battery is not drained to 0, yet all the apps are still open when I open it again. Magic.

I wonder if non-Apple manufacturers will some day in the future add this killer feature to their offering.


My Lenovo ThinkBook 14 G2 ARE (Ryzen 7 4700U) does exactly the same. Close the lid, wait two days, open the lid - the battery is drained about 10% and... Magic.

This is on Linux, and the only reason for reboot is if there is an updated kernel. I once postponed the reboot for more than 3 months.


Same here. Different hardware (much older) and Windows 11.

Haven't rebooted that machine in weeks either.


Does it support S3 sleep state? Most of recent laptops have removed it


> leave it for 2 days, its battery is not drained to 0, yet all the apps are still open

Isn’t that normal behaviour? Mine thinkpad T14 still has battery after a couple days sleeping.


Unfortunately, it's not normal these days. How old is your T14? It seems like it's becoming increasingly a problem for Thinkpads as well (e.g. https://forum.thinkpads.com/viewtopic.php?t=134241 )


It's a windows bug with S3 sleep. Microsoft is supposedly currently trying to fix it since LTT made a video about it


I doubt MS is honestly trying to fix it, since it was MS who introduced Connected Standby as a replacement for S3

And I don't think it's just a software bug - many laptops now don't offer S3 at all, some only after toggling a BIOS option. Even then, it's often buggy on Linux as well.


> Microsoft is supposedly currently trying to fix it since LTT made a video about it

Certainly not because, if that's the implication. Maybe since then in time.


Well, they said that a VP called LTT in response to their video, which is why I said supposedly.

Original video: https://youtu.be/OHKKcd3sx2c

Follow-up: https://youtu.be/TXsw_92Y2e0


Mine is T14 Gen1 AMD with Alpine on it so I'm off the hook as it seems.


My P14s Gen1 AMD (very similar to T14) with Debian still has this problem. 2 days unplugged will drain the whole battery and turn off. Maybe it's because I kept a Windows partition around?


Updating the BIOS via fwupd fixed it in my case, running Debian testing on a P14s Gen1 AMD.


Protip for Linux users:

1. Configure your system so that hibernate works. 2. Set `HandleLidSwitch=suspend-then-hibernate` in `/etc/systemd/logind.conf` 3. Optionally change `HibernateDelaySec=120min` in `/etc/systemd/sleep.conf` to something that suits you better.

You can now close the lid of your laptop and leave it for _months_ without the battery draining to 0, and still resume your work from where you left it.


I wonder, will "protip" can be used by "pro" users who for sure don't have `systemd` on their uniq and so special needs setup? ;)


My work provided Lenovo Thinkpad T490s (2019) running Windows 10 does this. It is called "sleep mode"

My desktop from 2014 does the same.

Yes, I have heard problems with "modern standby" but have not experienced any issues.


Meanwhile, when I let my iPad lying around unattended for 20 seconds, the thing immediately feels lonely and drains its battery to zero...


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


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.


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.


Proton on linux works quite well for a large selection of games.


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.


Yeah, I use all three major OSes jointly.


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.


The data [0] shows different. Most devs use Windows as a primary operating system, then Mac, then Linux last. I'm sure devs use Linux servers, but they don't use Linux as their primary OS. StackOverflow should ask the question differently.

Their own survey contradicts itself, saying the top 5 IDEs used include Visual Studio (32%) and Notepad++ (28%) which don't even run on Linux. How does that add up?

[0] https://wakatime.com/blog/51-wakatime-2021-programming-stats


The sampling biases are _really_ important here, stated another way:

Of developers who use WakaTime, most use Windows.

Of developers who answer StackOverflow surveys, most use Linux.

These aren't contradictions.


Sure, but "Of devs who answer StackOverflow surveys, most use Linux" is just wrong. To prove it, add up some top IDEs used that don't even run on Linux [0]:

+ Visual Studio (32.15%)

+ Notepad++ (27.71%)

+ Xcode (10.53%)

= 70.39%

That leaves only 29% left for Linux, but they claim Linux usage is 40% [1].

Unfortunately, Linux is still 3rd in primary OS usage and this survey question is flawed.

[0] https://survey.stackoverflow.co/2022/#section-most-popular-t...

[1] https://survey.stackoverflow.co/2022/#section-most-popular-t...


People can select multiple editors, so you can't sum them like that. E.g. people on windows could use Visual Studio AND Notepad++. All this says is that at least 10% use Mac because xcode only runs on the Mac, and at least 32% use Windows.


Oh, all the questions accepted multiple answers? Ok makes sense now... then they can't add up to 100. Still the OS question is flawed because multiple answers means it's not their primary OS.


You can't add %'s like that - the question allowed users to select multiple values.


Yes, you can add percents like that because they share the same base. Thanks, that makes sense... accepting multiple values for a "what's your primary OS" question is the problem.

Edit: Sorry, I thought you meant only the OS question allowed multiple answers. You're right, makes sense they would allow multiple answers for IDE too.

Still, they shouldn't call it "primary OS" if multiple answers are treated with the same weight.


In two of my last companies I was given laptops with MS Windows. I only use them as network terminals to connect to the machines where actual development work is done. Does that make Windows the primary OS? I couldn't care less, but IT insists ...


Yeah... "More Developers Use Linux than Mac, Report Shows" is a pretty disingenuous take. "More developers use some combination of linux/macos/windows more than macos" maybe


What is this?


Time tracking software to ensure you're not browsing HN. I like seeing it because it cuts out all the guesswork of whether you should work there, turning it into a flat 'no, run away quickly'.


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 vaguely remember that in Matlab some form of chaining wouldn't work: a.b.c. You had to do x=a.b and then x.c. It had all kinds of quirks like that.


You couldn’t do something like (a.b).c?

Still hackt, but a one liner at least

Disclaimer: have never touched matlab


So I googled that:

    setdiff(1:3, randi(3))(randi(2))
> One must factor out the resulting list from setdiff into a separate variable first:

    t = setdiff(1:3, randi(3));
    t(randi(2))
> This is so medieval even by 1980s standards...

https://www.mathworks.com/matlabcentral/answers/1684819-why-...


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.


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


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


> decreasing user control of OS X which started happening around the time it was renamed to mac OS

what were you able to control before that you can't anymore?


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.


> privacy settings (it used to be "set what you want to share" and now it's "learn what is shared")

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



I want to love Linux, but somewhere in the 2000s I just got sick and tired of trying to tweak things to just work. There was no going back when Apple released the first Intel laptop.

Sure, there's an "Apple Tax" which basically means very well constructed hardware (except for keyboard-gate), free OS and generally awesome support at the Genius Bar (and profits of course).

A few years ago I tried switching to Linux (RH) for work (Java) on a laptop (Dell, not my choice), and the experience was massively frustrating beginning with the touchpad. I can't hold the different keyboard shortcuts against the desktop, but my 13 years of OSX muscle memory were hard to give up.

In the end, the quality and interoperability of non-IDE software was missing. I don't mind paying for good software.

Docker speed was amazing, though.


same thing happened to me. In college and my first couple jobs I used Linux everywhere. Eventually, i just got fed up. Now i use a mac and linux on servers/vms.

Happy to pay for good software.


After all the hype I convinced my previous employer to buy me a MBP about 7 years ago and I was using it for about 3 years. Even then the macOS was quite bad, so inflexible and with irritating barriers found to often. Even for the non-development work it was just lacking or it was just very expensive to bring it to the same level. And during those 3 years the stability also suffered a lot. So in the end I was glad to be back to GNU/Linux and KDE Plasma desktop on Lenovo X1 Carbon laptop. So much more powerful, flexible experience and also cheaper. And I had to use some MBP a couple of months ago at current job and macOS is even worse than it was back then, even more limited and dumbed down (more and more like iOS) and also there is a lot of tendency to bring in more surveillance tech just like thre is in Windows. I would choose GNU/Linux with KDE Plasma any day as it currently is, for both development and free time use. This also works much better with other devices which are not from Apple it is just a much more interoperable/open system.


Could you try providing at least 1 specific example of how MacOS is bad in your experience?


I can't even easily split the monitor to have two windows side by side without installing third party applications.

I thought this was supposed to be the pinnacle of UX?


Not OP, and I've already mentioned this a few times here on HN, but any OS that has two separate menus to configure mice and trackpads, and has two toggles for the scroll direction of each, which modify the same setting and toggle each other one way or the other is just bad. That's a stupid limitation with terrible UX.

Then you can add the utter undebuggability of the OS, the total lack of feedback on anything, magic buttons appearing only if you've filled all prerequisites, thus giving you no way of knowing what is missing, etc. etc. etc. I have no idea where this cult of Apple's UX comes from, it's just not great.


I use a Mac but have to resort to a Linux VM every time I need Valgrind. Using Valgrind C and C++ are much safer languages. Bugs are fixed in minutes and not hours. Apple not providing a stable port of Valgrind for MacOS is a major problem.


2 years ago, I have joined company that required me to use MacOS. Seeing all the cool kids of 2014-2016 use MacOS, I have been optimistic and kinda looking forward to learn new things.

Boy, what a surprise. Today, I try to spend all 8 hours hiding in emacs, so I don't have to walk this walled garden that does not even allow me to customize all the keybinds. It is clearly not an environment for power users and that's why they have a success with it.


> does not even allow me to customize all the keybinds

System Settings -> Keyboard -> Keyboard Shortcuts


Oh, yeah, but then there is about a dozen keybindings that could not be re-mapped.


I'd imagine that, as people in poorer regions in the world get access to laptops, we'll see a big increase in free operating systems. Sure, you could crack Windows, but why would you? Windows 11 isn't really good, and cracked software gets no support. Might as well go for a legal Ubuntu with lots of community support and decades of online help for all possible issues. It's a modern OS nowadays.

The real question should be: would most developers WANT to use a Mac, if given the choice?

Personally, I think OSX is the superior of the two simply because it's stable as can be, takes no (and allows almost no) tinkering to get working. Controversial opinion, I'm sure.


On Linux Mint myself. Moved away from Apple after couple years with OSX. I simply had too much friction on everything. Automation was fickle and poorly documented, package manager(s) bolted on and unstable compared to Debian/Ubuntu base, window behaviour just erratic unless tweaked and tweaked only worked for 80% of OSX apps and update system was a mess, half the stuff sort of updated correctly via app store but other half required their own install/update systems which in turn turned the clock back to Windows land in terms of updates.. not great. Also whatever software is available in OSX land is often half abandoned due to the churn on each OSX update which seems to burn software authors out more-so than is the case on Windows and Linux.

Felt relieved when I sold my Mac hardware on and could get on with computing, may well just be my usage pattern was incompatible with OSX but that was my experience.


> The real question should be: would most developers WANT to use a Mac, if given the choice?

If the decision is between Ubuntu and Mac, they will go with Mac because it usually means better hardware and build quality. I don't think that non-mac laptops have screens that can compete with XDR displays.

> (and allows almost no) tinkering to get working

I think that we tend to overlook or dismiss the amount of tinkering we do in MacOS. Installing certain toolchains can be a real PITA, we have to deal with homebrew, outdated utilities (thank god for coreutils in homebrew), and so on.


Apple makes perfectly decent devices, but I’d be shocked if there was a metric, maybe other than CPU power with good efficiency inside the envelope that they target, where one couldn’t find something where non-Mac laptops “can’t compete” with a Mac.

The XDR display is nice I’m sure, but there are laptops out there with 4K OLED displays…

I dunno. From what I’ve observed, Apple products are mostly nice due to the attention to detail and the fact that the purchaser can be pretty sure that nothing will be truly deficient. Other than that one time with the MacBook keyboards.

So many products are like: fantastic but here‘s some crippling issue. Apple skips that.


- speakers

- chassis flex / build quality

- battery life

Just because a panel is oled and 4k doesn’t mean that it is a good panel. I have a 4k oled tv and its contrast ratios are garbage compared to the laptop.

The panel in the 16inch mbp has variable refresh rate, 10k dimming zones due to the 10k mini leds, 1600 nits peak brightness, 1000 sustained.


It is impossible for the contrast ratios of the mini LED display to be better than OLED. Because the OLED screen can turn off individual pixels, the contrast ratios are infinite. With mini LED, the LED must be set to a particular brightness for a dimming zone. 10k looks impressive, but it is just a 100x100 led grid.

For me, I prefer a screen which can go truly black on a pixel-by-pixel basis. You might like the MacBook screen better, and there are surely some metrics by which is can beat an OLED panel (for example some people like really bright screens which OLED can have trouble providing). But it is not true to say that non-Mac laptops can’t compete with the XDR display. For any given metric, there exists a screen out there that is better, and choosing which metrics to prioritize is a matter of preference.


Not Linux tho. It’s a bloody boss fight to set it up on laptop just to have a clean install.. oh and it’s a different story for every laptop.

Poor areas will just default to yarr matey windows xp due to how easy it is to set up… and become gold mine for hackers to abuse


> Windows 11 isn't really good, and cracked software gets no support

Microsoft does not care anymore. You can use no product key, and you only lose some stuff in the "Personalize" menu and have a watermark. It will get Windows updates still.

LTT video showing it https://youtu.be/M3bezYerYxQ?t=474

or just crack it as you say. Cracked using massgrave activator gets Windows updates just fine. I use it in a VM.


Due to WSL and Windows Terminal, I prefer to use Windows over MacOS. Having a full Ubuntu system inside of Windows actually has a better developer experience than MacOS. Also I've had trouble installing some tools on my M1 Mac, and my students face similar problems (although it's gotten better recently).


I switched to Mac in summer of 2021--right to an M1, never had an x86 Mac--after running desktop Linux in various flavours for the previous 23 years: RedHat 4.0, then Mandrake, Debian, Ubuntu, Arch. It's fair to say I've been a developer for that long, too, if you take seriously the notion of a 10 year-old mucking around with C socket code on a 486.

Pluses and minuses, but overall very happy with the switch.

- Biggest con: I miss the raw efficiency, unparalleled speed and superior ergonomics of my i3wm bushido, and will never match that in any conceivable fashion on OSX (yes, I've gone through the whole Yabai/Amethyst/etc journey, and ended up ditching it all and just going back to vanilla. Those half-hearted efforts at a tiling window manager just kept hard things hard and made easy things hard, too.)

- Biggest pro: better hardware (which I realise isn't an OS attribute), never having to care about how my computer works or fix much of anything, lots of seamless and turn-key behaviours that just make sense (particularly vis-a-vis suspend and multi-monitor stuff), and (surprisingly to some), it's refreshing to be able to inhabit a common universe with other computer users and talk about the same sorts of stuff.

Nobody really ever understood my Linux gibberish while I had only a distant idea of what a 'Finder' was that went back to System 7.5.5. It's nice to have more friends.

- Biggest misconception going into OSX: that one actually has to use GUI stuff for much of anything. Nah. The browser, iTerm2, VS Code, and Mail is where I live, same as under Linux. Mostly just the first two.

- Biggest misconception about desktop Linux from Mac users: that it requires so much care and feeding. I ran Arch, of all things, with its continuous rolling releases, from 2016-2021 and although the initial setup had a long tail and was ultimately an investment of a few days, nothing I can remember ever broke for me afterward -- not on desktop, not on laptop.

Mac users tell me they're sure things did break for me, and that I just internalised my Linux trauma. No, they really didn't. It was shockingly stable. It was just kind of mediocre in other ways that start to have more meaning only after you've spent enough of your life tweaking your desktop experience.

Edit: I didn't look at the survey in detail, but I hope they make a distinction between desktop use and server use. Sure, I use Linux for development. I'd even say predominantly. I think of my MacBook as a nicer GUI for all my Linux work.


To me the biggest limitation of Linux for the laptop world is the hardware. Apple hardware is superior, even if some choices to me are not great (for example having all type-C ports). Especially M1 architecture is great, consumes nothing of power, so it can run fanless, battery lasts longer, and it is nearly as powerful as an Intel machine.

Of course the reason is not Linux itself but hardware manufacturers, that focus only on Windows support (at least 99%) and don't care about other operating systems. Thus they make choices that make sense for Windows (such as using an x86_64 architecture, since Windows support for ARM is not great, or implementing things like modern standby) but that are not optimal for Linux. Also driver support is sometimes not the greatest.

Beside all these things, using both macOS and Linux (specifically ArchLinux with GNOME) I have to say that to me Linux works better.

Take for example the user experience of GNOME, to me is superior to the one of macOS. In macOS you lack of basic things that on Linux are present since forever, such as the ability to fix a window on top of all other windows. Or other nonsense things that hurt user experience, such as the inability to view hidden files from the Finder.

Another thing that I miss when I use a mac it's a good package manager. Homebrew works fairly well, but it's not integrated with the system. You have some software shipped with the operating system, some other installed with Homebrew, other installed from the App Store, other programs that are bundles (.app), other that have an installer (.pkg), and unlike Windows you don't even have an unified way to uninstall a program, you have most of the times remove them manually leaving a ton of stuff in the system that accumulates over the years. On Linux I type `pacman -Syu` and everything updates to the latest version. On Linux I don't fear installing a new program, since I'm 100% sure that uninstalling it will remove every trace of the program.

Finally, macOS is POSIX compatible but to me Linux is superior. GNU utilities are usually more feature rich and provide a better user experience than macOS ones (a stupid but essential things: the ability to put command line options after the positional arguments, how many times you do cp a b for it to fail because it's a directory, and then add -r at the end? On mac you can't and you have to add it before the first argument, annoying). Sure you can install GNU utilities on macOS, but it's not safe to add them to your path (I spent a day figuring out why a React build was failing only to know it was because I had GNU utilities in the path and a script did do something different), and you have to use the `g` prefix on anything.


> they're sure things did break for me, and that I just internalised my Linux trauma. No, they really didn't. It was shockingly stable.

This is super frustrating to me, as my installs (which were quite vanilla) would not last 3 months without catastrophic failure (typically some kernel update would hose something, or a video driver would not be compatible) and I’d lose a day trying to get back to functional.


> I miss the raw efficiency, unparalleled speed and superior ergonomics of my i3wm bushido

I'm in the same vein as you. I tried to be productive on my m1, but as a 10+ year rusted on i3 user, I cannot for the life of me ween myself off it.


It's very hard, and remains a vexing problem -- one that also has to be weighed against creeping RSI. Late 30s me needs i3wm more than younger me did.

This also gets to me to my one big hardware grievance against MBPs, which I think is commonplace: the keyboards. They're just terrible on so many levels, and worse yet for those with emergent RSI.

They're also hard not to rapidly devalue if you're used to more clicky keyboards, even if you have moderated your typing intensity considerably. All the Macbooks I've had develop the dreaded "shiny key caps" within 3 months, and I assure you, I've worked very hard to become a gentle typist.


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).


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.


Wat?

`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.


Same.

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.


Maybe this is heresy, but I really have never understood the move to Docker in the context of development environment. You wanna use containers in production environments, great, go for it. I suppose someone will say that then necessitates Docker in dev because we want dev to mirror production in some form - but that's seldom a reality. Some talk too about how Docker made it easy to bring up new development environments / onboard new developers, but in practice I've never seen this as a "Docker" thing - there were plenty of other ways to accomplish this goal, and Docker in some of my experience just added yet another tool.

As for why I continue to use a Mac for development - it works, my fingers are mapped to the keyboard commands, and it's the best combo of hardware+software that I've found so far.


if you are preparing your own env, then I agree, but if you want whole team/company to share the same env then it's useful tool even with all complications it introduces. its even more useful when your dev env need to be updated fairly often.


Yeah, I get that’s the idea… I’ve just never seen it work, and any context for me has turned into a “what is docker actually doing for me in this context?” When I worked with specialized hardware / OS dependent things, we needed to bring up full VMs with our config. When I worked in shops with lots of microservices, it was better to actually run against the current integration environment rather than try to bring them all up locally. For so many apps, package management is the important part in terms of consistency from one machine to the next. So - I get what other people tell me about docker, I’ve just never been able to make sense of it as useful in my dev environments and teams. In fact, the one team I saw that really committed to it hard, it was a cluster (and maybe that’s why I have a trauma response toward it).


Its just a rehash what devs did in the 90s, ie. have a zip or tar file of an installation directory of dev tools and utilities.

We used to do it back then with everything statically linked or libs put into a folder with a LD_PRELOAD variant for whichever unix os they were on.

And it makes sense - if you have ever had to support a large team of developers you find out that a lot of them are totally siloed into their development niche and most have no idea around how to debug a bash script or troubleshoot issues when they encounter a simple deviation from the onboarding instructions.

Then you have fun things like there being 2 conflicting versions of yq out in the wild and conflicting utilities if someone has installed GNU tools in preference of the mac versions and a docker image makes a lot of sense.


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.


Run Docker on Mac. Wait for something to finish. Keep waiting. Run Docker on Linux. No wait. Decision made.


Docker isn't really Docker on MacOS. It's a glorified VM manager.


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.


It kind of defeats the value of docker though - to run and test the same images as you run in production.


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.


Been using a Linux Mint in vmware for the last two years and it works flawlessly on desktop.

Literally zero issues, even clipboards are shared between host windows and guest linux mint. It's crazy. I get to use my keyboard of choice and not bother with apple's weird hardware choices.


I'm a developer and I use Arch btw


2023 will truly be the year of the linux desktop.


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've always found MacOS less productive than any Linux installation with desktop environments like XFCE or KDE, and also even less productive than Windows.

The user experience on MacOS is frustrating. NayamAmarshe has already provided some examples in another comment (https://news.ycombinator.com/item?id=34164174).


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.


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.


I built a nice Linux box a few years ago... took the time to work out kinks and get it set up just the way I wanted.

But being an iOS dev... you just can't get away from macOS. Even with a lot of the great tooling out there.


I've spent most of my career using a mac to deploy software to Linux.

3 years ago, I started working at Microsoft. I have to use a lot of tools that only work in Windows. A lot of Microsoft stuff is becoming more and more cross-platform, and there are probably a lot of teams that could get away with using Linux or even Mac as a daily driver. So my far on the teams I've worked on this hasn't been practical though.

I find the Windows O.S. to be just fine for development, and tools like Visual Studio are very, very good. I've grown to like Windows Terminal nearly as much as Iterm2.

Finding a Windows laptop that is good as Macbook is a real challenge though. I've been considering buying my own Dell XPS 17" 12th gen intel w/4k screen.

My Macbook air M1 is such a good machine, I wish I could do my work on it.


> I've grown to like Windows Terminal nearly as much as Iterm2

Linux guy here wondering if that means Windows terminal is much better than it used to be or that Iterm2 is much worse than the average Apple product...


Windows Terminal is a new-ish application. It does command line, powershell, and the console to your WSL instance automatically in different tabs. It's pretty slick!


yep. It's pretty great actually.

https://github.com/microsoft/terminal


Its getting there, but still has a lot of small annoying bugs.

eg. Title/tab settings have a lot of permutations where things break.


That's not surprising, since the lions' share of dev, these days, are variations and implementations of various SaaS/CRUD services.

Linux is definitely better for that.

Me, I'm an Apple developer. I think there may be ways to write Mac/iOS software on non-Mac machines, but not natively.


Windows, docker and WSL are my favorite combo.

Windows is a user friendly platform, WSL brings a good CLI, docker is a great way to distribute software.

So I guess the uptick in Linux has been due to containers and WSL. In my circle, still few people run it natively in their work computer.


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.


I use Windows and Linux. Windows on desktop only. Linux both as desktop (but less than windows) and as deployment platform for my products.

I've dealt with Mac couple of times and did not really have any "this is it" moments never mind inflated price.


I just switched back to Linux. The main reason was the arm arch software headaches and my heavy use of docker, but it didn't hurt that I got something that costs half the price of a similarly spec'd MacBook. I almost got the M2 Air until I saw the surprising pricing.

My main headaches have been quick to get over, mostly around keyboard shortcuts and clipboard behavior, but the only really concerning one is the laptop trying to cook itself during sleep. This has happened maybe 3 or 4 times in a few months of regular use. Kernel updates and bios settings have made no difference yet.

After stepping away from Linux for about 5 years I'm mostly pleasantly surprised with the progress though. It's really not far from there being no reason to even consider wasting money on a Mac unless you have some very specific creative software needs (or you need mega battery life, which is never fully utilized for me).


> It's really not far from there being no reason to even consider wasting money on a Mac unless you have some very specific creative software needs

Most software devs get their Macbooks paid for by their work.

If I had to buy my own laptop I'd also seriously consider a Linux box.


I beg to differ: most of us are _carnivores_ in terms of operating system choices.

I still personally use Windows because of its stability.

I tried Arch 5 years ago and was lucky enough to hit the dreaded Linux 4.19 EXT4 bug that lost everything I invested in Linux. After that I almost never use Linux desktop again out of the fear of losing valuable source code.

However this does not stop me from adopting Proxmox and Alpine into my homelab stack though.

I recently started to evaluate into Fedora because it is pretty stable. At least much better than Arch in terms of stability while still offering a great amount of customization ability above Debian and its derivatives.

---

The more interesting thing is I actually learned more about Linux internals since the last time I got the ext4 bug that erased my Manjaro.

I then understood how lost+found works and how to scavenge data from the bitmap mess created by that bug and tried to find alternative file system to work around the caveats and inefficiency of ext4.

That's how I came across ZFS and eventually Proxmox. And even the general concept of copy-on-write and influenced my data structure of choice by knowing things like append-only file and persistent data structure.

Because of one Linux ext4 bug, I have lost valuable source code that not committed, but at the same time learnt a lot. This is bad and good at the same time, but still bad in the end logically speaking (because "bad and not bad" still equals bad)


Your comment sparked my curiosity about this bug, which I vaguely remember reading about a few years ago. Apparently, it wasn't a bug in the EXT4 filesystem, but rather in a kernel component called blk-mq.

Source: https://www.phoronix.com/news/Linux-4.19-4.20-BLK-MQ-Fix


I gave macOS a shot for a few years, but for me the benefits just never outweighed the costs. I never found that macOS "just worked" any better than Linux- the underlying OS was just as flaky and prone to weird errors, and a lot of open source software that I used was objectively worse. These days the only things I really miss about macOS are consistent keyboard shortcuts, and omnigraffle- and those two things aren't anywhere near enough to get me to switch back.


That's odd to me to hear when on Linux half the updates crash the entire window manager, and once crashed, the only way to fix is to dig deep into CLI because that's the only thing you can even see anymore. Not to mention if you install a wrong GPU driver, which is much easier to do on Linux that one would want, same happens. There's no defaulting back to fallback when a failure occurs. Nothing. Just death. Not to mention the infinite problems with Nvidia GPU's, Wayland-specific issues, or X11 specific issues. Makes it seem as if there's no hardware that fully supports Linux. You have to be a Linux expert to use Linux even remotely well. And that's pretty stupid if you ask me.


> That's odd to me to hear when on Linux half the updates crash the entire window manager, and once crashed, the only way to fix is to dig deep into CLI because that's the only thing you can even see anymore.

That's not my experience. I can't remember the last time an update broke my window manager. I won't say it doesn't happen, but I don't think very common at all these days.

> Not to mention if you install a wrong GPU driver, which is much easier to do on Linux that one would want, same happens.

Again, I don't think this is really the risk that you're making it out to be. Most distributions are going to default to a reasonable driver for the hardware. There might be some knowledge required if you're using an old enough nvidia GPU but don't want to use the open source drivers, but that's an edge case that isn't going to impact a lot of people.

> There's no defaulting back to fallback when a failure occurs. Nothing. Just death.

macOS and Windows can both brick your machine with a bad update. I use NixOS and I think the situation is much better on average because I can always roll back to exactly any previous state of my system.

> Not to mention the infinite problems with Nvidia GPU's, Wayland-specific issues, or X11 specific issues.

Nvidia is a bit of a pain, but it _mostly_ just works these days. X11 and Wayland both have their issues, I don't feel like the overall state of things is worse than the alternative though. Sure, you don't have the particular bugs in Windows or macOS that you have to deal with using X or Wayland, but you have a whole different set of problems. I find the Linux problems generally more pleasant to live with.

> Makes it seem as if there's no hardware that fully supports Linux.

Most hardware works pretty well with Linux these days, and you can buy machines that ship with Linux if you want to guarantee support.

> You have to be a Linux expert to use Linux even remotely well. And that's pretty stupid if you ask me.

Linux great for beginners and people who don't demand a lot from their machines, and it's great for people who are willing to invest a bit of time into learning the system (and I think that investment has a pretty high return). You don't _have_ to be an expert to use Linux. Where I think most Linux distributions have struggled historically has been with the power user segment- people who either know Windows or macOS well and expect the same level of competency in Linux without spending the time learning another OS, or people who have strongly adapted to the quirks of other OSes and find Linux's different set of quirks more grating. That isn't "stupid" - it would be great if Linux worked better for that group of people, but power users of any system are always the hardest to transition over.


Biggest issue with dev on a mac is docker is just so damn slow. You're better off with a few year old linux laptop then one of the fancy M1s just because of docker.


Just on x86 containers? Or do you find native ARM containers slow too?


i think it is a bit faster if the image has been compiled for arm64. An x86_64 image is running in an emulator, that doesn't make it faster.


The one thing that macbooks do exceptionally well are the trackpad gestures and accuracy. This is the one thing that I can think of off the top of my head where I'd be surprised to see any match from any other machine/OS combo. Even after dual booting with my mbp, the Linux trackpad driver just doesn't work as well

This and the linux wifi driver annoyingness are the two things that keep me from just ditching apple software completely


It's hard not to get a Mac laptop, hardware wise they're really good. Is there a good way to install Linux on a new MacBook for example?


Asahi Linux is making astounding progress in making Linux go on Apple silicon.


I am just now experimenting with Parallels on an M1 iMac. Better than when I tried a few years ago.

I have been running Linux since the beginning and also have four laptops running Linux.


Asahi. Unfortunately things take time to make, and they are still adding/polishing drivers.


I wonder what the stats would be from 15-20 years ago.

It's sad how Apple has squandered the UNIX/NeXTSTEP/Mac OS X heritage of macOS. They continue to rip those components out of the OS with no replacement. As a university student, I was very attracted to Mac OS X because of UNIX. It was huge selling point for me over Windows. Now, the tables have almost turned.


Specifically which UNIX/NeXTSTEP/OSX components are you missing in the current MacOS? It seems like everything is still there to me.


I'm mostly happy with desktop Linux.

I won't pretend it's perfect - but people wildly overstate how allegedly complicated and unusual it is. I definitely find it over all slightly easier to maintain and administrate that Windows. Have limited experience with OSX, but I remember it looking quite pretty and being very clunky to use.


A year ago I bought my first Macbook after using Linux as my default for years. I was tired of declining hardware quality from Thinkpad and I kept having to replace them. I also was interested in the M1's battery life and bright screen for doing more work outside. There was also a shortage of builds using new Ryzens that were competitive at the time, so the Apple premium wasn't really that much more.

I just really haven't used it much beyond casual use cases (streaming/web). The main, and maybe dumb, reason is that it's been a lot of work to get the keymap to function. I still use Windows/Linux, and relearning everything after having used Emacs layouts for 10+ years just isn't going to work for me. Some of the desktop/windows management stuff also feels clunky as well.

I like the hardware quality and everything looks nice, but it might be my last.


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.


I'm personally forced to use Mac like many others in order to account for 28% iOS mobile market share. There are two truths which kinda make this unpreventable

You can only build iOS apps in XCode

You can only do USB-debugging for iOS Safari on Mac, and they made it so buggy so you HAVE to debug all these inconsistencies with WebKit.

Apparently good job from Apple to secure Mac's positions, but generally each year MacOS feels more and more "abadonware", a lot of stuff doesn't get fixed for years while new touch-y features come in. It certainly feels that they don't make as much money from it as from iOS, and ideally they wanna merge this stuff removing the line between iPads and MacBooks


I've recently been completely sold on thin clients. So I use Mac and an iPad now as my primary development devices, but as far as my code is concerned it is running on a beefy Linux machine and I always pick up where I left off no matter the device I use.


Isn't it at least slightly concerning that all of that code could run locally if Apple let you?


It can very well run locally, I see no need for it however, I get to enjoy very long battery life and don't have to care about any ARM quirks.


Windows 11 is more than just an OS its an OS with a bunch of crap bundled on top. This is why I opt for POP OS instead for my personal box, and all my Steam games just work to boot. I just want an OS that isnt shoveling products or getting in my way.


Window management. Or lack thereof in MacOS. Having experienced Window management in Windows and I3/herbstluftwm, I am still confused by the terrible window management in MacOS and glad to have switched to Linux and Windows.


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)


I tried to migrate to linux (from windows) four times his year, but after spending multiple days at a time I could never get to a single baseline working environment…

I can’t believe that the barrier of entry in 2022 is still as high as 10 years ago..

Redhead broken here, Ubuntu doesn’t support that, popos randomly freezes to death, while Garuda pukes blood after getting stuck in the middle of setting face login up, etc. and this is after hours of googling and entering specific bash voodoo.

Damn I don’t want a hyper-specialized deployment… I just want a base installation with gpu and laptop hardware feature support that I could then build on


Don’t forget there are many of us who would have picked Linux over Windows if IT supported it.

And to those who say “but WSL..” you have more patience than I when dealing with a windows specific bug when inside a Linux environment.


I think the headline is a little misleading. The way the question in the survey was worded, implied (to me at least) that I should check the box if I host any services on linux servers/containers.


Ya I highly doubt this. Basically every dev I know either uses a MBP or some Windows computer. None use any version of Linux as their desktop. But we all use Linux as a dev environment in some manner.


I use a Mac for development and maintaining web apps I've made. BBEdit is awesome and I spend most of my time using it.

I rarely use Safari to test my work though. I loaded it last week to do some testing and it won't let my app open a new window to display a document a user creates and wants to print from the app.

Apparently Apple felt that feature is so misused or dangerous they had to prevent users and websites from using it. It's the only web browser I am aware of that does that.

I'll likely be moving to Linux as well at some point in the next few years.


I'm currently using a Mac for work because I don't have a choice. I know it's going to be flippant, but I'm genuinely surprised people like using Macs for development anymore.

Hardware wise: Apple Silicon is very nice, but my enthusiasm is greatly tempered by a horrible experience with docks. So-called USB 4 docks and even plain USB-C docks work far less reliably on my MacBook Pro M1 Max than they do on PC laptops I have laying around. I can't even get a single monitor to 4k 60hz... Unless I plug any of my adapters into a non-Apple laptop. Weirdly, most of these docks don't seem to work at ALL on the M1 Mac Mini, or only sometimes. I'm genuinely puzzled.

Software wise: Window management on macOS is extremely annoying. I'd try to run one of those i3 style tools, but... Full setup requires disabling SIP. Color me and my company's compliance team very unimpressed. I'm also on two kernel panics, apparently in some Bluetooth related module. Dude, I don't even USE Bluetooth on my work MacBook. I've sent reports to Apple... But I assume they're directed to the circular file. That's as much transparency as I get anyways. Major updates break XCode every time. Bazel runs slower than dirt. Sometimes I get stuck "verifying" binaries I just built. Why do we need to phone home to Apple for ad-hoc signed binaries we just built? Feels more like a Microsoft move.

OTOH, I do get why people don't like Windows and Linux. Linux is unfriendly and requires a large time investment to really take advantage of. It's buggy, and hardware support is poor unless you carefully select it (of course, You Can.)

But the real kicker is this: with Linux, I have the power to fix things. With Windows and macOS, it feels like I'm only renting my computer. Will this problem ever be fixed? "Maybe some day. Probably not." I hate that. There's no transparency and there's nothing I can do about it.

Average users definitely shouldn't go and mess with patching their kernels. But me? I'm happy to. My Surface Laptop 4 is running an unmerged PR to the Surface Linux project kernel right now. And since I'm doing it declaratively with NixOS, I can always boot to before I applied that patch. It's only one line of Nix code, that automatically fetches the PR diff from GitHub and applies it.

I upstream rarely, but the fact that I can triage, report, follow and help along with bugs that matter to me is a huge boost in confidence. If you've used a graphics tablet in Wine, you may have benefited from a couple of my patches.

I understand that it's not for everyone, and I wouldn't recommend it to anyone who doesn't really feel this kind of sales pitch. But: if you already have to invest a large amount of time into programming, I think suffering your way into Linux proficiency is not a bad time investment at all. Even if there's a lot of potential pain, there's even more potential learning and growth.

As far as I'm concerned, I'll be computing on Linux until it's pryed from my cold dead hands, remote attestation and other dystopian bullshit be damned.


> But the real kicker is this: with Linux, I have the power to fix things.

This is one of the major reasons why I have switched to Linux and never looked back. Obviously this mindset is not for everyone, but for a technical user willing to put effort into it you can end up with a great experience. Even knowing that an issue you reported has been acknowledged or is also experienced by others (and being able to track its progress) is quite reassuring.

While it's true that developers are often frustrated with people asking stupid questions if you actually put the effort into writing a proper bug report and trying patches out they are often happy to help you out. The Linux community is a technical community and users are expected to pull some weight in most cases.


Regarding docks, unless you need USB3 speeds for some reason, get a display port 1.2 to HDMI adapter which also has power delivery and a USB2 port.

This is the most compatible dock you can get as its just generic display port 1.2 and a passive passthrough of the onboard USB2 controller - no drivers needed.

Then buy a cheap 7 port USB2 hub and chain it off the single port of the adapter.

This will run you about $30, will do 4K @60Hz, and have enough USB2 ports for webcams, mic, keyboard, mouse etc. which wont come anywhere near saturating a USB2 bus let alone a USB3 bus.

I've used this for macs, various Windows laptops, Samsung phones and it works perfectly and reliably for a few years now.


I strongly prefer linux. my company-provided workstation is MacOS, and I find that it's good enough but not great, but it doesn't get in my way.

Previously, I had to use Windows on a workstation, and that was simply awful. Slow, inconsistent for configuration, and WSL was barely an improvement over a proper Unix/Unix-like system.


"was barely an improvement over a proper Unix/Unix-like system." should be "was barely a usable alternative compared to a proper Unix/Unix-like system"


another simple reason- linux stays fucking put. mac constantly bothering you to update, fuck completely off!


I use a Mac for a lot of my development because it is Unix based with tons of compatibility for modern software.

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).


You can certainly do development on MacOS, but I think it's clearly not an _ideal_ set-up.


I wonder if the server logs back that claim up. Maybe the devs meant they deploy stuff on Linux?


Direct link to the section of the Stack Overflow survey with OS preferences:

https://survey.stackoverflow.co/2022/#operating-system


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.


Related:

Stack Overflow Developer Survey 2022 - https://news.ycombinator.com/item?id=31836974 - June 2022 (364 comments)


No specialized hw, everything open source, very simple to use sw repos, GNU-style tools by default, docker... honestly never understood why macs were preferred to linux. I like both but always prefer linux.


If anyone from StackExchange is reading this, please actually ask the question in 2023! You know the one. The one the headlines keep implying.

"What OS do you write most of your code on?"


Well this is one survey I guess. Anecdotally I see more Macs than Linux.


There are two kinds of developers: the ones which change the world, and the ones working 9-5 on form apps.

Only the first group uses Macs.

Not owning a Mac is a big red-flag for VC funding.


Absolutely. I love looking at old pics of Thompson and Richie banging away all night on their Macbook Airs.


Is this satire?


So many comments and no one saying that a linux laptop is far more affordable?

I guess the main reason is that with $1200 you can get a high end linux laptop while for the same amount of money you get a M1 Air.



What percentage of non macos developers use linux or windows because of apple hardware cost?

am aware of hackintosh but not sure how well it works for dev productivity.


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.


This.

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.


Not an Apple fanboy but wow I read a lot of criticism here. I love macbooks since the 2013 model until the newest one (skipping the 2017 model with the weird keyboard, if I recall right).

Not sure what issues with Docker many of you are experiencing, but I have been using docker for Desktop quite extensively and it works.

The only bad issue I had so far after so many years of use, to be really honest, is that since I upgraded to Ventura my laptop crashed 3 times after opening Xcode or various IDEs. Never happened before, and that’s kind of annoying but I can live with that for now.


Kernel versions 6.0, 6.1 and 6.2 when they make to mainstream distributions will give developers many more reasons to choose Linux over MacOS.


Why? The kernel has never mattered in any programming I’ve done except device drivers.


Don't know which features of the Linux kernel OP expects to be of importance to developers, but (historic perhaps) to us it (painfully) mattered that Linux kernels before 3.10 didn't support docker fully. Every now and then, there is a feature that matters to userland.


It would be interesting to have a further breakdown showing how many developers using Linux are using Linux via WSL.


It is time


Not even remotely surprising.


linux for main dev machine, mac for ms office. never looked back.


why is WSL considered a separate operating system in this survey?


because it is? just happens to run in windows


You are 100% correct. The best kind of correct


I had to use a macbook at a previous employer. It didn't live up to its reputation of being user-friendly. The alt-key didn't work by default on the terminal emulator and I had to enable it in some menu after googling the problem. The infamous command key was just annoying and i wish i had a real control key.

I also hate how they stubbornly refuse to put a second button on any of their trackpads/mouses (mice?); the fact that they implemented a version of right-click by clicking with two fingers shows that it's needed and that they abstain from it out of pure stubbornness. The one saving grace for this is that they let you plug in a USB mouse, and the right-click will work as intended but I'd still prefer it if it was build into the system. In addition to being counter-intuitive, the double-click would also prevent problems for users with disabilities. Also could prevent problems for gamers since FPS games generally assume you have at least two mouse buttons, although to be fair touchpads don't work well for gaming in any case so you'd probably still need a USB mouse for gaming even if they did have the right click.

I also found the lack of ethernet frustrating; I had to use a stupid over-priced thunderbolt/ethernet adapter to get online. Since this was a laptop, that meant I had one more thing to carry around and one more thing to plug in every time I used it.

The touchpad also had some durability issues; after a couple years it stopped clicking when I pressed it. It still worked somehow but it didn't have that crisp "click" feeling that you get from tact switches and it stopped making noise when i pressed it. Still usable but it felt uncomfortable.

I also wish they had something similar to that desk dock that lenovo thinkpads have. I wouldn't really fault them for not having this since most PC laptops don't have it either (in fact, I think I've only ever seen it on thinkpads and I'm not sure if they all have it either) but it's an amazing convenience when you work in a cubicle to just be able to drop your laptop into the dock and have your monitor, keyboard, mouse, power, speakers, and ethernet all connect through that one bus.

One last problem is their batshit insane decision to deprecate OpenGL while not supporting Vulkan either. This is less of a usability problem than a general platform problem, but I develop an open-source application which has 3D graphics, and the lack of any cross-platform graphics API is a dealbreaker for me, both as a user and as a developer. I just can't work without OpenGL/Vulkan. I could port my program to Metal if I really wanted to put in the extra effort to support apple, but even then I wouldn't be able to use a macintosh as my primary development platform because I wouldn't be able to test the OpenGL backend that my program relies on for every other platform. Their decision to deprecate this absolutely unprecedented; even M$ at the height of their monopoly in the late 90s still supported OpenGL; they could have dropped it and only supported DirectX if they wanted to lock developers into their platform but they chose not to. Apple seems to want to lock customers in to their platform at every level, and at this point they're worse than M$ ever was.


The docker situation on MacOS is so painful. That's the number 1 factor keeping me off it. It's such a fundamental tool to development in this day and age and Docker Desktop doesn't cut it at all. I used to run into mysterious lock ups of the VM when running decently complex workloads. It would happen maybe 2 or 3 times a week and I would have to blow away all state and set everything back up. Recently I've seen issues where it can't even build some non-trivial images on machines using M-series processors. I've tried Rancher Desktop too but also ran into similar issues. Neither of them can make it past building a decent sized rust project while emulating x86. This doesn't even take in account the performance of these builds that do finish. I'd be happier with slow builds if they at least worked.

Aside from build and stability issues, I've also hit not-so-subtle bugs in MITM proxies they add for connections on some ports.

I get why building Docker on MacOS, especially with the x86 emulation twist, is such a difficult problem. I don't envy the engineers working on this. But I don't get a developer who knows they need Docker would pick a mac for their main machine.


> It's such a fundamental tool to development in this day and age

I'd change this to "web" development. There are a lot of us not doing anything that requires even thinking about docker.


I wouldn't be so quick to dismiss. It's true you see it a lot more on the cloud side of things. I've found its really useful in any situations where I want to capture the state of the OS along with the program. A good example is creating a CI environment that can be easily reproduced on a developers machine. It cuts out a lot of back and forth of "it works on my machine" when you are just a docker build/docker run away from having a local test image that is identical to whats run in CI. Some of the project I mentioned in the above post were very much not "web" projects. I've also seen it as a method to share difficult to set up development environments like you sometimes see in embedded development.

I'm not alone in picking the word "fundamental". In the same survey that is article is based on, Docker was the #1 "other tool" for professional devs. SO had this to say about it: "Last year we saw Git as a fundamental tool to being a developer. This year it appears that Docker is becoming a similar fundamental tool for Professional Developers, increasing from 55% to 69%." I think the comparison works too. Git isn't the best tool for everyone, but is extremely common and a sound default. Docker also isn't the best tool for everyone, but isn't far off on being as ubiquitous.


I’d make that “cloud” development. The web is a part of it — a big part, but just a part.


It’s more effort to deploy docker then to use App Services in Azure. Fortunately no need for a container environment. It adds an unnecessary complexity.


Docker is used everywhere. Containers allow fluent use of any CLI tool in crossplatform way. No need to bang your head into the wall when fixing your dependencies.


Colima on an M1 Mac has been working fine for me. https://github.com/abiosoft/colima

Just do a 'colima start' once a month when I actually have to reboot my mac, to boot up the background VM, and everything else basically runs as normal.


I tried Rancher desktop which is I assume a gui wrapper for Colima. I had an issue where I had to put 9p to some obscure config file for a mount to work and then the whole thing hung under load anyway.


I am surprised there has not been an effort to separate docker from linux. It seems like it should be possible by providing the syscall layer in a crosss platform library somehow. I remember years ago there was a "linux userland" project where they extracted parts of the linux kernel (like networking) into userland libraries, but I don't think it exists anymore. WSL 1.0 was probably the closest thing recently.


The BSD world has had this for ages in the form of "branded zones" in opensolaris/illumos and linuxulator for jails.

It's too complex to thunk windows calls to linux, that is what WSL1 tried and failed at, because windows is just too different from a POSIX paradigm for that to work well. But posix-on-posix isn't really all that hard... nor is other *nix-on*nix.


> that is what WSL1 tried and failed at

What did they do differently with WSL2+?


Everything, WSL2 is a special hyperv vm. It’s a true Linux kernel with a true Linux file system. The network stack is one way integrated so you don’t have to forward any ports or configure NAT.


Broadly speaking WSL1 is linux implemented in the windows kernel, think reverse wine. WSL2 is linux running on a thin VM with several bridge layers that can access windows resources (networking, files, GPU, etc.)


Thanks for the explanation! I always knew that WSL1 was implemented on the Windows kernel and thought it was quite ambitious - props to them! I didn't know they moved to the VM model for WSL2.


Isn't WSL1 everything _but_ linux? I.e. more like gnu/WinNT.


WSL2 uses VM. So actual Ubuntu distribution under the hood


It runs a hyper-v VM with a Linux kernel.


I wonder if Windows could add more support in the kernel for better POSIX support, or maybe it's just too hard.


They tried, it was possible but way too slow to be usable due to all the baggage that the NT kernel carries (think antivirus support).


For all practical purposes, Docker IS Linux. WSL 1.0 had serious backing from Microsoft and it wasn't even trying to be cross platform. If WSL 1.0 couldn't make it, then it is unlikely that another project with an even larger goal will emerge and be successful.


There's a native Docker on Windows that runs Win32 containers.


Honestly Docket Desktop for macOS has honestly been one of the most frustrating applications I have ever used and it isn’t Apple’s fault. Maybe with the new virtualization layer the developers at docker can fix it. One of the other issues is that it starts to create and enormous docker raw file.


> and it isn’t Apple’s fault

Eh, yes it is. Apple doesn't provide a containerisation API for their OS, which means Docker is forced to run non-natively!


Eh, no it isn't. apple does have a public container API but the problem is you still can't run Linux binaries on macOS no matter how many containers you put them in.

Containers on macOS don't use OCI images or anything like that, but scoped and grouped access to system resources with a separate user land that 'looks' like a full OS has been available for over 5 years. Even without that, XNU has plenty of facilities for it, and even if it didn't you'd still be able to use Launchd environments (which are more akin to LXC).

Docker relies on specific implementation details of the Linux kernel. It always has. That is why you always need a Linux OS somewhere to run the containers.


There is an OCI implementation for Windows which allows for Windows native containers. So docker can run on non-linux systems just fine, it's just that nobody cares. People use docker to package Linux applications, not because of some inate dockerness.


OCI images yes, but that doesn't make them the same. OCI can be used to store many things, and those non-Linux OCI images will not run on Linux. Does that mean that it is Linux at fault for not running arbitrary formats from OCI images? No. This applies everywhere; if you build for a specific target and package it up, not using that target when trying to run it is a PEBCAK.

Example: there are artefacts you can store as OCI images that contain Mach-O binaries, and Windows and Linux won't really run those. You can even still PPC code in those binaries, and link to Cocoa frameworks. This means that the OS and architecture you are targeting will not be Windows or Linux, and that is not their fault.


> Example: there are artefacts you can store as OCI images that contain Mach-O binaries, and Windows and Linux won't really run those.

Will macOS run them? That seems to be the missing functionality.


In just pointing out that people are saying they want "docker" to work fine on non-Linux platforms but really, they want to run Linux binaries on non-linux kernels.


> In just pointing out that people are saying they want "docker" to work fine on non-Linux platforms but really, they want to run Linux binaries on non-linux kernels.

Is that true? Plenty of people are using multi-arch images (x86 and aarch64) which are essentially the Docker image equivalent of a fat binary. I might be wrong, but I think what I want are preconfigured macOS binaries packaged up a convenient image format with a layered filesystem, networking support, etc. Ideally with an equivalent linux image such that I can later switch the OS specifier and get an image containing an equivalent linux binary to run on linux.

I am for example quite happy to run a macOS native version of Postgres. But that doesn't give me the easy disposable database for testing that a docker-compose setup gives me. If I could specify that I want the "postgres" docker image in my docker-compose file, and running that file on macOS ran a macOS version of postgres in a macOS-native container then I'd be very happy.


I think it's more than just multi-arch, it's also multi-OS (i.e. if we take Windows and BSD into account too we'd get 8 image types required for just 4 operating systems and 2 architectures if kept 'simple').

Packaging (including fat binaries but also byte code self-unpackers) has tried to make this possible for decades but it just won't stick. Take Debian or RedHat packages for example, there have been tools and repositories for very long times that were meant to make a universal method of distributing pre-packaged (and natively also chrootable/jailable) software for a multitude of architectures and operating systems possible, but package authors just didn't really want to do the work for what is essentially not something they wanted themselves.

Building software for 1 or 2 major release versions within a single operating system is hard enough, tacking on extra systems is usually a step too far.

The closest we got (and it still exists) is autotools, but that's just build tooling. It does however make it possible to build software from a single source for many targets and check for all the required features ahead of time. But this is so close to developing the software itself that it's not really compatible with the influx of end-user-style developers that expect pre-packaged 'commercial grade' software, which is essentially what Docker and OCI and Containers are.

The only 'new' thing so far has been cgroupsv2, the v1 version and everything else (distribution, sandboxing, capabilities, separate user land etc) has been done for over three decades. But again, using it means knowing how to use chroot, cap, tun and jail for example, and not everyone wants to learn that much. So we get things like docker, which under the hood does exactly that, plus some union filesystem magic to make it cheaper/faster for registries to store data; essentially a re-implementation of dynamic linking and shared libraries, but for files.

So now we have created an interface (docker) that is easy to adopt, easy to promote and easy to use, but it's hard-wired into Linux (the kernel) and only much later (post-OCI) got some hacked up windows version that is completely different and doesn't work anywhere else (because, well duh, not-windows isn't going to run windows apps). Aside from the fact that it's an OCI artefact, windows containers have very little to do with docker containers as we know them.

Most of this stuff also didn't really come from a need to get containers on windows (or macOS) but from the need to get more 'developer light edition' into the workforce, which can be trained and onboarded faster. If you can get people to ignore the foundation they stand on, they can be put to work in building upwards much sooner. This does of course come to bite everyone in the ass at some point, because if you're standing on top some 'magic' infrastructure and something breaks, it's going to be really hard to fix it. Right now we're all trying to make it redundant enough so we can ignore the breakage, but I doubt this is a winnable race.

Docker is a convenience, not a technical solution to a technical problem.


What are the issues you see? My team all use Docker with M1 Macs and all seems to work fine, if a little slow.


It's always the shared volumes that kill you. Especially for I/O intensive stuff like npm and webpack builds.

With that said if you're doing mostly backend stuff in Go/Python/Ruby etc it's quite good. Most of my complaints are from full-stack development.


If you're on Mac, have you tried the VirtioFS shared volume implementation yet? It was under experimental features until recently and you need macOS 12.5 to enable them, but it's very noticeably faster for I/O intensive stuff (my webpack builds are still 2x slower than native, but I wouldn't call it utterly unusable anymore)...


Why do you use docker to build local stuff?


Our team has pipelines that builds, runs, and tests our code in containers. We like to approximate this locally with docker compose. This helps eliminate things like forgetting to update pyproject.toml. Additionally, since the pipeline uses an internal artifactory/harbor (no external Internet), the containers we use have environment variables using the internal resources.


Good question: we actually decided to just not do this for local "statics". But having everything containerized makes it easier to attach editor contexts, work in the same environment as your CI/CD system etc.

The other upside of being fully containerized - even for FE stuff - is that you side-step having to worry about having any sort of "local" dev environment configured beyond Docker/Podman/etc and some environment variables set. It makes onboarding new developers a breeze and eliminates "Weird, works locally on my machine!" types of issues.


Ruby takes forever to start the application because it has to open all the files. 4-8 minutes IIRC before the first test would run in our Rails monolith on my M1 pro.


My experience: it’s fine when using docker to run applications; painfully slow for a containerized development environments that want to share the file system with the host.

Lots to do to combat this, like: not sharing the volume with the host (vscode dev containers recommends this)


Qemu segfaults when compiling


Sounds like a Qemu problem?


Docker Desktop uses QEMU when building an x86 container on an M-series mac.


Just one data point, but I can't say I've had any development problems with Docker on MacOS. It's frustratingly slow, but it has always worked. Perhaps you are doing stuff way more complicated than just running a few containers.


For individual containers or smaller local deployments using internal Docker networking, it's usually stable and you can use hacks like NFS reverse mounts for faster shared files.

But I've run into issues emulating more complex environments where you need multiple exposed ports, more complex host-to-Docker networking, etc., which generally works on Linux because it's not stuck in a VM shim layer.

But most of the time, I don't have any issues, just sometimes slower environments on Mac if I don't tune folder mounts and run apps like Ruby/Node/PHP with hundreds or thousands of files.


You can use Wireguard to tunnel from the internal Docker networking to Mac's network, so that each Docker container can have a separate IP address that is visible to Mac processes.

Here's a description of my setup for that: https://news.ycombinator.com/item?id=33665178


I think this touches on what might have been the heart of the issue of one of my projects. It made use of extremely, complex dynamic docker networking. Both inter-container and host networking. It was a beast


The problem is that the Docker runtime doesn't actually run on MacOS. It runs on a Linux VM running alongside MacOS. This can make a few things complex enough that requires changes to applications which interface with docker, especially related to networking. It's the same with Docker on Windows (running Linux containers. Windows containers are a whole other issue)


> It's the same with Docker on Windows

And the same with Docker Desktop on Linux: https://docs.docker.com/desktop/install/linux-install/


This strikes me as such an obviously stupid, self-defeating design that I have to be missing something.

Why would the Docker developers do this? Did doing it locally not work well? Is all that just to 'spare' Linux developers from actually installing Docker on their machines?


The trouble with Linux is that anything you don't vendor in will be a giant fucking headache when it comes to support. But then, so will anything you do vendor in, as soon as some shared lib your vendored-in dep relies on is at the wrong version, or when it encounters some oddball config/package combo, or whatever.

Here they appear to have chosen to vendor in the whole damn OS, which, given the realities of supporting Linux, doesn't seem totally insane to me. I'd expect it also lets you run it with reduced permissions (not everyone has root on their workstation) and to generally make cross-distro operation much more reliable and consistent.


Maybe you want to run a completely different kernel, or distro, from your prod environment.


After 10+ years of enjoying my time on mac, I switched back to Windows because of Docker.

It was working fine for me, maybe requiring one restart per month. But the slowness was unbearable anymore. Don't even get me started on the effects of it on battery life.

To anyone looking for a replacement, Windows is usable. I still miss the consistency of MacOS tho.

Since I only use laptops, I haven't even bothered to try Linux again, my last experience was not that great with compatibility issues and hibernation problems.


No problems here with Docker and macOS. Docker and Windows works too. We have a ratio of about 97% developers on macOS, 2% on windows and 1% on 'else' which is mostly Linux and a single BSD user.

This includes multiple editors and IDEs used, multiple languages and multiple frameworks, also multiple types of development (from common devops facilities development to front-end simulation, on-prem and cloud, C#, Python, Java, Go, Rust, Swift, Objective-C, C++, TypeScript, Scala, T-SQL, PL/SQL (yep, RDBMS with on-DB applications), some on plain docker, some on Podman some on local Kubernetes clusters, all using wired and wireless connections (or both), one or more VPN connections), and nobody is having any issues with macOS and Docker on Intel or ARM. The only non-ARM OS we have around is Windows because we can't legally get it. Everything else is multi-arch, except for some legacy Oracle and IBM applications that are being phased out and have been handed off to a third party to maintain while we rip them out.

We have the luxury of not really doing and foreign architecture compilation because you can develop locally and CI will do matrix builds so we can run on a mixed spot fleet on AWS. We used to build for POWER8 too (before we handed off the IBM nonsense). Some people do it anyway, especially those who want to test binary protocols (a very small percentage) when they write applications that do IT<-->OT communication and want to make sure that the architecture on the IT side doesn't mess up binary payloads that the OT side won't know what to do with. This is usually done with k3s and skaffold where we attach and 2nd node to a Rancher Desktop instance that runs pure x86 instead of x86-in-ARM via Rosetta. We also have 1 Linux user who does this, but she's just using plain qemu emulation for ARM-on-x86 (instead of the other way around on M1/M2 Macs).

So all in all, I think the problem is still valid, but your experience is not really representative it seems. Keep in mind that happy people tend to not go on the internet and tell everyone about all the problems they don't have ;-) So most reports we'll see will be from people having issues with something.

The biggest issue we used to have was the AUFS support, but even that was mostly a painpoint for those who could not auto build from the ide or didn't have things like Jib. That has been resolved for over 5 years tho.


> a single BSD user.

This is surprising. I run FreeBSD on a home server but I would imagine that it'd be rather unproductive to run as a web dev workstation OS, since it shares friction points with macOS (mainly, it's not Linux) but doesn't have even a fraction as many users which means you're basically on your own for fixing any issues that crop up.

More power to this individual if they're making it work though. It's great to see diversity in the desktop/workstation OS usage… in my view, desktop monoculture will only come back to bite us in the ass.


Yeah, it's a bit of a choice, but a happy user that takes care of the friction is a win for me. From an MDM perspective all we require is that your work machine can run osquery. We host the rules in an internal repo so if someone wants to use something we don't support they have to write the compliance checks themselves ahead of time (and get them approved, we do help with that).

I also think that monoculture isn't really the best way, but neither is an abundance of variations causing uncertainty. We need to be able to plan ahead and look ahead, and have enough of a standard to operate.

Luckily, convincing stakeholders that "but we imaged this workstation last year" isn't a valid argument in any scenario (security, productivity, DLP) wasn't all that hard, and the jump from there to "images and MDM are all fun, but near realtime posture verification is the only way" was made with relative ease.

Most people still stick to the "supported and automated" provisioned workstations, but those who want something else can have it, if they deliver on their compliance, non-friction and actual work. Best of all worlds.


Plenty of development workloads do just fine without Docker.


Everything works fine without docker, but would you rather line up atoms on your processor with a magnet by hand, or write code?


I have managed to write code for 30+ years without Docker, or hand aligning atoms, go figure.


Docker-the-daemon not performing well on Mac has always struck me as a weird complaint. It's like complaining that MS-DOS FAT32 defrag doesn't work well on Linux with an ext4 volume. It's not native to the platform and uses alien features, it's cool that it works as smoothly as it does.

Meanwhile, the client works just fine and can connect to a headless machine running Linux if you don't want the cost of virtualizing the host OS. Like, if my Linux laptop were having trouble running a Mac copy of Photoshop in a Mac VM (ignore the legality) and it was really important for work and that was getting in my way, I'd... get a Mac. If Docker on Mac isn't cutting it, get a Linux box—it's not Mac-native software and you can still interact with it pretty seamlessly from the Mac.


Hell. I have buildkit containers running in a k8s dev cluster. It’s perfect for building locally and the only slow part is shipping the build context. But with stuff like devspace, running the whole thing with auto-sync/restart is just simply amazing.


Funny enough, I switched back to developing on Vagrant because docker wold make my i9 macbook sound like a jet engine.. And if you need docker, running it in vagrant is so much more performant.


colima [0] has been working pretty well for me, much better than Docker Desktop.

[0] https://github.com/abiosoft/colima


Me too using (co)lima and no issue. You can mix x86 and ARM images in a transparent way


My personal fix: Pay for a Parallels Pro license and run Docker in an Ubuntu VM that is configured to start at login and run in the background.

I use the Remote SSH plugin in VSCode and configured the VM to forward all container ports to localhost (as well as forward port 22 to port 2222 on localhost). I also have `alias vmlogin=ssh -X -p 2222 localhost` in my .zsh_profile and set up ssh to use a public/private key pair for quick logins.


I know you aren’t denying OPs points but the fact that the solution is to just run Linux(with a $99 fee, from what I can see online) to solve how bad Docker is on OS X is a huge problem.


I also like how I'm gaining experience using the "developer's OS", which I'm sure will be valuable in the future.


Have the performance issues with Docker been resolved on M1/2 yet?

I remember playing around with running our codebase through Docker when M1 first got released and it was really slow (due to ARM and/or shared disk read speeds?). But from what I understood it was something that was to be fixed soon...

I'd love to use Docker at work but it was a show stopper.


I haven’t noticed locks/hangups but I have noticed that running/building on x86_64 images on ARM macOS (through Rosetta) is excruciatingly slow. I ended up having to switch us to cross compiling, which works okay but changing all our builds over will be a pain. For greenfield images I have not had much issue anecdotally.


Have you had much luck with Podman? I used to do QA for tooling to integrate VSCode with Docker and also couldn't stand the MacOS experience. But from what I understand podman works without the daemon and is generally more stable-ish, while being CLI/API-compatible (at least based on the issue reports I've fielded)


The reason I hated Docker Desktop was simply that I needed to spin up a VM which used up a bunch of memory (yes it's configurable, but I don't want to mess with that. I don't have to on Linux!). I don't believe the podman Mac client solves this problem (nor can it, given it just simply isn't running on a Linux kernel)

On Linux, I quite like Podman! It has a couple of gaps, but for simple things it works great


I've been using Rancher desktop and it seems to work fine for me. I don't notice anything being particularly slow and no lockups or anything. If Mac wasn't an option I really don't know if I'd try using Linux on the desktop vs Windows with WSL.

I have nothing but horrible memories when I had to use Linux on the desktop.


Just to add another data point, Docker works fine on mine:

MacBook Pro (14-inch, 2021)

Chip Apple M1 Pro

Memory 16 GB

macOS Monterey

Docker 20.10.17

I agree it was awful on the previous generations tho.


Adding a data point: docker on Mac crashes for me whenever I connect to the company vpn. I need to go into activity monitor, kill all docker processes, and reboot. It's not the end of the world, but it is frustrating


I found it so painful that I just use a docker context targeting a remote docker instance running on a linux machine. Works well enough for my needs, but certainly isn't a solution for everyone.


> The docker situation on MacOS is so painful

Stop trying to get me to switch to MacOS :-P

> It's such a fundamental tool to development

s/fundamental/gratuitous, undesirable/ . IMNSHO.


Try this:

    brew install podman-desktop
https://podman-desktop.io is a full (free) docker replacement supported by redhat.


So, what do you actually use?


Ubuntu


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.


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.


>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…


A number of distros patched it in before it was merged… a long time ago. I’ve never had an issue with fractional scaling.


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.


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, 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.


Windows doesn't do it perfectly. Every day I run into some application that's blurry or out of whack.


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.


None of the apps I use under Windows have trouble with it. I don't run anything that hasn't received updates recently, though.


On a couple of your points:

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


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.


Re: scaling

Genuinely curious did xrandr not work for you? I have the same setup and use 1.5 scaling. (Ubuntu focal).


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.

So sadly Mac is my main good travel PC option.


Yeah I need to tweak a bit between xrandr scaling and xdg dpi, then force specific apps as well. Not ideal, but enough tweaking got it done.


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.


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


Fractional scaling and no screen tearing are the main reasons I chose to adopt Wayland (sway) ~2 years ago.


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

Or you were running headless xD


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


It doesn’t even work on windows. S0 modern standby just flat out doesn’t work and will drain your laptop to 0 while it’s not being used.


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.


> "Linux on laptops has been a tremendous pain in my experience. "

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


> 0.1% is Windows, because PowerPoint.

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


> would have learned Impress up to a level.

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.


> "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.


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.


> I hope it's gotten better since a few years ago

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.


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


That's because macOS (thanks to its NeXT origins) incorporates emacs keybindings throughout most text fields by default.


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.


> In Mac, Ctrl+A goes to the beginning of the line

huh TIL! and Ctrl+E goes to the end. amazing thanks


  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.


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'd rather quit my job - and have done so - than run Windows.

Chad!


Kind of a silly hill to die on with WSL, but it's not my career.


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.


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.


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).


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.


Think of it as a brown M&M. A company that mandates a single environment is going to have other issues.


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


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.


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.


> Mac just works

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 don't think I have needed to do the things you describe in about 15 years.

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.


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.


I have used linux for about 20 years or so and have no clue what you are talking about.


Scroll direction is so annoying, I use scroll reverser app, recommended


> Why is there no native window management?

What does this even mean?


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)


> Mac just works

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.

[1] This was my init.el https://gist.github.com/dmitriid/4078311


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).

So your mileage and mine definitely vary.


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.


> then Asahi Linux should feel pretty much finished to you

I checked this out, am I right that this is prerelease alpha quality? I should really switch to this??


Developers should want a system that actually renders text well. Windows and Linux have never done that.


> font rendering

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.


Unless they are bitmap fonts they certainly wont look crystal clear to me.


> Mac just works

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.


> Mac just works and apps look gorgeous.

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?


> lack of user-defined global shortcut assignment?

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


I dislike it too but tbh, I'm single and not using a mac is a big turnoff for some women so I'll be avoiding linux and windows until I get married


I just upvoted you. From my M1 Air.


Inconsistent shortcut keys doesn’t look like a minor issue to me.

It was a long list anyway, having that many “minor issues” is a major issue.


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.


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.


> It's easy to change Mac to your preferences.

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.


> It's easy to change Mac to your preferences.

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.


> just works and apps look gorgeous.

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.


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

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.


[flagged]


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


I have a 16" M1 MBP. Never had this issue. Connected to a OWC TB4 dock with 2 monitors. I have to use Amphetamine to keep it from going to sleep.

Undocking/docking works fine. Perhaps you have some process running that is preventing sleep.


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.


Thanks! It's set to never, and is one of the two things that are the only recommendations to fix this problem, but neither did the trick.


> Linux still doesn't have hardware accelerated video playback on browsers.

Yes it does.


[flagged]


I just played some 4k YouTube in Chrome and watched it utilize my GPU in nvtop


Windows doesn't sleep well. Starts to spin up fans randomly in backpack, battery drains.


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.


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

Yes it is.


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


Pretty sure it's an option if you have an external monitor attached. If not, why would you close your laptop if not to turn it off?


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.


And what is the problem with doing that? The system comes back up when you reopen the lid nearly instantly anyways?


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.


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.


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

This is exactly how my Librem 15 works with Linux and Qubes OS.


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

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


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.


It hasn't been my experience so far with windows.

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.


LTT recently did a video about this: https://www.youtube.com/watch?v=OHKKcd3sx2c


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.


Most of your issues are easily addressable/have workarounds. Alfred || Karabiner will cover your keyboard issues.

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


> 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


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.


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.


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.


Or scanning or printing or audio or wifi or just the window system itself


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


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


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


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).


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.


Just don’t use Arch


>I honestly don't understand why devs use MacOS over Linux

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.


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,...


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


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.

[1] https://github.com/koekeishiya/yabai [2] https://github.com/koekeishiya/skhd


disabling SIP is a non-starter for me, I use Amethyst[1] and it's simple and Fine Enough For Me™

[1]: https://github.com/ianyh/Amethyst/


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


I’m using it too, but it is very unreliable. I need to restart the program often once a day.


How do these compare to Rectangle?


In my experience, Rectangle is just an app to organize apps like Windows does, hotkeys to move somewhere.

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


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.


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.


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.


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."


Software support for Mac is really good. A lot of apps I use are Mac only or aren’t there on Linux.


User software support for the Mac is really good.

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).


Would you prefer Apple to make their own package manager or to improve Homebrew?


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.


> Apple ships a Unix without a modern Unix packaging system is ridiculous.

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


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.


Honestly, I suspect the same could be said for Linux


software development apps?


Some yes, like editors But others are productivity software like Craft, Bear, and Etc.

Currently I am using Zed editor that is Mac only for now.


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.


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"


Usually Infosec forces the use of MacBooks over Linux laptops as they find the latter harder to secure.


>find the latter harder to secure.

I hope those "Infosec's" don't have Linux servers to secure ;)


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.


Different team I am sure (in an org of any size), but yes, the irony is obvious.

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.


Linux servers don't usually travel the world. MDM tooling is pretty bad for Linux.

You can make it work but it requires more effort than most corp teams are willing to put up with.


>Linux servers don't usually travel the world.

True but often 24x7 connected to the world...but yeah you are right, not often do you loose a whole server ;)


The Linux instances are hosted on AWS and as such the responsibility of the SRE team :-)

It is harder to find anti virus software that runs on Linux, at least I am told.


>anti virus software

Ah the snakeoil that drive a whole industry ;)


> 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).


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

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.


for me it's:

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


> 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


M1 granted, but display? It is appropriate for a 1500+ device, but nothing special.


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


> No HDMI volume control

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.


> 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


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


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.


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.


> 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'.


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


One more:

> brew doesn't support multiple users (really [0])

[0] https://www.codejam.info/2021/11/homebrew-multi-user.html


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).


If you work with non-developers you will often need full fat MS Office, Adobe Products, and other Mac/Windows apps.

Also, I get less flack from the IT department if I'm on something standard.


I don't understand it either. It can be a little rough around the edges but it's also a user-respecting breath of fresh air and a dream to develop on.


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 days, personally, but that's a matter of taste.

> 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!

Default Terminal app's pretty damn fast. I only find this to be the case if I've got a really heavy zsh config or something like that.

> No package manager by default, brew is honestly very slow compared to Linux solutions.

Brew's my overall favorite package manager I've ever used, and I've used a ton. Admittedly, though, a lot of that is because I really like having a strict separation between what's necessary for my desktop to basically function, and what my package manager is allowed to monkey with. Tastes vary, I suppose. And it does have a package manager by default, you just don't like it (and neither do I)—it's the App Store.

-----

Anyway, the real killer feature of Mac devices is this:

When, in a professional setting, your Mac doesn't work, Tim Cook's an asshole.

When your Linux workstation doesn't work, you're an asshole.

That's not my judgement—it's what I've observed about how the two situations are perceived. If the Mac "doesn't work" less often (very much the case for me, but YMMV) that's just a bonus.


Hardware and MacOS is the only platform with modern chipset.


> No HDMI volume control

Wait, Linux allows you this?! How?


I've been a happy Linux user since about 1995. I was forced to use a Mac at my last company and I loathed every minute of it.

Indeed, I've started using that as a way to see how flexible companies are. "Can I use a Linux laptop?". Some are like "sure, as long as you get your work done!". Those are better places to work, IMO.


I agree. Also fortunately, I’m in position where I can refuse to work for a company which forbids me for using Linux. There is no point to me to work on anything else.


Why would company doing software force you to use MacOS these days? Security/enterprise management? Some unique software stack?


Security reasons related to handling money, put vaguely. It's not a terrible reason, but I was still grumpy using that machine.

Some companies are just "that's the standard and what everyone uses and that's just the way things are" and they aren't great places to work.


Over eighty comments at this point, none mentioning developing on the same OS you deploy.

Non-rhetorically, Is this no longer even a consideration?


There are a lot of shops that bend over backwards for MacOS support. In the past, I've seen substantial internal teams get made just to ensure the product runs on MacOS. Mind you, MacOS was not a supported client target, it was just the OS everyone wanted to use for development.

Logic like that just sends my mind reeling. I don't really know what software development looks like anymore, but sadly the build/deploy homogeneity is lost on a new generation of developers.


It's not lost, it's just not relevant. Build is generally done in CI/CD often on the same OS as arch as deploy. But even then, with the rise of languages that can trivially cross compile it's just not as important as it used to be.


You're right, at least in my experience. That being said, it's a sad sentiment that all of our development is moving off-machine to computers that could just as well be our local device.


What's to consider?

Obviously I write Windows software on Windows, there's no realistic alternative.

For software that runs on all of Windows/Mac/Linux, I...still generally use Windows, because Visual Studio is really good for C++ and C#.

I do like macOS for embedded development, though.


but why? I develop C# on Windows and deploy on Linux without problems




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: