Over the past 20 years, Microsoft has been releasing a multitude of frameworks and application development platforms. Each framework has a unique set of constructs, and often requires developers to learn a new language in order to take advantage of its benefits. Unfortunately, due to the major structural differences between the languages, most old applications need to be completely rewritten to gain access to the new features. This leaves many to wonder – is it worth the effort?
Software frameworks and development tools provide features that help developers build software faster. Most frameworks have a recommended development philosophy and best practices, which help guide developers to build more reliable and secure software. More advanced development pipelines even integrate version control, code review, and architecture development tools. All of these tools together define a software platform and framework for development.
Providing tools to developers has been a cornerstone of Microsoft strategy since its early years. Even before it was developing operating systems, Microsoft was building compilers and interpreters. The first compiler / interpreter released by Microsoft was the BASIC language, soon followed by a C/C++ compiler that became the foundation of much modern software.
Over time, Microsoft released a variety of other languages and tools aimed at making development easier. Visual Basic, Fox Pro, and Access all helped programmers build applications more rapidly than with C++. Starting in the early 2000′s, however, Microsoft was no longer satisfied with providing just another tool, and championed an entirely new way of developing software with the .Net framework. This software included the release of a new language – C#, and required all programs to be rewritten to take advantage of the new libraries that made development easier.
With another daring release, Microsoft decided to do away with its traditional controls, and championed a new WPF framework in 2008 through 2012 for building user interfaces. This framework would have controls automatically update themselves based on data structures, instead of requiring the controls to be fed data directly through commands.
In the past few years, however, it seems that Microsoft is creating frameworks almost as fast as it is deprecating them. The new WinRT framework with Windows 8 now declares WPF to be obsolete, and instead of C#, C++ has again been made the cornerstone of Microsoft’s development focus. The new incoming CEO at Microsoft might change the concept yet again.
The problem with this approach is that it takes between five to ten years for a framework to truly mature and be ready to development of stable line of business applications. With new languages introduced every three to five years, the old languages are obsolete before they have even had a chance to become mainstream. Microsoft’s indecision only leads developers to give up on the Microsoft tools, and look elsewhere for a stable development ecosystem.
A possible solution to the problem would be to choose one language as the de facto platform, and add features to the platform over time, instead of requiring developers to rewrite their code every few years. Perhaps that is what Microsoft is attempting with its return to C++, however only time will tell if the winds will change soon once again.
Written by Andrew Palczewski
About the Author
Andrew Palczewski is CEO of apHarmony, a Chicago software development company. He holds a Master's degree in Computer Engineering from the University of Illinois at Urbana-Champaign and has over ten years' experience in managing development of software projects.