Vertical and Scenario-Focused Tooling
I personally think having a variety of tools is good, especially if they can focus on different verticals, and are optimized for different scenarios/tasks. There is a saying – use the right tool for the job. And the reality is there is a wide spectrum of developers and correspondingly a breadth of requirements and expectations. Lots of professional/enterprise developers will find Visual Studio and its rich set of features + ecosystem a must-have for their work. At the same time, there is a huge number of Web developers, designers and scripters that primarily use Notepad, Textmate or a simple text editor to quickly build and manage their web sites and applications. For those folks, the simplicity that comes from the minimal set of options is a feature in itself. WebMatrix caters to that huge audience. This is true today, and was true back then.
The other aspect of “WebMatrix” that really resonates with me is that it provides an avenue for experimentation of new ideas/approaches, and learning, as well as innovation. You need speed boats and the agility they offer to explore the new, and then figure out where you want to go. We tried a number of things in the original WebMatrix – light-weight, free and web-focused tooling (I worked on Visual InterDev and missed the concept of a Web-focused SKU when the features got merged into Visual Studio). These characteristics also resonated well with the community, and I like to think the spirit of WebMatrix lived on in the form of the Express SKUs. The current generation of WebMatrix brings together a nice combination of simplified development model along with an embedded database solution (SQLCE), and a renewed focus on addressing server-side rendering (Razor). Personally, I think even more important than these building block technologies, is the notion of starting from applications and focusing on customizing them rather than building new applications from scratch. The concept of a rich ecosystem of working applications as a starting point is critical in fueling further growth of the platform as the underlying frameworks mature, and for competing.
There were many ideas left unfinished in the original WebMatrix. For example, the online component gallery, and messenger/chat integration. Perhaps they were a little early back then. However, in this day and age of twitter, and social development (stack overflow, github etc.), it would be interesting to further that vision, and explore what an IDE can do to incorporate identity and facilitate collaborative development.
Fresh User Interface
The original WebMatrix was one of the big early fully managed applications, and was written using Windows Forms. It is nice to see the prettier user interface behind the simplified and streamlined development experience. Of course, this version is built on WPF.
I do wonder – what about a Silverlight-based implementation?
What I’d really also like to see is a richer set of IDE building blocks that can be composed together more readily to build specific vertical tools and experiences, without starting from scratch each time. This is what I realized even back then – code editor, intellisense, project system, debugger, source control, are some of the obvious components, that would be interesting to share across the different tools, Visual Studio, Expression, WebMatrix and other future efforts.
It will be interesting to see how WebMatrix matures, to say the least.