The tool that defaults to a case insensitive but confusingly case preserving fs.
The tool that has been issued in variations that literally can't be used while closed, or if you plug the charging cable into the wrong "all the same" usb-c port.
The tool that licenses away virtualization, making development slower and harder, in an attempt to force companies to buy them.
The tool that used have a nice little $500 dollar surcharge if you want to put an extra 8gb of ram in it. (Don't worry - it's only $800 to go from 16gb to 32gb today - much better...)
That tool?
That's the best tool for your use-case?
Guess you must develop iOS apps, because otherwise... ooof.
This list is literally just the most obnoxious fraction of items that have impacted me over the last 5 years of use. I can absolutely keep going.
You want me to discuss the rapid phase out of kernel extensions that allowed VMs to operate well?
Or the minor annoyance that is allowing execution for every fucking brew installed tool, since macOS blocks it by default.
Or should I look at the random 2 hour update times, where the computer is completely unusable?
Or the utterly insane memory usage when running even a small scattering of containers? 4 fairly simple containers will eat 10gbs of ram running a mid sized RoR app, elastic, and a db.
Or how about the xcode install times required to use simple tooling, like git, because "muh system integrity protection!!!" - but don't worry, at least you can get away with "just the command line" version of the tooling, which only eats a few gbs, instead of the fucking 40gb that xcode proper wants.
You mean the Mac needs an internet connection to "work" - there is no "airgapped Mac"?
And that they have an execution blocker you cannot disable? How could you code - make your software run on it?
There are work-arounds, and by default this check is disabled while the machine is offline, but it's not exactly confidence building.
My general take on Apple is that the hardware is decent, the software is absolute dog-shit, and the marketing is TOP NOTCH.
I'm just here disputing that a mac is "the best development tool".
My opinion is pretty simple - Apple makes decent hardware that they absolutely ruin with their software.
Honestly - the closer you can be to running the same platform/tooling that you're deploying to, the better off your life will be as a developer, and I bet you money you aren't deploying to a macOS box.
Linux and Windows are both entirely functional - frankly, windows 10 with WSL is a better experience than macOS, in my opinion - and they cost a lot less.
I have used quite a few languages professionally - Java, Golang, C++, C#, Ruby, Js (from the bad days predating jquery to the decent days of not needing jquery any more), Rust, Python, fuck - I've even professionally used Netlogo, which is not something I will ever recommend, and it still boggles my mind occasionally.
Apple makes decent laptops, and the new m1 machines are not a bad pick. They are absolutely not the best tool for the job unless that job is developing iOS apps.