<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: ASP.NET Is a Leaky Abstraction</title>
	<atom:link href="http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction/feed" rel="self" type="application/rss+xml" />
	<link>http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction</link>
	<description>A blog on web standards, accessibility, css, javascript, xslt, and more</description>
	<pubDate>Thu, 07 Aug 2008 23:37:34 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Thomas Hansen</title>
		<link>http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-6221</link>
		<dc:creator>Thomas Hansen</dc:creator>
		<pubDate>Wed, 21 May 2008 13:21:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-6221</guid>
		<description>@Anup
Thanx ;)</description>
		<content:encoded><![CDATA[<p>@Anup<br />
Thanx <img src='http://www.onenaught.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anup Shah</title>
		<link>http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-6220</link>
		<dc:creator>Anup Shah</dc:creator>
		<pubDate>Wed, 21 May 2008 12:32:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-6220</guid>
		<description>@Thomas: Thanks for your comment. Yes, I agree, Joel's point was not just about ASP.NET, but about software in general. I even noted that above in the article stating, "Of course, this is not just an ASP.NET issue, but a general problem in software development."

I wrote this post with a web developer audience in mind, specifically raising concerns about abstracting away the ability to control the HTML generation for web developers who want more control over these aspects. Hope that clarifies things.</description>
		<content:encoded><![CDATA[<p>@Thomas: Thanks for your comment. Yes, I agree, Joel&#8217;s point was not just about ASP.NET, but about software in general. I even noted that above in the article stating, &#8220;Of course, this is not just an ASP.NET issue, but a general problem in software development.&#8221;</p>
<p>I wrote this post with a web developer audience in mind, specifically raising concerns about abstracting away the ability to control the HTML generation for web developers who want more control over these aspects. Hope that clarifies things.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Hansen</title>
		<link>http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-6217</link>
		<dc:creator>Thomas Hansen</dc:creator>
		<pubDate>Wed, 21 May 2008 10:25:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-6217</guid>
		<description>You have completely misunderstood Joel and the concepts of abstractions and leaky abstractions. What Joel mean by his blog is that ALL abstractions leak. Now to fix that we need to stop using abstractions which of course is completely insane to do since then we'd hardwire bits onto the CPU when creating software. Though what you should not do according to Joel is to trust your abstractions to work without you having to get knowledge about how they work and why they work the way they do. One of your quotes from Joel even says it without you probably realizing it yourself; "So the abstractions save us time working, but they don’t save us time learning."...

I am using knowledge about CISCx86 real-time assembly development EVERY DAY in my work even though I haven't developed one line of code in ASM in more than 10 years. Though to truly take advantage of things which are "extreme abstractions" like managed languages, HTML and CSS I still need to know how a CPU works. That's the whole point, to say that "ASP.NET is a leaky abstraction" is like saying "you get wet if you swim in the ocean". Of course it's a leaky abstraction. ALL abstractions are leaky!

ALL abstractions are leaky!</description>
		<content:encoded><![CDATA[<p>You have completely misunderstood Joel and the concepts of abstractions and leaky abstractions. What Joel mean by his blog is that ALL abstractions leak. Now to fix that we need to stop using abstractions which of course is completely insane to do since then we&#8217;d hardwire bits onto the CPU when creating software. Though what you should not do according to Joel is to trust your abstractions to work without you having to get knowledge about how they work and why they work the way they do. One of your quotes from Joel even says it without you probably realizing it yourself; &#8220;So the abstractions save us time working, but they don’t save us time learning.&#8221;&#8230;</p>
<p>I am using knowledge about CISCx86 real-time assembly development EVERY DAY in my work even though I haven&#8217;t developed one line of code in ASM in more than 10 years. Though to truly take advantage of things which are &#8220;extreme abstractions&#8221; like managed languages, HTML and CSS I still need to know how a CPU works. That&#8217;s the whole point, to say that &#8220;ASP.NET is a leaky abstraction&#8221; is like saying &#8220;you get wet if you swim in the ocean&#8221;. Of course it&#8217;s a leaky abstraction. ALL abstractions are leaky!</p>
<p>ALL abstractions are leaky!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anup Shah</title>
		<link>http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-4103</link>
		<dc:creator>Anup Shah</dc:creator>
		<pubDate>Wed, 12 Mar 2008 10:25:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-4103</guid>
		<description>@Simone,

Thanks for the comment. Yes, have seen (only very briefly) the ASP.NET MVC framework. I thought I mentioned it above, but clearly I haven't. I double checked and saw I mentioned it in the follow-up &lt;a href="http://www.onenaught.com/posts/8/xslt-in-server-side-web-frameworks" rel="nofollow"&gt;XSLT article&lt;/a&gt;. I will try to add something here, to that effect, shortly.</description>
		<content:encoded><![CDATA[<p>@Simone,</p>
<p>Thanks for the comment. Yes, have seen (only very briefly) the ASP.NET MVC framework. I thought I mentioned it above, but clearly I haven&#8217;t. I double checked and saw I mentioned it in the follow-up <a href="http://www.onenaught.com/posts/8/xslt-in-server-side-web-frameworks" rel="nofollow">XSLT article</a>. I will try to add something here, to that effect, shortly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simone</title>
		<link>http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-4053</link>
		<dc:creator>Simone</dc:creator>
		<pubDate>Tue, 11 Mar 2008 15:50:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-4053</guid>
		<description>Another option you have missed it the upcoming ASP.NET MVC Framework.

At MS they acknowledged that the WebForms (the problem is WebForms, not ASP.NET as whole concept), while was successful because it allowed tons of VB developers and WinForm developers to move to the web development world, hide to many details of the web development scenario. So they are now building an alternative web framework built on the MVC pattern.

If you haven't, I recommend you have a look at it.</description>
		<content:encoded><![CDATA[<p>Another option you have missed it the upcoming ASP.NET MVC Framework.</p>
<p>At MS they acknowledged that the WebForms (the problem is WebForms, not ASP.NET as whole concept), while was successful because it allowed tons of VB developers and WinForm developers to move to the web development world, hide to many details of the web development scenario. So they are now building an alternative web framework built on the MVC pattern.</p>
<p>If you haven&#8217;t, I recommend you have a look at it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anup Shah</title>
		<link>http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-3285</link>
		<dc:creator>Anup Shah</dc:creator>
		<pubDate>Fri, 22 Feb 2008 15:35:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-3285</guid>
		<description>@maxtorog: Thanks for your comments. But do my first three options as to what to do cover your concerns?

I acknowledged that you can create decent markup with the controls but that it requires discipline. I didn't make it clear, but my point about the problem with this approach is in a medium/large team environment it may be hard to maintain that discipline, whereas on an individual/small project maybe it is easier. (I will try to update that section shortly to clarify that). 

Also, I mentioned options to override control rendering, but the problem I see is when dealing with complex third party controls; it may be a lot harder to change them (especially if they are producing lots of JavaScript etc...)</description>
		<content:encoded><![CDATA[<p>@maxtorog: Thanks for your comments. But do my first three options as to what to do cover your concerns?</p>
<p>I acknowledged that you can create decent markup with the controls but that it requires discipline. I didn&#8217;t make it clear, but my point about the problem with this approach is in a medium/large team environment it may be hard to maintain that discipline, whereas on an individual/small project maybe it is easier. (I will try to update that section shortly to clarify that). </p>
<p>Also, I mentioned options to override control rendering, but the problem I see is when dealing with complex third party controls; it may be a lot harder to change them (especially if they are producing lots of JavaScript etc&#8230;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: maxtoroq</title>
		<link>http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-3266</link>
		<dc:creator>maxtoroq</dc:creator>
		<pubDate>Fri, 22 Feb 2008 00:16:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-3266</guid>
		<description>Excelent article.

I started to use XSLT for front-end programming 3 years ago, when I worked with classic ASP. For the last year and half I been doing strictly ASP.NET WebForms, and I must say I'm done with it, but for an architectural reason, it is not good practice for your coordinator layer to depend on the presentation layer (that's a WebForms vs. MVC discussion). WebForms without postbacks looses it's appeal.

However, I don't agree on the "Abstractions are leaky" point. You've said it before, "Abstraction without understanding = problems", but if you do understand then it's OK. Controls can render good markup, unfortunately many of the built-in ones don't. Also you can have more control of the markup using ITemplate properties.

I'm currently using Saxon on .NET, XSLT 2.0 is to good to look back. .NET is too good to look elsewhere. Go Mono!</description>
		<content:encoded><![CDATA[<p>Excelent article.</p>
<p>I started to use XSLT for front-end programming 3 years ago, when I worked with classic ASP. For the last year and half I been doing strictly ASP.NET WebForms, and I must say I&#8217;m done with it, but for an architectural reason, it is not good practice for your coordinator layer to depend on the presentation layer (that&#8217;s a WebForms vs. MVC discussion). WebForms without postbacks looses it&#8217;s appeal.</p>
<p>However, I don&#8217;t agree on the &#8220;Abstractions are leaky&#8221; point. You&#8217;ve said it before, &#8220;Abstraction without understanding = problems&#8221;, but if you do understand then it&#8217;s OK. Controls can render good markup, unfortunately many of the built-in ones don&#8217;t. Also you can have more control of the markup using ITemplate properties.</p>
<p>I&#8217;m currently using Saxon on .NET, XSLT 2.0 is to good to look back. .NET is too good to look elsewhere. Go Mono!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anup Shah</title>
		<link>http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-2374</link>
		<dc:creator>Anup Shah</dc:creator>
		<pubDate>Sat, 26 Jan 2008 18:50:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-2374</guid>
		<description>Nikhil,

It is very kind of you to comment on this minor blog, given your high prominence in the whole ASP.NET development, so thank you for your feedback.

Your points are fair, and indeed I recognize that ASP.NET was targeted to a large audience base, many not web developers.

I certainly appreciate that it has helped with wider adoption. VB-type developers and others who are used to dropping controls onto canvases and having stuff done for you in this way is certainly appealing.

In fact, when ASP.NET first came out, I really liked this aspect. In training seminars that I conducted back in 2001 and 2002 when getting people onto .NET I often gave some previews of ASP.NET and the calendar controls in particular.

It was later around 2003 I think that I became aware of web standards, semantic markup etc, and so that is why as developer coming from say a mid-tier or GUI background, I can see the appeal of ASP.NET, and why if I put on a web standards developer hat on, I see issues on the client-side of things!

You make an interesting point about the state of HTML at the time, with 3.2 and 4 etc -- I remember hearing about ASP+ around 1999 or 2000, I think. It is interesting that the scale of .NET naturally meant it took a while to deliver, and perhaps something that is hard to know over such a time is what the state of web development would be over time.</description>
		<content:encoded><![CDATA[<p>Nikhil,</p>
<p>It is very kind of you to comment on this minor blog, given your high prominence in the whole ASP.NET development, so thank you for your feedback.</p>
<p>Your points are fair, and indeed I recognize that ASP.NET was targeted to a large audience base, many not web developers.</p>
<p>I certainly appreciate that it has helped with wider adoption. VB-type developers and others who are used to dropping controls onto canvases and having stuff done for you in this way is certainly appealing.</p>
<p>In fact, when ASP.NET first came out, I really liked this aspect. In training seminars that I conducted back in 2001 and 2002 when getting people onto .NET I often gave some previews of ASP.NET and the calendar controls in particular.</p>
<p>It was later around 2003 I think that I became aware of web standards, semantic markup etc, and so that is why as developer coming from say a mid-tier or GUI background, I can see the appeal of ASP.NET, and why if I put on a web standards developer hat on, I see issues on the client-side of things!</p>
<p>You make an interesting point about the state of HTML at the time, with 3.2 and 4 etc &#8212; I remember hearing about ASP+ around 1999 or 2000, I think. It is interesting that the scale of .NET naturally meant it took a while to deliver, and perhaps something that is hard to know over such a time is what the state of web development would be over time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nikhil Kothari</title>
		<link>http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-2371</link>
		<dc:creator>Nikhil Kothari</dc:creator>
		<pubDate>Sat, 26 Jan 2008 17:38:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-2371</guid>
		<description>Anup,

Good post - I was just checking out your site following the comment you made on mine.

I will just add one bit as something to think about in addition to all the points made above. When work started on the ASP.NET UI framework, and indeed a lot of the ASP.NET infrastructure is independent of, there were two things motivating the form it took:
-  The type of developers who needed to be attracted to the platform, and the type of components and building blocks that spoke to them. The point was to get some level of high-level components for a quick start, as opposed to making one think about the underlying HTML all the time.
- At the time, the abstractions over HTML and CSS were actually much more useful - browsers had all sorts of differences and levels of support of HTML/CSS - think HTML 3.2 and HTML 4 co-existing. Deep familiarity of HTML was also missing in the target audience.

I'm not claiming the abstraction was not leaky. I think times have changed - there is deeper familiarity with the underlying platform, and the underlying platform has matured a lot, as well as become much more uniform than it ever was... at which point abstracting it raises some questions. I still think there are however lots of developers who will find the abstractions useful.

ASP.NET certainly has a large spectrum of customers of who bring different requirements, and perspectives... in some sense that is a result of the success of the platform :-)</description>
		<content:encoded><![CDATA[<p>Anup,</p>
<p>Good post - I was just checking out your site following the comment you made on mine.</p>
<p>I will just add one bit as something to think about in addition to all the points made above. When work started on the ASP.NET UI framework, and indeed a lot of the ASP.NET infrastructure is independent of, there were two things motivating the form it took:<br />
-  The type of developers who needed to be attracted to the platform, and the type of components and building blocks that spoke to them. The point was to get some level of high-level components for a quick start, as opposed to making one think about the underlying HTML all the time.<br />
- At the time, the abstractions over HTML and CSS were actually much more useful - browsers had all sorts of differences and levels of support of HTML/CSS - think HTML 3.2 and HTML 4 co-existing. Deep familiarity of HTML was also missing in the target audience.</p>
<p>I&#8217;m not claiming the abstraction was not leaky. I think times have changed - there is deeper familiarity with the underlying platform, and the underlying platform has matured a lot, as well as become much more uniform than it ever was&#8230; at which point abstracting it raises some questions. I still think there are however lots of developers who will find the abstractions useful.</p>
<p>ASP.NET certainly has a large spectrum of customers of who bring different requirements, and perspectives&#8230; in some sense that is a result of the success of the platform <img src='http://www.onenaught.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anup Shah</title>
		<link>http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-2022</link>
		<dc:creator>Anup Shah</dc:creator>
		<pubDate>Tue, 08 Jan 2008 23:58:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.onenaught.com/posts/42/aspnet-is-a-leaky-abstraction#comment-2022</guid>
		<description>Thanks WebGyver!</description>
		<content:encoded><![CDATA[<p>Thanks WebGyver!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 2.160 seconds -->
