Have you noticed that certain features keep turning up in more and more software? Brien Posey has -- and he thinks such standardization is on the rise. See if you agree with his observations.
Over the last year or so, I've noticed several popular trends among software publishers -- trends that seem to lead toward increasingly standardized software. Of course, standardization can mean different things. In some cases, it simply means adhering to industry standards. But in other cases, it means that certain features are starting to become universal. I thought I'd share my observations about these trends and see what your thoughts are on the subject.
Note: This article is also available as a PDF download.
1: Web application compatibility
It seems that Microsoft has finally realized the benefits of making its software cross-browser compatible. SharePoint 2010 and Exchange 2010 have been developed using existing Web standards as opposed to code that will work only with Internet Explorer. The result is that Exchange 2010's Outlook WebApp feature and SharePoint 2010 run just as well on the latest versions of Firefox and Safari as they do on Internet Explorer. Microsoft has indicated that it plans to adhere to Web standards going forward.
2: Internet Explorer 9
Microsoft has stated from the beginning that Internet Explorer 9 is going to be geared toward improving the browser's support for Web standards. For example, HTML 5 features were first introduced in Internet Explorer 8 but were not completely supported. Internet Explorer 9 will fully support HTML 5 and will finally offer support for the <video> and <audio> tags.
So why is Microsoft suddenly focusing on Web standards? Internet Explorer has historically delivered an inconsistent browsing experience from one version to the next. As a result, every time a new version of IE is released, Web developers are forced to test their sites to make sure that they work correctly with the new browser. Now that Web standards are being put into place, Web sites should continue to work with new versions of Internet Explorer, so long as the sites adhere to the standards.
3: The universal pass-through port
The practice of encapsulating packets into the HTTP protocol and then sending them through TCP port 80 is nothing new. Various software publishers have been using this technique for years as a way of getting certain types of traffic through a firewall without having to open additional ports. Lately though, this method seems to have become the de facto standard way of doing things.
I recently attended Microsoft's TechEd conference in New Orleans. While I was there, I spent some time walking through the exhibit hall and talking with as many software vendors as I could. I was amazed by how many vendors had designed their wares to tunnel traffic through TCP port 80. It was something that almost everyone was doing.
That being the case, mark my words: It will be only a matter of time before today's firewalls are considered obsolete and more intelligent, application-layer firewalls become the norm.
4: File support
Another trend I'm beginning to notice is more broad support for standardized file types. For instance, for many years you had to have Adobe Acrobat Reader if you wanted to open a PDF file. Today, countless applications can read PDF files and almost as many can create them.
Although I am using PDF support as an example, it seems that nearly every application I've been using lately supports a huge number of file types. Take Microsoft Word 2010: It is natively capable of saving files in 17 formats and can import data stored in numerous other formats (spreadsheets, images, HTML code, etc.).
There was a time when file formats were mostly proprietary. Today though, all the popular file formats are open source. This has led software publishers to support most of the popular file types, so the type of file that data is stored in tends not to be an obstruction to using the data across a wide array of applications.
PowerShell has been a part of Windows Server for quite some time now, but in my opinion, it has only recently begun to go mainstream. Microsoft is starting to build the GUI interface for many of its server products on top of PowerShell. This means that for such products, any administrative function that can be performed through the GUI can also be performed from the command line using PowerShell.
Eventually, Microsoft will be designing all its server products to be based on PowerShell. The company has already begun requiring PowerShell cmdlets to be used (as opposed to the GUI) for some of the more advanced administrative functions in products such as Exchange Server and System Center Data Protection Manager.
6: Operating system features
Over time, certain file types have become a standard. For example, ZIP files are a standard way of compressing or archiving files and .ISO files are a standard format for CD images. As such standards have become accepted, Microsoft has gradually integrated support for them into Windows. Vista, for example, included native ZIP file support. Windows 7 has built-in support for burning disks based on ISO files. Now let's just hope that Microsoft eventually builds native PDF support into Windows just as it has included PDF support in Office 2010.
7: The Hypervisor
Unless you've been living under a rock for the last few years, you are no doubt aware of virtualization's ever-increasing popularity. One reason why server virtualization and desktop virtualization have become so popular is that they provide a way of standardizing the Windows operating system.
In a Hypervisor environment, the operating system does not communicate directly with the hardware. Instead, it communicates with a thin layer of code called the Hypervisor. The Hypervisor's job is to facilitate communications between the operating system and the hardware. By doing so, the operating system can be configured without regard to the underlying hardware. This makes it possible to move a virtual machine from one host machine to another without having to reconfigure the device drivers.
In the future, I expect all Windows operating systems to run within a virtual machine on top of a Hypervisor (Windows XP Mode in Windows 7 already does). Doing so would allow the operating system to run a much more standardized configuration than is possible for an OS that has to communicate directly with the underlying hardware.
8: Windows Mobile
Today, the vast majority of large organizations support users who rely on smartphones. The problem is that there is not yet a clear standard for managing mobile devices in the enterprise. Microsoft allows for mobile device management through System Center Mobile Device Manager or through Exchange Server, but these management tools work only with Windows Mobile devices. Likewise, Blackberry and Google offer their own proprietary management solutions.
Some organizations have found it to be increasingly difficult to support only one flavor of mobile device. As a result, third-party applications have begun to pop up that offer universal mobile device management capabilities. Such products have been developed by using the APIs provided by the individual mobile device vendors.
Right now, such third-party solutions are still relatively new. As time goes on, though, look for them to become the standard for managing mobile devices. I wouldn't be surprised to see Microsoft eventually provide management support for non-Windows devices just to avoid losing out to the competition.
9: Social networking
One of the hottest trends in in computing today is social networking. In some ways, it seems that social networking features are beginning to become standard components in the current generation of software. For example, the first time I saw a demo of SharePoint 2010, I was stunned by how much it reminded me of Facebook. Likewise, Microsoft has included a social networking connector in Outlook 2010, and Windows Phone 7 will offer full integration with the most popular social networking sites.
10: Automatic updates
One last trend I want to mention is that of automatic updates. Although automatic updates were once a "Microsoft thing," today you would be hard pressed to find a software vendor that does not include some sort of update mechanism in its wares.
Do you agree that these trends signal an increasing standardization of software? Have you noticed any other trends that seem to be pushing development in that direction?