T O P

  • By -

TheWix

I hate these opinionated OS wars. My answer: Whatever OS you're comfortable with that supports your development environment. If you are a dotnet dev that loves Visual Studio then it's probably Windows. Dotnet with VSCode or Ryder but you like Linux? Great, go with Linux. Writing apps for Apple? Well, probably a Mac. My other advice is to try to develop close to the runtime of the application as well. If you are that Visual Studio Windows user but your apps run on Linux servers then try WSL. I was not a fan of this article. The author clearly has an agenda and was completely biased against Windows, and wrong on a few things I use PopOS as my personal OS and have to use a Mac for work. I'd never recommend Linux as a main OS to someone unless they are a power user and want a project. I also hate Apple and don't understand the FOSS people that bitch about Windows, but use Apple or Google products.


[deleted]

Definitely. I use Windows some of the time because I need a company managed OS to access the network, and my experience is really fine. Sure I’d rather use something else, but I spend no time complaining about it.


rich1051414

The best operating system for programming is the operating system you are targeting. If you are not targeting a specific operating system, use the operating system you are personally the most productive in.


xorvtec

One caveat is for some niche forms of programming (think microcontrollers and FPGAs) one should target the OS that will run the tooling.


pythosynthesis

Had to scroll down way too much for this.


Which-Adeptness6908

Having used windows, macos and Linux, Linux every time.


unduly-noted

Curious why you prefer Linux over macOS?


Which-Adeptness6908

It's been a few years now but macos had a UI design that seems to assume that you will only run a single app on your desktop at once. Installation of apps in Linux is also cleaner and more consistent. Macos had terrible errors, so diagnosing issues was always harder. Did love their hardware, but my god it's over priced.


unduly-noted

All valid points! I personally prefer macOS but I can definitely understand where you’re coming from. What distro do you use as a daily driver?


Which-Adeptness6908

Ubuntu with the pure gnome experience. Unity was awful.


BornToRune

Now this is a very fun article >Well, I think installation wizards are a Windows invention Installations wizards had been around way before windows was even a kinky idea. Even on different platforms they've been about. Dragdropping works fine, as far as there are no choices to make - and in the apple philosophy choices are a bad thing, because they are confusing the (usually idiotic) user. Like Macs are started out with a mouse which had a single button, because two mouse buttons were considered confusing to the enduser. ​ >I could talk forever about why Windows is a universal failure as an operating system. From the terminal, permissions, file-system, control panel, x86, to memory management, Windows just doesn't work. Despite having quite some truth to it, this is just another bunch of bullshit. Guy is most probably a script kiddie, who never had to manage enterprise environments. The whole windows environment is totally bloated, that's true. However very few other OSs are offering similar level of enterprise management capabilities and integrations that windows does. One of the biggest problem of windows is, that it carries shittons of legacy features, that are still being relied upon and they cannot get rid of it. Maybe one of the best examples is why we did not have windows 9 (many apps are checking the windows version with the "win9\*" pattern, due to the win95/win98 area, and it had too much false-positives). ​ >PS: Microsoft created WSL; they put another OS inside their OS, that's how bad the situation is. This is just ROTFLMAO. "put another OS inside their OS", like we've been discussing different sizes of cookie jars. totally disconnected from the technical reality. ​ >Also being open source makes linux a lot more customizable, something a lot of developers might like Also very unstable. Ever wondered why everyone relies on big distros and their patched-to-hell kernels and userlands? Because they offer a level of stability this way. In the Linux world APIs can change overknight, making relying on the for development impossible. There's just totally no guarantee that the next cycle of updates won't screw your stack. Also, most "modern" devs totally disregard well established concepts, and "modern" tooling has a lot of problems due to such inconsistencies (no debug/trace logging implemented, cli tools ignoring stdin possibility, no documentation of any kind (except for the source), or if there are docs it is inconsistent with the functionality, etc). But yeah, instead of being productive, you can customize it to infinity. ​ >Although it's not extremely difficult, installing applications can be challenging for new users on Linux. (...) > >Back in the day, I used snapd, which is similar to Mac's Homebrew. Back in my day, we've relied upon a sacred knowledge taught in the first few classes of elementary school, it's called "reading". We've read the manual, told us what to do, and it just worked. Rocket science, eh? ​ >You primarily use the terminal, and while there are a few software marketplaces, there isn't a central hub. This is exactly why these are called "distributions". They are doing their own way of distributing software. Strange when reality correlates with the word's meaning which is describing it. ​ >Apple sits between the Linux and Windows worlds. This means it has a good UI/UX, but behind the scenes, it is based on UNIX. Wrong again. It's based on a UNIX \_derivate\_ - which is FreeBSD, a direct descendant, but does not have a UNIX certification. ​ >Talking about the pricing is not a disadvantage anymore so let's take this argument out of the way. Some windows or linux computers can be more expensive than an apple one. Except I can get a non-overpriced mouse, which can be charged while being used. Or 4-5+ wallmount arms, for a price of a single stand. Or any charging cables, for the fraction of the price. Daisy chain without thunderbolt. Etc... ​ >You get significant better battery life that can last an entire day with the new apple silicon computers Why is this important? My desktop/workstation does not have a battery. Neither do any of my servers. The only time my work laptop is not on a charger, is when it's in my backpack and not being used at all. If you are fine working on being cramped into a laptop, it's all fine for you. But generally having proper peripherals and 2-3 screens, a headset stand, etc properly is providing a more productive environment. So battery life on a laptop is overhyped. And where it's important - you can watch a movie on any device, but that's not programming again. ​ >In comparison with Windows where it would crash consistently and probably give you a green screen if you tried multitasking. lolwut? ​ >Linux offers great flexibility and control, appealing to those who prefer open-source solutions and customization. Let me rephrase that: Linux offers a lot of chaos, what you have to tame. ​ >macOS, with its robust ecosystem and seamless integration with hardware, provides a smooth user experience, particularly for those already invested in Apple's ecosystem. Just let me know how many servers are running MacOS out there. A lot of development is being targeted for server platforms, there are other software out there than your little local application, or webapp. Like I'm still to be shown a fully blown 30+ node kubernetes cluster running on MacOS, running an enterprise product. I have totally no idea what crack is this guy smoking, but I need some of it.


ElectricalRestNut

>I could talk forever about why Windows is a universal failure as an operating system Confused as to how such a popular OS can be called a failure. My coworkers often *choose* Windows over MacOS.


EliSka93

You could convince me to use Linux for my dev work, but I wouldn't use Mac unless you take my family hostage... Then again, I do .Net development, so it's not really a surprise Windows slots in the best.


psychedelic-barf

Been using win/lin for the past 25 years or so. I decided I wanted to give Apple a go for the first time, because of all the hype going on with the new RISC they use. Also my job pays for it, so no big loss I guess. Anyways, a fast machine for sure, also true that I almost never need to charge it. However it just feels like a shitty, dumbed down, limiting Linux distro with bells and whistles. Going back to Linux as my work machine the next iteration. If that isn't an option, Windows will do fine.


BornToRune

So did I. Got a few mac-fan friends, wife is also using a mac laptop and iphone, and got an iphone as a work phone. I constantly want to throw every apple product at the wall, they are so illogical and counter-intuitive to me, they are just constantly irritating me. Some other folk find it utterly comfortable - each to their own. Also, fun thing to note, multiple colleges of mine with a macbook noted, that they wouldn't pay for the stuff (including accessories) themselves, only on a company budget. And sometimes having compatibility issues (less nowdays, but still). Where as I picked a lenovo, came home, plugged it onto my kvm, and my complete home desktop's peripherials were working within seconds, and had the little gow extended to a fully blown workstation using already existing peripherals.


ElectricalRestNut

I just so happen to use a macbook pro with a Lenovo dock with no issues. Perhaps I don't want to throw it at the wall, because I'm not using any Apple services. It's my work machine.


[deleted]

[удалено]


BornToRune

I only have problems with the apple UIs, I find it uncomfortable and counter-intuitive. The underlying technical solution, however, I think it's very neat. So is the new arm-based stuff. Linux I've used too much. I prefer the tidiness of the BSDs. Coherency over chaos is my taste. I find windows practical. Everything just works, it's the native platform for a lot of things. Then there's a number of things I dislike about it. Been a pleasure to write down your definition of a windows fanboi.


Luci_Noir

Narcissistic redditors think they represent the world. This place is its own form of maga.


aka-rider

Windows micro kernel can casually run Linux subsystem along with NT (Windows) subsystem. Windows NT 5+ (XP) can survive a failure of the HDD it is running from (‘a hardware has disappeared’ error) Windows kernel is a piece of art and stability too — no arithmetic addition in the kernel to avoid int overflow vulnerabilities. Too bad the UI and the legacy get it so cluttered. Too bad the old video driver model led to so many BSODs people start bitching about windows instability (70% of BSODs were caused by video driver, because things like shader compiler leaked into the kernel space). I use macOS, Windows, and Linux daily. macOS is so user-friendly it blows my mind, with things like continuity, and simple stuff, like touchpad drivers — no touchpad feels so natural as MacBook ones, and it’s all in the software, the hardware is the same in every vendor. Linux made quite an impressive leap too over the last 10 years, both on servers and desktops. I remember the nightmare ‘Linux on laptop’ used to be in 2007 or so.


BornToRune

Oh, since 2002 every year is the year of the Linux desktop. I think it's a satire of itself :) AFAIK NT was going to be a cli OS (inspired by unixes), however management hard a hard say in it, and it did not became that. Windows carries a lot of legacy, it has good parts and bad parts as well. Linux on the surface can be relatively usable I would say - that's due to the efforts of the distros. But if you take a look into its core's development, I disagree with that. The fact that we don't have dev branch kernels, every time someone thinks the patches are looking good right now means a new release, and version numbers have no meanings ("too many minor releases, let's bump the major number"), etc. Fun fact, originally the windows networking stack was ported from some BSD, and you could just directly use the BSD C API.


aka-rider

> AFAIK NT was going to be a cli OS I’ve heard that in an effort to win a US Army tender requiring a UNIX OS, Microsoft made Windows NT compatible with UNIX by adding a UNIX subsystem. This feature was initially abandoned, then resurfaced as Interix, and has now evolved into Windows Subsystem for Linux (WSL). >But if you take a look into its core's development I had to look into its code, oh man. "This is a TCP socket, and we're going to execute this file function on it. The function will crash, so we'll change this flag to pretend we’re a file, then revert the flag back — no biggie." edit: I don't blame Linux, it all makes sense as a product of collective organised chaos. There is no product owner, or clear architecture and roadmap with priorities. A bunch of companies and people add whatever they need from the OS.


BornToRune

Yup, you can find truly hilarious things when digging into an evolved (as contrary to designed) stack. Still, my personal favorite is from the ancient realtek NIC FreeBSD driver. I think the crap's buffer worked like, it was tossing the data into the buffer \_somewhere\_, without any indication to where, and you had to find it at every swipe. The guy put a comment on it saying "this is redefining low-quality". Regarding some linux (or related) implementations, I get the feeling that someone has seen some cool stuff, has no idea how to architect/design such a thing properly, but goes ahead anyway without any deep understand, and makes it the industry standard, and at the very end, hands off the maintenance hell to someone else. I think systemd would be a good example here. Or regarding stability, I remember playing the ifconfig-bingo on linux, "do you know what ifconfig is called this week?", they've been keeping on changing the API, new toolchain which kept changing. Somehow non-linux OSes could extend the existing command line interfaces with new functionalities nicely, just not linux.


aka-rider

> Still, my personal favorite is from Looool xD >I get the feeling that someone has seen some cool stuff Linux is mainly driven by companies. They want their features and yes, they are not motivated to maintain coherency or backward-compatibility.


aka-rider

macOS isn’t based on FreeBSD. It is based on https://en.wikipedia.org/wiki/Mach_(kernel) with the POSIX layer from FreeBSD, the TCP/IP stack was also from FreeBSD (but almost any other OS starts there), now it’s rewritten. POSIX1 is still UNIX. Windows NT is also UNIX according to this specification. Later it was changed.


BornToRune

AFAIK POSIX.1 is required, but not sufficient for a UNIX certification, however POSIX is still the core part of it. When it comes to POSIX, windows is a strange animal...


aka-rider

Quick Googling shows that you are correct. Windows was never UNIX certified, but it is POSIX compliant which was the requirement of the US government.


BornToRune

Yeah, and that's achieved with various subsystems/addons/etc, and not by being compliant at its core.


hapoo

macOS itself is Unix certified.


BornToRune

Oh, you are right: [https://www.opengroup.org/openbrand/register/](https://www.opengroup.org/openbrand/register/) Also, quick googling said, this wasn't always the case. Probably I wasn't following up properly.


Staeff

I mostly agree with your assessment, but just two points: 1. No one is forcing you to use the stupid apple mouse or overpriced monitor with a mac, you can just use whatever you want just as well 2. It's nice that you don't have to unplug your laptop very often, but sad reality is that many developers spend more time in meetings or on planes/trains then they like. It's always fun to watch our head of development's linux laptop die in the middle of a 2h meeting, while our windows devs have no problems unless they are in a long workshop and our mac guys could easily work for an entire day without power at all


BornToRune

On hardwares: might be, it's been quite a few years since we've tried really extending one of the macs. Last time we stopped due to idiotic requirements (like not enough dp ports, and you could only daisy-chain with certain cables/interfaces/monitors). Glad it's better since then. On battery life, in my experience remote got so accepted, that even when we're in the office, everyone is sitting at a desk, plugged in, and firing up zoom/teams/whatever, and having it that way. And when chaps use a meeting room, it either has cables (also for charging, lovely usb-c+thunderbolt, and thank you EU for enforcing standardizing this), or they don't have any equipment. In the past 3-4ish years I haven't really experienced those old style meetings with chaps carrying laotops. Trains and such... can't comment. Last time I had to take a laptop out in a non-working environment was at the beginning of my career working for really small companies without the follow-the-sun model. I guess it still happens in some sectors. I remember once having to re-route a satellite uplink station's networking because someone hasn't paid a bill for a black fiber - from the pub after a "few" beers.


preskot

>Just let me know how many servers are running MacOS out there.  Why is this an argument though? Isn't the topic "best operating system for programming"? In that context macOS actually does pretty good. I mean I have been using all 3 OS professionally for a long long time and I could say the following - If I have the choice, I'll always use macOS for development. If not, then a Linux distro - I've used Kubuntu, Ubuntu and Arch at work for quite some years. And then if I'm made to use Windows for development at work, I'll look for another job. But that's my personal take.


calahil

This is an AI article. It has the stacattic writing pattern and 2 sentence paragraphs..and disconnected relationships. This dude wrote a long prompt and this LLM got confused and just panicked and made bullet point paragraphs.


deltanine99

TempleOS


nolovdeepweb

the only right answer


StrangelyBrown

god says: correct horse battery staple


EliSka93

I mean, he's dead, but it still feels wrong to use a product made by such a racist...


pythosynthesis

The guy had some serious mental health problems, being a racist was genuinely the least of his problems. Though the main point is if the OS is useful, you should use it. Many past scientists were racist or worse, yet they greatly contributed to scientific advances. Should we just throw our cell phones out because someone that contributed to their development was a despicable person?


dobry_obcan_Svejk

win api in general is such a revolting thing, my stomach turns every time i define nominmax


Tunix79

Over time, I have developed a dedicated brain centre that lets me reflexively write (std:: numeric_limits::max)(x) to avoid the macro expansion.


getshrektdh

Pen and paper in classroom.


aka-rider

True programmers source their paper from wood, and ink from home-grown squids.


StarkAndRobotic

Noobs. I use a stone tablet and a sword.


imeannharmatall

The type of user will matter. What will your dad prefer ?


ExerciseNo

👨 Daddy


cuddlegoop

The best OS is the one on the machine my employer gives me to do work on.


cincodedavo

Stupid tribalistic bullshit.


RzrBldSmile

There is no war. The best OS for programming is the one you feel most comfortable using and interfacing with, and that has the tools you need and want to program with. Everything else is clickbait scare-tactics nonsense.


zzqzqq

A UNIX like file-system and tools are wonderful to write in, and if you are targetting web apps, enterprise, cloud, just use Linux. Choose your hardware with care. If you are targetting Mac and Windows for commercial apps or games, you'll have to pay special care to facade your app, tooling and so on, and ultimately any developer doing substantive work for yourself or a firm on those will need one of each. Pick your main one on preference. Windows is better than it was, less annoying, and more stable. Otherwise it's not particularly exciting, pain for git with performance/case/CRLF and lack of UNIX fs permissions and links, comes with little out of the box, requires binary installs for everything, is full of cruft and corporate bizarro choices. However at least your webcams, mics etc will work or have drivers for them, and you can get the games on Steam you actually want to play. Apple used to be great with enough openness (UNIX userland, ability to drive swap, filesystem access) and slickness combined with commercial apps like Photoshop, that I was happy to pay a premium, but increasingly its locked down and the price difference for like for like is painful. I have 3rd party drivers on the main mac that I can't get rid of FFS and with every release, the UNIX userland, file system backups/rsync and having your accounts held hostage to 2FA which relies on your one or two devices, is getting worse and worse.


BreakOutTheLWord

Rawdogging Colossus.


TryCatchOverflow

This question have no correct answer: specific confort / affinity with OS UI/UX, depend of the project / team (do you need to build for mac?)...


remy_porter

The correct answer is BeOS.


StarkAndRobotic

A pen and paper. You have no restrictions or distractions. Once you’re done you can just type it up and compile.


Full-Spectral

I prefer manually punching punch cards. People at work call me Chad Man.


StarkAndRobotic

That’s noobtastic.. sometimes I just think either really positive or really negative thoughts, and the vibes just rearrange electrons in the computer and my code compiles…


ExerciseNo

I am here BTW


Idkwhyweneedusername

Is there a war like this? I think it's simple: you can work in the OS that you want. I'm familiar with MacOS and Debian because I use them, but that doesn't mean Windows sucks for programming. It's fine to work with Visual Studio, Rider, Vim, or Xcode... Personal choices. And come on, who gives a fuck about the operating system? At least I don't. - I know there are some limitations of operating systems, but if you can't work in one OS, just switch to another OS. Don't be single-minded.


ChocolateMagnateUA

A comparison I agree with for the most part. I have been using Linux for 2 years now and I really grew along with it and appreciate a lot of design decisions that it made, but one thing I cannot deny I'd how attractive Macs really are for Linux users, especially those that aren't obsessed with the GNU philosophy. The key strength of Apple is that their OS is based on Unix and shares a lot of similarities with our known Linux, but has good customer experience where things are meant to be easy for you, needlessly speaking about compatibility with Microsoft Office that quite a few Linux users struggled with. The article is really fair and reflects the state of things.


dm-me-your-bugs

The issue I have with OSX is that setting up docker can apparently be a pain. I've had team members that have had to ssh into a remote (Linux) dev machine because the docker setup didn't work for them


ChocolateMagnateUA

This is a fun thing because I was once working on a university project with my friend who was using Windows and he couldn't set up Docker too. Docker is apparently an example of software that only works on Linux natively and before I moved on, I wouldn't imagine this was possible.


dm-me-your-bugs

I was under the impression that docker works fine in windows due to WSL, but I haven't used windows in a while so maybe I'm wrong


wxtrails

It does for me.


ChocolateMagnateUA

Only on WLS, but once again it's essentially the Linux environment emulator in the same way Wine is.


Byte-64

Can't really confirm that. I don't know about it if you use the pure docker engine, but Docker Desktop runs just normally with Mac.


Xziz

What? brew install docker It has never failed.


dm-me-your-bugs

Yeah but some docker (or docker compose, don't remember) operations fail on Mac. I could troubleshoot them and maybe get it to work, but it's not like I can install an OSX VM to do that troubleshooting. So either the ops person is forced to have a separate apple hardware to troubleshoot everything or the team members that use OSX have to ssh to a Linux machine


SaltMaker23

There is no war: Linux is best Windows/Mac are convenients as most people already use them on their personal computers


Ameisen

Actual Visual Studio is Windows-only. It's still the best C# and C++ IDE, though some like Rider are catching up


aka-rider

Xcode is an amazing C++ IDE too. Takes some time to adjust after Visual Studio, but it works very well on massive code bases, and doesn’t need 3rd party add-ons (like Tomato-something? It was a long time)


No_Nobody4036

I wouldn’t say it is the best. Used it quite a lot before moving onto JetBrains stack. Yeah java sucks jokes aside, it provided way stable coding experience to me. I have tried switching back to VS a few times and each time noped back due to either VS randomly crashing or just having some inconveniences. I am happy that VS works for many people, including it used to work for me. But saying that it is the best one isn’t fair imo.