Here are a few that I did not see listed by others:
1. Automatic device discovery and driver installation (e.g., with USB devices (also USB device categories, etc.)). Instead of trying to find a driver, things just worked.
2. Automatic updates. Keeping everything updated, largely, fell into the background.
3. Graphical integrated development environments (IDEs) for software development. I realize editors can be contentious, but tab completion of variable names, automatic identification of methods within scope, syntax highlighting, easily dropping breakpoints, etc. are, in my experience, wonderful improvements on productivity.
4. What you see is what you get (WYSIWYG) text / image editors. Thankfully, I did not spend much time in the prior era, but it was, at times, maddening to get something to format correctly.
5. Ad blockers / reader modes. Again, I know these can be contentious, but, for me, these reformatting services are sometimes the only way to make some websites practically readable.
I strongly second:
-The rise of memory-managed languages (e.g., JAVA, C#, etc) with pretty robust default library sets, especially for string manipulation, graphics, and network operations.
-Moving map software, especially for mobile GPS mapping.
-Spreadsheet software.
-Being able to easily search for answers to fairly technical programming problems, compiler errors, etc. along with better access to online documentation.
>1. Automatic device discovery and driver installation (e.g., with USB devices (also USB device categories, etc.)). Instead of trying to find a driver, things just worked.
I remember well when installing Windows went from "make sure you have all the driver CDs before you start" to "just make sure you have the network card driver and the disk driver (if needed)" and then it went to "as long as you can connect to the internet Windows Update will get everything".
Before you had to get on the internet and find all the driver files yourself. The last hold out was graphics card drivers IIRC.
In my experience, you'll still want to go to the NVIDIA/AMD website to download the latest drivers. What you get from Windows Update is likely 6+ months out of date.
We must have received a very different version of nvidia.ko if yours updates with no fuss.. either that, or you are using intel/amd in which case lucky you :)
No fuss in my experience. Some distros use dkms, some rebuild the driver on the build farm as a package corresponding to each kernel update. Both are quite reliable.
Sure, but from the user's perspective Linux operates in exactly the same way as Windows. A boatload of drivers available directly from the vendor but they're out-of-date (or in the case of Nvidia not the official drivers). And it's much much more of a PITA to install out-of-tree drivers on Linux than Windows.
I’m at the point now where I won’t code without an IDE. Automatic imports, code completion, running a linter on save, nice git diff displays, finding all usages of a function - this stuff makes my life so much easier.
> 1. Automatic device discovery and driver installation
Fun story. Had Windows 7 installed on an old HDD. Decided to build myself a new PC, so I got all the parts (completely different setup than what the HDD had been in), put them all together, connected the HDD, and powered it on to see what would happen. I was shocked to see that Windows booted just fine with the new setup, like nothing had changed...
Yeah, Windows got a lot better at handling motherboard swaps.
I remember trying to do a PC overhaul with Windows 2000. I swapped out the motherboard, RAM, and CPU, and Windows would fail to boot, crashing with an INACCESSIBLE_BOOT_DEVICE error. IIRC, I managed to recover without wiping the drive and doing a clean install by putting back in the old mobo/RAM/CPU, booting up, and swapping the IDE driver from a motherboard-specific driver to a generic IDE driver (Which comes at a signifcant performance penalty because I lost UDMA support), then swapping back to the new mobo. It booted fine after that, and I was able to install the proper motherboard drivers to get UDMA support on my IDE drive.
Back in the day, I had a drive of Windows 98 that had been through two or three very different motherboards. It was a good day if it bluescreened only once, because it usually did more often.
It's a wonderful feature - I've now been through 3 full system swaps with the same OS. The only exception is software that ties it's license to a kind of hardware identifier. Even then it's a very minor inconvenience compared with the Win 98/XP years. I have a few teenage memories of pulling all nighters just to reinstall my OS and programs.
You gotta do WYSIWYG right, though. It seems like I break MS Teams once a week and have to start formatting part of my message over again. It's like someone stopped in the middle of implementing its Markdown support. I also frequently find myself trying to get the cursor out of the end of a block of formatting and back to normal formatting. I vaguely remember hearing complaints about Slack's editor at one time, too. There has to be a better way
1. Automatic device discovery and driver installation (e.g., with USB devices (also USB device categories, etc.)). Instead of trying to find a driver, things just worked.
2. Automatic updates. Keeping everything updated, largely, fell into the background.
3. Graphical integrated development environments (IDEs) for software development. I realize editors can be contentious, but tab completion of variable names, automatic identification of methods within scope, syntax highlighting, easily dropping breakpoints, etc. are, in my experience, wonderful improvements on productivity.
4. What you see is what you get (WYSIWYG) text / image editors. Thankfully, I did not spend much time in the prior era, but it was, at times, maddening to get something to format correctly.
5. Ad blockers / reader modes. Again, I know these can be contentious, but, for me, these reformatting services are sometimes the only way to make some websites practically readable.
I strongly second:
-The rise of memory-managed languages (e.g., JAVA, C#, etc) with pretty robust default library sets, especially for string manipulation, graphics, and network operations.
-Moving map software, especially for mobile GPS mapping.
-Spreadsheet software.
-Being able to easily search for answers to fairly technical programming problems, compiler errors, etc. along with better access to online documentation.