Archive for Linux

Microsoft Loves Linux and FOSS Because of Developers

Linux and Microsoft

This was published previously on the Amalgam Insights site.

 

For much of the past 30 years, Microsoft was famous for its hostility toward Free and Open Source Software (FOSS). They reserved special disdain for Linux, the Unix-like operating system that first emerged in the 1990s. Linux arrived on the scene just as Microsoft was beginning to batter Unix with Windows NT. The Microsoft leadership at the time, especially Steve Ballmer, viewed Linux as an existential threat. They approached Linux with an “us versus them” mentality that was, at times, rabid.

It’s not news that times have changed and Microsoft with it. Instead of looking to destroy Linux and FOSS, Microsoft CEO Satya Nadella has embraced it. Microsoft has begun to meld with the FOSS community, creating Linux-Windows combinations that were unthinkable in the Ballmer era.

In just the past few years Microsoft has:

  • Welcomed Linux and FOSS to their Azure cloud computing platform. They have even created their own Linux distribution for Azure.
  • Created the Linux Subsystem for Windows. This allows Linux server distributions such as Debian, Ubuntu, and OpenSuse to run natively on Windows. The Linux Subsystem as negated much of the need to spin up VMs with Linux for running FOSS development tools and server applications.
  • Released PowerShell for Linux and open sourced PowerShell. The PowerShell scripting language is as powerful as any available on Linux. While it is unlikely that Linux sysadmins will suddenly abandon BASH for PowerShell, it certainly is helpful to Windows sysadmins that now need to administer Linux systems.
  • Acquired Github, home for much of the Linux/FOSS community. While not strictly a Linux move, the acquisition of the popular code repository, home to much of the code in the FOSS world, shows a desire to integrate with that community (and profit form it.)
  • Acquired membership in Linux Foundation, as a Platinum member no less. This would have been anathema in the Ballmer’s time.

Why is Microsoft suddenly going full steam ahead into the Linux/FOSS world after decades of antagonism? Some of it is because of CEO Nadella. His world view seems to be different than the Microsoft of the past, even if he is a lifelong Microsoft manager.

More importantly, the acceptance of Linux and FOSS is driven by developers. The developer world used to be a Microsoft versus Linux-FOSS affair. Developers worked in a Microsoft shop, IBM shop, or FOSS/Linux shop (which included Java) and then the IBM shop merged with the Linx/FOSS one. Some companies were broken up into several “shops” for server and transactional computing (typically Linux/FOSS/Java) and desktop computing which was often Microsoft driven.

This is no longer the case. Developers move between environments, using whichever languages and stacks make the most sense for the application. On top of that, Linux and FOSS have infiltrated everywhere developers are through DevOps tools (which are often FOSS and Linux) and containers, which is a Linux technology. In addition, Linux has come to dominate the datacenter server farms and not Windows Server. To be a developer is to be part of the Linux/FOSS world even if Windows is part of the environment. Microsoft may dominate on the desktop but has had to embrace Linux in the back-end.

While the acquisition of Github was a bold move, there is still more for Microsoft to do if they wish to become viewed as “all-in” for Linux and FOSS. Native support for containers, especially OCI compliant containers, within Windows would be help developers to use Windows as their development platform and move components between Windows and Linux servers. Having to use a virtual machine image, no matter how lightweight, is opposed to the philosophy of containers. Even running containers in a Linux distribution on the Linux Subsystem for Windows is not how containers are supposed to be deployed.

A full version of Visual Studio for Linux would also help. As developers move between Windows and Linux systems, they would prefer to use the same tools. Visual Studio is an excellent development environment and would have advantages for Linux developers who code on that platform. Microsoft has taken the first step in that direction with Visual Studio Code for Linux, a Linux version of Microsoft’s excellent code editor. It’s time for the complete IDE and DevOps tool sets to become cross platform.

Of course, every Linux lover wants to see Microsoft Office for Linux.  Developers who code on Linux usually have to have a second machine to run email and Office applications or are forced to code in a virtual machine.  While this would be a help to developers, it is highly unlikely Microsoft would ever port Office to Linux. The return on investment for the development and support costs would be minimal if not negative. It would also jeopardize the Windows desktop franchise by making Linux desktops a viable alternative to Windows. It’s hard to imagine Microsoft risking both money and market share, even to appease developers.

Microsoft, after decades of outright hostility to Linux has recognized its influence in the developer world. It is in their best interest to continue to weld together the Linux and Windows worlds in ways that make it easier for developers to move between them. That means more Microsoft tools on Linux and Linux tools on Windows. No longer afraid of Linux, Microsoft should be expected to continue to embrace it as a vital component of software environments everywhere.

Why Linux Desktops Haven’t Taken Over the World

KDE Plasma Splash Screen

There’s no doubt that Linux has taken over the datacenter. Walk into any major datacenter in the world and there will be racks of Linux servers with only a handful of Windows Servers. Most cloud services are based on Linux as well. Some big banks still have ancient mainframes but many of those are using Linux. Even Microsoft has embraced Linux! To older technologists that’s like hearing the Pope has embraced Satanism. What began as a hobby more than 25 years ago is now the dominant server operating system. So why then do we see so few Linux desktops?

To answer that question, some myths need to be dispensed with immediately. They are:

  • Linux Desktops are Hard to Use. Not at all. Sure, 25 years ago when Linux was a DYI sort of operating system and everything had to be configured by hand it was damn hard to install and maintain. Now? Not so much. Linux desktops have a host of utilities that make installation, maintenance, updates, and acquiring new software easy. Snap and Flatpak are making the bundling and installation of software, well, a snap. Most major distributions* have, for years, come with utilities to find and install third party software in an application store. This was long before the Microsoft Store and Android application stores existed.
  • Linux Desktops Are Primitive and Ugly. Right away, we need to get something out of the way – aesthetics matter. If someone is going to stare at a desktop for hours on end it had better be decent enough to look at. Functionality is important too. A clunky user experience (UX) becomes a drag on productivity over time. This is why Microsoft has put so much effort into the Windows 10 UX and aesthetics over the past few years and why Apple’s macOS is still around at all.
    This criticism of the Linux desktop UX is outdated. Distributions such as Ubuntu by Canonical, Elementary OS, and Linux Mint have complete and rich user experiences. Most use a variation of Gnome or KDE Plasma desktops but, as is the beauty of Linux, they can be replaced with something that suits individual styles. Gnome appeals to a more minimalist approach, while KDE Plasma is fond of Widgets. Elementary OS uses its own variation on Gnome that makes it much more macOS-like. All use modern motifs that are instantly recognizable to the average consumer.
  • Nothing Runs on Linux. Actually, a lot of software runs on Linux, most importantly browsers. As more software is consumed through the browser, it has become the single most important piece of software for any computer to have. The two most common browsers, Mozilla’s Firefox and Google Chrome, run on Linux. In addition, there are many other browsers, such as Midori, that run on Linux including some specialized browsers that only run on Linux. A lot of software common on Windows or macOS desktops is also available for Linux including Spotify and Skype. Most open source software, such as LibreOffice and GIMP, have their roots in Linux and are also cross-platform.

Linux desktops have two obvious advantages. First, they tend to have lower resource needs. There are distributions that can run on computers with as low as 256MB of RAM, although they are very limited in what they can do. Linux can run comfortably on a computer with only 2GB of RAM and a rather tiny hard drive. A Linux desktop can run on a single board computer such as a Raspberry PI. This is why modern Linux desktops are a great way to keep using an old computer that can’t upgrade to new versions Windows anymore.

The second advantage is that it is often free. Most major Linux desktops can be downloaded and installed for free. There are also thousands of useful applications that are equally free. Unlike software from individuals which can get old and stale if the author gets bored or distracted, most free Linux software is supported by open source communities and foundations that work to keep the software fresh and modern.

Given the advantages of Linux and having debunked the myths, here are five reasons why Linux has not taken over the desktop as it has the server:

  • Free Software Comes at A Price – Support Is Not Included. Yes, there is support from the “community” but that is different than having someone to call and get guided assistance. There are paid support plans for many distributions and, while it’s still not very expensive for commercial users, paid support is relatively expensive for consumers. This is especially the case when a paid operating system, such as Windows or macOS, comes pre-installed on a computer and includes support.
  • Old Software. Everyone has legacy software. For a consumer, it might mean an old game that they love or that greeting card builder from 2001. Companies have lots of homegrown or purchased software that only run on Windows or macOS. In either case, this software is too expensive or difficult to replace even if it is only used occasionally.
  • Inertia. Whether it’s companies or individuals, it’s often easier to stick with the familiar. Investments in knowledge and support, not to mention software, are preserved. This dynamic can change when the familiar OS changes radically, such as the case of moving from Windows 7 to Window 8.
  • It’s Not What Is Used at Work. What is used at work often dictates what happens in the home. Early in personal computing, Microsoft was able to get a foothold in the workplace while Apple was looking to win over the consumer. Look how that turned out. It’s much easier to know one operating system for both work and home.
  • Microsoft Office. All of the other reasons for the lack of traction of Linux desktops can be overcome in a number of ways. One can use a switch to Linux as an opportunity to upgrade other software, learn new things, or come to the realization what home and work are different spheres of life. The one thing that Linux desktops cannot overcome on its own is that Microsoft Office for Linux simply doesn’t exist and everyone uses Microsoft Office. The open source community can push LibreOffice or any other alternatives until the Sun burns out, but it won’t change the fact that the mass of companies and individual consumers use Microsoft Office. The browser version of Office is okay, but everyone needs a desktop version either for the features or because they don’t have a decent Internet connection. Using a Linux desktop laptop on an airplane means not using Microsoft Office and having to rely on software that has a different user experience and imperfect compatibility.

There will always be individuals and companies that will adopt Linux desktops for philosophical or cost reasons. Linux is great for reviving an old computer that would otherwise be useless. It is also possible to use only Free and Open Source (FOSS) software with a Linux computer, which some people value. The same cannot be said for Microsoft Windows or macOS from Apple. Developers also adopt Linux desktops since they sync up well with the server environments they are working with. The masses of computer users, on the other hand, are unlikely to switch until Microsoft Office is available for Linux and there is a decent Windows compatibility layer. Until then Windows owns the desktop, with macOs the alternative for Microsoft haters.

* A Linux Distribution is a bundle of software that runs on top of the basic Linux system. desktop distributions include a desktop environment and a series of free applications including a browser and usually the LibreOffice office productivity suite.