I would say this analogy is not properly when talking about IPv4 to IPv6 transition. Moving from Python 2.7 to 3 is a pure software problem while moving IPv4 to IPv6 is hardware, software, and logistics problem.
There are number of embedded OSes and devices that do not have firewalls nor the ability to disable network ports. Example of these invisible world items are motors, servos, PLCs, and label printers that get configured over IP. These devices do the bare minimum to get the IP stack up and running. These UI tools also need to be updated for allowing configuring an IPv6 address.
I would love to leave IPv4 and move fully to IPv6. Currently it is not cost effect to do so at scale. Companies do not want to spend money on the extra hardware to allow their IPv4 devices to talk IPv6 when they can save that money and keep running IPv4. Nor do they want to spend money on newer hardware. I still have clients running Windows XP Embedded, hopefully air gaped, in the automation world.
*You would be surprised on the number of large corporate IT managers that rather have a completely open label printer connected directly to their network instead of bridged behind a state full firewall running Windows or Linux hosting the main product.
I would hard disagree. Give me QT to make cross-platform applications that properly manage resources, have low latency, and barely register in memory usage.
There was a cross-platform QT tool, running on macOS, Windows, and Linux, for debugging and updating the firmware for an embedded platform solution. macOS & Linux both were quick and fast to code. Windows needed more work and also an abstracted write management system because the application was bringing the OS to screeching halt while writing the debug messages to a SQLite database. The write issue was only on Windows. HTML pages / reports were being saved into the SQLite database and viewable with-in the application. This was all packed into a single file executable so nothing and to be installed, just copied to the computer and ran.
Often low-end hardware is sold in product solutions and frameworks like QT are better suited to make the end user happy with load and response time than HTML5. The only reason I find bloated frameworks being used on such hardware is because the developer only understood one programing language and one UI framework. The former developer who's job I took over jumped ship because he did not want to learn WPF and only knew WinForms.
QT, HTML5, React, WinForms, Gtk ... are all tools in a tool box and each has a proper usage. Hell, if I ever make an iPhone based application I will be learning Swift and the Apple frameworks for such a task.
On my work laptop, the only Windows 11 OS I use bare metal, the UAC prompt can take 30 seconds to one minute to show after requesting _Task Manager_ to start. IT decided to hide a number of applications behind UAC.
Newer version of Windows seem to add latency were there was none before.
Last year I ran into the issue of .NET network bindings not returning all NICs. [0] This issue has been present in the .NET since the genesis and only resolved in .NET 9. I had to create my own Win32 wrapper so everything works properly in .NET 4 frameworks ... still need to maintain Windows 7 pre-SP1 support in some applications.
Smells like Microsoft was trying to create APIs based on assumptions versus a 1:1 method that exposes managed code and hides unmanaged.
I would say the malice is from management, investors, and product leads. Developers just do what they are told. Microsoft is choosing enshitification versus quality. CEO needs to pump that stock and having enterprise locked into without alternatives helps them.
I grew up with Microsoft and now you have to pay me to use their products. I would never choose their OS for product hosting. Even their embedded / IoT is trying to force a Microsoft account and push against local user.
I also have the same Arch install from 2014 on my main hardware. Each replacement computer is nothing more then taking the old drive out, placing it into an USB enclosure, booting a USB live, setting up the partitions on the new drive, and _rsync_ the content from the old to the new, finalizing with registering the UEFI boot loader.
One just need to make sure that you use the proper _rsync_ command options to preserve hard links or files will be duplicated.
Not all software is for consumers and a good amount runs a hardware as a whole product. 2026 will be the year moving from Windows IoT / embedded to Linux as the host OS for the solutions I work on.
Personally, I find software more stable when coding on Linux and making Windows changes after it is operational. Windows takes more work with edge cases than Linux, BDS, and macOS.
Windows treats STDIN and STOUT different between console and GUI. All other OSes that I have worked on threat them the same.
Note my comment was "Linux on the Desktop", not "Linux on Embedded".
It's quite obvious that not all software is for one platform or another. It's just the vast majority of Desktop software happens to be Windows. And if that's what you're writing, targeting Win32 gets you Linux on the Desktop as well as Windows. There's no reason to write a Linux-native version and have to deal with all of the incompatibilities across distros, let alone compatibility issues over time.
That is a subjective statement. We are moving our software off Windows to Linux hosting for our products. Microsoft has made Windows hostile to the embedded market. They are are pushing a Microsoft account over local with their IoT while plugging the hacks too.
It's difficult to compare embedded to desktop. It's not a market Windows does well today with the available alternatives. And yeah, if you're embedded, by definition you're resource constrained so running Wine makes less sense.
Not so with run-of-the-mill desktop software, games or otherwise.
Visual Studios creates worker threads used for compiling C# that are reused for builds. This can be seen in task manager. Ran into a bug were the VS compiler would only work properly for one build and require VS to be restarted.
Visual Studios is like Windows, each version just seems to be getting worse with more bugs.
There are number of embedded OSes and devices that do not have firewalls nor the ability to disable network ports. Example of these invisible world items are motors, servos, PLCs, and label printers that get configured over IP. These devices do the bare minimum to get the IP stack up and running. These UI tools also need to be updated for allowing configuring an IPv6 address.
I would love to leave IPv4 and move fully to IPv6. Currently it is not cost effect to do so at scale. Companies do not want to spend money on the extra hardware to allow their IPv4 devices to talk IPv6 when they can save that money and keep running IPv4. Nor do they want to spend money on newer hardware. I still have clients running Windows XP Embedded, hopefully air gaped, in the automation world.
*You would be surprised on the number of large corporate IT managers that rather have a completely open label printer connected directly to their network instead of bridged behind a state full firewall running Windows or Linux hosting the main product.
reply