4 ms·
I appreciate everyone's taste and opinions on UI, but this seems a lot like confirmation bias. Windows has warts. Linux has warts. OSX has warts. I'd say in te
by mrozbarry 5y ago
I appreciate everyone's taste and opinions on UI, but this seems a lot like confirmation bias. Windows has warts. Linux has warts. OSX has warts.
I'd say in terms of consistent UI, OSX probably is the biggest winner. Both Linux and Windows are the losers in UI consistency. Yeah, you can customize it, but customization, in my opinion, can be a real time-suck and it doesn't make you any more or less productive, it's just visual enhancement.
Unix is the real commandline winner, because piping and good underlying tools, and as a result, OSX and Linux do very well here. I'm not familiar with the powershell equivalent, but at the very least, it's just a copy of how unix works.
Application installs is a very mixed bag across the board. Every distro of linux has their flavor of installs in commandline, and some have graphical. I've never had a lot of success mixing the two, it always puts some package database in a corrupted out-of-sync state. OSX is primarily graphical installs, but there are cli tools like homebrew - neither seem to fight each other, though. Windows is download/installer based. There is a store, but the store is mostly paid applications, and the Windows ecosystem has a large amount of free installer tools that will almost certainly never be on the store.
The article doesn't even talk about hardware. My typical experience is hardware "just works" in OSX and Windows, and will often/mostly "just work" in Linux, but also there can is usually is some tinkering (as well as do I want the free/open source drivers vs the binary blobs in cases like graphics cards).
So I guess in summary, Windows doesn't suck, in the same way that Linux and OSX don't suck. Every OS has a mess in some capacity, and I would say Linux's biggest mess is there is too much room for customization that will always lead to rabbit holes. For context, I use a company-given OSX laptop for work, and use Linux for my personal computer/daily driver, but have a Windows partition for gaming.
- majkinetor 5y agoLets not customize it then. What OS vendors should do is give as bare bone version of SO - kernel + package manager. We can take it from there with scripts. With simple strategy to keep those scripts online like vscode keeps your settings would be definite solution but even without it you are one git clone away from your repo that contains all customizations. We could have option in Windows to export system settings as PowerShell script. Its really not that hard, its just that nobody relevant wants to do it. Microsoft, if you are listening, I would even do it for free (because ultimately it would save me time). Just gimme jurisdiction/authority and we can have that.
- mrozbarry 5y agoThe thing you are proposing sounds like absolute customization, unless I horribly misunderstand. "Take it from there with scripts" means not only is it fully customized, but you don't even have a trusted vendor to provide the scripts, which sounds like a nightmare to me.
- majkinetor 5y agoYou create customization scripts or take parts of system behavior from some trusted repository. Customization is not about "trusted vendors", its about you.
- mrozbarry 5y agoI guess my confusion is your initial statement "Lets not customize it then" followed by you proposing fully customized installs, and I'm not sure if I missed your point. I only brought up trusted vendors because it seemed that you also want repositories of customization scripts, and I don't disagree, but it shifts the trust from the people making your operating system to you reviewing a bunch of scripts to get the system you want. I'm making a point that people don't want that at all. That will absolutely cause analysis paralysis, there would be too many possibilities, and it would continue this idea that Linux is hard and elitist when it really shouldn't have to be that way.
- legalcorrection 5y agoPowershell is not "just a copy of how unix works". Powershell lets you work with objects instead of wrangling text. You call real functions with real objects as real parameters and get real objects returned back to you. You can pipe those objects, iterate over them, etc. You can call into .NET and even Win32. In bash, all you have is 1) executing binaries and 2) hacks emulating real variables and functions and control flow but that are really just parsing and passing strings around.
- hajile 5y agoBash gives you access to FILES. Those files can be text or they could be binary data representing objects of ANY kind. Your definitional separation between functions and binaries is at best incredibly thin. Bash itself is turing complete. Other shells offer other (better) languages as well. Linux uses D-Bus which has similarities to COM, but nobody has seen the point of replacing normal POSIX with it. Nothing is stopping you though.
- legalcorrection 5y agoMy point is that in bash, all you have is the bash language, which is just layers of hacks to cover up the fact that you're just slinging strings around, and the ability to start other processes with command line arguments (again, strings). In powershell, you can certainly run programs with arguments, but you're mostly going to be calling functions that take actual objects as parameters, not just escaped strings that you hope are in the right format. Most OS functionality you can imagine is exposed as powershell commands, and most of the rest can be called as .NET methods (which are just as easy to call). And with a little more work you can call win32 functions. Between all of that, that's the entire OS API surface. You have variables with data types, both basic types like int/string/etc. but also objects with fields and methods like arrays, hash tables, and such. And the functions are designed to receive such objects as inputs and as outputs. Again, in bash, you accomplish the same thing with stuff like xargs and array expansions, all just fancy string manipulation. Yes, bash is obviously Turing complete. Yes, you can accomplish anything in bash. But it's not pretty. And since everything is just glorified string manipulation, it's hard to write rigorous and robust bash programs that don't blow up in the face of weird directory or file names or other edge cases.