King of the Hill
What VS .NET really needs is a healthy dose of competition.
By Jonathan Goodyear
One of the most important factors that determines the success of a programming language is the quality of its integrated development environment (IDE). Indeed, early versions of Visual Basic enjoyed exponential growth because of how easy it made software development. Likewise, Visual Studio (and now Visual Studio .NET) is the dominant player in the IDE market for Microsoft development languages. There are several fringe players, but none have been able to compete effectively with Visual Studio .NET for market share, most relegated to niche markets.
It seems odd that no other company has been able to produce an IDE for Visual Basic .NET, C#, or C++ .NET compelling enough to put a dent in the Visual Studio .NET crown. Other languages, such as Java, have their developer base divided more evenly among competing products. This competition forces each company into a game of "one-upmanship." The natural result of such competition is higher quality products all the way around. Even though Microsoft has introduced a lot of innovations in Visual Studio .NET, I can't help but wonder what would happen if it encountered some real competition. It might force Microsoft to push the envelope even further.
If you look around at some of the recently released IDEs that support .NET development, you can see most of the pieces necessary to create an IDE that would make Microsoft pretty nervous. Unfortunately, theses pieces are spread out among several different products from several different vendors. There are two products in particular that, if combined, would produce a hefty opponent for Visual Studio .NET (with respect to ASP.NET development): Macromedia's Macromedia Studio MX, and Sapien Technologies' PrimalCode for .NET (see References).
Each of these products has attacked the .NET IDE problem from opposite ends of the spectrum. Macromedia Studio MX (and in particular the Dreamweaver MX component) focuses on making user-interface development as easy and powerful as possible. The Dreamweaver product line, in my opinion, has long held the position as the best WYSIWYG HTML editor on the planet. With its latest MX edition, Dreamweaver adds support for ASP.NET development. The problem with Dreamweaver's approach, however, is that it relies heavily on custom tag-based controls to construct data-driven Web pages. It is not suitable for hard-core developers who like to dive into the code, which is unfortunate considering the design surface portion of the Visual Studio .NET IDE leaves much to be desired. Despite a valiant effort with its FrontPage product line, WYSIWYG HTML editors have never been Microsoft's forte. Dreamweaver has Microsoft beat, hands down, in the visual Web page-editing category.
On the other end of the spectrum is PrimalCode for .NET. Sapien did not build a WYSIWYG editor for .NET development. Instead, it concentrated its efforts on building a powerful .NET code editor. In a lot of ways, Sapien has succeeded. Some of PrimalCode's more notable features are its extremely small disk footprint (10 mb), PrimalSense (Sapien's version of the popular IntelliSense feature), a class browser, and source code control integration. As with Dreamweaver MX, PrimalCode also supports editing several other programming and script languages such as ASP, JSP, and PHP.
If you could combine the superior WYSIWYG features of Dreamweaver MX with the powerful code editing features, wizards, and deployment features of PrimalCode, Visual Studio .NET would face a strong competitor. You would even get the added benefit of Macromedia's graphics-editing package (Fireworks MX) and its dynamic client-side Web content package (Flash MX). The only notable features that would be missing are an integrated debugger and database-access tools. A temporary fix for the integrated debugger problem would be to use the Microsoft CLR Debugger (DbgCLR.exe) that ships for free with the .NET Framework. The .NET Framework exposes hooks that you could use to build an integrated debugger for the combined tool, as well. Data access really isn't needed from within a development IDE, but the Dreamweaver MX/PrimalCode joint venture could really trump Microsoft by adding advanced support for several alternative databases such as Oracle, Sybase, MySQL, and DB2.
Of course, this is all hypothetical. As far as I know, Macromedia and Sapien have no plans to collaborate on a .NET IDE, nor has either announced plans to fill the gaps in their respective products. In fact, at Microsoft ASP.NET Connections in spring 2002, Macromedia went to great lengths to emphasize that Dreamweaver MX is not a code editor; I don't know whether this was rooted in a desire to avoid direct competition with Microsoft. But the sad truth is that as long as Microsoft is the only game in town producing an end-to-end IDE, it is under no obligation to improve on its weaknesses. Healthy competition is always good for the consumer (both price-wise and feature-wise). I hope Macromedia and Sapien wake up and hear the opportunity knocking at their door. The combination of established, high-quality niche products might just lead to a whole much greater than the sum of its parts.
Jonathan Goodyear is president of ASPSoft (http://www.aspsoft.com), an Internet consulting firm based in Orlando, Fla. He's a Microsoft Certified Solution Developer (MCSD) and author of Debugging ASP.NET (New Riders). Jonathan also is a contributing editor for asp.netPRO. E-mail him at mailto:[email protected] or through his angryCoder eZine at http://www.angryCoder.com.
Tell us what you think! Please send any comments about this article to [email protected]. Please include the article title and author.