Back Draft
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.
REFERENCES
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:jon@aspsoft.com or through
his angryCoder eZine at http://www.angryCoder.com.
Tell us what you think! Please send any comments about
this article to mailto:editors@devproconnections.com.
Please include the article title and author.