Hacker News new | ask | show | jobs
by dan_mctree 1372 days ago
As a lifelong windows dev, what exactly makes linux worth moving to? I understand that coming from a linux world, doing what you like doing in linux isn't always possible on windows. But I've never really found a use for any of that console magic linux devs seem to love. Pipe this into that and through seven pieces of software that sound like glibgcd, add 8 arcane flags and in the end you have some kind of textfile that would've just as easily been made in some handmade program? What exactly is the selling point for devs?
4 comments

I'm not sure what a handmade program on windows looks like, so I could be wrong here, but writing shell scripts to do work takes a matter of minutes and creates composable, reliable stuff that vastly reduces the time to do other work. This means that as time goes on, more of my workflow becomes scripted and I very, very rarely work on the same problem twice.

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.

I'd also add the "Googlability" factor to this. If you want to check how to do anything in bash, you will have your answer within seconds. Not so with PowerShell. It's a much newer system that doesn't have decades of history.
> writing shell scripts to do work takes a matter of minutes

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.

Everybody has their pain points with every operating system.

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.

>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.

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.

If it happens to me, an active computer user for 25 years, think of how often this has happened to others. How much work has frustratingly been lost because Windows knows better about when to update.

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.

The vast majority of computer users, Windows users and otherwise, have experienced some form or another of data loss. I'm just being fair to Windows (and you!).

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.

> 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?

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.

> 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.

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.

> To be fair and with no personal offense intended, this sounds more like a case of PEBKAC rather than specifically a Windows deficiency.

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.

> Pipe this into that and through seven pieces of software that sound like glibgcd, add 8 arcane flags and in the end you have some kind of textfile that would've just as easily been made in some handmade program? What exactly is the selling point for devs?

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-...

>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.

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.

Well sure. If you only know one tool and don’t invest in learning anything else, of course you’ll be faster implementing solutions in it than anything else.
I agree with you on that Windows -> Linux doesn't have much appeal. I tried it 2-3 times and gave up because Linux was not user friendly enough.

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.

Chocolatey is a pretty good Windows package manager for both developing software and simply consuming full apps. The packages are written to handle all the manual GUI Windows-installer quirks for you (automating it) and makes it work just like Homebrew.