The Windows third-party developer ecosystem, carefully cultivated by Microsoft, has long been one of the most vibrant communities of its kind, adding value and innovation to the core Windows platform. Trusted third-party components can speed the development process, cut costs, and ultimately make the difference between project success and failure.
Windows is so pervasive in the technology industry that it’s likely almost every commercial developer has done some sort of Windows development at one point in time. Through the years, third-party tools, frameworks, and libraries have blossomed around the popular Windows-based technologies of the day. Today, it’s blossoming again around Silverlight and the cloud. Other areas of the Windows ecosystem include application design and code generation (IBM’s Rational, for example), SharePoint tools, SQL Server modeling and development tools, and Windows server management. Tools help make developers successful, and Microsoft itself, by design, is far from the only vendor for native Windows application development. Let’s explore this in greater detail.
Microsoft has always been a leader in user interface design, often creating Windows widgets (called Controls) for its products, then making them available to developers through the Windows Software Development Kit. Examples are the toolbar, with its associated tooltips and, more recently, the Ribbon interface. However, with special support for native custom Windows control and ActiveX control development, Microsoft also has fostered a third-party Windows widget ecosystem.
Early vendors such as Sheridan (acquired by Infragistics) offered specialized custom Windows controls. These widget libraries helped fill niches, target specific industries, and plug gaps in Windows’ own toolkit. This meant that Microsoft wouldn’t need to bear the burden of providing all of these widgets and controls, and third-party application developers were offered options through the very ecosystem that they were a part of.
This ecosystem has grown beyond single UI-based solutions and now extends to full libraries. The Boost C++ Libraries, which support the C++ Standard Template Library and other up-to-date C++ standards on Windows, is an example. In addition, communities such as Codeguru.com have grown to provide an avenue for developers to offer their libraries for all facets of Windows development to other developers within the ecosystem. This includes enhancements to the .Net framework, Windows Presentation Foundation (WPF), the Windows Phone 7 Software Development Kit, and Silverlight.
The Open Source Question
Microsoft has resisted the open source movement in terms of its crown jewels: Windows and the Office suite. Even Visual Studio has remained closed with commercial licensing, though the relatively limited Express edition is available free of charge.
This doesn’t mean that open source tools, compilers, and IDEs don’t exist for Windows. IBM’s Lee Nackman claims that the open source Eclipse IDE, along with the choice of name, was created to target Microsoft and, specifically, Visual Studio. Eclipse is known as a Java development environment, but combined with other open source frameworks, it supports native Windows application development. For example, the Minimalist GNU for Windows (MinGW) proj ect provides a complete framework and set of open source tools for native Windows development. It contains no commercial libraries, but fully supports and depends on Microsoft’s own libraries, such as the MSVCRT.DLL CRuntime for Windows.
Microsoft’s decision to make the runtime easily accessible in this form was intentional, and it has allowed for the further growth of the developer ecosystem. As a result, Microsoft can boast support for open source Windows application development without having to release and support its own software with open source licensing.
Regardless of how you feel about Microsoft’s strategy, it does result in a win-win scenario for both Microsoft and developers who want open source tools. For developers, the resulting open source market for tool and IDEs has lowered the entry costs for Windows development, increased mindshare among students, and cultivated startups around Microsoft technologies. The result is quicker and cheaper market solutions for third-party developers and an increase in Windows-based technologies being deployed in data centers.