I built a Linux server for AI LLM inference with a Radeon Pro card and it was really good value for money. It took some doing to get it working especially with the lesser AMD compatibility but I saved a ton of money not buying Nvidia and it performs excellently now.
Windows probably would have been easier to set up but I consider every configuration problem a learning experience and my freedom is worth more than my time.
The reason the Mac is so popular is that it's the only way to get a GPU with direct access to tons of memory (up to 192GB) and it's cheaper than Nvidia dedicated AI options. But both have astronomical costs not justifiable to a hobbyist like me.
I noticed issues with nvidia too on linux however arch seems to run things pretty smooth for me compared to other debian based distros, so probably going to go with that.
I've been running arch in an nvme with an enclosure through usb c and tbh it is amazing but now considering just removing the windows drive and sticking with linux as the main driver while keeping windows in the enclosure since I do game time to time.
As for mac, have had an amazing overall experience with m1 but then i got the base model since i didn't have a few extra kidneys in me to sell to afford the max lol
but yes, seems like linux takes it home!
The card was really excellent value for money though. 300 euro for a Radeon Pro VII with 16TB of HBM2 memory.
I run Ubuntu as it was better supported by the drivers. Not a big fan of ubuntu but it's just a server, not my daily driver.
AMD GPUs are damn good value, in fact even AMD processors tend to pack quite an amazing punch compared to what we'd get with intel in the same price brackets.
Linux all the way!
I work heavily in AI and our company is heavily invested in Microsoft tooling. But personally I like to build everything myself. I don't like to be locked into the world according to microsoft. Especially because these guys are so annoying to deal with. They're only a supplier but they're talking to us like they're our boss. At work I put up with it but things I do for my personal benefit (like learning) I do on my own.
All my coworkers were pumped up watching Microsoft Build this week, but I'm playing with ollama and making tools to make it talk to all my own systems. To me that's a much better way of really understanding how things work, to touch the nuts & bolts myself, not to outsource the difficult parts. I also hate classroom trainings (or online), I just don't have patience for that shit.
Mac doesn't support Nvidia cards.
Windows just feels sluggish compared to Linux.
I mean, I prefer windows because it lets me run all software, from everything linux (including graphical apps) under WSL2 to all the windows specific software like CAD and DJ software.
But if for example you wanted to train llm models in any reasonable time, you need to spend some dough on a dual 4090 (or upcoming 5090) setup at a minimum, which will likely just be a linux server that you ssh into from a different machine (cause you don't want to use the graphics cards for rendering).
The systems your software actually runs on will typically either be much more or less powerful. Compare a large data center or embedded audino to system on which you type code.
Therefore my answer is use the Software and OS that you are most productive as a Programmer for your development system, and consider the deployment environment separately.
-- Now my personal answer...
I have used computers since the early 80s, and a professional programmer since the mid-90s. I have used many operation systems over the years: TRS-DOS, MS-DOS, CP/M, OS/2, Solaris, etc. Today, I spend time daily using: Linux, Windows and Mac.
* My primary workstation is KDE Neon on Ubuntu
* macOS for mobile work and my personal life
* Windows mostly for SQL Server and Active Directory
* Multiple Linux Distributions and Windows for Servers
While I like KDE very much and it is what I use for current my job, I am personally MOST productive doing Development work when using macOS as my Desktop Environment and Linux as my servers.
I highly customize my Desktop Environment to fit my way of working. I find that macOS is the most customizable for me, followed by KDE. Windows unfortunately is a distant third. (For some added context, my basic AutoHotKey file for Windows is over 1000 lines long, so I am very familiar with how to customize Windows.)
I like macOS because nearly everything I could want runs on it, my Unix-style tools, highly polished GUI apps, MS Office, Adobe, (or the many better alternatives from small developers).
I also really like Apple hardware, especially MacBooks for notebooks. My high-end Dell Workstations are great, but I vastly prefer MacBooks for on-the-go.
Some people find benefit from running their Workstation on the same OS as their Servers. This can be a big factor for you. For me, I am deploying to Windows, Redhat-style or Debian-style Linux. I find the difference between Redhat and Debian to be about as significant as macOS's BSD. So I don't get an advantage of running one system.
I write a lot of code that never runs on my Developer system, but only on the various deployment environments.
For servers, I highly recommend using the stack recommended by your selected technologies. This tends to mean you will be running multiple server environments.
If you are asking this question, with some thought to limited funds, I would consider what are the advantages to you personally for a Linux Desktop Workstation vs a MacBook.
Hopefully I have given you some useful food for thought. And much success you your endeavors.
However for certain other things I've been inclining more and more towards Linux especially as Windows experience is dwindling although tbh I think W11 is a big step up from what windows has offered in the past.
But then again with some touch in cybersec etc I think my bias for at least personal work, studies and running DS stuff I do prefer Linux, Arch primarily with KDE.
But I haven't gotten rid of Windows and plus since my work more or less requires it I don't think I will do anyways, as you said - all comes down to the recommended tech stack by the development environment itself.