Then there's the filesystem. It just works. Permissions are easy to grok and (most) error messages are clear about what's wrong. Everything being a file also means I use the same tools to: - investigate bugs in source code - check what processes are using what ports, files, sockets, etc - find files - find things in files
there's very little that can't be done easily with [grep, cat, ls, mv, cd, echo, curl].
Also, manpages are incredible. All my important documentation, right there where I'm doing my work.
It's really less about what's possible on windows / Linux, and more about how Linux lets me do things my way, which means I can consistently improve my methods.
Also, all the good Linux stuff is free. Both kinds, so not only can I use most of it without worrying about the cost, I can fix it when it goes wrong or modify it to be more like what I want.
I could go on and bore you more, but those are the key points.
This is the core of it for me. Half the time I don’t even need to write a shell scrip, I just fling it straight onto the command line if I’m doing a quick one off task.
For me and windows it was when it updated a hibernating unplugged laptop overnight causing me to loose several hours of genealogy work. I had been using a new to me application that hadn't been doing any sort of background saving while I put in information. My had some niblings come over so I shut my unplugged laptop thinking id get back at it tomorrow. The next day when I opened the laptop I was greeted with the dreaded "Hi" screen, and my previous days work was gone.
Windows also likes running the fans on my laptop way more than it should. Where linux keeps them off for most my typical work.
Neither Windows or Mac have a Tiling Window Manager, for me not having to manage windows is a dream.
Running docker as a first class application is nice.
But linux has its issues too. Occasionally an update really borks my system and yes it is a pain to find what went wrong.
I also love vim and emacs. They work better on linux.
To be fair and with no personal offense intended, this sounds more like a case of PEBKAC rather than specifically a Windows deficiency.
To be clear, I agree Windows's forced, silent autoupdates and reboots are crimes against humanity, but "losing work I did not save" is hardly something that only applies to Windows and is a lesson we all learn the hard way eventually.
Always save, and if you think you saved, save again. Probably hit CTRL+S several times too for good measure. And keep backups; multiple, good, working backups.
Worse is technologically speaking this shouldn't even happen. Windows should be able to take a running application, save its state, do its update, reboot, then restore the application, without loosing a single byte of application state. Microsoft's lack of compassion for end users in this regard comes directly from it not effecting their bottom line.
To go back to your example, you lost your work after Windows decided to silently update and reboot overnight. Now the million dollar question: Why didn't you save your work before you left?
A blackout or a drive crash or any number of failure cases could have happened instead and you would have still lost that unsaved data, too.
You're going to eventually lose any data you do not explicitly save. To put it another way, any data you don't save should be data you don't mind losing.
Windows 10/11's autoupdates are fucking nonsense, but data loss of the kind you're speaking of is by far a case of PEBKAC in my opinion. If you lose data overnight, that's because you didn't take basic steps to save and protect your data.
GP said he was using a laptop that was unplugged. A blackout wouldn't have made a difference. And in the case of a drive crash, saving (locally) wouldn't have helped.
I think automatic updates really deserve a fair share of the blame here.
Because humans are not perfectly consistent robots.
Any system design or paradigm that expects us to be is broken and user-hostile.
For myself, I have Emacs configured to autosave whenever I change focus or documents. I also commit and push whenever I make a meaningful step of progress.
For normals, built-in macOS apps like TextEdit have autosave these years. Pair that with Time Machine and an SMB NAS (see https://support.apple.com/en-us/HT202784), and data loss is pretty darned rare in practice.
If the NAS has a cloud backup system, you'd really have to try to lose data.
It's specifically a deficiency of the OS when it decides that the work you purchased the computer for is not as important as the work that Microsoft wants the computer to do.
No vendor, OS or otherwise, should decide that using the consumers computer for their (vendor's) own purposes is more important than the work that the computer was purchased for.
> To be clear, I agree Windows's forced, silent autoupdates and reboots are crimes against humanity, but "losing work I did not save" is hardly something that only applies to Windows and is a lesson we all learn the hard way eventually.
"Losing work I did not save because I forgot" is different from "the computer decided to discard all my work while I was working"
If you're in the middle of driving to work, and your car decides to pull over because Ford wants to do something is very different to driving to work and running out of fuel.
If you forget/refuse to fill fuel, that's on you when you get stuck. If you did everything right and still the car pulls over because the manufacturer wants to do something, that's not on you.
No, that's exactly the selling point.
Yes, you could write some hand made program. And piping software together IS a kind of hand made program. It's just going to be far faster to write that pipeline, than to write a custom program, deploy, and run it.
And the pipeline might be much much faster. A classic example:
https://adamdrake.com/command-line-tools-can-be-235x-faster-...
I suppose the speed of implementation depends entirely on your available experience. If I were to try to reproduce the data processing pipeline in your link, it would take me hours to get to this line "cat *.pgn | grep "Result" | sort | uniq -c", and would probably never be able to get to any of the further steps.
Meanwhile, with my experience, I would've been able to write a 5 minute C# program that does exactly the same data processing. I don't know if it'd go down all the way to 12 seconds of execution time without serious effort, but I'm pretty sure it would handily beat the version I could write using the commandline.
If this task is a single time kind of thing, the C# program more than suffices. If it's a many times kind of thing, I'd strongly prefer having it in C# code, so I can more easily adjust it and make it part of a larger automated workflow which will mostly consist of other C# code.
However, I will say that Windows -> Mac is pretty awesome. IMO, the main benefits were the commmand line experience. Installing Homebrew on Mac was so much nicer than pointing and clicking everywhere in Windows to do things.
I see that Windows is getting better with their Terminal app, but the MacOS functionalities beat it.
If you value doing things from the keyboard rather than a mouse, then you'll see value in switching to MacOs. Otherwise, the appeal is rather muted.