<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>DOM Scripting comments: Perpetuating the myths of JavaScript degradation.</title>
        <link>http://domscripting.com/blog/display/25</link>
        <description>This is my response to an Ajax-related blog post on Encytemedia.</description>
        <language>en</language>
        <item>
            <title>Jeremy Keith</title>
            <link>http://domscripting.com/blog/display.php/25#comment106</link>
            <content:encoded><![CDATA[<p>Sorry Adam, but you have missed the point entirely. Please re-read what I was saying. There&#8217;s a reason why I never mention specific browsers or QA time.</p>

<p>You&#8217;re still thinking in the mentality of &quot;build it with all the bells and whistles first, then think about making a simplified version&quot;, whereas I&#8217;m talking about the exact opposite.</p>
]]></content:encoded>
            <pubDate>Thu, 03 Nov 2005 15:48:01 GMT</pubDate>
        </item>
        <item>
            <title>Adam</title>
            <link>http://domscripting.com/blog/display.php/25#comment105</link>
            <content:encoded><![CDATA[<p>Another factor no one mentioned yet is QA time.  If you&#8217;re really planning to support early versions of Netscape and multiple browser configurations, you&#8217;re putting a lot more burden on your QA people. This is one reason why it might make sense to block certain browsers outright.  While I commend Jeremy for highlighting best practices we should strive for, I&#8217;m not quite buying the point that implementing them doesn&#8217;t cost extra.</p>
]]></content:encoded>
            <pubDate>Thu, 03 Nov 2005 01:16:09 GMT</pubDate>
        </item>
        <item>
            <title>Jeremy Keith</title>
            <link>http://domscripting.com/blog/display.php/25#comment92</link>
            <content:encoded><![CDATA[<p>That&#8217;s a very good point. We&#8217;ve been kind of ignoring the human issue here. Let&#8217;s face it, &quot;difficult&quot; is a relative term. What seems straightforward to one person might be very hard for someone else to grasp</p>
]]></content:encoded>
            <pubDate>Wed, 19 Oct 2005 11:33:53 GMT</pubDate>
        </item>
        <item>
            <title>scottbp</title>
            <link>http://domscripting.com/blog/display.php/25#comment91</link>
            <content:encoded><![CDATA[<p>I think an important thing to note when we are talking about people complaining about it being &quot;too hard / expensive&quot; to make their new AJAXy application degrade is talent and experience.</p>

<p>If the people actually writing your application keep putting this kind of thing in the too hard basket and claiming it will cost more time / money, because they don&#8217;t understand how to do it right&#8230;</p>

<p>Well if it will cost THEM more time /money</p>

<p>This is a problem I am facing in my new job. I am designing a system, then the developers are claiming it is too hard. What hurts for me is that I know how to do some of the things they want to avoid (for me pretty easily) but for them it is outside their current skillset.
Of course they have to build it, and maintain it so we have to make a compromise.</p>

<p>It is the same story as css layouts a couple of years ago, we just have to keep annoying people until they give up and learn how to do it right.</p>
]]></content:encoded>
            <pubDate>Wed, 19 Oct 2005 09:18:55 GMT</pubDate>
        </item>
        <item>
            <title>Dustin Dia</title>
            <link>http://domscripting.com/blog/display.php/25#comment90</link>
            <content:encoded><![CDATA[<p>A good question to ask yourself when developing ajax applications is &quot;What is our fallback?&quot;</p>

<p>If you&#8217;re developing something new, you might want to consider graceful degradation. More and more folks are disabling JavaScript these days than developers think. Believe it or not, my stats are showing a whopping 10%. That&#8217;s more than the global usage of Firefox. Degradation is not only a &#8216;best practice&#8217; - it&#8217;s practical and logical. It&#8217;s the third element to cross-brower development - because now you&#8217;re developing &#8216;cross-DOM&#8217; compatible.</p>

<p>If your application becomes so ajax rich, it may be better to create an entirely separate application for non-js users. Take for instance Yahoo! mail. There was basically no room for degrading such a large application. Way too much drag and drop, way too much server calls&#8230; building a degrading layer would make it run that much slower. So what happens - you get kicked back to Y! mail classic. Excellent idea! Then if you&#8217;re not on a modern browser that supports css, we even kick you back to the pre-historic classic Y! mail. This would be known as &#8216;application fallback&#8217; and Y! does it because they can.</p>

<p>If ajax is built in a modular sense that can be used anywhere in any application, a developer should consider fallbacks for all their little widgets.</p>

<p>So, back to the question &quot;What is our fallback?&quot; - is it:</p>

<p>A) Graceful Degradation
B) A separate application
C) Unhappy users</p>

<p>I opt not for the unhappy user.</p>
]]></content:encoded>
            <pubDate>Tue, 18 Oct 2005 22:54:07 GMT</pubDate>
        </item>
        <item>
            <title>Jeremy Keith</title>
            <link>http://domscripting.com/blog/display.php/25#comment89</link>
            <content:encoded><![CDATA[<p>Marko wrote:</p>

<p>&quot;I use a question &quot;Would I ever want to bookmark this?&quot; to make a quick decision between building a nicely degradable solution or thinking more about it.&quot;</p>

<p>Good point. But I think that question is more useful in determining whether or not to use a solution like Ajax at all for the situation. In other words, the answer to that question helps answer the question, &quot;should I use Ajax for this?&quot; The finer question of whether or not that Ajax solution should be degradable should hopefully be a no-brainer. :-)</p>
]]></content:encoded>
            <pubDate>Tue, 18 Oct 2005 14:19:56 GMT</pubDate>
        </item>
        <item>
            <title>Justin Palmer</title>
            <link>http://domscripting.com/blog/display.php/25#comment88</link>
            <content:encoded><![CDATA[<p>Hehe, I admire your patience Jeremy, and I assure you your comments aren&#8217;t falling on deaf ears. ;-)</p>

<p>The point you make and that I completely understand is that this time shouldn&#8217;t be looked at as optional, it should be part of the planning just like planning the database schema or graphic design.  It&#8217;s not the cherry on top, it&#8217;s part of the cake.</p>

<p>It would sound absurd to me if someone told me that we must use table layouts and no css because it cost to much time to do it otherwise, so I can level with you on your comments about it not taking longer.</p>

<p>I&#8217;m going to let everything simmer for a moment and I&#8217;ll get back with you.  </p>
]]></content:encoded>
            <pubDate>Tue, 18 Oct 2005 12:59:00 GMT</pubDate>
        </item>
        <item>
            <title>Marko Samastur</title>
            <link>http://domscripting.com/blog/display.php/25#comment87</link>
            <content:encoded><![CDATA[<p>I think it&#8217;s just wrong to believe that the problem is simply due lack of planning. I certainly have spent months thinking about it and trying different things before I accepted that sometimes you have to sacrify something for a completely degradable solution.</p>

<p>I believe most of the time this is an acceptable compromise, but I also have no doubt in my mind that this might not always be the case.</p>

<p>I think we don&#8217;t disagree on usefulness or general preference. I think our disagreement is more or less limited to a difference between &quot;always&quot; and &quot;most of the time&quot;.</p>

<p>Btw, I use a question &quot;Would I ever want to bookmark this?&quot; to make a quick decision between building a nicely degradable solution or thinking more about it.</p>
]]></content:encoded>
            <pubDate>Tue, 18 Oct 2005 12:39:07 GMT</pubDate>
        </item>
        <item>
            <title>Jeremy Keith</title>
            <link>http://domscripting.com/blog/display.php/25#comment86</link>
            <content:encoded><![CDATA[<p>Justin, you ask:</p>

<p>&quot;How do we approach clients and say that we can build an application that will work for 95% of your audience, but in order to capture another 3% it will take X amount longer and cost you X amount more.&quot;</p>

<p>My point is: it won&#8217;t! Unless you can get your head around that fact &#8212; that making Ajax degradable or building in accessibility doesn&#8217;t cost extra if it&#8217;s <em>done from the start</em> &#8212; then I&#8217;m afraid we are both going to be talking at complete cross purposes.</p>

<p>As for the selling points of CSS and XHTML, I&#8217;ve never, ever talked about them with clients: it&#8217;s just the way I build websites. They don&#8217;t need to be convinced of anything, they certainly don&#8217;t want to hear the details of the technology, and it doesn&#8217;t cost them any more money than if I used tables and font tags (quite the opposite in fact). It&#8217;s the same with degradable JavaScript. The term should really be a tautology: it shouldn&#8217;t enter our heads to do it any other way.</p>

<p>&quot;Do you think clients should be made aware of facts like this, or do we just do it transparently and answer questions later on why the application is taking longer to build?&quot;</p>

<p>Justin, Justin, Justin. I&#8217;m afraid that once again you are begging the question. You insist on believing that it takes longer to make degradable Ajax apps. That is only true <em>if you haven&#8217;t planned</em> the application logic correctly to begin with.</p>

<p>&quot;The fact of the matter is that is does cost time&quot;</p>

<p>That is quite simply not true. Or, at least it&#8217;s not true if you consider graceful degradation from the start.</p>

<p>Look, I&#8217;ve heard these same arguments before about things like accessibility and usability:
Somebody builds a website and then tests it for accessibility; changes need to be made; those changes will take too much time; time is money; the changes aren&#8217;t made.
Or:
Somebody builds a website and then does some usability testing; changes need to be made; those changes will take too much time; time is money, etc.</p>

<p>It&#8217;s no different for degradable Ajax. If you come along after the fact and attempt to retrofit graceful degradation, then yes, it will cost you time and money and I can see how that would be a very difficult business decision to justify. But the problem lies with the process. That&#8217;s what I&#8217;ve been trying to say the whole time. This isn&#8217;t an issue of technology or time or money or business decisions. It&#8217;s purely about process and planning.</p>

<p>I know in these days of 37 Signals&#8217; &quot;getting real&quot;, words like process and planning are used less and less but I think they are incredibly important if you want to avoid incurring time and money penalties further down the line.</p>
]]></content:encoded>
            <pubDate>Tue, 18 Oct 2005 11:00:09 GMT</pubDate>
        </item>
        <item>
            <title>Justin Palmer</title>
            <link>http://domscripting.com/blog/display.php/25#comment85</link>
            <content:encoded><![CDATA[<p>Jeremy, all good points.  I think we are looking at it from two different perspectives.  Like Scott suggested, <em>applications</em> that are meant to be replacements for the desktop loose there characteristics when Javascript is disabled.  I too am not throwing out all the degradable techniques and I&#8217;m still researching methods to keep the back button.</p>

<p>When I read post like this I ask myself am I in a state of denial like those who were opposed to CSS and XHTML before it was considered a requirement and not an extra.</p>

<p>CSS and XHTML we&#8217;re ways forward, like Ajax and Javascript are now but they are two totally different beast and I think we need more education on the benefits of degrading beyond the point that it&#8217;s just the right thing to do.</p>

<p>CSS and XHTML had many good selling points:
 * Faster page loading/Less bandwidth usage (time and money)
 * Ability to make 1 change in 1 file and have it applied globally (time and money)
 * Separation of style and structure (Technical)</p>

<p>I believe we&#8217;re approaching accessibility techniques such as degrading Javascript and other techniques like selling candy bars with plain white wrappers and only the ingredients is shown on it.  It&#8217;s a hard sell to make this way.</p>

<p>How do we approach clients and say that we can build an application that will work for 95% of your audience, but in order to capture another 3% it will take X amount longer and cost you X amount more.</p>

<p>Do you think clients should be made aware of facts like this, or do we just do it transparently and answer questions later on why the application is taking longer to build?  The fact of the matter is that is does cost time, and to tell a client that time isn&#8217;t money just won&#8217;t cut it.    It is a business decision in my mind, and I have yet to be convinced other wise.</p>

<p>I appreciate all your efforts and others who are pushing for these techniques, and showing us methods to implement them.  Implementation is the easy part, but when your not your own boss you have to have justification.</p>

<p>I&#8217;d be interested in hearing your comments on the cookie issue.  Do we brute force track ip&#8217;s to bypass enhancements that cookies give us?</p>

<p>Kind regards,
 -Justin </p>
]]></content:encoded>
            <pubDate>Tue, 18 Oct 2005 06:09:54 GMT</pubDate>
        </item>
        <item>
            <title>scott</title>
            <link>http://domscripting.com/blog/display.php/25#comment84</link>
            <content:encoded><![CDATA[<p>Well, how do you explain something like meebo.com?  I mean, I can see how 90% of the ajax is being used in some way to streamline a common web procedure, but in a case like meebo.com or a game, something that&#8217;s trying to replace a normal desktop app&#8230;I don&#8217;t see a problem with saying the app would be useless without javascript.</p>

<p>That&#8217;s not to say that I&#8217;m throwing all my unobtrusive javascript techniques out the window while I build my super secret ajax app&#8230;.I&#8217;ve already adopted those methods as common practice for all the reasons you&#8217;ve stated.  But I&#8217;m only using these techniques because that&#8217;s what I&#8217;ve become most familiar with.</p>
]]></content:encoded>
            <pubDate>Tue, 18 Oct 2005 05:04:16 GMT</pubDate>
        </item>
   </channel>
</rss>