State of the platform: Are we losing? Does it matter?

Ars Technica launched a redesign today. I seem to recall that they were on ASP.NET before in some custom made CMS. Now they're on Movable Type.

I've been thinking about this a lot lately, the choices made in using a platform. I'm not interested in religion, but I'm obviously interested in ASP.NET as a platform because it's one what I know and love the best. Banks, insurance companies and dating sites enjoy use of the platform, but why is it that it seems to not take significant hold at the lower levels? Does it even matter?

I think a part of it comes out of our culture. Face it, "our" platform enjoys its most widespread use in large organizations where process and bloat are nearly an expectation. Simplicity is hard to find because by our nature we build often in unnecessary, abstract ways, trying to account for a great many what ifs. The PHP and Rails worlds, among others, get closer to doing just enough, and that's exactly what the low to mid-range folks want. Simple is good.

I also blame the community's leadership. I don't feel like we have best-in-class anything. I mean, the official ASP.NET and Silverlight forums constantly have some issue, and they're both clunky. We don't have an all-star forum app (including my own). We don't have an idiot-proof blog app. We seem design impaired (ask yourself how attractive the site is next time a Google search lands you on the answers you're looking for).

I love the ASP.NET AJAX framework. I've also totally fell in love with jQuery. The problem is that jQuery is hard to use with ASP.NET, what with the ugly client ID's and such that won't be "fixed" until v4.0. But on the other hand, I see what might be the perfect marriage for jQuery, namely the MVC framework (which I thought was supposed to be out by now). As powerful as Web forms are, I think they're hard to teach people the right way to use them. MVC challenges everything we do to make things more simple and, my hope, more accessible.

On the plus side, we've had some remarkable changes over the years for C#. Extension methods, anonymous types, LINQ, auto properties, etc., have all made life immeasurably easier. Hopefully we'll be catching up on the UI side soon.

I look forward to seeing what people are doing at Mix. That conference goes a long way toward energizing me and my attitude toward the platform. Hopefully they'll fill the seats... seems odd that they're discounting so heaviliy this late in the game.

5 Comments

  • I've been moving towards PHP because ASP.NET lacks open source web applications with a large developer community. For example; WordPress, OsCommerce, Elgg, MediaWiki, and Joomla all have a large community of users, developers and designers. Web designers are obsessed with WordPress right now because it is increasingly being used as a content management system.

  • Webform is and always has been a disaster. It completely fails throughout the spectrum - being heavyweight makes it a poor choice for twitter and digg-like sites, while being untestable makes it a poor choice for enterprise developers. ASP.NET did well to hold on to its existing users for as long as it did and was largely aided by shortcomings on the Java side (but has thoroughly gotten its ass handed to it in the ruby/python era).

    The move towards ASP.NET MVC (even though it has shortcomings), dumping ASP.NET ajax, and dynamic languages will help.

    Unless you plan on developing for the web for the rest of your life, I'd worry more about the other platforms (I know I am). Complete obliteration on the mobile markets (phones and mp3s) and a questionable business model on netbooks is enough to make you learn Java or objective-C.


  • I can think of 3 factors that come back again and again across the whole platform: Churn, incompleteness and "will not be fixed".

    Churn: We all know about the churn. Things keep changing and thus the platform remains immature.

    Incompleteness: I'm sure that everyone who reads this can come up with one. My most recent encounter with this is that BindingList does not have sort methods. The internet shows plenty of "its easily implemented" postings, but its easier to just add a simple sort method that sorts the underlying List. Having 2 collection types that each do only 80% of the job isn't good enough.


    "will not be fixed": Older things don't get fixed; Sure, we all prefer to work on new things instead of fixing old bugs, but the bugs are still there and they need to be fixed. Commerce Server is a good example of this, they are building a new Commerce framework on top of Commerce Server but when it comes the problems that currently exist in CS, they are not listening and they don't appear to be fixing either.










  • The really big problem, surely, is hosting and the lack of decent SQL server hosting. It's simple to get a LAMP stack hosting plan for little or no money, but much less so for MS stuff.

    All the other things are problems too - in particular WebForms, the biggest leaky abstraction in history - but it does come back to being able to install the basic software for a reasonable cost and for more than one user at a time!

  • I think that the problem is within the question - the idea that any one language, runtime (or anything) can be engineered to be good at all things. As you say .NET is popular in process-heavy environments, and I believe that it is because the technology and the business model of the vendor are focused on things that currently appeal to decision-makers in those markets.

    I'm also increasingly convinced that a lot of .NET/Java practice fundamentally doesn't fit how many developers actually work. We don't often write low-level libraries or specialized monolithic products from scratch - more frequently we drive or tie together existing ones. We are really just scripting, so we can get more productivity from platforms make it easy to pull together existing libraries and frameworks from various places and write a minimum of customization and glue code.

Comments have been disabled for this content.