iPhone or Android? .NET or Java? Coffee or ISO Tea? As geeks, it feels like the majority of our discourse comes down to technical debate.
Scott Guthrie has put up a corker of a post dissecting technical debates in general. It’s intended to defuse some of the specific angst around WebForms vs ASP.NET MVC, but the initial section should be compulsory reading for anyone intending to push their platform of choice.
But I’m more interested in the comments. Rob Conery (in a wonderfully recursive technical debate within the comments of a post on technical debates) has this to say*:
When you abstract a webpage into a stateful form experience it’s like abstracting spinach and broccoli into mac and cheese for your kids [...]
Bottom line: MS web developers are the only ones who think of the web in terms of “stateful forms” with very little knowledge of how the sausage is made . This puts them at a bit of a disadvantage in their career – they (for the most part) don’t need to worry about the core issues of the industry (what HTML 5 means, compression issues, standards compliance, semantic issues, etc).
*I’m unable to link to the comment because Scott’s comments don’t have named bookmarks
Cue gospel music, dancing, and much shouting of “Amen brother!” from me.
Like it or not, I’ve hung my hat on the Microsoft platform. It is a good platform. It pays my mortgage. I find the development tools wonderfully productive.
But yes, I have witnessed first-hand the sheer mayhem that can be wrought by a good developer working on a framework that abstracts them from the platform. I have witnessed 1.5MB web pages with no less than 120 linked resources. I have seen pages with multiple <head> and <html> blocks. I have witnessed pages being posted-back to themselves, re-rendered to the client, then prepended with a 301 header for redirection to the next “form”.
And we wonder why so many “real” web designers and developers dismiss ASP.NET as a valid web platform.
I’m thankful that it’s part of my job to address these issues with developers. There’s nothing I enjoy more than taking developers for a wander down HTTP lane. Showing them the actual GETs and redirects that happen when they make a web request; and showing them exactly how the ASP.NET page model generates HTML code in memory and streams it to the client. I like to think they use that knowledge to construct graceful code, or at the very least think twice before relying on a gigantic ASP.NET viewstate.
A man can dream can’t he?