Using Windows after 15 years on Linux
duncanlock.net
duncanlock.net
For a more positive spin, I'll leave here my own review of Windows after being off the platform for 25 years, spending 15 of those on macOS, and then spending the last year primarily on Windows. TL;DR: I'm quite happy with the switch, but obviously there are many things that could be different/better and some of the issues that the OP highlights are valid.
The intro and index: https://jmmv.dev/2022/03/a-year-on-windows-intro.html
[edit: wording]
As a dev/data scientist/netflix/websurfer/photo-sorter/privacy-aware dude, well, my Linux box just rocks and Windows is not fun (although it does the job).
+1
About 3 1\2 months so far. I tried to be fair - but my article is not as comprehensive as your series!
I've read some of your series and I didn't see anything, but you don't happen to know if you can get primary selection middle click paste on Windows? That's the only thing so far that I've got no kind of solution to at all.
I'm surprised your WSL article is so short, because WSL2 is so incredibly convenient for Linux and keeps on improving steadily. I've been able to set up and practice on virtual kubernetes cluster using KinD[2] (Kubernetes in Docker) thanks to the seamless integration of Docker for Windows into the WSL subsystem. VSCode can tap into Linux VMs with pretty much no delays too. Shutting down the whole thing to free up resources takes one line in Powershell and happens within a few seconds. The terminal app despite having a bit of a clunky UI is highly configurable and just works, etc.
There are things that scare me about Windows though, for example the mandatory real-time "defender" file scanning that you have to disable either manually at every boot or disable entirely through registry thus losing the virus scanning functionality. The amount of clunky Cortana stuff that really took a while to remove. The store app that feels flimsy, the games dependency on Xbox apps and subsystems which can lead to annoying bugs, and certain UI delays that make the system sometimes feel not so fast compared to the tricks Macs can pull to make you feel at ease. Consequently I'm not very likely to touch Windows 11 as Microsoft is seemingly trying to enforce more things in configurations and UI.
[0] https://docs.microsoft.com/en-us/windows/powertoys/
[1] https://github.com/indiff/qttabbar
[2] https://kubernetes.io/blog/2020/05/21/wsl-docker-kubernetes-...
I agree.
Some of the fixes for his complaints are effectively customizations, not unlike the customizations I'd make in Linux. I'm not sure some of these differences are really that different.
I learned a lot of Windows tricks from this one article written by someone who supposedly hasn't spent enough "effort getting adjusted".
You maybe used to coreutils/binutils and piecing together things in bash like a lego but Powershell in many ways allows you to build powerful scripts or compose one liners like with bash except you have access to .NET and any .NET assembly you can load! Don't even get me started on WMI or GPO.
"Windows wasn't made for me" right... it isn't made for anyone that wants to use it like a unix system, it is an entirely different OS. Just like you shouldn't expect Linux to work like windows.
It really isn't a competition. Windows is messy in its own way and that affects its performance as well. If you want to feel like you are in control, windows isn't for you. If you want to get things done, windows is a mediocre but acceptable platform.
The very things that make Linux powerful and controllable like shared library all over the place, package managers, and more make it more fragile and time consuming to administer.
I spent at least 8-10 hours a week getting things to work on Linux when I had it as my daily driver for over a decade. The weeks I didn't do this, it was because I did nothing outside of browsing the web. Don't get me wrong, I enjoyed most of that time, and I did feel like I was in control up until distro maintainers decide things for me and my only choice is to beg and plead and be told to fork it if I disagreed.
All I am saying is every platform exists for a reason and has issues.
What did you spend that time on? I never need to look at anything; it's a big reason I use Linux: my system today is the same as it was yesterday, and last year. And will be the same tomorrow, and next year. Of course Firefox and the Linux kernel and all these tools get updates, but overall it's pretty stable from my user-visible perspective. I certainly don't have upgrades which completely change the UI like Windows 8/10/11 "forced" on me, and if something does go wrong (which it rarely does), I can usually figure things out – Windows: not so much.
Try to write a 100 line script in CMD. Oops, actually it needs to be in powershell. Convert the CMD script to Powershell.
Program has an update? Time to reinstall the entire program. How could we possibly remember your settings? No... You need to do that all over again in this UI that changes to a new size on every page.
Oh, admin access wasn't available or we didn't bother to ask? Don't worry, I already know what to do. You wanted this on the C drive in %appdata%. What? You have a small SSD C drive only for the OS but your programs are installed on massive HDDs? Well that sounds like a YOU problem for not using our OS correctly.
Backing up a game data? We got you. That's why we created %USERPROFILE%/Games to replace %USERPROFILE%/Documents/Games. Oh you're a developer but your game might not be unique? That's fine, just use %USERPROFILE%/Documents/Games/Games. Oh you want admin access because you're installing a root kit... I mean anti cheat program? That's fine, I give you permission to use %appdata% or %userdata% to bypass the user having to have admin access. That would just be inconvenient. Also we duplicately installed the data to every previously mentioned folder just incase some program needs it. However, we are only reading from 1 source... Per line. Ish. We need all of them, to be clear, but most of the changes are read directly from only one of these duplicated install locations. The others are critical dependencies that corrupt the OS if you delete them, so don't do that.
We installed your game to C:\Game. Oh, you wanted to put it where literally every other game is? Well we uninstalled part of it and then re-installed most of it in C:\Program Files(x86)\Game\Game. Oh you didn't want it in the games dir? Fine. Specify a custom path. C:\Program Files(x86)\Game? Fine. We put it in C:\Program Files(x86)\Game\Game. Oh still not ok? Well literally too bad because the registry files are hard coded to where we installed it.
Also, we created C:\Program Files\Game as a second install just for fun. Also, it's installed in %appdata% for no real reason. IDK. Game dev hard you're not allowed to criticize me. Also, here's a shortcut on your desktop, and start menu, and again in the start menu, and we created a new folder in the start menu with a shortcut to the program but it actually links to the uninstaller instead.
Hardly an inspiring sales pitch for Windows.
The reality is that Microsoft allowed a lot of things to stagnate in Windows that it shouldn't have:
- the C runtime
- the terminal and shell
- UTF-8 support (lol)
- package installation
- CLI admin tooling
To their credit, they've been doing a ton of catch-up work on all of those things lately. Yes, PowerShell is nice. Yes there's a lot of very nice APIs and protocols. Active Directory is good enough (though I think Microsoft may be resting on its laurels with AD).Impressions made 20 years ago continue to be true-ish now, though, again, Microsoft is finally making progress towards remediating those, but inertia counts for a lot. Eventually, maybe, just maybe, Windows might recover a lot of the mind-share it lost to Linux.
This is a business where mind-share is kind. It's interesting to see a number of companies that benefited enormously from mind-share they built then fail to keep it up. Mind-share is the biggest lock-in.
How is
apt update
apt upgrade
to make ones whole system is up-to-date fragile or cumbersome?Upgrading to a whole new major version means basically the same, just change repository sources and use apt full-upgrade, one can even continue to work while that's happening - try that on windows..
> did feel like I was in control up until distro maintainers decide things for me and my only choice is to beg and plead and be told to fork it if I disagreed.
Assuming that begging and pleading actually happened for a legitimate reason (sometimes some maintainers can indeed be a bit of an arse, iow., humans are humans); how does that compare to Windows/Microsoft where you cannot even get close to anybody of the team to voice your needs or complaints, at least if you're not friend with one by accident (and seemingly even working there may not even give you the chance)?
IMO that complaint really reads like "it's not 100% perfect, so it's way worse than on the other side, where I cannot even do the same, nor have _any_ power over my system, at all". I'm still just baffled about the different standards that Windows and Linux is held up against.
"I spent at least 8-10 hours a week getting things to work on Linux"
This is ridiculous. I've used Linux exclusively for 10+ years. You're either not telling the whole truth of your use case, or you're in the bottom 5% of tech literacy, or you're obsessive.
This is mind boggling to me. I’ve run Debian as my main workstation OS for years now, and I’m not doing 8-10 hours a year maintenance, if you don’t count the actual time running aptitude updates/upgrades (and that’s not a lot either). I’m not even running “stable”.
I think that's an unkind way of phrasing it although I get what you probably mean. I know more people like me who started with Windows and had used it for years and suddenly... on Linux (or a Mac, to a degree) everything made sense and what was annoying and tedious was suddenly easy and intuitive.
You can absolutely know the Windows way and hate it. And the author of this post was just critical, whereas I actually hate it. Working on Windows feels like working with my hands tied behind my back and I don't think that will ever change.
Consider a thing: usability matter.
A second one: my OS is mine, not one that decide on my back, surprise with silent upgrades that lock shutdown or bootup, that show ads inside something bought to work with etc. All this characteristics makes Windows a crappy system no matter any paradigm. In Windows the user is not at the center, is just a data cow to be milked giving back crumbs in exchange.
GNU/Linux is still crappy for many reasons, but at least have a certain usability and stability, witch make it far less crappy than Windows.
In Enterprise terms Windows have done far more work than GNU/Linux witch formally makes Windows admin a far easier job in an enterprise, however I see Windows admins always stressed and without much free time to evolve the infra they manage, while GNU/Linux ones sometimes are stressed but not for most of the time and those who want can spare time to improve...
Windows is a product made to munge money, nothing wrong with that but that's means that's an anti-user product. And that's matter MUCH.
I've used Linux a lot in the past, and especially on servers pretty much exclusively - but I've always had a Windows PC for gaming and a Mac for everything else for personal use.
In the last few months I put together a tiny low power AMD PC (the 35W 8 core 5750GE!) - and I am massively impressed by how well everything works.
Proton/Wine and the OSS AMD graphics stack run older Windows games better than Windows 10 or 11 does. The DP MST setup I have just works (unlike on Windows + NVIDIA where it loves to break). Using KDE as a desktop is more consistent as a UI than Windows 11 is.
It's come a long way, and the user experience (as someone who was expecting to dislike it) is seriously improved & seriously impressive.
edit: a lot of the niggles I used to hit have just gone away - I don't get tearing, multimonitor just worked. I haven't tried disparate DPIs and I expect that would be an issue, but even so... I'm impressed.
1) You don't have the choice of multiple Desktop Environments (When was the last time this was not true? Litestep?)
2) Windows applications and utilities tend to be GUI based. (I thought that was the whole point of Windows...)
2a) Stuff is stored in the registry (I thought linux people loved digging into and tweaking settings)
2b) Paths are different. (No kidding. But we've known this since DOS vs Unix)
3) Windows sometimes restarts itself (Again, there are settings that help, but Windows has done this for quite some time now.)
4) No apt-get|zypper|etc, must install exe or msi from the internet. Or use the awful Windows Store. (No debate there, the Windows store is awful. But installing the latest Firefox is a lot easier on Windows than Debian Stable. I rather like not having to fight with a central repository of applications.)
Those have been the complaints of linux users for over 20 years. I feel like I'm arguing on Arstechnica circa 1998.
Use the tool that's best for your job. I don't bitch about my socket set being metric when I need SAE. At this point the differences are known and well understood.
Completely agreed, and clearly the author of the article did not understand the differences before their endeavor, or they are trying to make a point -- one in which we all already know.
One real strong opinion about Windows I have is the registry, which is at its core a flawed and archaic system. It tries to bring every setting and registered library into one single infrastructure and it has been the bane of developer existence for far too long. The registry needs to die. There is nothing the registry provides that can't be done simply within the sandbox of the application. And applications should be sandboxed.
And don't get me started about NTFS. I find it odd, that the author, who claims they are coming from Linux doesn't complain about just how godawful slow NTFS is. To me this is the most egregious Windows issue. Sure, NTFS works, but when it takes 3-4 minutes to compile the same code on the same language/compiler in Windows that takes 30 seconds or less to compile in Linux, clearly something is wrong. I simply cannot develop on Windows -- efficiency is completely lost.
MacOS has the /Library/Preferences and ~/Library/Preferences hierarchies, with plist files inside of them representing individual keys and being accessible by a programmatic interface that abstracts the files away. This is the same as the Windows Registry aside from implementation details.
On Linux, at least in the Gnome side of things, there's dconf, which is again exactly the same thing as the Windows Registry, and it even has a similar implementation: a binary database file. Amusingly, the dconf wikipedia article has a whole little section full of misleading and downright inaccurate ("Most Windows applications still store their user settings in individual .ini files spread across the disk") copes to obscure the fact that dconf is the same thing as the registry.
All of this Windows hate is so tiresome. Bitter Slashdot-tier commentary from people who don't actually know anything about operating systems.
I've noticed in particular that hobbyist Linux users think that they have a profound understanding of the OS because they used a command line and text editor to do system configuration instead of a GUI, and have to type arcane incantations from Google to fix their broken systems periodically. But in reality, they know very little. See, for example, any thread with hysterical complaints about systemd. They can't even explain what systemd is, what problems it solves, and why almost everyone who actually does linux system development for a living is pretty happy with it. But they're sure it's an evil conspiracy to steal the innocence of their precious OS. They think they know a lot, but they actually know nothing.
Keep fighting the fight, though! I mean it’s not like your favorite OS is going anywhere.
These are for Windows 7, from my old files – may be different now. But how is anyone ever going to figure that out? xmodmap can be somewhat hard to use, but a least it's documented, and you can play around with it to discover stuff. Some random hex values in some registry thing? Yeah ... good luck with that.
I'm not really invested in the Windows vs Linux thing but config files in /etc never get silently changed or removed. If they are, it's a critical bug, although I've never really seen it happen.
If there are any updates to the service files, they'll be installed alongside the original file. For example, on Arch Linux, it'll be /etc/systemd/journald.conf.pacnew while the original journald.conf file will never be touched.
Reboot blocker utility https://news.ycombinator.com/item?id=19265417 (Windows Home, etc.)
Windows does not come with any compilers or scripting languages installed out of the box (or so I thought. Thanks to HN - see below - I've now learned that there are some for .NET). But luckily, I discovered HTAs, and so now I'm happily implementing a small Emacs clone in it to get out of Notepad hell and back onto a path of sanity.
Also, I'm looking for a new job.
wscript.exe can run JScript and VBScript.
PowerShell can run scripts. It has access the whole .NET runtime, so you can even make GUIs if you are determined enough.
There is a C# (csc.exe) compiler under c:\Windows\Microsoft.NET . There is also MSBuild.exe to run build scripts. If you want to get more off the beaten path there are also VB.NET (vbc.exe) and JScript.NET (jsc.exe) compilers.
If you can try typing “python.exe” in a command prompt on newer versions of Windows 10 and 11. It should open the Microsoft Store to install a modern Python interpreter.
I cannot install anything, but if the compiler is preinstalled, that will be a godsend.
Fortunately, an Emacs clone doesn't really have high requirements for a GUI, but if I end up finding HTAs too limiting, it shouldn't be too hard to port it to JScript.NET (I hope). For now, I find the ability to just use HTML/CSS for what is needed quite comfortable.
This is one reason why Excel is a popular programming environment!
The funniest part (in a shocking kind of way) was my conversation with them on the first day where I asked whether they could install Emacs for me, and the guy's reply was: "What is that?"
And if you can use WSL you basically have all the linux cli stuff available to you.
And if they don't blacklist all executables you can probably just download and run zipped packages -- powershell core, python, go, vim/neovim, and probably emacs can all be run as if they were portable apps and for most things you won't need admin rights.
WSL would be a dream, but they said to me that they basically want all machines that they're responsible for to be the same. You see, there are two kinds of sysadmins: those who take their job to be enablers for the rest of the staff (within certain constraints) and there are some that want to make it as easy as possible to themselves, nevermind if that restricts the actual users.
If you mean you're not allowed to run any executables at all unless in a whitelist then WTH, what kind of company expects developers to use such an environment, and what for?
> $ uptime
> 09:33:15 up 56 days, 16:33, 1 user, load average: 1.36, 1.29, 0.91
We have to move beyond using uptime as the measure of stability. Unless you're live patching (and I doubt most people are) all this does is tell the world you're not applying security updates in a timely manner.
Uptime gets the *system* uptime, not a service uptime. And only Kernel and glibc require reboots... And with hotpatches, a reboot isn't strictly required either.
If you're running a server and you can be sure to do a full restart of that service including any other dependencies then sure. But isn't that functionally a reboot anyway? It's not like keeping just the kernel alive meaningfully changes anything. Your services were still interrupted.
I only rebooted because I was scared of the growing pile of security updates.
Is this a necessary limitation of WSL?
I've been using Cygwin instead, so I can access Windows-native files using Linux-y tools.
Early in my career I "ran Linux/BSD at home", so it was a natural transition to Windows + WSL.
And on Win11, WSLg gives you gvim as an easy option.
EDIT: But :) There are still plenty of Windows (specifically Win11) things that aggravate me still after so long.
I have SSH OTB (its OpenSSH after all), docker-desktop and vscode all outside WSL. Why would I use WSL with its vastly inferior shell ? Docker desktop sucked tho, but its now pretty hassle free.
What do you mean, its much more convenient to use virtual machine instead of real thing ?
An actual Package Manager _is_ the installer - they are part of the OS and know how to correctly install and fully uninstall things. Someone else in this thread wrote a nice summary of this aspect here: https://jmmv.dev/2022/03/a-year-on-windows-winget.html#unins... This part is mostly true with MSI's, they're just a package format like .deb or .rpm - they just don't have any of the other infrastructure around them.
> It does in fact centralize the update flow, but that's only beneficial when you update everything at once, which I don't have any reason to be doing: either I want it on latest, with the only interruption being not quite yet, or I don't want it updating at all
Having this all centralized is actually really nice, so I wouldn't discount that. If you want to pin a package at a particular version, you can and the package manager will leave it alone. If you don't want things updated yet, just don't run the update yet.
With a package manager I have to trust one organisation, which is the same that I get my operating system from. I don't even have to trust the website that hosts the packages, since the packages are signed. It's true that someone might try to sneak malware under the package mantainer's nose with obfuscated source code, but that's much harder than sneaking it in a binary. You're practically guaranteed that the software running on your PC matches the publicly available source code, and it's built with the latest compilers and hardening flags. (7-Zip used to build without any hardening flags because they made the binary larger.[1])
It's not even just security issues I'm concerned about when it comes to trusting software. I also have to trust the software not to make global, permanent changes to my system, which isn't uncommon with Windows software[2], but basically unheard of with Linux packages - and when it does happen, it's Microsoft doing it[3]. So I'd say the primary meaningful value-add of a package manager is trust.
[1]: https://landave.io/2018/01/7-zip-multiple-memory-corruptions... [2]: https://devblogs.microsoft.com/oldnewthing/20081211-00/?p=19... [3]: https://www.preining.info/blog/2018/06/microsofts-failed-att...
For fetching development libraries, it's huge.
If I run `make` and it turns out I need libfrobnicate-dev, I can just quickly `sudo apt install libfrobnicate-dev`. I don't need to pull up a browser, Google it, find the MSI, make sure I'm grabbing the right version (Seriously why the hell does 32-bit Windows still exist?), download, and run it.
Oh, and what about when that dev library gets a new version? `sudo apt upgrade`. Done. All my libraries get updated, no need to track down 20 MSIs.
If nothing else, unlike downloading and executing a MSI, apt will download the package, verify its checksum, and verify the signature of the package itself.
In my, albeit limited, experience of showing someone how to get something on linux, the reaction usually is : "what? ....why? is it installed now?", shortly followed by : "Is there like an app i can use to install what i need instead?"
>This lets me pick the distro that’s closest to my needs and customize anything I want to change. I’ve been using Xubuntu for years and it suits me - but there are hundreds of Linux Distro’s to choose from.
That's really what it comes down to for me, it's simply how ugly I think the interface is in terms of visuals and usability. It's difficult to describe but navigating the OS feels so painful and easy to get lost in. I'm sure it's mainly to do with me lacking familiarity with it but I've never felt that way on my Mac that I use for work.
Linux is a far cry from having the perfect window manager UX but it does have plenty of options so it's easy to find something that clicks.
I gave Plasma a go but felt it was designed like the mid-2000s MS products -- tons and tons of features but buried and not discoverable.
Gnome3 is a joke. More and more reduction and laggy on every system I've used it on.
XFCE has never been my flavor; I typically use LXDE when its needed.
Xmonad and openbox were a lot of fun for awhile. I'd probably still use Xmonad if I had time to tinker.
Cinnamon, the fork of Gnome2, gets a lot right in my view. Or maybe I'm getting old.
Gaming is the only reason I'm not on Linux.
Yeah, gaming on Linux is getting better, but Windows "just works" as you said.
They don't mention the Windows 11 forced-cloud-account requirement, but that's because they got a Windows 10 laptop. Lots of their other complaints (GUI tools instead of command-line, environment variables, software installation) are incidental or the result of different design paths. They mention the forced restarts, but that's about it.
I'm surprised they don't mention the stuff that Linux users (and power users who actually care about controlling their device) usually get upset about. Why not talk about the awful, slow start menu rework with its web-search-by-default? Cortana? Installation process full of dark patterns? Telemetry? Windows Hello? Dark patterns meant to trick you into using Edge? Windows Defender automatically turning itself on after you disable it?
I use Linux for myself but support a number of Windows computers, and use Windows at my (non-tech) job.
The Edge dark patterns and the start menu are two particularly sore points with me. I've wrestled with both of those several times.
Another new pain point is that at work there's a piece of software on the intranet that needs Internet Explorer, and Edge keeps forgetting that it's supposed to use IE mode for it. Oh, and as far as I can tell, Edge just ignores some group policies.
Sometimes customization is useful. But Linux goes way, way too far, and the result is a system that never really meshes quite right as all the core systems can't be relied upon to be a consistent base system. Like X11 vs. Wayland - GUI apps need to support multiple compositors because of a ridiculous situation, adding complexity to the stack. Or the systemd battle, where again there's a fundamental system that should have all sorts of robust tools & UIs built on top of it that just doesn't because again there's customization where there really doesn't need to be.
Audio is almost not a joke on Linux anymore with things kinda standardizing around pipewire, although that's because it's just taking on the burden of supporting all the various APIs from all the various systems that didn't need to all exist itself.
You know what I also never have to worry about on my Windows machine? Whether or not hardware video decoding is supported & working or not.
This is my first time using Windows after a 15-year break. This is how it's been going.
This is exactly my reaction: I don't understand how people can be Ok with this. I remember seeing this more than ten years ago already: you demand your computer to shut down (maybe you're done with your work, and you need to catch a train, and your laptop needs to shut down _right now_) and it replies with a command: "Do not shut down the computer". WHAT? Why is my computer not doing what I ask it to do? I don't think it's healthy to tolerate this kind of behavior.
I guess it no different that eating crappy fast food everyday for lunch or dinner.
It seems like virtually any linux distribution you can pick at random with a dart and it would have overall better quality of life on things like a basic terminal app. Microsoft has even tried to improve their terminal a few times and it still totally feels terrible. If I didn't have to use windows for a few work things, I would never go near it again. And in future jobs, me using it at all for work is definitely off the table.
But I certainly could be missing out on a great Linux terminal. If there's one that is better than Windows Terminal, I could switch to it under WSL/WSLg on Windows 11.
Bonus: Windows Terminal's release notes occasionally include some fun nuggets like:
> You spoke up about the scroll bars being WAY TOO THIN, so we chonked them up
> Our confidence in the settings UI's Save button has led to us no longer backing up the settings JSON file. We won't be deleting the 61,000 backups we did leave on your hard drive, but what's a couple thousand kilobytes between friends?
> The breadcrumbs have been picked up and will no longer navigate you to strange cottages
> No longer will dropdown menus and combo boxes fly wildly off the screen if you scroll or drag the window! Rejoice!
:-)
Ive been using tmux with these two for years. It's everything I need and more. Ive never tried windows terminal, i usually only boot up the windows PC for gaming, and honestly once EAC and Proton work together I won't even need to do that anymore. I'll have to check out windows terminal next time im on that PC though, thanks for sharing. Always curious to hear what others are using.
I like suckless terminal. It emulates a terminal in X11. It adds copy/paste and a few other conveniences. It does nothing else. There is no scroll bar, there is no configuration, there are no menus and no combo boxes. It's just a terminal emulator, and it works.
I find it really hard to take these comments seriously with the incredibly obvious flaws you run into in the first few minutes of basic operation using MacOS.
In MacOS:
- Clicking the maximize button (the green circle) for any application won't maximize the app consistently. Sometimes an app will grow slightly, sometimes it will only grow vertically, sometimes an app will shrink slightly, sometimes an app will maximize and sometimes an app will go full screen hiding the top window bar.
- There are no keyboard shortcuts for moving or resizing windows around.
- If you have an app/file selected in Finder (MacOS' Explorer), pressing Enter will rename the file. To open the file you must instead press Cmd + Down.
These are basic operations. These are the kind of issues you'd expect from a hobby homegrown OS, not a serious product.
Option-click on the maximize button consistently maximizes.
> If you have an app/file selected in Finder (MacOS' Explorer), pressing Enter will rename the file. To open the file you must instead press Cmd + Down.
Or Cmd-O. But Enter is the standard rename shortcut on macOS. It might not be your preference but that doesn't mean it's wrong. (I find it intuitive - I have no idea what the rename shortcut is on Windows because it's not so easily discoverable.)
I don't like it otherwise, but that part's nice for some reason.
I mostly use Macs for work now, and while they do a pretty good job of exposing a Unix environment, they've been getting steadily worse over the past couple of years. I've had so many problems with recent critical OS patches that I'm debating convincing my employer to let me have a Linux machine, not that I would ever recommend that for a company who wants their employees to be productive.
That being said I'm actually really impressed at how good Linux on the Desktop is right now. I've got my whole family running KDE on NixOS and it's basically flawless.
I've used desktop Linux for a long time, and it's really, really good now. I cannot even remember the last time something didn't just work out of the box(probably my laser printer).
Still working on the last part. Parents buy and use tax software each year for some odd reason, and I don't feel like even trying to navigate through WINE.
As someone who has moved to Linux from MacOS (Gnome 42, Debian Bookworm), it has been a near seamless transition.
I expected it to consume a lot of time in overhead maintaining it - but it hasn't. It has been great so far. MacOS is still more ergonomic in a lot of ways by comparison to Gnome, but Gnome 4x has come a long way in the last few months.
At this rate it, by the end of the year I would think it the best desktop environment offered by any platform.
all you people here surprise me, I consider windows + wsl a better development environment and more nix like than osx. but maybe I'm just hurt in the head and missing something...
Could you just install Linux on your mac? That way you could also dual boot in case you need macOS on occasion.
Also, any good guides for targeting Windows APIs for Linux programmers?
That's a little odd to read considering you've got your whole family on it. I could imagine a lot of work going into internal software for the most part, are there other reasons you'd advise against it these days?
But probably WSL is you best bet for a saner environment.
Unfortunately it still leaves you with a terrible terminal emulator. IDK if you can use MSYS2 with "Windows Terminal", though. I haven't bothered to try.
For environment variables you only have to set them via the environment variable:
$env:SOMETHING = 'something'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.
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.
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.
Somebody did figure out how to make general purpose, composable GUI software: Microsoft, in the 90s, with COM.
COM is a superior model for software composition because it goes beyond the Unix metaphor of the pipe: a single communication channel that produces and accepts streams of unstructured bytes. COM objects have well-defined, strongly-typed, discoverable APIs, can live in- or out-of-process (with the same call semantics for each), and allow seamless integration between components. A custom control, for example, can be placed and configured in a visual GUI builder just the same as the controls that came with the builder.
Unix almost faded away in the 90s, and Linux never won, because Windows was simply better. More consistent, easy to use, and a joy to develop for. Old Unix hands like Larry Wall looked at what was possible in Windows and COM and said "Wow, I wish my environment let me do that!"
Microsoft's move away from component-based development and towards an "app model" is really one of the great tragedies of modern Windows. That and Windows turning into Bonzi Buddy tier spy/ad/nagware.
I would say that COM is more special case and embeddable, rather than general purpose and composable? And this is all on the developer side, rather than the user side too. If the OS and applications had just been shipped as pre-packaged collections of COM objects - which you could reuse and remix into new tools and applications, with writing piles of code, then yeah. It was close for a while, but never got all the way to userland, sadly.
I wish CAD software companies would support linux, I've tried FreeCAD and whatnot, but they're nothing like Fusion360.
I've an architect friend who wanted to ditch Windows - except for his cad software - which we run in a VM on the home server so can access anywhere.
I can choose to have anything in linux, but I rarely do (I did LFS twice, now I have dreams of lisp os and smalltalk images). And I'm tech savvy.. the percentage of world population that will even care for dealing with the papercuts of tooling / scripting is probably minuscule (based on my interactions with them normies, even to my best pedagogical efforts, I realized that it's not in their life goals, no matter how much time and money it may save them). The author may fail to realize how many people interact with software in full rote mode.. they memorize sequences of locations on screens and buttons and that's it (which I infinitely understand, I'm not judging).
Linux does have a better long term feel though, less moving parts than Windows. I have to admit that often, using windows feels like fighting a living thing that constantly want to make me experience bloat.
Never has my professional life been distilled to such an accurate description.
This whole effect even predates Linux: You can watch the archives of the "Computer Chronicles" from the late 80s to see it. You have everyone bringing in the fanciest new software wearing suits (because TV used to cost a zillion dollars a minute) and explaining state of the art OOP abstractions in the GUIs so that the machine "does the right thing" when you drag x onto y and the user "doesn't even have to think about it" (an idea that disturbs most of us because we know it's going to do the wrong thing probably 30% of the time and then you're going to have to untangle the mess.) Then they pan over to the guy at SCO who's got 5 Xclocks/Xterms on the screen who says "look, we've got graphics now! That's why people haven't been using Unix on the desktop in the past."
It's not about the graphics, it's not even about learning new UIs or paradigms like shell scripting. People genuinely do not like personal computing.
Anthropology, ergonomics, pedagogics and economics all matter for an object. I've been seeking joy and productivity in software for a while, but for people computers are rarely that.
- a requirement (especially since the web re-rooted society and administration)
- a confusing toy (you pay 1000 to click and consume music/film)
- a strange tool at work
another thing is that the computing field has either a glowing magic aura, or a dark cloud around it. Some people will be amazed by things that are not especially amazing relatively speaking [0] and some will be scared by any software or keyboard.
[0] it's easy to forget the intricacies, subtleties, beauty of pre-computer things.
I would say though that it doesn't discount sensible defaults that work for the majority of people. I only briefly used it but it seemed like elementary was on its way to towards that goal (before what seems like an implosion on the side of the company).
That's never going to eliminate the problem, the user can always screw something up or bugs rear their ugly head. The one thing is though there has to be a reason to most non-tech people outside of conceptual ideas like Freedom. Like if my dad doesn't want to spend the money for a new rig but not have the OS slow to a crawl, then I might suggest Linux. If everything is working fine, then I probably wouldn't bother.
The author also ignores (or is ignorant of) that tools in PowerShell are generally far more powerfully composable than Linux tools in a bash-like environment.
Last year I found out, powershell 5+ included a generic hashmap/table viewer, so you can get stupid simple output presentation on the fly with one pipe.
Yeah, windows have different window styles and a lot of different places to configure stuff. So what? I f* don't care.
I could run linux on the Samsung PC? Yeah, I even have it on dual boot, never use it. It is not one of my development machines, and even when I use it for things like doing experiments or learning a new language, I can fire WSL2 and run Emacs on Windows Terminal or VS Code.
I used NT 3.5, I used 90's Slackware, I used Mac OS classic. Jesus, I used MS-DOS. Any modern OS is great to me.
I just wish Linux had more high-quality commercial apps. Open source is great and all, but I'd like to just be able to pay people for building things that I rely on.
I really really don't see how you can take holier than thou view of installing software on Windows vs Linux when it seems half the packages I install on Linux never even start!
Windows is built around legacy support. They're spinning a lot of plates, which is why it feels and looks the way it does to some extent.
You criticize the author for lacking self awareness, but then turn around and do the same.
Many linux users (myself included) do not spend time 'tinkering'. I've had the same experience as the author. I've used linux almost exclusively since around 2000 and the few times I have to use windows, I'm completely stuck. It takes forever to get things done. Just helping my parents out with simple things like 'move these files', 'rename these photos', etc take hours and hours of work, whereas on linux it's like a minute.
> Linux is not really a viable alternative for most mainstream non technical users.
Perhaps that's true, but technical users are ... still users.
> They're spinning a lot of plates, which is why it feels and looks the way it does to some extent.
That's great, and while it may excuse their poor operating system, it doesn't suddenly make it a great OS.
Just how, may I ask? I never needed more than a few seconds to trigger the moving files action via the GUI.
I would dare say that's the target audience for which Linux works best, because their main usecase is to fire up a web browser. Just like a chromebook would fit their needs.
Lack of funding/alternatives/support/or interest in free/OSS software make it a hard switch to professionals doing video, photo, music, CAD, etc. work.
It's a great desktop for power users, developers and tinkerers.
Thanks to Valve investment in the platform gaming support on Linux is excellent, while not being the main target of developers. Excellent, in my opinion, cause I don't play AAA games that need ~rootkits~ kernel-level anticheat software, thus native+proton got me covered.
Queue Linus Tech Tips videos with them having issues on Linux.
This doesn't sound right. Are you sure you're starting them correctly?
It's about the most biased thing I've ever read. He even lists some advantages (it doesn't have two different copy/paste buffers) as a disadvantage.
What happened to:
* Hardware all works mostly without issue.
* Software is easy to install even if it isn't in the official store (e.g. apt).
* Power management (sleep etc.) works reliably.
* Settings are almost all GUI-accessible. You rarely have to fiddle on the command line etc.
* Every piece of hardware has worked flawlessly: Ultrawide monitor, printer, wireless keyboard and mouse, Bluetooth mouse, Bluetooth headset, usb drives.
* I am able to install most things I want using the software installer GUI or using command line apt, but sometimes I download a deb file directly, to install something that is not in apt. Other times I just download the executable and I am done (kubectl for example).
* Never had a problem with sleep, it works fine for me every time, and I use it daily.
* Settings are GUI accessible. It would be rare to be required to do something command line. I do a lot of command line work for development, but it is not really needed just to configure the OS or desktop environment.
Yes, installing third party and closed source software is much easier on Windows and there is much more of it to chose from. This is in fact my main reason for using Windows. However if you're a developer and your entire job can be done using open source dev tools then this doesn't matter.
Power management is better on Windows, but I wouldn't say it works "reliably". I've pulled many a hot, dead laptop from my backpack after it decided to wake up and kill itself after I thought it had gone to sleep. Apple is the only company that really be said to have solved this in my opinion.
Settings being GUI-accessible is at best questionable advantage. It's nice for people who don't want to use the command line and don't see its point, but if you're used to and comfortable with the command line (like the author seems to be) it is far from a selling point. Plus just because the setting exists in GUI, that doesn't in any way solve the problem of actually locating where and how the set that setting.
> * Power management (sleep etc.) works reliably.
Man, I don't know. I just got a new HP work laptop at the end of last year. Some HP "enterprise" model, nothing fancy, which only officially supports Windows. It came preloaded with win 10 pro, even though "HP recommends Windows 11". Whatever. (The pc was manufactured in November 2021, so Win11 was already out).
When I turn it on, my first impression was "damn, that's a dim screen". Even turned all the way up, with auto-dim disabled, it would still be just "meh". I rebooted in the BIOS, and it burned my eyes off.
Install Linux: I get the full brightness. Brightness keys work out of the box, light sensor, sound / mic mute leds light up as needed, Wi-Fi, BT, IR camera, fingerprint reader, everything just works.
I figure I should install a Win 11, just in case (I daily drive Linux, but work for a windows shop). What a freaking shitshow. Mostly nothing works out of the box. No brightness keys, not brightness sensor, no volume keys, the touchpad is barely usable. I have to go through multiple Windows update reboots (on a freshly created Windows install USB stick), and then start going through all the HP drivers, complete with reboots. For some reason, after the updates, the USB Ethernet adapter (from HP) doesn't work reliably anymore. And after all this song and dance, there's some USB controller that has an exclamation mark in device manager, and the webcam isn't detected. "Update the driver" doesn't find anything. There's also some weird lag with the audio LEDs. It has no idea there's an ambient light sensor. And if I tell it to sleep, it'll go to sleep and wake up after a while for no reason ("Wake up for updates" is of course disabled).
> * Settings are almost all GUI-accessible. You rarely have to fiddle on the command line etc.
But you have to fiddle with the registry. I wouldn't say that's that much better. Also, bonus points for whatever settings you do being undone on an update.
* Hardware mostly works, using the manufacture's drivers and all their bundled bloatware.
* The official store is so bad that you have to go get software a different way.
* Sleep I'll grant with the caveat that it's also mostly flawless on Linux these days so that's not really an advantage.
* Settings are all in GUIs. Want to script your configuration? Good luck!
I gather from this that you either have not read many things in your life, or you are yourself an outlier. I found it to be completely unbiased, just reporting the facts of what it is like to use Windows after having become accustomed to Linux.
> Hardware all works mostly without issue.
I have not had a hardware issue with Linux in almost twenty years.
> Software is easy to install even if it isn't in the official store (e.g. apt).
./configure && make && sudo make install is pretty damn easy to do.
> Power management (sleep etc.) works reliably.
A fair point, although it has gotten tremendously better. One of my laptops has never had a single sleep/suspend issue, and the other has an issue every several months (which is still too frequent).
> Settings are almost all GUI-accessible. You rarely have to fiddle on the command line etc.
I want all settings to be in text files, period, neither the command line nor a GUI. Just let me edit the settings!
You can install any .deb package not in the "official store" simply by typing: `dpkg -i package.deb`.
This has essentially never failed in my decade+ of using Debian-based Linux OSes.
It's pretty dang easy to install anything nowadays.
No other OS that I'm aware of shows this much hostility and contempt towards its users. It's the single most issue that turns me off from Windows in recent years.
Those control panel applets still exist because of COM interoperability with other things. Those deep-down dialogs that still use WinForms are there because some feature that MS is supporting relies on the library that produces that dialog to be present and unchanged for compatibility reasons.
Apple DGAF about backwards compatibility, which definitely has advantages when it comes to keeping things up to date, but I'd like to see someone on Apple run a game or application released for OS9. I can run games released for Windows 95 all day long, and they run well.
Those hard corners in Windows are there for good reasons. They're ugly, they give a bad impression, and the customers who rely on them are extremely grateful for them.
> having to position your windows every day rather than have the DE handle
Are you after a tiling window manager? If so, why aren't you using a tiling window manager?
> Yes, you can use third-party scripts (Autohotkey, etc.)
Are you after shortcuts for positioning your windows around? Windows already has those.
They didn't just throw their hands up and say, "this sucks" either. They really dove in to using Windows 10 for work.
UI issues aside, which I'm not that sensitive too, my biggest complaint with Windows is... I can't easily swap CTRL and CAPS LOCK. Every solution I can find involves becoming an Administrator to edit the registry, or install the SysInternals device driver (!!!) - madness!
I used to have a Mac, and it was a toggle setting. Linux as well, if gnome-tweak or the equivalent for whatever desktop is installed. And at home, I can become Administrator to do this. But at work I can't, the systems are very locked down. However on Linux even as a lowly regular user I can setxkbmap and do it.
This annoys me a ridiculous amount every time I have to work on a Windows machine.
If your laptop is not too locked down, maybe you can try the AutoHotKey portable version. Unfortunately in one particular corporate laptop I couldn't even run non-whitelisted executables so that was out.
I've been daily driving Linux (at least on my machine, work is unfortunately MacOS) for a year after 20+ years on Windows. Almost entirely GNOME, I recently switched to KDE for variable refresh rate support (it's easy enough to make KDE behave like GNOME). I had to boot into Windows 11 this weekend, after not using it for a few months, and it was a very jarring and unpleasant experience.
But it's not because of inconsistent UI which, to be fair, has seen some rapid progress. Before switching to Linux I very rarely had to visit the old control panel. I can't actually put my finger on why, maybe it feels half-baked compared to GNOME/KDE? It just feels awful to use, within the first 10 seconds. Printers are significantly more reliable with Linux. WSL is fucking fantastic.
I feel as though year of the Linux desktop is on the horizon, it's definitely a possibility.
What would that mean, for you? It seems like free desktops already work quite well for you.
I mean, it's the same story, sort of, on Linux. Edit your profile, rc files, whatever on Linux to define/change an environment variable, and it doesn't magically update in your current shell, either. Use "set" instead of "setx" and it'll affect the current shell, but not other currently running processes. Change your profile? Yeah, restart whatever app to pick up the changes. Somehow expecting this to change environment variables of already running processes? Yeah, no, not so much. Doesn't work that way on Linux, either. Processes inherit env variables from the parent process by default on both Linux & Windows. Not really sure what the concern or issue is here other than a lack of understanding of how environment variables work.
The main problem here is that this is a work machine. Generally you can't do what ever you want on those. I imagine Linux is harder to lock down in a corp environment and the complaints are rooted in that notion. WSL fixes many issues, I don't think I'd be spending much time in power shell if I had the option to use WSL.
It was a pretty big change when our (already outdated at that time) lab in college scrapped the PDP11-44 and replaced it with 20 Windows 3.0 machines and 10 Macs.
Been using Linux since I picked up a Yggdrasil CD in 1993.
Sorry to hear you can't use WSL ... it's great IMO.
I guess WSL is similar but still painful/impossible to install if you don't have BIOS access for enabling CPU virtualization.
The single thing that the author didn’t touch on that I do love is WSL. My guess is it would have been a cop out for them, but it’s where I spend most of my time these days. I even have it set up so I can ssh into my PC from Windows, which curiously takes me to a C:\ prompt, but typing WSL and hitting enter brings me to the good stuff. It has some weird limitations though, I can’t access network mounts, namely my NAS from while ssh’d into Windows for instance.
My general feeling is if Windows 7 still receive free secure updates, I'd be using it. I have no real need for anything more than Windows 7 but more secure, and don't see how any computer OS has improved in the past decade.
For security, you can Micropatch it.
I tried W7 recently and it was even better, more polished than I remembered. USB3 drivers could be an issue though. Depends on the motherboard.
Found a trick where you basically remove windows access rights to wuauclt.exe and wuaueng.dll, causing an error code 5 whenever it tries to run its update service.. so far its been stable. Not sure if this would work for other versions.
Proton/etc isn't 100% there yet- but it's doing so well at this point, I want to experience the trade-offs and see if I can live with them. Always can go back to Windows as a last resort.
I do know some trade-offs already, from my test-runs (done via dual-booting). Proton + controller vibration issues might be the top issue for me. In Rocket League vibrations happen- but like 2-3 seconds after the feedback should have happened- making vibration useless as a feedback mechanism.
I have tons and tons of games installed- many I've tried work flawlessly on Linux so far (or with easy adjustments from suggestions on ProtonDB).
I'm sure there are games I may completely lose out on- and that's what I want to experience for myself- if those gaps are fine- or maybe if committing will actually help prod me to be part of the feedback/dev/etc communities trying to improve gaming on Linux for everyone.
Either way, this is all personal hardware- work laptops are separate- so this should be a fun experiment with very little downside- I don't do anything critical on my primary home PC that requires Windows
But after trialing Linux for a while, there is so much I enjoy about it. Things are so snappy. Built in screenshot tools are so much better. So many options for utilities and small little apps that just do one thing well. Theming/customizing is great. Sure it all has its quirks, but compared to Windows it's a breath of fresh air. Respectful OS update systems (no forced restarts).
I feel like even the networking efficiency of the OS itself feels better. For instance, on Windows 11, even with 300mbps internet connection- if I download a large file in browser window A while watching a Twitch video in browser window B- the Twitch video will hiccup and buffer/etc. For some reason this never happened to me on Linux. I don't know if it's just doing better internal QoS-like things at an OS level, or if I got lucky? But it was an awesome, noticeable difference.
Same with opening many tabs at once. If I want to open a folder of 10-20 bookmarks- on Windows, doing that while watching a video causes the video to stutter for a couple of seconds. Again, this is on a 300mbps connection, 10th gen i7, GTX 3070, NVME-drive system. On Linux- I can open like 50 tabs at once with no hiccups at all. Amazing.
That's why I think the time has come for me to make the full switchover. That, and Proton's increasing maturity (and even ability to quickly work for some new titles, like Elden Ring).
My thoughts everytime using Windows.
>Sadly, nobody has ever really figured out how to make GUI software like this - general purpose & composable.
Sounds like an interesting concept.
>which means that it doesn’t have this foundation of composable software tools
They instead have an object-focused environment (PowerShell) with a foundation of composable commands (cmdlets).
>It turns out that answer to this is to install Windows Terminal.
I prefer Cmder (basically preconfigured ConEmu bundling some other programs).
>No Middle-Click Paste
There used to be True X-Mouse Gizmo but idk if it works in recent Windows versions.
There's still all of the numerous headaches of Windows, but everything has its own headaches. My work Mac for example, loses its monitor arrangement for my dual monitors about once every other day, so much so that I have a shell script to fix it.
Fails to provide single customization he is missing. Stopped reading there.
From different perspective I was trying Linux every few years in last 2 decades only to surrender it's unusable and gave up trying few years ago.
Btw. on my work laptop I keep Windows 10, I refreshed wife's laptop and deliberately chose W8.1 (instead W10/11) and not even gonna upgrade to W10, I dont see any benefit, I even think in hindsight I should go with W7 for the best performance, that was peak Windows, W10 is still somewhat usable, but from what I read about W11 I am for sure skipping that version and I see no benefits in my daily usage since W7, they are actually making my user experience with each version worse.
I like the idea of switching away from Windows, but sadly app I need for work (golden standard in my field) is not available on Linux and everything else is vastly inferior and not gonna run this power hungry app through WINE if it even worked.
Btw. my Win never restarts itself or automatically installs anything without my approval, seems like OP didn't do basic search to configure system properly.
And that's why GNU/Linux itself is far less integrated than classic desktops (Xerox, LispM), after Xerox starting from IBM, desktops was devastated to the point that from end-users desktops, flexible power tools in users hand are evolved into rigid and limited tools that try to conquer users absurdly mimicking physical desktops/classic office works (see General Magick UIs as a good example) instead of pushing a new far superior model.
The common ground is that most users do not want/fear changes, so they are easy conquered by those who sell miracles without paradigm changes, of course they regularly fails but since they captured users it's too late for them to escape. People who know something better for a reason or another suffer from the actual state of things, but that's is...
A social change is needed to change actual IT, it's not just a matter of code.
If you are into ML, the Nvidia drivers also support running from WSL2, so you don't even need to touch windows for that.
The only reason to run Linux is because its free, and you get more customization of the base OS. I run i3wm under Mint on my laptop for example.
Common put half as much effort to make Linux work with whatever is so important on the other OSes (what is it? AD/kerberos? Anti-virus? Some spying software?), and let the devs who want to use Linux and be productive!
1. winget is great and is not abandoned, but yes, don't count on it to do software updates for you. Central third-party package updates are not a thing on Windows or MacOS (outside of their app stores). Every application is in charge of its own updating.
Linux distributions can pull this off because the software they install is almost all open source. On Windows and MacOS, it's proprietary software shipped as binaries. You could force them to go through an app store, but that would require closing the platform to non-app-store installs in order to get uptake.
Microsoft is trying to encourage people to distribute software as msix packages, but because it's a backwards-compatible open platform, uptake is optional.
2. Powershell is great. You do way less text wrangling and escaping and such non-sense as you have to do with bash, and instead you interact with real functions ("commands" or "cmdlets") that take objects as arguments. You can also call into any .NET function. You can embed C# class definitions. And you can even call win32 functions with a little more work (but it's rare you wouldn't be able to accomplish something with either powershell commands or .NET functions).
BUT, it is more verbose. Accept this and you will be happy.
3. Windows is extremely customizable. You probably just don't know it. Certainly, with registry tweaks you can customize way more than you can in Gnome. And if you're willing to do some win32 shell programming, you can make it do just about anything. Hence companies like Stardock that will happily sell you software to customize Windows any way you want.
4. You can definitely get middle click paste working with, e.g., an AutoHotKey script.
5. Most of your points are petty complaints about defaults you can easily change.
BTW, you can theoretically set "active hours" for Windows, so that updates and such don't bother you so much. This is far better than it was, where Windows would basically say "I'm going to restart, you have 5 minutes to save your work". [1]
If you need to run X apps remotely, there are various X servers you can get. I've been using X410 with PuTTY successfully, though most of the time I'm in WSL instead.
Also, since you did skip the last 15 years, you have missed the "joy" of UAC prompts with Windows Vista, so you should count yourself lucky there.
[1] OK, it wasn't quite _that_ bad. But it was kind of bad.
Many people has been asking this same question on this thread. The answer is simple: backwards compatibility. That begets tough trade-off decisions. Otherwise, no product designer loves inconsistency.
The other alternatives are either to never innovate, or to keep support timeframes short.
Windows 1.0 had 100% consistent UI.
- People who know nothing about computers and don't want to.
- People who are being held hostage by some third party software that isn't built for ARM/Mac/Linux.
One can argue that Mac's satisfy the first condition as well.
Linux is for people who either don't mind learning how certain things work or outright require an understanding of how they work. Or who just want more choice in how they interact with a computer. Freedom from corporate data-mining and the privacy nightmare that is Windows...and coming soon to MacOS/iOS...is another big reason to seek alternatives.
The modern truth is that, for people with relatively simple needs, there are plenty of Linux flavors that just work as long as your hardware is not from Apple.[>=M1] These flavors have app stores that help even the freshest of newbies find media players, games, office apps, browsers, whatever. The fact that so many contemporary apps run either in a browser or use things like electron also further diminishes the requirement of Windows.
Even Microsoft realizes that Windows OS as a thing isn't something to explicitly sell to people anymore. They have been taking a page from Apple and trying to market how lovely it integrates with Xbox, Teams, the CloudPC versions, whatever. They've also hilariously made Windows 11 look like MacOS/various Linux DEs by transforming the taskbar into a dock and making the start menu look incredibly like Whisker/KDE's menu setup. They are also introducing stuff like virtual desktops, etc like they are some sort of revolution despite being on Linux DE's for eons.
Truth is that there's never been a better time to re-evaluate your computing needs and make some thoughtful choices about your workflows, your privacy, what you actually need vs what's actually on offer in these platforms.
Windows is for:
- People who just want an OS that works without tweaking anything
Linux is for:
- People who want to customize their OS
- People who don't want their data to be collected & shared
- People who don't believe closed-source software is ethical
It's simple as that.
> - People who know nothing about computers and don't want to.
> - People who are being held hostage by some third party software that isn't built for ARM/Mac/Linux.
- people who like to use a wide array of hardware without giving a f** about compatibility concerns [1]
Those same people might know about computers at least as much as you and as a bonus point, might be less arrogant than you.
[1] Because it's the hardware manufacturer's responsibility to make their hardware compatible with Windows, and the vast majority of them do it, competently enough.
There are plenty of reasons to use Windows. There are more compelling reasons to use Linux for my personal tooling, but I am not the other person. In this case, its a choice of good, better, and best. Personally, I don't care if my car mechanic is a Windows user so long as they can do their job.
If you think Linux protects from viruses, corporate data mining, or more privacy, I suspect you either only use a command-line based browser, are a white-lister with pihole, or are unaware just how actively many utilities are collecting info on you.
Some of my observations:
1) Linux is great when it is working. It handled at higher load better than Windows. Being able to choose lighter DE when working on a lesser powerful machine were great. Being able to customizing definitely make this more versatile in different environment. Windows does provide modest default -- there are things I don't like about it but at same time (personally) it doesn't bother me too much.
2) Update is more or less caused unpredictable outcome on Linux -- hibernation stops working from one version to another for instance. It actually got worse as the update cycles accumulates. On earlier version of Windows, OS rotting was a thing, but this seems to be bit more severe on desktop Linux these days.
3) International support is bit weak on Linux. (Particularly Japanese in my case.) Most I could make it work. It ranged from input method is not showing up in correct place (bit common -- annoying but easy to workaround) and more severe ones (like Chrome bug[1] -- issue that seems to exist from version 55, still open.)
4) Command line wise, PowerShell definitely made it light years improvement over "command.com" or "cmd.exe" on Windows. I actually like PowerShell that I was using PowerShell Core on Linux for later part of my "Linux era" too.
Both Windows and Linux has its own strength, and weaknesses. But I don't know if I miss Linux so much as a desktop, to be honest. (and if I'm so inclined, these days I do have mean to use WSL for some edge cases where I need Linux.)
[1]: https://bugs.chromium.org/p/chromium/issues/detail?id=952181
But aside from that Windows is fine for me... I don't find there's anything I can't do easily.
"I am a software & web developer - and Linux is a toolbox, full of highly polished tools, crafted over decades by software developers, for software developers. Windows is… not that. It’s a commercial OS, aimed at users of Word, Excel & Outlook, pretty much. You can feel this difference all the time that you’re using it - it pervades everything."
Isn't this just familiarity?
When I use Linux I hardly imagine it to be some magic developer playland, at least not without a lot of my own work put into it to make it so... just like my experience in Windows.
That's because MS's basic selling point is that nothing gets removed. I mean, obviously over time some things do get removed, but they're deprecation timeline is measured in decades.
Some of the things they deprecated in Vista they notified people they were going to deprecate when they released the new versions at the launch of XP. That's how long they gave people to shift over.
They seem to have finally picked some UI overlords to make decisions, but sadly they're bad decisions... and doing it bit by bit.
Now, the lesson here is not "Linux sucks" but rather, avoid Nvidia.
Of course, I didn't write a rant article about switching to Linux because I'm sure a lot of problems stem from my own lack of experience. I wish this author had recognised the same thing.
Wow, Linux on the Desktop is in great shape!
After Microsoft went to far with their Edge bullshit and "always online and always logged in" and hidden ads and spyware I had enough. So, I've started to play around with some Linux distros in a VM. It was OK. Ubuntu LTS was great. Fedora, too. Linux Mint also.
Some weeks later I installed Linux Mint on my workstation. I had to resolve one smaller issue with the NVIDIA driver, but using Linux was one awesome experience. Super fast, super easy. Linux Mint is really nice and easy for people coming from Windows.
I've recently installed Ubuntu 22.04 LTS beta and it is simply fantastic. (Note: Wayland has fractional scaling issues, so I recommend XOrg if you need fractional scaling.)
I don't think I'll ever understand why there are about 8 versions of System Preferences in Windows 10. And they all look different. Can anyone tell me what the difference is between Control Panel, Settings, Computer Management, Systems Configuration?
Question - Does secure channel come into play on every git operation? I would expect that it only comes into play when dealing with a remote repository (e.g. clone, push), right?
If so, what's the breakdown of your git operations that requires remote repo access? Would it help if you pushed using Git for Windows but did most of your other operations in WSL?
> I'll ever understand why there are about 8 versions of System Preferences in Windows 10
There's no good excuse for it; just legacy cruft. Same as with the different window styles.
Don't use scoop. The community and developer aren't sufficiently active. Use choco. Chocolatey should ship with the os.
Otherwise, have at it. Yes, Windows Terminal is great and should ship with the OS.
I’m a life long Windows user (game dev). I’m fully convinced that Linux and macOS are both garbage dumpster fires for development. Linux and Mac users are fully convinced that Windows is a dumpster fire for development. I’m not sure who’s right and whose wrong.
There’s a lot to be said for the devil you know.
Recently I started to do linux development under Windows10/WSL2, worked very well so far except I can not do mouse select/paste easily. It's more responsive than running a virtualbox+linux inside Windows. I still do my work with Linux, Windows is just a host OS for that, and WSL2 is good enough to the point I no longer use Virtualbox+linux.
the big issue i have with windows is that it normalizes a whole bunch of approaches to computing that i think are bad. i think this is particularly problematic in the context of software design and development. people are influenced by what they interact with everyday...
The most annoying part, for me, is having to double-install certain tools both inside and outside of WSL (e.g. having to install git or openjdk twice). But it's a comparatively minor irritation, given how much better WSL2 works in general than previous solutions.
Why do I still need both Control Panel and Settings?
Where is the cohesive, discoverable model for the (admittedly shedload of) possible settings?
I understand MSFT like to keep backwards compatibility but as a 20+ years Windows native user (and later MSFT shop sysadmin) at this stage I use a browser and google to tell me where to find the setting I need.
To be fair, as a light linux user I do the same for linux. But that isn't a money making enterprise for millions of users.
Even better when it ruins a $1000 piece of billet by rebooting the computer controlling a CNC mill in the middle of an operation.
But Linux is working on catching up. For example, Fedora now ships this "systemd-oomd" that will randomly kill very large processes on system with >64GB ram even when there are terabytes of memory free and which won't stay disabled if you disable it with conventional tools.
Your powershell profile script path is also available using `$Profile`. You can access a clipboard history by pressing Win + V.
You must be kidding me. I wouldn't want to be in charge of distributing proprietary software on Linux. That would be a nightmare. Downloading an .exe might be prehistoric, but it is a piece of cake for the developer.
By making your software closed-source, you take responsibility of distribution, and that's a significant cost.
Doing it the Windows way makes it easier for you, sure, but it doesn't make it better. It makes it more difficult and dangerous for your users, which in turn devalues your product.
Be interested in hearing both sides of the coin, from laptop to server. Everyone seems to love bashing on Windows (including me) but someone must like it...
(except for the obvious DirectX & games reason)
Ahh, this guy didn't get the memo. With modern Windows you're just temporarily borrowing the computer, but Microsoft is in charge of it. They decide what programs you can run, which folders you can look in, which files you can delete and yes, they decide when it updates, even if you're in the middle of something important.
So I installed Fedora. I find it doesn't have a tray to minimize icons into due to a conscious design decision going forward. Unfortunately two obscure pieces of software that I use require this: steam and seadrive. Well shit. I find some tweaks that enable this, most don't, and after half an hour I can get it to show a tray. I install keepassxc from their app store and it can't open my database or key file because the file browse window doesn't seem to open. I also have issues with seadrive but plugging in a external usb mouse solves it and I realize I can't right click wit the touchpad.
So I wipe it and try Manjuro. Taking care not to destroy my windows partition which is the default option it boots fine. I update everything and the wifi card no longer shows up in settings. I mean I can lsusb, find it with dmesg but it has errors.. After an evening of tinkering and trying suggestions online ranging from changing windows power settings to editing config files to installing older drivers nothing can get it to work. No reasonable consumer would be into this.
So I wipe it and install Manjuro again. Everything the same and it works after updating so I chalk it up to a failed update. This is on a laptop basically designed to run linux with a small set of possible hardware.
Plus to boot, I am happy I printed my bitlocker key because windows refused to initially boot with secure boot now disabled.
I still don't really understand why people say this, but it made me a little worried when making the switch from macOS two years ago. My experience has been incredibly smooth. I run arch on a System76 Lemur Pro and, for the most part, this has been the most problem-free system I've ever used. I had some kernel issues at some point which were solved by just keeping the kernel version back until the bug was fixed. By contrast, I never had that option on macOS when something stopped working or became annoying.
I have a number of colleagues who use various flavours of ubuntu on different machines (Dell, Lenovo, etc.) and do almost no configuration and they seem to be perfectly happy (with a small exception: compositor issues when sharing screens on zoom, but that seems to be it).
But yeah, Windows is designed like the author said for people that use word and outlook and excel. So if you don't need much but the usual buttons to click it just works.
But it's so limited. It's designed to just work for the broadest user set, and over the iterations has been honed for that user set, if you're a power user of a machine it's too limiting. Linux is freeing, but that usually means a little rocky start and some setup. Once that's done though, you've got it made. You won't be clicking through a bunch of dialogs and GUI stuff, unless you really want to.
"Linux isn't ready for prime time" isn't exactly right, it's not for prime time. Like all free software, it is for people who can get utility out of it, no more, no less.
I disagree with the non-composable software comparison. Comparing Windows GUI composition with CLI composition is apples and oranges.
Let's leave GUI tools out of this and compare the Windows apples to the Linux apples. Windows has PowerShell and what's even better: it's about robust object-oriented composition rather compisition by fragile text parsing. In PowerShell, you can pipe well-formed command output (objects) as well as tell which information you want to see and in which format. List, tabular, JSON... You can also use this shell on Linux because Powershell Core is cross-platform.
Sure, there are strong arguments in favor of the more Unix-like shells too but I strongly disagree that Windows commands lack composition. It did for a long time, but that's many years ago now.
Environment Variables: I honestly find I'm updating env vars mid-session and wanting them refreshed immediately pretty rare these days. But if you must have this, I hear Chocolatey installs a helper utility to re-read them (refreshenv) that can also be grabbed "stand-alone".
Bad Terminal: The much improved Windows Terminal is preinstalled with the latest versions of Windows and can be set as the default terminal.
Clipboards: Try Microsoft PowerToys for multiple clipboards and much more. No computer enthusiast should honestly be on Windows without PowerToys.
SSH: So this is no issue as Windows has Powershell, in turn with a normal SSH client. I don't really understand this one. I'm confused over which Windows version he is comparing to.
Map Win+Enter to open Windows Terminal impossible?? Interesting one, because the Windows key is normally off limits due to being reserved for system shortcuts. But that just makes for a fun challenge. Two tools involved to achieve this: Windows enumerates shortcuts via the task bar area. The first icon activates with Win+1, the next Win+2 and so on. The aforementioned PowerToys allows reassigning existing shortcuts to new shortcuts. See where I'm going here? Put the Windows Terminal icon somewhere in your task bar. Assign Win+(position) to Win+Enter in PowerToys. Done!
---
This article really highlighted to me how deep the Windows ecosystem in fact is, and how it matters to stay on top of things. Especially since Satya Nadella took Windows out of its slumber and straightened out past misdirections since the Ballmer era, things have moved pretty quickly forward. Today, I find Windows to be a pretty strong development platform with the mature Powershell, as well as the smoothly integrated WSL2.
I have that installed, I think? Are you talking about this: https://docs.microsoft.com/en-us/windows/powertoys/ ?
As far as I can see, there are no clipboard things in PowerToys, currently?
Either way - I don't want multiple clipboards or history or a clipboard manager, though, I just want the Primary Selection thing from Linux. I just want any text selection anywhere to be automatically kept somewhere and allow me to paste it in on a middle mouse click. I would _love_ to be wrong, but I don't think that's a thing on Windows?
> Clipboards
Or use CopyQ wich is FOSS, the best and x-platform
I don't want multiple clipboards or history or a clipboard manager, I just want the Primary Selection thing from Linux.
I just want any text selection anywhere to be automatically kept somewhere and allow me to paste it in on a middle mouse click. I would _love_ to be wrong, but I don't think that's a thing on Windows?
I wouldn't want to deal with Windows as a daily driver by any means.
X11 supports this by allowing programs to "swallow" each other - the XEmbed protocol as well as normal IPC can be used for communication between them. Older desktop environments and window managers (CDE, FVWM, etc) can use this to compose programs. Some minimalistic window managers rely on this using single-purpose tools like dmenu.
BeOS, as mentioned elsewhere also has a very limited form of OLE-like functionality.
I'm sure there are others but TBH i think MS came closest, but they abandoned the entire idea after they decided to focus on .NET. FWIW the underlying tech is still there and in theory such QB-like-VB-lite app could be made but nothing really exposes reusable controls anymore so it'd be pointless. After all having the tech and ability is only half the battle at most, you also need applications to support it and nowadays everything GUI is made to be cross platform agnostic so any such solution would need to work everywhere there is a monitor, a keyboard and a mouse - not impossible but much harder nowadays than when computers were synonymous with Windows.
beos did
It's not that putty is better than using ssh in my terminal of choice on Linux, it's more that it has the only decent terminal implementation on Windows that I know of. I am a daily user of Linux and Windows and the copy/paste workflow in cmd.exe and powershell is just broken for me, in putty it's reliable enough that I am fine.
The only way I can stomach development on Windows is a) VS Code + Remote extension and have a terminal in VS Code open and before that worked b) QtCreator for C++ or anything Javabased where I simply don't need a CLI. Well ok, I still need a CLI for git, but not the usual stuff. I am a heave user of cut/sed/awk/grep etc.
Similarly I love the gnome spotlight search and wish it was also useful in windows.
After all, someone is writing software for all those 80% market share desktops and Xbox games consoles.
Well no, PS and pwsh has their own terminals.
PowerShell, therefore, uses the same console host as the legacy Command Prompt does[1]. It just styles it differently.
[1]: The version of PowerShell that comes with windows also ships with something called the “PowerShell ISE,” which is a different UI for PowerShell that offers no terminal emulation capabilities and bears only a passing resemblance to a console window.
[2]: it used to be part of CSRSS, but in Windows 7 it became a standalone application.
While this is true, the UX of PS/pwsh and default cmd differs enough what to me their behaviour is differs enough to treat them differently.
Pls explain.
It's good for serial stuff.
The problem is mainly just that standard putty stores those in the registry instead of files, but there are forks that fix that. I even have one I made for a former employer that makes those session files clickable, and has a few other enhancements like detecting your default printer for passthrough print automatically so you can save a session that has working printing without hardcoding a local printer name.
I can't point to that right now because the company was sold and the new company took down everything that had the old company name on it. I have to de-brand it then I can put it back up, but by now I think several other forks are as good.
It did not. All it did was tell OS/2 users about the world of Windows software. When Microsoft finally launched a slightly less horrid version of Windows most users migrated to it, leaving OS/2 but a footnote in history where it concerns desktop use.
Enter the current situation: Windows is a horrid mess, it consists of layers of plaster upon plaster upon jury-rigged interfaces built on quicksand. For those who are used to the way things work on Linux it feels like an enormous step back, like having leaden shoes and gloves fitted for no good reason. This problem is supposedly "solved" by the addition of WSL which enables you to run Linux applications in Windows. It runs most Linux applications quite well even though performance is lacking in many ways. Does this solve Windows' problems, though?
I find it always amazing how Linux users claim you can't customize or tinker Windows, which is plain wrong. Basic search in Windows docs shows it:
> You can’t customize anything!
You can customize a lot of things, and even, make your own Windows "distribution": https://docs.microsoft.com/en-us/windows-hardware/manufactur...
> It’s a commercial OS, aimed at users of Word, Excel & Outlook, pretty much.
The dev-tools are not included, yes, because most of the users doesn't need it. The windows devtools are excellent. Take a look at Event Tracing for Windows as an example.
> Non-composable Software ... The command line tools
Yeah and Powershell exists ? You can pipe objects with Powershell.
> Paths
Sigh: https://docs.microsoft.com/en-us/windows/deployment/usmt/usm...
> Installing Software
chocolatey.
> multiple clipboards
win+v
> to match my Linux workflow
Exactly, stop, don't, you will scream at a Windows user if they try to use their Windows workflow on Linux, why are you doing the same thing ?
> The dev-tools are not included
PowerShell is excellent dev tool OTB. Anything else is cinst/winget install away in seconds. While winget is new thing, Choco is there for around decade and it has everything and most up to date, on par with Arch.
> Sigh: https://docs.microsoft.com/en-us/windows/deployment/usmt/usm...
Can you explain this a bit more? If I type cd CSIDL_DEFAULT_DOWNLOADS does that take me to the Downloads directory of $USER? And does that mean I can script against that envvar path?
I think part of the issue is these kinds of Windows accessibility improvements are not as discoverable as the ArchWiki. You mentioned spinning your own distro of Windows but where are the Medium articles or distro respins out there?
> > Installing Software
> chocolatey.
To be fair to the author, they did conclude scoop was the best choice (with examples of use aplenty) and I agree. I much prefer scoop to choco but I'd like to hear why you prefer it.
Here's the smell test:
If I stop working on something and go to the shop, or to sleep, or say "It's 8pm on Friday, I can pick this back up on Monday", can I reliably walk away and have my stuff (apps, sessions, etc.) where I left it when I come back?
Not. A. Hope.
I've done all the regedit hacks, the group policy changes, the mouse jiggler, but it's never enough.
Your computer shouldn't fight you. Homeservers have uptimes measured in weeks or months, that's what I need my desktop to be like.
The uptime of my Linux machine (general server/media machine) is… A few months at least. Probably half a year at this stage.
The Mac (main work machine) has an uptime of at least 1-2 weeks.
The Windows (gaming) machine. Haha, no. Turn off in the evening, start up in the morning. Loads Steam UI in full screen, and nothing else. Given its purpose, I feel a mixture of love and loathing towards it.
So, my personal experience agrees with yours, with the exception of MacOS. It'll definitely be where I left it.
- enable sleep after 20mins
- enable hibernate, after 50mins
- disable all timers interrupts
That would make your machine hibernate itself w/o dumb restarts, activity. Ugly as ugly goes, but it appears to be betterI have disabled updates and defender among other things tho.
> when you install a Linux distribution, it’ll start off either all KDE or all GTK,
Yes, you definitely start off with that... and you may even be able to maintain that with GTK to some extent... but if you want to use KDE, you will most definitely end up with a few GTK apps which will look out of place. And don't even get me started with other DEs.
Windows, with all the 10 vs 11 and old style vs new style apps, feels much more coherent.
> You can’t customize anything
You don't need to because things actually work.
> I am a software & web developer - and Linux is a toolbox, full of highly polished tools, crafted over decades by software developers, for software developers.
Huh? I do all my development on Windows + WSL2 and run all my software on Linux servers. There is exactly ZERO tools I miss.
> Non-composable Software
Absolute nonsense. Not only does PowerShell is extremely powerful, you can also pipe output from a PowerShell command to a Linux command. The following shows an example of grepping through PowerShell history.
cat (Get-PSReadlineOption).HistorySavePath | wsl grep "ssh .*ubuntu@"
> Environment Variables look like this: %PROFILE%, instead of this: $HOME; which is fine, just different; although PowerShell seems to accept either form, which is nice.Unless you want to run legacy batch files, there is absolutely no reason to use legacy cmd.exe over PowerShell on a Windows terminal. Environment variables are accessed differently with $Env:VAR_NAME, which will take some getting used to, but it's fine.
> No Middle-Click Paste
There are 3rd party applications to do that and more.
Agreed - PowerShell <-> WSL integration is pretty nice. Just remember (mostly for others reading) that PowerShell has a nasty habit of automatically appending a trailing newline when piping to external commands like WSL. So you often need a "tr -d '\n'" in the WSL part of your pipeline.
Customization is not about things working but about user experience.
> There is exactly ZERO tools I miss.
Yeah, because even if you do, WLS or not, you can have them on Windows in single line: cinst curl wget less jq vim grep gnupg whatever
> Non-composable Software
Not only PowerShell which is amazing but you had few more different composing technologies all the time such as COM.
That said, some of the Windows criticisms seem silly compared to the situation in Linux, and Linux isn't without its warts.
> Did it Just… Restart Itself and Lose All My Terminals‽
My DE at work crashes and closes all my stuff somewhat regularly (perhaps once every 1.5mo or so)--much more often than Windows does. To be fair, I do more in Linux, so perhaps that's to be expected.
Beyond the occasional DE crash, there are also several other baffling glitches that I've simply learned to live with, most visibly: randomly the graphical theme will switch from dark to light. It switches back to dark simply by opening and closing the appearance settings.
Linux still feels extremely unpolished to me, but I'm vastly more productive in it.
The desktop machine, sadly has an nVidia card. Every time the screensaver comes on and provide credentials, it seems to operate at 1% capacity for a time period (that depends on how long I've been away from the computer).
Installing the nVidia drivers caused my machine not to boot any more, because SecureBoot was enabled. I tried to do the kernel module certificate signing, and failed (this process is a useful thing to present to someone who says Linux is ready for the desktop - good luck when grandma wants to sign kernel modules). I had to disable SecureBoot eventually, and now it nearly works, except the part about the screensaver. Linux is great, but the desktop system is a tragedy.
( in particular, gnome is an astonishing regression in usability compared to the alternatives, or even what was standard a decade ago)