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).
I will say in windows defense that the linux kernel seems to need updates almost every week requiring a reboot.
I'm kinda surprised it hasn't happened with all the mutual love (eg Ubuntu being the poster child for WSL)
To be fair, it doesn't bug me when I use stumpwm instead of the default WM, but the default WM is otherwise quite nice for most things.
Even at it's worst, the worst distro with the worst default behavior, it's still nothing close to as inconsiderate as Windows.
I don't understand the complaint.
We have some Windows 95-era crap that's still there because it controls stuff that would cost millions to replace and the vendor is long out of business. But certainly nobody is "logging into it" as a side note. They're physically and logically isolated. You can do it if the risks are otherwise controlled but it should be the last resort and it's extremely impractical. You basically need a situation where every single network packet allowed to go in or out is dissected and validated. And I don't just mean at the protocol level.
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.
Mostly these things are familiarity, using Windows just boils my blood though, it feels so hostile to me,
Buying and installing Minecraft client on Linux was super easy and straight forward (I did that pre-MS), buying and installing on MS Windows was a total trauma, the account process was so convoluted. Their greed just wrecks all their awesomeness.
+1
But as you well said, respecting images, tables and the like is one thing. The other is keeping fonts.
Anyhow... so many options that a single feature doesn't fit all. The problem with Windows is the lack of a uniform solution to paste without formatting (my complaint) as opposed to macOS.
Oh, to clarify: I meant: "if you're copying text along with images, you probably want to keep the text formatting [fonts etc.] too, whereas if you're only copying text, you probably don't want the formatting either." It's not a perfect heuristic by any means, but I think it'd be better than the current situation.
You have some formatted text (maybe some bold or italic in a line) on a webpage, you want to copy it into an email (lets set aside the argument that email should be text only).
I think there were a couple other programs that worked with it but I forget them! I've had quite a lot of success though as It seems like most of the programs I use respect it.
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.
Also, I had forgotten about the common use of the middle button for pasting as I have not used Linux desktops for a while. Maybe I should remap this now :)
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-...
Yeah, I'm also concerned about some of the things you mention, as I described in the finale. But about Defender, it cannot be disabled at all? I didn't know that. I have just whitelisted the few directories where I do builds to keep things speedy...
Thanks for reading.
1. FluentSearch: https://www.fluentsearch.net/. I highly recommend trying this out. It's magically and amazing, and I think this is the closest a tool has got to Spotlight on windows and also has amazing amounts of customizability. I recommend using Everything as the Search Provider, which is tried and tested solution for searching on windows.
2. Keypirinha: https://keypirinha.com/. This is another amazing tool. I believe it's would be a bit faster compared to FluentSearch with my initial tryout, but it is customized using a text file.
I know there are other alternatives that are apparently much better (another poster mentioned Keypirinha and Fluent Search, both of which look great but not OSS), but I really hope they keep tweaking PowerToys Run to try to make it a little nicer.
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.
- Webcam on MacBook Pro (some dude reverse engineered it but I packaged it into dkms .deb so I didn't have to compile every time I updated the kernel)
- vpn through company firewall (which didn't support Linux, and wasn't openvpn compatible, took absolutely ages to get it working)
- getting the thing to properly sleep, wake and not chew the battery
- fuck Nvidia and Lenovo (different laptop)
I still prefer Linux and use it as my daily driver.
I'm cherry picking here but in this case you're just doing your company's endpoint management job for them.
This was my last job and I have also spent a lot of time packaging and scripting (for autoconfiguration, I don't like presenting the end user with technical questions if we already know the answer to). On entirely supported platforms.
This kind of thing is a full time job in many companies so if you go outside of the supported path and do your own then obviously it's going to take considerable time :)
This is a recurring theme with Linux, because guess what, many companies want nothing to do with desktop Linux, for better or for worse.
So you'll have to do their job for them, as a side gig.
I agree the focus isn't there. I was managing everything "not Windows" as an endpoint architect and it was very difficult to get other teams to consider them. Makes sense because "not Windows" was less than 1% of our userbase. So I had to really push for them to select tools like VPN and antivirus that support Linux and Mac.
However we did manage. What I did see a lot was that R&D users didn't want to use the standard supported distro (which by the way I picked with their input). They complained about all the mandatory antivirus software (which was not my choice, but the security team's mandate). But really there was a very high amount of "I just want to manage everything myself" going on too. You can't have it both ways though. Either you get a managed endpoint and you have to roll with some of the decisions or you do it all yourself (and in some cases are locked out of some critical environments due to security policy)
This is fine (well fine by me, but not by our security team!) but then don't complain about how hard it is to get it set up.
I can see how WSL fits well into this for companies, though I prefer real Linux myself too. A lot of R&D users would be on Mac as it's a "Linuxy enough" OS with much less hurdles in a corporate environment (native MS Office available etc).
I dont remember exactly but i think it was Fedora 25 or 26 (or around there) where they removed some symbols because some fucking moron thought "they arent used by anything" so they pushed them to torvalds linux repo. And the changed got accepted.
You know what used them? Nvidia drivers.
So after a couple of hours fixing that, which at one point started involving rebuilding the kernel and other things that a normal user shouldnt have to EVER do, i just said fuck it, and installed Windows. That laptop is still running decently as a browser/media player at my folks
Now im just using a Mac as a day to day pc, and a windows laptop for gaming.
Even if i deal with Linux at work on servers, and with containers and stuff, i'll never go back to linux.
Windows does not have a proper central packager mechanism so if you let it, your software will get really ... floppy.
I spend way more time doing stuff on Linux than I ever did with Windows. Windows software comes from so many sources and it takes ages to find it and update.
I never really got battery life anywhere close to windows or macos and my T480 has an extended battery which weighs a tonne.
- Battery life was terrible compared to Windows (usually 3-4 hours, compared to 8 on Windows).
- The trackpad/trackpoint would often not come back after resume.
- The fingerprint scanner usually worked 20% of the time (while it always worked on Windows) and when it failed, you had to wait for a long timeout, because there is an issue where when IIRC PAM is performing authentication with one module (fingerprint), it cannot support simultaneous authentication through another method (e.g. password authentication).
- I had a Lenovo USB-C Gen 2 Dock, which worked great on Windows. On Linux, the lanes were misconfigured and HBR3 was not enabled, so it was not possible to use an external 4k screen with 60Hz.
It was the full Linux laptop experience as I remembered it. I decided to buy a Thinkpad after using Macs on the desktop for ~14 years. I had really good experiences with Linux on my Ryzen workstation as a desktop, so I thought it might be time to switch on the laptop again. Now I am fully back in Mac territory and probably won't try Linux on a laptop for at least another 5-10 years.
I could have kept the laptop since Windows worked very well. But my brain is just wired for Unix, so no dice.
I've installed various Linux distros on many laptops, and even though I could usually get everything working, the deal breaker for me was often battery life. I wonder what kind of battery life the people with RHEL on a P53 are getting.
It was a passionate love/hate relationship.
To be clear: I consider your (and other people's similar) experiences completely valid; I just wonder where the differences are. You see something similar with people reporting experiences with Debian/Ubuntu vs. Arch/Void etc, where some say one worked horribly for them and kept breaking and the other was very stable, and others report exactly the opposite!
The only serious issue I can recall was on my very budget HP laptop I got in a bind where the WiFi didn't work as Realtek didn't upstream the drivers for that when I got it (they did after a while), so I had to manually compile and load them: not something I would expect someone without Linux experience being able to do. Other than that, everything (Bluetooth, webcam, WiFi, sound) has worked fine on two Dell XPS's, that HP, and four ThinkPads for about 15 years now (although there were undoubtedly issues that I have forgotten about, none of these machines stood out as "problematic on Linux").
But this was to do with Software I was working on requiring legacy versions. I found that docker got rid of this.
Every now and again something would happen and I'd have to fix something after an update but it was very stable. I'm finding administering a Windows network is much the same. Microsoft just released an update that nuked my SMBv1 shares. So I had to fall back to SFTP. I probably should have been using that all along as it allows for a much more secure network.
When you feel like you have all the time it isn't an issue but after I barely got away from a very busy and very long work and all I want to do is rest for 2h and watch some entertainment or edit some document/form or even keep up with a hobby project and Linux eats away my evening/weekend, that's a different experience.
But I still like Linux a lot, the community makes it worth the fight.
For example Lenovo maintains a list of support laptop versions, and which Linux distros are certified on them. I believe Dell and HP have something similar. Just stick to the supported hardware/distro combos (well, you can typically run whatever distro but at least you have a good baseline), then you should be fine.
None of that was enough to push me away from it, but those problems would also exist on a custom built desktop with fully supported hardware.
Every time I do an update on the Linux PC it always breaks a bunch of things and I typically have to spend 4-12 hours to fix everything.
But the good thing is that I can usually fix everything, and after it's fixed it will stay that way and work reliably for as long as I want until I choose to do another update.
I still love Linux, the only reason I'm using Windows at all is for certain software that doesn't work on Linux (Ableton and games, also no HDR support in Linux).
Most of the other issues IIRC were annoyances more then anything else.
Recently did an update from Ubuntu 16.04 to 18.04, which completely broke lirc which is the program that runs the IR remote.
So my unhappy partner was unable to use the remote in kodi until I finally worked out how to fix it (and every aspect of how they broke it).
Looks like they just changed the way it works for no useful reason. I had to manually set up every IR button again because the remote name had changed from "mce" to "devinput-32". Why??
MythTV didn't work at all because for some reason the mysql bind address had changed so it couldn't access its own database.
Once I got that working, I discovered that the remote didn't work in mythtv either. They had changed the name of the ?file? they use to send button names. I had to make a symbolic link to the new name so the remote would work in MythTV. "sudo ln -s /run/lirc/lircd /dev/lircd". Why??
Also I had a button set up on the IR remote to shutdown kodi. That stopped working and took me more time to fix.
Kodi was also throwing some python errors, fixed by doing "sudo apt install python-backports.functools-lru-cache"
The Kodi database also got corrupted somehow, so some files weren't showing up until I deleted the database, which meant I lost the resume times on videos we were watching. I spent a fair bit of time googling and trying to fix the database but in the end, no matter what I did those files would not show if the database was active on my movies folder.
Also the Nvidia drivers needed to be reinstalled, but I expected that because that breaks with every single update.
So yeah, that was about a week of evenings to get it working back the way it was.
On the other hand, the annoyances from Windows (general sluggishness, pop up advertising, Explorer never remembering how I want things viewed, etc) are now really starting to outweigh the annoyances on Linux, so ultimately I don’t think it matters.
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”.
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.
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.
"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.
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 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.
But I get your sentiment, linux feels better than windows but I am surprised you didn't try to do things outside of the strict documented ways of your distro initially like most people.
The author isn't just being critical, their criticism is wrong because they are comparing Linux things without mentioning the tools you use in windows to do similar things. The difference is, while windows has powershell, wmi, and tons of other tools and features, you can do so much with it's equivalent of the DE that it is easy to think that is all there is to it.
What you think MS cares more about your concenrs because the couple of bucks you throw them? This is not the reality we live in.
Meanwhile Linux distros have public bug trackers an the devs are infinitely easier to reach than Windows devs. And unlike Windows you do have the source and build scripts to all components if you want something that the devs don't care for.
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.
Reboot blocker utility https://news.ycombinator.com/item?id=19265417 (Windows Home, etc.)
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.
The only place where a package manager should overwrite changes is /usr. If you made any changes inside /usr, then yes, it'll be overwritten. A user isn't supposed to mess around inside /usr, unless there's a very good reason for it. There's /usr/local but it's better to just use $HOME/.local instead.
(can you tell that I've shipped Debian packages before?)
And of course you can do anything you want in a postinst script (again setting aside policy)
The whole point of Linux distributions is having policies to protect the end user and enforcing them.
I've never really used NetworkManager on my personal setup but if you're using it, you are willingly giving control of your network settings inside /etc to it, including the DNS, which is why /etc/resolv.conf gets changed automatically. You can choose not to use NetworkManager or systemd-resolvd (while still using systemd) and they won't mess around with /etc/resolv.conf.
For network management, I do use systemd-networkd and it hasn't overwritten or changed my files in /etc/systemd/network in the past 6 years of me using Linux, not that I recall at least.
It's upto you how you manage your settings in /etc. A software will never modify anything in /etc without your choice.
Hell, the simplest thing you can do is not use either NetworkManager or systemd-resolved and edit /etc/resolv.conf to point to your favourite DNS server. That file will never change automatically and you can use whatever DNS you want.
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.
But I think you're confusing "discoverable" with "I'm already familiar with one of them." There's really nothing discoverable about '/etc'. There's no consistency in structure or even what type of configuration files are used. And that isn't even the only configuration path! There's also the smattering of random hidden folder crap in your home directory and then also the Linux registry. Sorry I mean dconf.
Meanwhile the windows registry is quite structured and strictly typed.
Maybe? It's possible I just used for convenience to quickly set up a machine. I haven't used Windows in over ten years, and I don't really recall; this is what I still have in my dotfiles repo "just in case I might need it in the future" (together with my old tcsh config and such, heh). The CapsLock/Ctrl thingy certainly wasn't a setting though.
Most (not all, most) files in /etc and ~/.config are fairly decently documented and "obvious". You're right it's not consistent or ideal, but I do find it a lot better than Windows. I spent many years repairing Windows PCs for a living and spent plenty of time mucking about with the registry back in the day, and I never found it easy to work with, at all. I've forgotten more than I remember, but there's loads of odd things in there in odd locations. A big chunk of that is not the fault of Windows or Microsoft but the fault of applications though, and in that sense it's the same as Linux: getting all application developers to use your system consistently and how it's intended to be used turns out to be hard.
For what it's worth, the registry would be much more palatable if it supported comments somehow (and if many things were actually commented!)
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.
I bet that dconf article section hasn't been touched since the bush era when it was actually mostly true.
1. Every registry key can have its own ACL (Access Control List). So you can have highly granular permissions.
2. "The registry" is not stored in one file. It's actually a few different hives which are stored as separate files. Your user-level registry settings are stored in your user profile (i.e. home directory) and roams with your user account to different machines in a domain.
#1 is pretty terrible. It's like complaining that a bicycle is a half-baked car.
#2 (and part of #1) is also irrelevant. "The format is badly constructed, fragile, endian-specific, underspecified and slow." So what? The file format is not the business of anyone actually using the registry, and nobody was making claims about the file format anyway. What you have is the APIs and the guarantees those provide you. Complaining about the file format when you will never even be accessing the file contents is like complaining that the remote engineer you hired has a rip in their T-shirt. You just care because you're breaking into the house from Linux and then getting upset that it doesn't look the way you like.
#3 is again pretty terrible. "The upshot of this is you can easily hide stuff in the Registry binary which is completely invisible to Windows." OK, so if you don't like that then don't do that. I'm sorry (?) the Windows registry was not designed with making life easy for Kali Linux hackers.
#4 is at least on the same planet as something I could consider as maybe vaguely interesting. But it's not like your life is any different on a filesystem. Even .txt files could be ASCII, UTF-8 with BOM, UTF-32, or some weird code page. If you hate that fact of life, you need to direct your hate toward the person who made the file whose contents you're trying to read.
#5 is vaguely interesting but again, practically irrelevant for people writing applications (unless you're writing a registry editor I guess). It's more relevant for end-users dealing with .reg files, and the interchange format for them is pretty obvious: follow whatever regedit does. If you find that file format poorly documented... big deal. Just export what you want and look at how it gets encoded, and you'll remember it thereafter. "The registry sucks" does not follow from "I have to spend 5 minutes figuring out how to write this text file for something irrelevant to >99% of use cases because it's not well-documented". If that's your standard then the Linux kernel would be an absolute dumpster fire with how lacking it is in the documentation department.
#6 finally something I can at least comprehend. OK, so evolution & backward compatibility introduces some warts, just like it does on Linux or any other OS. Documentation of internals could probably be better... just like with Linux or any other OS. Though "non-standardized" is a strange complaint for Windows, given there aren't 1000 different companies releasing their own Windows distributions like there are with Linux, for whom having a standard would actually make sense. And it's not like you don't have %AppData% at your disposal if you really like files.
#7 is again like #1. The registry is intended for low-latency, low-throughput access to small bits of data. The filesystem is intended for high-latency, high-throughput access to large & growing data. You don't complain that your knife can't cut down trees; you use a chainsaw instead. You need to use the right tool for the job. "It should be a database!" ...sure, so should ext4.
#8 is almost onto something here, but misses it and veers 90 degrees in the wrong direction. The argument you could make is "it's difficult to manage registry ACLs separately from the filesystem", which I could understand; Windows security is complicated, which is not great for security. You could flesh this out into a good argument here, though it wouldn't really be specific to the registry. But the grumbling (yet again) about the format of the hive file because it's not "hackable" enough for Linux users' taste really is... I don't even know what word to use for this, but a good argument it does not make. Unless your audience is Windows hackers using Kali Linux, I guess.
#9 Huh? That's not even new; both "Application Data" and "Local Settings\Application Data" were a thing before Vista. Vista just redid the folder structure for {reasons}. The new thing it added (I think?) was e.g. LocalLow, which hardly anyone has a reason to use. The registry is neither obsolete nor a mess just because you claim it so.
It took me > 1 hour to write this, so I hope it's useful.
I’ve not yet heard or read anything actually good about NTFS as compared to Mac and Linux file systems. You’re quite the outlier in my 25 years of experience within the industry of all three OSes to state NTFS is awesome.
Everyone has their favorites, I base mine on experimental data. Clearly Linux is king with compilation time. Since that affects my business work in a multitude of ways, it will continue to be my choice of dev environment. Windows is horrendous for this. I’ve tried numerous times. And with all the same hardware, there are only two main issues: file system and I/O driver/kernel. If SSDs didn’t solve I/O for windows then I’ll concede the I/O is garbage, but I’m yet to be convinced NTFS doesn’t factor in.
Simply put: Windows needs a ground-up overhaul and to stop catering to the old win32/NTOS/NTFS model. But I don’t really intend nor expect to convince anyone.
So do I. If all you care about is raw speed, sure, Linux with ext4 might be "king". But I don't just look at speed. I also look at the design both inside and outside, the capabilities, the resilience & robustness, and a ton of other things besides raw speed. Maybe those aren't relevant to you, and that's fine. They are to other folks though.
> I’m yet to be convinced NTFS doesn’t factor in.
I'm not saying it doesn't "factor in" (I'm sure you could measure some % difference across any filesystem, and you should actually benchmark against FAT32 and exFAT and whatnot before blaming NTFS), but it's not the dominant factor you can blame it on. You can read more here if you're interested (you'll have to expand the hidden comments): https://github.com/microsoft/WSL/issues/873#issuecomment-425...
> No, compilation is six times faster in Linux in almost every single language I’ve compiled using the exact same hardware setup.
I have no idea what you're doing when compiling, but I'm going to guess you either have lots of tiny files that otherwise compile very quickly (thus the slowness in opening files hits you), or you're running a ton of shell scripts in your "compilation" (process spawning is slow on Windows), or you have antivirus or something turned on, or you have some compiler with quirks like GCC. If you give more details I can help you track down what is going on, but a 6x slowdown is simply not something that you can attribute to NTFS by itself. There's something else going on.
I'm going to take a guess that you're using Unix-first tools that have been ported to Windows, rather than designed for tools Windows from the ground-up, and finding that there's an impedance mismatch here. Unix tools are designed around shoving every little thing into a tiny file (whether it's a data, script, or executable file), because that's the religion. Windows just isn't designed with that philosophy (e.g., it assumes you'll access the registry for configuration, load DLLs for external functionality, etc.), and hence Windows-native tools don't deal with nearly as many files as ported Linux-native tools do. There are lots of architectural differences (this is just one example), and they do come with their own advantages and disadvantages.
> If SSDs didn’t solve I/O for windows then I’ll concede the I/O is garbage
I'm confused... are you saying your "experimental data" is from before the SSD era? So this "6x faster" we've been arguing about your experience from over a decade ago? on hard disks? If so, that's a frustrating way to argue about these.
> Simply put: Windows needs a ground-up overhaul and to stop catering to the old win32/NTOS/NTFS model. But I don’t really intend nor expect to convince anyone.
It's kind of bizarre to read that given your experience seems to be from a different era (?) and when it is in fact Linux who has been forced to overhaul its I/O design from the ground-up with uring. (Compare Windows's IOCP from > 2 decades ago with Linux's epoll. The epoll model itself literally did not even make sense for disk I/O, never mind its implementation.) I could of course argue about the details all day, but I do agree with you that the case you're trying to make isn't convincing. That is, except if your case is "Linux is better for raw speed if you ignore everything else", in which case, yes I agree.
Moreover, if you insist on doing it the hard way, it's just a matter of copy-pasting the path in 2022 (not 1995)'s regedit and then right-click -> New -> Value. Still just as easy (arguably easier) than modifying a text file.
And Microsoft documents a lot of keys too, just not everything. Not like Linux is exactly known for fantastic documentation either.
[1] https://wiki.archlinux.org/title/font_configuration#Anti-ali...
We have a very different sense of good and bad.
Keep fighting the fight, though! I mean it’s not like your favorite OS is going anywhere.
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.
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.
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?"
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.
Also a friend told me that base64 encoded zip archives copy-pasted through pastebins and the like aren't generally blocked by most scanners out there.
It runs a lighweight copy of vscode entirely in the browser.
It looks like the emacs keybinding extension is available for use.
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.
Really not every CVE in the kernel applies to every system and configuration. You can compile the linux kernel in all kinds of different ways and a decent number of security vulnerabilities found in any given year only apply to unusual configurations.
Even then, no.
[1]: https://www.cvedetails.com/vulnerability-list.php?vendor_id=...
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.
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 ?
In my experience, there's never a good time to update/reboot. I always have multiple applications and tabs open, and always several tasks in flight.
For many years, I had Windows set to not automatically update. Now, given the rapid speed with which vulnerabilities can be exploited, I'm personally glad that it does.
In a corporate environment, though, as the blog author is in, it's really going to be the IT policies that dictate this. They typically have the ability to update not just Windows, but any other software on the system. And often do.
That's one of the reasons that IT departments do prefer (and sometimes dictate) Windows -- It does make it easier for them to secure the multitude of systems for which they are responsible.
That said, I don't know of many third-party apps that require a reboot.
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.
Is this a necessary limitation of WSL?
I've been using Cygwin instead, so I can access Windows-native files using Linux-y tools.
I wonder which VM based "shared files" is the fastest.
You can use Windows versions of development tools (Java, Python, Node, etc) and you mix them with Cygwin. It's a bit of an unholy alliance but you can definitely develop a ton of stuff like this, I've done it for a decade.
You just need to figure out a bit of Cygwin-fu with cygpath & related tools, to smooth over the sharp areas occasionally.
Over time I found msys2 to be a better fit. In theory they're supposed to do different things, but msys2 with no cross compilation is basically cygwin but with a package manager you can use from the command line.
But usually you don't even have to because by default the wsl shell already puts you in /mnt/c/users/name and you'd just cd into Download
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...
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.
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.
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.
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.
But I never did much development on Windows until a particular job I had about a year ago. It was a Windows shop and we did everything between WSL2, VSCode, and Windows Terminal. It was actually... a really nice developer experience. I was very pleasantly surprised by how well things worked. WSL2 isn't perfect by any stretch of the imagination, but the newer WSLg on Windows 11 solves some of those problems.
If I could have the Windows Terminal in a Linux desktop distro, I would take it in a heartbeat. I think you're in for a treat if you give it a try!
From a slightly broader view, Windows + WSL2/WSLg + Windows Terminal is a pretty great experience that manages to combine a lot of the best of both Windows and Linux worlds, IMHO.
KDE connect is also very cool, if you give it a shot definitely check it out. I really enjoy the customization plasmashell offers, and it's all integrated very well. You can also set window behaviors to keep on top and remember scale / position, which i use when debugging GUI applications so I can click around my IDE without having to shuffle windows. There's just a ton of great functionality to explore.
Very disappointing news.
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 don't like it otherwise, but that part's nice for some reason.
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.)
You would think that the easiest shortcuts should be granted operations based on how often they are likely to be used.
If I want to maximize a window in Windows:
- If hands on keyboard and mouse: Click Maximize.
- If hand on mouse: Click Maximize.
- If hands on keyboard: Windows + Up.
If I want to maximize a window on MacOS:
- If hands on keyboard and mouse: Option-Click on Maximize.
- If hand on mouse: Move one hand to keyboard, Option-Click on Maximize.
- If hands on keyboard: Move one hand to mouse, Option-Click on Maximize.
That's a lot of ceremony for moving a window.
Yes, I understand that they're not as bad as they used to be.
(I remember when they forced users to hold down a button on their keyboard before they could right click, and when they prevented users from resizing their windows on anything but the bottom right corner of the window.)
But tweaking the shortcuts would be a pretty small change in return for a large quality of life increase for users.
I mean how often do people want to rename a file/app instead of opening it. (renaming multiple files aside, since you're probably going to batch rename anyway)
> I have no idea what the rename shortcut is on Windows
In Windows: F1 for Help, F2 for Rename, F3 for Search. You'll generally see their function written on more workstation keyboard key caps.
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.
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?
Could you just install Linux on your mac? That way you could also dual boot in case you need macOS on occasion.
My understanding is that "everything works out of the box" is still restricted to very specific products line when it comes to laptops and linux. And that the new Apple Silicon macbooks might actually make this situation a lot better because most of the hardware is Apple's and they seems to keep a more or less stable binary interface between hardware components even across hardware generations (presumably for their own benefit when writing their own firmware). So while the support isn't there yet (well, it's in Alpha), once it is there we might expect Apple laptops to have some of the best linux support going forwards.
* The one exception was when I tried to buy an ARM laptop shortly after all the news about Spectre/Meltdown came out and I was frustrated with Intel's PR response to it. I never did actually figure out how to install Linux on it due to the bootloader being locked down, but that's either my own fault or maybe the manufacturer's and certainly not Linux's.
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...
Mac OS is not just Unix-like, it is a certified Unix-compliant operating system.^1
Apple prefers to keep this fact far away from the average mac consumer, but if you want to use them, the Unix/BSD underpinnings are right there. There are plenty of things to criticize about MacOS, but not being Unix-like is not one of them.
[1]: https://www.opengroup.org/openbrand/register/brand3678.htm
I feel like there's no integration between the macOS UI stuff and the Unix underpinnings.
I agree that it's annoying how much apple tries to hide the Unix nature of the OS. I have no idea why they hide the home folder from Finder by default, it's on my list of "things to change immediately" when I do a fresh Mac install/setup, as well as things like installing newer versions of Bash, Vim, etc (via Homebrew). But overall I think the pros of the OS vastly outweigh the cons. For the most part, all of the things I don't like about the OS can be turned off or tuned. And I value how things work under the hood too much to give that up.
I will admit I have never tried WSL - because I've never had a need to. I've considered trying it, but then I just tell myself I'd rather just use Linux.
Open finder then cmd-shift-h or cmd-shift-g, "~"
Both of these work right out of the box, what would you rather macOS do to be easier?
Put Home on the sidebar by default like Thunar, Nautilus, Dolphin, Caja, earlier versions of Mac OS X...
I just need control, alt, and a meta button ("Windows" button).
What is this option and command nonsense?
Funnily enough, the command key and many of those popular shortcuts (eg cut copy paste) predates windows by several years. The story goes that windows wanted to use the same shortcuts, but PC keyboards lacked a command key - so they used control instead. Since windows was backwards compatible with lots of hardware, they couldn't require a key that didn't exist on most keyboards.
Prior to that of course, Control has a long history of interacting with command-line based applications in Unix/family (eg Ctrl-C to cancel a running CLI app). Of course those same things still work in MacOS like they did in the older Unixes.
I'm used to switching between Mac and PC layouts every day, but I personally prefer the Mac keyboard layout. Command is easier to press with a thumb compared to Ctrl, which requires the pinkie. Option allows you to input special characters with far more ease compared to any PC operating system (e.g Opt + Shift + - for an em-dash compared to some crazy incantation on Windows). Control is still available as an additional modifier if you want it.
A great side-effect of using Cmd as the primary modifier is that shortcuts inside your terminal become simplified. E.g Cmd + C to copy rather than Ctrl + Shift + C, or Cmd + T to open a new tab rather than Ctrl + Shift + T.
In an ideal world, Windows would switch to using the Win key as its primary modifier instead of Ctrl. That would make life so much simpler.
From 15 years ago!
> all of your favorite *nix commands will be available
Except that they are the BSD variants, not the GNU ones.
Does BSD varient vs GNU varient matter when we're considering if something is unix-like? No one would say that the BSD distributions are not Unix derivatives. As they say, "GNUs Not Unix..."
But probably WSL is you best bet for a saner environment.
Also, it's not like Windows has no upsides to it. Relatively recently, I bought a laptop that came with Windows 10 (as they often do), and I noticed that it boots up pretty quickly to login screen; I think a fair bit faster than it takes for another OS to boot up to just the full-disk encryption prompt. It's certainly not enough to make me consider using Windows, but it's not nothing, either.
For me, personally, the answer is that I feel Windows provides a better desktop experience, but Linux provides a better command-line experience.
For more opinions on that topic, see https://www.reddit.com/r/bashonubuntuonwindows/comments/s0m8...
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.
Customization is not about "trusted vendors", its about you.
I only brought up trusted vendors because it seemed that you also want repositories of customization scripts, and I don't disagree, but it shifts the trust from the people making your operating system to you reviewing a bunch of scripts to get the system you want.
I'm making a point that people don't want that at all. That will absolutely cause analysis paralysis, there would be too many possibilities, and it would continue this idea that Linux is hard and elitist when it really shouldn't have to be that way.
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.
Yes, bash is obviously Turing complete. Yes, you can accomplish anything in bash. But it's not pretty. And since everything is just glorified string manipulation, it's hard to write rigorous and robust bash programs that don't blow up in the face of weird directory or file names or other edge cases.
This is NOT true. You are slinging around FILES. They might be text and they might not be text. Nothing keeps bash from opening up a file of raw C structs and parsing out the objects to use them.
The reason this isn't done very much is because it is seldom useful. 99% of files that users want to process on the command line are human-readable text files (this is just as true on Windows as on POSIX). The rest of what is done consists mostly of piping the non-text through programs dedicated to handling complex data.
The most common use case for "objects" is parsing JSON and tools like jq exist to do this. There are also separate tools for most of the common non-text formats.
> Yes, you can accomplish anything in bash. But it's not pretty.
Powershell one-liners aren't pretty either. If you're writing complex programs on the command line, you are making a big mistake. A bug in your code could be catastrophic. Such programs need to be tested first anyway.
Shebang files have been around for decades to solve this issue. Just write your code in a "real" language like python or perl.
... so you're parsing strings. In bash, all values are strings (with a half-exception for the the phantasms of integers and lists).
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.
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.
Never has my professional life been distilled to such an accurate description.
I mentioned her I can put another windows like thing, safer, faster, freeer, and probably easier. She agreed, when I ran Mint on a live usb key she said yeah but where are my icons and my things and lost interest in a second.
Humans are complicated.
But the broader point was that MS's market share is so huge, and most people and companies seem to care so little about these annoyances, that it wouldn't change much for their bottom line.
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.
On linux, the 'normal' way to move files is using the terminal using 'mv'. On Windows, the terminal is available, but the main interface is the UI. It's easy to move one file. It's even easy to move several files 'next to' each other in the window. It's not easy to move files matching a particular name, or across multiple folders.
So usually what happens is I have to find (perhaps even purchase) a purpose-built utility to do exactly what I want. Or, sit there and move files. Like ctrl+click on them (that interface is terrible by the way, because one click makes the entire selection go away... who thought that up?) and then move them. What other way is there without delving into automation? Windows Explorer cannot even do the most basic selection of 'select all files with NNN in the name'. It's completely useless for anything but the most silly of operations.
Also, if you have to do actual work moving files between different filesystems or across network filesystems, it becomes even worse. You have to find something compatible with Windows, install it. It's probably some ad-containing shareware non-sense, so you pay for the license so you don't get bombarded with ads, a browser toolbar, and whatever other nonsense the MSI decided to install. Then, after about 30 minutes of downloading, installing and endless clicking on the 'do you want to allow this software to do blah' (which I never really read and click by default), it may or may not work.
On linux, it's just mount.
I don't really get the complaints about linux being hard to use. Different sure. But if you're used to it; if you grew up with it, it's mind-numbingly easy.
And that's exactly where you loose every average user when trying to convince them to switch from Windows to Linux. I work with Linux every day too but the command line elitism needs to stop.
>if you have to do actual work moving files between different filesystems or across network filesystems
This is the classic HN paradox where your 'actual work', differs from everyone else's 'actual work'.
>Like ctrl+click on them (that interface is terrible by the way, because one click makes the entire selection go away... who thought that up?
In Explorer go to:
View -> Show -> Item checkboxes
>Windows Explorer cannot even do the most basic selection of 'select all files with NNN in the name'. It's completely useless for anything but the most silly of operations.Type verbatim in the Explorer top-right search-bar :
*NNN*
Then Ctrl + A, and hey presto, all files containing NNN in your current directory are selected.The way I see it, the issue here is that you don't know how to use Explorer features, but instead of looking it up and learning how to use it, you're pushing the narrative that somehow it's Explorer's fault for you not bothering to look up such solutions. It' not like you were born with the Linux command line in your head. You had to take the time to learn all those commands and practice. Same with Windows and MacOS and other OS. You need to re-learn certain mechanics whenever you switch OS and it's not the OS's fault you refuse to do that and choose to remain stuck wanting everything to work the Linux way.
>moving files between different filesystems or across network filesystems, it becomes even worse. You have to find something compatible with Windows, install it.
For which file systems do you have to do that? Windows works out of the box with the storage of any consumer device or external mass storage device sold today and in the past 20+ years, even iPhones.
The way I see it from your arguments, I only get that Windows is the wrong OS for you and your particular use cases, which is fair, but that's no argument that it's a bad OS in general for the avenge joe, as you keep moving the goals posts from copying and renaming files to linux power user activities, which you consider 'actual work'.
I have made no argument that everyone needs to use the CLI. I like it, and it is a fair criticism of Windows to say that it makes things harder by not having it. That criticism rings true for me and many others. Some other people with different experiences probably think CLI is hard. That's fine. To each their own.
The comment I responded to accused the author of being disingenous. I pointed out that (1) technical users are still users and (2) there are things that if you're used to a unix shell are simply an absolute pain to do on windows.
> The way I see it, the issue here is that you don't know how to use Explorer features, but instead of looking it up and learning how to use it, you're pushing the narrative that somehow it's Explorer's fault for you not bothering to look up such solutions. It' not like you were born with the Linux command line in your head. You had to take the time to learn all those commands and practice. Same with Windows and MacOS and other OS. You need to re-learn certain mechanics whenever you switch OS and it's not the OS's fault you refuse to do that and choose to remain stuck wanting everything to work the Linux way.
Okay, now do any file with a number at the end?
There is a search feature. Search, select, drag&drop.
> across network filesystems
Windows support SMB protocol, it should just work ?
Not everything uses SMB? Windows compatibility for anything not Microsoft is sporadic.
This is nonsense. Just embrace PowerShell.
gci | where name -match $regex | move-item $destination ls |? name -match $regex | mv $destinationInstead of learning a young, new language, I could just boot into Linux and used an established operating system?
I don't understand this mentality of 'Windows must be better'. PowerShell is alright, but as the article pointed out, the Windows terminal experience is terrible. Even the OG terminal interface on linux is better (supports copy paste with mouse for one thing).
PowerShell is 16 years old. Your kids should know it by this point. Mine do.
> the Windows terminal experience is terrible.
Was terrible. Bash is still terrible, even the creators do not like it, and it has nothing to do with terminal experience.
This doesn't sound right. Are you sure you're starting them correctly?
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.
Once we see how well the Steam Deck does I think we'll have a lot more companies willing to support Linux/Proton if the number are there.
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.
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.
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.
Trying to get something written using new, say, C++ runtime libraries shipped as a binary working on even a two year old Linux distro is a struggle in itself, meanwhile on Windows, the VC CRT bundled with VS2022 with C++22 support even runs fine as a bundled portable .dll down to Windows 7 (2009) and probably even before.
Running modern libstdc++ (as a binary, mind you) on an otherwise 2009 distro on the other hand - unlikely. Even more so if you stray out of the GNU libc option, or want to deal with libc++ for some reason (such as cross-platform parity, as it is better behaved on Windows/Mac than libstdc++), or any other edge cases out of the usual /lib, especially for GUI apps or worse, GPU apps.
* 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.
> * 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!
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.
When I open a second MS Word window, what's the config to stop that opening maximised, tell it which desktop to open on (stop it maximising all other Word windows would be good too).
If I launch an app, then switch desktops, how do I stop the app appearing on the later desktop?
Bonus if I can set where an app opens [from a shortcut, say].
Thanks, no-one else seems to know how to do these things.
Virtual Desktops and Multiple Displays are different.
If you are using multiple displays, the app will open on the display it was previously opened on. (Unless a display has been removed or added in between, in which case it gets a little trickier). If Windows can't figure out a proper guess it will open apps on the primary display.
Apps will always open in the current Virtual Desktop. There's no point setting an App like Word to open in one Virtual Desktop over another since it's likely to have a word document open in a "Work" virtual desktop and a "Study" virtual desktop.
If you want something to be opened in a specific virtual desktop, switch to that virtual desktop with Win + Ctrl + Left/Right, then open the app.
If you want to move something between virtual desktops, show all virtual desktops with Win + Tab, then drag whatever windows to whatever desktops you want.
As a bit of a tangent: Firefox's containers work amazingly with Virtual Desktops. I can have a firefox window open for personal, work, and D&D. And none of the accounts between them are shared, and there's no history pollution between them.
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.
> A patch (also called a micropatch) is a small package with a few code instructions that replace a vulnerable section of code in a running application. A patch therefore fixes a vulnerability.
> A licensed patch can get applied to a module(usually, a DLL–dynamic-link library) inside a running process in order to eliminate a vulnerability in that process. This means that the vulnerable code section in the module inside the process is replaced with corrected code from the patch.
> 0patch does not change executable files on the file system. It only modifies code in memory of running processes, which allows it to easily and quickly apply and remove patches without even relaunching applications, much less restarting your computer.
User Manual: https://0patch.com/files/0patch_Agent_User_Manual_21.05.05.1...
Windows Central article: https://www.windowscentral.com/windows-7-approaches-end-life...
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).
Experience will vary widely by game, however. From the lookups I've done on ProtonDB so far, I do understand in some titles I may lose some fps- but it's yet to have been a big enough hit to bother me
Quite a few linux distros do have QoS on network interfaces by default - eg my current linux desktop has fq_codel on physical network interfaces out of the box.
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
If more ISPs ran at the line rate of the interface, and shipped fq_codel or cake by default (it's the shaper that costs 95% of the cpu, not these algorithms), our intertubes would be a lot better. Sadly most are shipping 7+ year old kernels.
It makes such a difference to internet usage!
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.
> - 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.
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.
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.
I am most familiar with the sound panel, as I keep having to tweak my inputs and outputs cause windows likes to forget I don't want sound coming out of the speakers, for example.
Right click on the volume widget in the tray next to the clock -> sound settings -> related settings pane, "Sound Control Panel". This gets you the tried and true sound control panel we know and love.
You can also short circuit this, by selecting "sounds" from the right click menu on the volume widget, as this brings you to the same XP era sound control panel, just on the sounds tab rather than playback or recording. Its all such a mess.
To Windows XP style
Settings -> Searching Windows -> Indexer Options -> Advanced Options -> Index Location [Select new]
To Windows 2k/9x holdovers.
Settings -> Network and Internet -> Ethernet => Networking and Sharing Center -> Network Connections -> *Any connection
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.
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 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).
I think the main problem is that the simplicity of my system comes from the fact that I have set up each part of it, by hand, to do exactly what I want it to do, which is definitely _not_ realistic for the majority of users (for whom a mac is considerably easier to set up, even if less stable).
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.
> 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?
This is PoC of the top of my head
~LButton Up::
If ( A_Cursor="IBeam")
{
Send, ^c
Tooltip, Copy Selection`n%Clipboard%, 0, 0
}
Return
CopyQ will save your history and everything you select will go there automatically.EDIT: Found this, you might want to check it out: https://www.autohotkey.com/board/topic/5139-auto-copy-select...
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?
I wouldn't want to deal with Windows as a daily driver by any means.
beos did
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.
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 ?
It can't "just undone" all your changes. It doesn't work like this.
And there is official docs thats explain how to do it properly: https://docs.microsoft.com/en-us/windows/deployment/update/w...
Automatic updates via single click/CLI call to turn it off is the only solution. You don't need to know about "Windows distributions" to turn off updates, that's ridiculous and insulting. I have script but need to change it from time to time. OOSU10 also does it for now. Some hosts tinkering also...
It says to set on this key:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
I already have there NoAutoUpdate = 1 now (looks like ShutUp10 that I use set that, and I get error if I want to update, after restarting). Not sure if I hallucinate or so, but this is so trivial to set that it doesn't explain why entire Internet has a problem. I set this up after initial Windows install as concept of automatic update without your say in it (what and when) is nonsense, but Windows still managed to skip it somehow later...
Actually, I checked my notes now, and found 5 different ways to do it since obviously people had problems with "universal solutions": task scheduler, hosts, mettered connection, registry, debloater scripts etc.
You can find instructions here[0]. This method has been flawless for three years, through multiple feature updates. No longer to my long-running processes get interrupted.
It does not disable updates, just makes the reboots be on your schedule.
0: https://lazyadmin.nl/it/how-to-stop-automatic-restart-win-10...
> 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.
You can list all the working variables with `Get-ChildItem Env:`
To use the variable, put '%' around it. (Sadly no variable point to the Download directory, but that's far easier to do it with a real programming language).
> think part of the issue is these kinds of Windows accessibility improvements are not as discoverable as the ArchWiki.
That's true for these variable in particular
> You mentioned spinning your own distro of Windows but where are the Medium articles or distro respins out there?
Heh, there is no article of it, but the msdoc is extensive enough on the subject you shouldn't have an issue if you follow it.
If you need to find out a performance issue in windows and the task manager is not enough take a loot at ETW the tooling is awesome.
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.
- 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 betterMy third Macbook (company provided) doing an unexpected update. That takes 10(!) minutes. After the download.
My ElementaryOS on a 6 year old thinkpad downloads and installs 3GB+ updates weekly, without rebooting, in 2 minutes!
Mac and Windows are ages and miles behind Linux.
BTW - I have a company-owned and managed Mac and my own personal Mac. World of difference in experience between the two. My company forces updates on a frequent basis, and not just to Mac OS. There's a lot of software they manage and license on the machine and force updates.
Regardless if I manage a Mac or not, the time it takes to apply the update is the same.
It’s odd that it remembers that there were four virtual desktops, but then forgets which window goes where. And I’d swear that it remembers some, but the majority get dumped into Desktop1. Not the end of the world, and I don’t restart all that often, but it’s enough to make me hesitate come update time (“do I really want to be rearranging my desktops right now?”)
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.
I'm assuming you're not using ksplice, which has its own issues and should really only be used for critical updates when you're unable to reboot.
On the other hand, it’s very, very locked down. It barely has access to the internet at all.
Instead of dual-booting, I could give Windows a 1tb SSD that it thinks it owns, and let it live on in its little bubble.
It works really well when/if it works, but I found it to be a rabbit hole of constant tinkering.
There is some software that can pass the framebuffer back to your Linux desktop without a huge performance hit.
My Windows NUC, on the other other hand, seems to reboot itself within a week, but usually is unusable long before that because it won't wake the monitor up after sleep. And even though I disabled sleep, it still seems to not be able to wake the monitor up.
I 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.
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.
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.
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.
Got a new gpu and new psu, reused old cables from old psu, fried the rest of my components. Had to buy everything again.
( in particular, gnome is an astonishing regression in usability compared to the alternatives, or even what was standard a decade ago)