BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
One of the most significant features that is slated to be released as a part of Windows Server 2016 is Nano Server. Nano Server is a new Windows Server deployment model that is far smaller than even the most modest Server Core deployment.
To create such a small operating system, Microsoft eliminated any component that was not essential to the server's functionality. This included the Windows Server GUI. Although Nano Server contains a very lightweight text interface, it is primarily used to modify network and firewall settings. The interface is similar to the one that VMware provides with its hypervisors.
For several years now, Microsoft has been telling its customers that Server Core is the preferred Windows Server deployment type. Server Core marked a radical departure from a traditional GUI interface, and the upcoming Nano Server will abandon the GUI altogether. In the technical previews of Windows Server 2016, the preferred deployment method does not install the GUI by default.
If Microsoft is encouraging customers to deploy operating systems with either a light GUI interface, or no GUI at all, it seems fair to consider why Microsoft continues to produce a GUI interface for Windows Server. To the best of my knowledge, Microsoft has not made an official statement why it continues to allow GUI-based deployments, but I believe there are at least three major reasons.
The demand is still there
The first reason why Microsoft continues to include a GUI is customers still want it. Sure, there are IT pros who prefer using the command line and enjoy creating elaborate PowerShell scripts, but there are still countless administrators who prefer to point and click their way through a task. This isn't surprising when you consider Windows Server has had a GUI since its debut more than 20 years ago.
Administrators have gotten used to using a GUI, and therefore the GUI interface remains the preferred management tool for many.
Consider the backlash Microsoft received when it made the decision to omit the Start menu from Windows 8. A lot of users were angry and frustrated -- all over a single menu. Now imagine if Microsoft decided to abandon the GUI altogether.
Admittedly, it was mostly end users who were upset over the absence of the Windows 8 Start menu, and Windows Server is geared toward IT pros. Even so, the Windows 8 incident demonstrates how passionate some people can be about the interface.
For the sake of accessibility
A second reason why I feel Microsoft has chosen to keep the Windows Server GUI around for the time being is because the management tools have to run somewhere. It's likely that Microsoft will move the administrative tools such as Active Directory Users and Computers and Server Manager out of the server OS and onto either a Web interface or onto a desktop operating system. For now, being able to access the management tools from the server console is a convenience feature, especially for smaller shops.
The GUI is still a necessity
Finally, I think the number one reason why Microsoft continues to include a GUI with Windows Server is because most applications require it. The vast majority of the server side applications that I have installed over the years could not be installed without a GUI.
In Windows Server 2012, Microsoft gave us the ability to remove the GUI. One of the reasons why Microsoft chose to add this functionality is while many applications can be run without a GUI, they cannot be installed without one. The removable GUI makes it possible to install an application and then remove the server's GUI once the application is up and running.
Eventually, the Windows Server GUI will go away, but that day is most likely not to be for many years. Microsoft acknowledges there are both administrators and applications that rely on the GUI, so they are giving customers the ability to run Windows Server without a GUI, but are not taking the GUI away from those who wish to use it.
Is a free Hyper-V Server worth using?
Catch up on the top tips of 2015
How Nano Server will rely on PowerShell