|Winux - Windows/Linux Convergence In 2020|
|Written by Mike James|
|Wednesday, 23 September 2020|
It is a strange time when old enemies not only bury the hatchet but start to merge into a single entity. Windows and Linux, Microsoft and Open Source seem not only to be friendly but in the case of Windows and Linux merging into an undifferentiated whole - Winux anyone?
It all started with the move to .NET Core. Well it probably did, but it is too recent for a final history to be written. The .NET system was aggressively Windows- and Microsoft-only and, apart from some heroic open-source efforts on the part of the Mono team, it only worked under Windows. Then Microsoft threw away everything it had done and started over with an open-source project to reinvent .NET as a cross-platform development system and so .NET Core was born, along with much confusion and some developer suffering.
Why was .NET widened to support non-Windows environments?
Only Microsoft really knows but it seems reasonable that it was to serve the greater good of Azure. When Azure started out it mostly provided Windows-based virtual machines, but it didn't take long for it to be quite clear than its users wanted Linux and, if it was to be competitive with AWS, it needed to shift from being Windows-oriented to Linux-supporting - and it has.
Given Azure is potentially the cash cow that is to replace Windows in the future, it now becomes clear that supporting Linux is a good idea. So .NET becomes cross-platform and with .NET Core 5, or perhaps more fully in 6, in the future this task is more or less completed. There is only one version of the .NET platform and it is cross-platform.
Of course, there are still problems - aren't there always?
In particular, there is no .NET cross-platform UI and .NET Core programs tended to be command line or web-based where the UI issue doesn't arise. Eventually Microsoft realized that trying to pretend that .NET Core didn't need a UI was silly and some Windows-specific modules were rolled out to allow Win32/Forms and WPF to be used to create a UI.
As this all was coming to a conclusion, Microsoft suddenly seems to have had another realization - if Azure runs Linux, why not Windows? The Windows Subsystem for Linux (WSL) was born and you could work with Linux on a machine that primarily ran Windows. Not a virtual machine, but a hosted operating system within another operating system. Future historians might well look back on this first step as the start of the fusion between Windows and Linux and indeed Microsoft software in general and open source.
For example, why would Microsoft spend money developing an HTML rendererer for its own browser when there is an open source browser, used by Google, just sitting around waiting to be used. The Edge browser is an example of a development strategy that I think we are going to see more of as time goes on - open source + proprietary code and services.
Now we have news that Edge is going cross-platform. And why not? Chromium is cross-platform so what is surprising? What is surprising is that Microsoft is taking another step towards Linux. Of course, it all comes with some added Microsoft flavoring:
"For developers, WebView2 will be generally available for C/C++ and .NET by the end of 2020. Once available, any Windows app will be able to embed web content with the power of Microsoft Edge and Chromium. WebView2 provides full web functionality across the spectrum of Windows apps, and it’s decoupled from the OS, so you’re no longer locked to a particular version of Windows.
Also, the new Microsoft Edge DevTools extension for Visual Studio Code is now generally available, enabling seamless workflow for developers as they switch contexts."
At the moment WebView2 only seems to support Windows, but Linux support in the near future would seem logical. Also notice the way that Microsoft is building a web of dependencies - Edge supports Visual Studio Code, which in turn favors Microsoft GitHub and of course Azure. It all fits together so tightly that you really wouldn't want to go to the trouble of pulling it apart.
"Starting in October, Microsoft Edge on Linux will be available to download on the Dev preview channel. When it’s available, Linux users can go to the Microsoft Edge Insiders site to download the preview channel, or they can download it from the native Linux package manager."
And while all this is going on WSL is being expanded. Linux GUI apps are being supported in the next few weeks. If you were determined enough, you could already get GUI apps to work, but now it's official. So I can sit down at my machine, boot Windows and run Windows and Linux GUI apps.
Things have gone a long way. There was a time when I had to worry about which operating system I was using. I now routinely use ls in PowerShell and I've almost forgotten what the Windows dir command did. Which slash to use in pathnames isn't much of a problem any more and I am increasingly surprised when I find that a Linux command doesn't work under Windows.
Our current desktop hardware has enough memory and disk storage to support a mind meld of Windows and Linux - something that until relatively recently would have seemed wasteful. We are in an age of operating system bloat - get used to it and take advantage of it.
Winux here we go...
or email your comment to: email@example.com
|Last Updated ( Wednesday, 23 September 2020 )|