All three main desktop operating systems suck for very different reasons
Programming
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
I take it you run TempleOS?
As a linux dev, this conspicuously misses mentioning Visual Studio.
True, but he mentions .NET development is Windows first, and even mentions that you have "some IDE's that work with it, like Rider". He kind of said it without mentioning the specific IDE.
Rider is the real MVP anyways.
Jetbrains ftw
My company and literally every company I've worked for somehow has been deeply afraid of leaving .NET framework for .NET core or .NET 6, 7, or 8.
I just want to get away from needing Windows to run my programs locally
Most companies I worked with had a choice of the work laptop, usually Windows/Linux or MacBook. And the trick is, you cannot buy cheap MacBook. So the choice is using linux but with a terrible screen, unusable trackpad and bad hardware, or take MacBook and enjoy all premium.
So I always take MacBook and then ask for a local workstation where I will have linux with i3 / Sway WM.
My company didn't leave me a choice, I got an XPS 15 which I had to setup with my distro of choice (but all the internal tooling is for Ubuntu, I personally would have preferred to install Fedora or Debian 12 with i3wm).
It's not that bad a laptop but it overheats like crazy and has really shit battery life (barely enough for a meeting), and some of its features I can't explain : why is a 4k touchscreen on a laptop a good thing? It eats 4x the battery for no noticeable visual improvement. I don't use my laptop 5 inches from my face.
I prefer a desktop. Don't have to worry about swelling batteries from being plugged in all day... plus they're cheaper so I get new computers far more often than my coworkers who get laptops.
I wish the company I worked for would let us use Linux. Mac dev only. :(
Better than Windows at least
Nah these days with wsl, I prefer windows over Mac. At least you get packages that have been updated in the past decade.
What packages are you missing? With brew you can get most things
True.. although using brew to upgrade bash is far from straightforward. Plus you can't run gdb on a m1 mac.
Ah yeah tbh I only use fish so I've never had to bother upgrading bash. And actually yeah the M1 can be annoying. I have an M1 Mac for work and some libraries are a massive pain to get working on it
I care about freedom. In that regard, mac is easily the worst of the three. Also, it kinda combines the downsides of both:
- Being proprietary crap that tries to force you into using it a specific way and does shit in the background nobody ever asked for
- Not being compatible with some proprietary soft- or hardware
I hate windows with a passion but would take it anytime if mac would be the only other option.
Every windows machine a job has given me has been a hunk of garbage. At least Mac hardware has a floor of quality. Not perfect by any means, but at least the battery lasts and there's basic horsepower.
Also every windows machine has been with a fossilized company that has tons of IT bloat with tons of spyware authentication shit on it. Hell I had to file (and fight for) wsl privileges on my current windows machine
The Macs I've gotten have been brand new, straight from the manufacturer.
I'm sure that's just luck of the draw but yeah fuck windows shops hah
Hell nah. Personally, mac os is the most frustrating of the bunch to use.
I switched over to MacOs about 3 months ago now for dev work and I've really been enjoying it so far. Except when there are weird hiccups, but they've been getting better as I get more familiar with it
i used to have this opinion, i dont after having to use a mac for a few months. id take windows+wsl any day.
Nowadays with WSL Windows is pretty good. Pretty much anything you can do on Linux you can do on Windows.
Now, not being worse is not really a point towards Windows. For developers its absolutely not worth it tanking the horrible storage performance, preinstalled ads and handing your soul to Microsoft for the privilege of not being worse than native Linux.
I'm forced to use Windows at work. WSL takes since of the sting out of it
So many praises for Windows and Mac about 'premium features', 'corporate environment' and 'device support'. But not enough talk about how they treat customers like crap and cash cows. Windows is replete with spyware and ads. It doesn't respect the user's choices, like when not to do an update or opening the links with a browser of user's choice. Heck! Some versions don't even allow you to register users without a cloud account. And now they are taking definite steps towards ensuring that you can't do anything they don't approve - with TPM and pluton non-sense. Praising windows is like being in an abusive relationship and finding justifications for it.
Mac is on the other extreme. They lock down their platform more and more in every revision in the name of security. It's getting harder to side-load apps. Why? For security, of course! No mention of how security comes primarily from platform design. Then there is the hardware, where everything is glued, soldered, riveted, digitally locked, etc, etc. Any small issue, and it's garbage. Not even parts from another genuine Mac can be used. Macs also have the strange distinction of needing calibration and signing of any part that can be replaced at all. It's deliberately designed to extract more money from you and create a tonne load of e-waste (iWaste?). Mac fanbois have a habit of justifying it in the name of 'miniaturization' and progress. Honestly, that's just hand-wavy and completely wrong technical argument. And Apple says it is all for 'privacy' and 'security' while their actual reason is the pursuit of double-digit growth (not just profits). So, in effect, Apple is saying to their customers "Oh honey! You're are just too stupid to take care of it. So let me just decide for you" - all the while squeezing you for money. Does it end there? Oh no! They need developers to pay a yearly fee and want to take a huge cut from their profits. All that for "providing the engineering, platform and services". As if the exorbitant price they extract from their customers isn't enough.
The hardware situation on Linux distros and frankly even BSDs isn't as bad as it is projected by some. Most devices just work even on a live installation medium. Even Nvidia works. (Have you considered the possibility that if any device doesn't work, it's the manufacturer's fault and not the OS's? There are plenty of devices for which the community maintains the drivers, just because the device manufacturer isn't an utter trashbag). There are tonnes of games too - thanks to Valve and Proton. And as for the 'corporate env', you are probably just locked in or too used to them. There are users who have been on these platforms for decades now without complaints. And there are companies built entirely on them. Can you say the same about any of the company that makes your OS/devices? Is there one among them that doesn't use Linux or BSDs?
Look! I'm not claiming that everything is rosy on the Linux and BSD side of things. Sometimes you have to find an alternative way of doing things (there are plenty of options). Sometimes, you have to configure a lot. Sometimes, you have to carefully choose your hardware so that your life is easier with Linux and BSDs. But there is one thing they don't ask you to do- and that is to surrender your self-respect. You don't get treated like cash cow. You don't get spied on as if you are a thief. You don't get restricted like a school kid. You're not told that your choices are wrong. Your choices are not disrespected. You don't get treated like you owe them after you paid your hard earned money on the devices they make. Ultimately, it's up to you to decide if the little conveniences are bigger than your self-respect.
I wont work for a single day without linux
Here is an alternative Piped link(s): https://piped.video/watch?v=E_C3pgc1Iho&t=83s
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I'm open-source, check me out at GitHub.
Why bother with a front-end? This vlogger's on peertube, as @ozoned mentioned: https://tilvids.com/w/995NqXZXXshptUnwZNcbKi
I moved so Microsoft doesn't spy on literally everything I do. For programming it does seem to be easy to discover new things when you are part of different linux circles.
NixOS is the ultimate dev distro... For backend development anyways.
I’ve been interested in Nix for a while but haven’t devoted any time to it. What do you like about it? What problems does it solve? Why learn the Nix way of doing things when I could make a container using LXD and just transfer the container around?
What... What problems does Nix solve? throws down his beer What value is precision? Why make a cube about 10cm per side when you can make a cube 10.001 cm +- 0.001 cm? Do you want software that's a collection of found parts that just happens to work? Or a system engineered to precise requirements?
Rant aside: that sums one difference. Both containers and Nix solve an encapsulation problem. They solve them differently. Containers gives software their own namespace. Nix requires software to exist in an a universal namespace. "/bin/bash" may be different between containers. While "/nix/store/bash-82828def8282829whatever/bin/bash" is always the exact same bash in Nix.
Precision has a cost but sometimes the precision is necessary. Eg: nix is great building closures that contain exactly the software requested and no more. While containers are more imprecise: take a base and add on additional stuff. From a software supply line perspective this can be exactly the precision required.
Nixpkgs is (afaik) the closest thing to Amazon's internal package system. So the issues it solves is definitely valuable... To at least Amazon scale orgs.
As a dev who likes to tweak their system Nix offers an unparalleled ability to alter deep dependencies and correctly propagate those through everything. Wanna alter libc and rebuild everything - jvm and all - for some Java service? Yep. Nix will handle the build no problem.
Excessive? Sometimes - plenty of systems work fine when dependencies are mutated underneath. However, when there is a need there is NixOS in a class of it's own.
Also, they are complementary solutions: nix is great at building containers.
Windows here. And WSL. Best UI and hardware compatibility with all UNIX tools I might ever need. As a bonus I can also play games and use industrial apps for my hobbies.
Linux time.
Best UI
KDE’s UI is better, even if you don’t take the lack of ads into account.
hardware compatibility
What hardware do you use that isn’t compatible with Linux? The only time I had a problem with that was when I was sold a bootleg PS4 controller on ebay once, and it didn’t work via USB (official controllers do work tho). Connecting via Bluetooth fixed it.
I can also play games
Same.
industrial apps
…like forklift firmware?
KDE’s UI is better
KDE was good many moons ago, sadly today it's just a useless mess.
What hardware do you use that isn’t compatible with Linux?
Printers, NVIDIA GPUs, latest Intel CPUs, WiFi, Bluetooth, DRM protected stuff, etc.
…like forklift firmware?
Apps ranging from Photoshop to Fusion 360, from TI and Evolv board firmware flashers to Chinese device apps, all kinds of CNC controllers, etc. If your hobby requires an app and it's not a software development related hobby then there's a 99% chance that it won't work on Linux. And even if there's a Linux version of the app, it might lack critical features, like DaVinci Resolve which lacks audio and video codecs on Linux.
The sad truth is that Windows today is the best Linux distro out there for desktop use. And if you can get your hands on an enterprise licence then you won't have any limitations or ads or whatnot.
macOS all the way.
All the comfort of a UNIX FOSS env, all the premium features of a corpo env.
In this article: why we should wear crocs while drinking water.
Thankful to communities, building dev env on Linux is easier than that on Windows.
Once nix
supports mac and windows equally well, maybe those platforms can be considered equivalent, but until then linux FTW.
Fedora Silverblue is very nice for development work. You can have separate toolbox
containers for each toolchain and not worry about it messing with the host OS.
(Unless I'm working with Python. Then it'll find some way to install shit deep in ~/.local
or whatever.)
Am I missing something? Why aren't you doing python development in a venv? Or docker?
Unfortunately I have to use Windows for work, and it hurts my soul.