<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mozilla Standards Blog &#187; Standards</title>
	<atom:link href="http://blog.mozilla.com/standards/category/standards/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mozilla.com/standards</link>
	<description>Open Standards.  Open Source.  Open Platform.</description>
	<lastBuildDate>Thu, 02 Jul 2009 18:55:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>(R)evolution Number 5</title>
		<link>http://blog.mozilla.com/standards/2009/07/02/revolution-number-5/</link>
		<comments>http://blog.mozilla.com/standards/2009/07/02/revolution-number-5/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 18:55:57 +0000</pubDate>
		<dc:creator>aruner</dc:creator>
				<category><![CDATA[ECMA]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[WHATWG]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/standards/?p=21</guid>
		<description><![CDATA[The launch of Firefox 3.5 comes at a time when there's a lot of general hype about HTML5.  Here's a little history to put things into context.]]></description>
			<content:encoded><![CDATA[<p>Cross-posted from <a href="http://hacks.mozilla.org/2009/07/revolution-number-5/">hacks.mozilla.org</a></p>
<p>We&#8217;ve just launched <a href="http://www.mozilla.com/en-US/">Firefox 3.5</a>, and <a href="http://www.flickr.com/photos/gen/3677579248/"/> we&#8217;re</a> <a href="http://www.flickr.com/photos/nitot/3675934390/">incredibly</a> <a href="http://www.flickr.com/photos/29142435@N08/3674981992/">proud</a>.  Naturally, we have engaged in plentiful Mozilla advocacy &#8212; this site is, amongst other things, a vehicle for showcasing the latest browser&#8217;s new capabilities.  We like to think about this release as an upgrade for the <em>whole World Wide Web</em>, because of the new developer-facing features that have just been introduced into the web platform.  When talking about some of the next generation standards, the appearance of the number &#8220;5&#8243; is almost uncanny &#8212; consider <a href="http://dev.w3.org/html5/spec/Overview.html">HTML5</a> and <a href="http://www.ecma-international.org/publications/files/drafts/tc39-2009-025.pdf">ECMAScript 5 (PDF)</a>.   The recent (and very welcome) hype around HTML5 in the press is what motivates this article.  Let&#8217;s take a step back, and consider some of Mozilla&#8217;s web advocacy in the context of events leading up to the release of Firefox 3.5.</p>
<p>Standardization of many of these features often came after much spirited discussion, and we&#8217;re pleased to see the prominent placement of HTML5 as a <a href="http://radar.oreilly.com/2009/05/google-bets-big-on-html-5.html">key strategic initiative</a> by major web development companies.  Indeed, <a href="http://news.cnet.com/8301-17939_109-10252252-2.html">exciting new web applications</a> hold a great deal of promise, and really showcase what the future of the web platform holds in store for aspiring developers.  Many herald the triumphant arrival of the <a href="http://news.cnet.com/8301-17939_109-10250196-2.html">browser as the computer</a>, an old theme that <a href="http://developer.palm.com/webos_book/book1.html">gets bolstered</a> with the arrival of <a href="http://htmlfive.appspot.com/">attractive HTML5 platform features</a> that are implemented across <a href="http://www.apple.com/safari/">Safari</a>, <a href="http://www.google.com/chrome/intl/en/features.html">Chrome</a>, <a href="http://www.opera.com/">Opera</a>, and of course, <a href="http://www.getfirefox.com/">Firefox</a> (with <a href="http://www.microsoft.com/windows/internet-explorer/default.aspx">IE8</a> getting an honorable mention for having both some HTML5 features and some ECMAScript, 5th Edition features).</p>
<p>Call it what you will &#8212; Web 5.0, Open Web 5th Generation (wince!), or, (R)evolution # 5, the future is now.  But lest anyone forget, HTML5 is not a completed standard yet, as the <a href="http://www.w3.org/QA/2009/05/_watching_the_google_io.html">W3C was quick to point out</a>.  The editor doesn&#8217;t anticipate completion till 2010.  The path taken from the start of what is now called HTML5 to the present-day era of (very welcome) hype has been a long one, and Mozilla has been part of the journey from the very beginning.</p>
<p>For one thing, we were there to <a href="http://weblogs.mozillazine.org/roadmap/archives/2004/06/the_nonworld_no_1.html">point out, in no uncertain terms</a>, that the <a href="http://www.w3.org/">W3C</a> had perhaps <a href="http://dbaron.org/log/2004-06#e20040609a">lost its way</a>.  Exactly 5 summers ago (again, with that magic number!), it became evident that the W3C was no longer able to serve as sole custodian of the standards governing the open web of browser-based applications, so Mozilla, along with Opera, started the <a href="http://www.whatwg.org/">WHATWG</a>.  Of course, back then, we didn&#8217;t call it HTML5, and while Firefox itself made a splash in 2004, the steps taken towards standardization were <a href="http://ln.hixie.ch/?start=1088526392&#038;count=1">definitive but tentative</a>.  Soon, other browser vendors joined us, and by the time <a href="http://dig.csail.mit.edu/breadcrumbs/node/166">the reconciliation with W3C</a> occurred two years later, the innovations introduced into the web platform via the movement initiated by Mozilla had gained substantial momentum.  </p>
<p>The net result is a specification that is not yet complete called &#8220;HTML5&#8243; which is implemented piecemeal by most modern browsers.  The features we choose to implement as an industry are in response to developers, and our <em>modus operandi</em> is (for the most part) <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/">in</a> the <a href="http://lists.w3.org/Archives/Public/public-html/">open</a>.  Mozilla funds the <a href="http://validator.nu/">HTML5 Validator</a>, producing the first real HTML5 parser, which now drives <a href="http://validator.w3.org/">W3C&#8217;s markup validation</a> for HTML5.  That parser has made its way back into Firefox.  It&#8217;s important to note that capabilities that are of greatest interest (many of which are showcased on this blog) are not only developed within the HTML5 specification, but also as part of the <a href="http://www.w3.org/2008/geolocation/">W3C Geolocation WG</a>, the <a href="http://www.w3.org/2008/webapps/">Web Apps WG</a>, and the <a href="http://www.w3.org/Style/CSS/current-work">CSS WG</a>.</p>
<p>The release of Firefox 3.5, along with updates to other modern browsers, seems to declare that HTML5 has arrived.  But with the foresight that comes with having been around this for a while, we also know that we have a lot of work ahead of us.  For one thing, we&#8217;ve got to finish HTML5, or at least publish a subset of it that we all agree is ready for implementation, <strong>soon</strong>.  We&#8217;ve also got to ensure that <a href="http://lists.w3.org/Archives/Public/public-html/2009Jun/0661.html">accessibility serves as an important design principle</a> in the emerging web platform, and resolve sticky differences here.  Also, an open standard <em>does not</em> an open platform make, as debates about <a href="http://cwilso.com/2008/07/23/fonts-embedding-vs-linking/">web</a> <a href="http://dbaron.org/log/20090317-fonts">fonts</a> and <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-June/020363.html">audio/video</a> <a href="http://lists.w3.org/Archives/Public/public-html/2009Jun/0825.html">codecs</a> show.  We&#8217;ve got a lot of work ahead of us, but for now, 5 years after the summer we started the ball rolling, we&#8217;re enjoying the hype around (R)evolution Number 5.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/standards/2009/07/02/revolution-number-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>3D on the Web</title>
		<link>http://blog.mozilla.com/standards/2009/03/25/3d-on-the-web/</link>
		<comments>http://blog.mozilla.com/standards/2009/03/25/3d-on-the-web/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 13:01:54 +0000</pubDate>
		<dc:creator>aruner</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Khronos]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/standards/?p=15</guid>
		<description><![CDATA[Bringing accelerated 3D Graphics for the web holds the promise of new types of web applications.]]></description>
			<content:encoded><![CDATA[<p>Yesterday at the <a href="http://www.gdconf.com/index.html">Game Developers Conference</a> in San Francisco, Mozilla and the <a href="http://www.khronos.org/">Khronos Group</a> (the folks behind the OpenGL family of standards) announced <a href="http://www.khronos.org/news/press/releases/khronos-launches-initiative-for-free-standard-for-accelerated-3d-on-web/">a new initiative to bring accelerated 3D graphics to the web</a>.  This is a promising new direction for web applications, and adds to the rich mix of activities in forum such as the <a href="http://www.w3.org">W3C</a> and <a href="http://www.whatwg.org/">WHATWG</a> to evolve the web platform.</p>
<p>JavaScript performance in all major browsers has shown marked improvements over time, paving the way for it to be used for more sophisticated classes of applications.  Many graphics applications, including popular games, leverage hardware acceleration, and subsets of OpenGL (such as OpenGL ES1.1) are already available on smartphones.  The initial activity proposal is to consider a simple binding of <a href="http://www.khronos.org/opengles/">OpenGL ES2.0</a> to JavaScript, and exposing that to an <a href="http://dev.w3.org/html5/spec/Overview.html#the-2d-context">HTML5 Canvas context</a>.  This is how a 2D drawing context is exposed to the web for use with a JavaScript API; the proposed mechanism is to do this for a 3D context as well.  As exciting as this is for the web and for us at Mozilla, it&#8217;s worth explaining our choices, and raising some questions.</p>
<p><span id="more-15"></span></p>
<p>We chose <a href="http://www.khronos.org/">Khronos</a> to start with, since that&#8217;s the home of OpenGL, and the proposal is to start with an OpenGL subset such as OpenGL ES2.0.  This is a very low-level API with a lot of C language structures, and perhaps an early task for the working group would be to figure out <a href="http://people.mozilla.com/~vladimir/misc/glweb20spec.html">how to expose that to JavaScript</a>.  This isn&#8217;t a <em>fait accompli</em>, and we look forward to help and collaboration from other major players.  Naturally, security is a <em>paramount consideration</em>.   <a href="http://google-code-updates.blogspot.com/2009/03/toward-open-web-standard-for-3d.html">Google announced support for the activity</a>, and we look forward to others doing so soon as well.</p>
<p>Would web developers <em>actually use</em> something this low level?  While we anticipate the influx of a new type of web developer (who may also be a games developer, or interested in 3D visualization), it&#8217;s worth pointing out that a standardization principle that&#8217;s served the web well is to expose pretty low level primitives in browsers, and allow third party JavaScript libraries to take on the task of syntactic sugar and higher level abstractions.  Applications toolkits such as <a href="http://www.dojotoolkit.org/">dojo</a>, <a href="http://jquery.com/">jQuery</a>, and <a href="http://www.prototypejs.org/">Prototype</a> simplify developers lives; the same can occur in the 3D arena. </p>
<p>It&#8217;s also worth pointing out that this endeavor with Khronos to bring a subset of OpenGL to the web is just the first step.  Higher level APIs with retained mode graphics are likely to follow suit.  The discussion officially started yesterday, so we&#8217;re glowing with fresh possibility in uncharted terrain here.</p>
<p>Also read <a href="http://blog.vlad1.com/2009/03/24/3d-on-the-web-its-go-time/">Vlad&#8217;s thoughts on all this</a> &#8212; he <a href="http://blog.vlad1.com/canvas-3d/">wrote the extension</a> that was the initial experimental implementation, and made this happen.  And <a href="http://www.0xdeadbeef.com/weblog/?p=1207">Chris Blizzard&#8217;s thoughts</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/standards/2009/03/25/3d-on-the-web/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Fear and Loathing on the Standards Trail (with an Upbeat Coda)</title>
		<link>http://blog.mozilla.com/standards/2008/08/19/fear-and-loathing-on-the-standards-trail-with-an-upbeat-coda/</link>
		<comments>http://blog.mozilla.com/standards/2008/08/19/fear-and-loathing-on-the-standards-trail-with-an-upbeat-coda/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 23:16:26 +0000</pubDate>
		<dc:creator>aruner</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[WHATWG]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/standards/?p=5</guid>
		<description><![CDATA[At the Mozilla Summit, I held a session on Standards.  The organizational powers that be gave me the Big Room, and before long I stood in relative darkness on stage discussing standards with the mavens within our community that pay attention to such things.
Now, standards are a big deal to us &#8212; everything we [...]]]></description>
			<content:encoded><![CDATA[<p>At the Mozilla Summit, I <a href="http://arunranga.com/presentations/Summit2008/standards.html">held a session on Standards</a>.  The organizational powers that be gave me the Big Room, and before long I stood in relative darkness on stage discussing standards with the mavens within our community that pay attention to such things.</p>
<p>Now, standards are a big deal to us &#8212; everything we do here at Mozilla is, for <em>the most part</em>, a contribution to the Web platform.  I <a href="http://blog.mozilla.com/standards/2008/07/16/building-the-web-one-spec-at-a-time/">blogged previously about the low esteem</a> I reserve for arguments that favor proprietary platforms (which typically pit <em>rapid proprietary innovation</em> against <em>dawdling Web Platform standardization</em> cycles), but even in that upbeat blog post, I acknowledge that <em>the standards process</em> leaves much room for improvement.</p>
<p>My <a href="http://arunranga.com/presentations/Summit2008/standards.html">slides</a> basically summarize the <em>numerous places we go</em> to build interoperable specifications, even though some of these places are theoretical at the moment (meaning we aren&#8217;t quite going there yet), and the activities we&#8217;re currently involved in.  But, I was most interested in the audience participation part.  That&#8217;s where I got to talk to folks working on stuff pertinent to standards, and to listen to their points of view.</p>
<p><span id="more-5"></span></p>
<p>Basically, many of the comments from the floor were in a plaintive vein.  People <em>love</em> to air grouses about the standards process when given a chance.  Some complained about having to read far too much email (on the <a href="http://lists.w3.org/Archives/Public/public-html/">W3C HTML5 WG listserv</a>, for instance).  I took a poll to see how many people followed HTML5&#8217;s progress exclusively on the <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/">WHATWG mailing lists</a>, and how many people followed the progress of HTML5 on the <a href="http://lists.w3.org/Archives/Public/public-html">W3C listserv</a>.   Slightly more hands went up showing a following of progress on the <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/">WHATWG listservs</a>; a few people claimed to do both listservs.  More than one person complained about the signal-to-noise ratio on the <a href="http://lists.w3.org/Archives/Public/public-html/">W3C HTML5 listserv</a>, saying that there was a lot of cruft that burned up bandwidth and not enough really useful material to warrant the sifting.  I tut-tutted sympathetically, but dealing with email isn&#8217;t just a standards involvement problem.    I maintain that several were invited to W3C&#8217;s latest HTML party; few are experts.  Some &#8220;topic sieve&#8221; mechanism for filtration is probably a good thing; there does seem to be relatively clean use of the email subject line, so developing a mail management strategy is really a mitigable problem (you&#8217;re on your own for that one, kids <img src='http://blog.mozilla.com/standards/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ).</p>
<p>Two general themes can be distilled from the open discussion we had:  </p>
<ul>
<li>There continues to be the perception that <a href="http://www.w3.org/">W3C</a> is too slow, especially given <a href="http://blog.mozilla.com/standards/2008/07/16/building-the-web-one-spec-at-a-time/">the rapidity with which Mozilla is moving</a>.  I asked an open question about where <a href="http://weblogs.mozillazine.org/roc/archives/2008/06/applying_svg_ef.html">Robert O&#8217;Callahan&#8217;s</a> cool <a href="http://people.mozilla.com/~roc/SVG-CSS-Effects-Draft.html">SVG-in-CSS</a> stuff should live.  A modest amendment to the <a href="http://www.w3.org/Style/2004/css-charter-long">CSS charter</a>?  A W3C note?  Or perhaps within the <a href="http://www.w3.org/2004/CDF/">Compound Document Formats (CDF) WG</a>?  Naturally, we think it&#8217;s a great new capability to add to the Web platform &#8212; it&#8217;s an elegant stitching together of two standards, unleashed by an element id.  Where should it <em>live</em>, though?  How can it gradually become behavior that developers can count on?  The pervasive sentiment was that the discussion of where it should live seemed prosaic, and that the time taken to even get it under way at W3C would be too long.  The reasoning was that there would be a process impediment raised by those inimical to SVG or CSS doing things it doesn&#8217;t normally do (are there user agents that <em>just don&#8217;t</em> support SVG?  Really?).  <a href="http://www.whatwg.org/">WHATWG</a>, however, just seems to get on with it.  Maybe it was best off there?
<p>The argument that <a href="http://www.whatwg.org/">WHATWG</a> moves much more rapidly than <a href="http://www.w3.org/">W3C</a> is certainly true; WHATWG just doesn&#8217;t have closed door &#8220;Advisory Committee Review&#8221; sessions on charter amendments to deal with, and there isn&#8217;t really a lot of process overhead to getting a new idea put to text by a rapid editor.  Even charter amendments to the successful <a href="http://www.w3.org/2008/webapps/charter/">W3C Web Applications</a> WG would require an Advisory Committee Review cycle, which might result in lengthy discussions or a stalemate on controversial, &#8220;big patent&#8221; areas, like the Geolocation API, which will soon have <a href="http://lists.w3.org/Archives/Public/public-geolocation/">its own working group</a>.  Who wants a stalemate?  And few would venture that time spent waiting for a home for a new idea to live is time well spent, especially when you can just get on with it within the WHATWG.</li>
<li>But every coin has a flip side.  The big problem with the <a href="http://www.whatwg.org/">WHATWG</a> is that <a href="http://ln.hixie.ch/">Ian Hickson</a>, its main editor (great guy) isn&#8217;t scalable (he&#8217;s mostly human, and this is a human failing).  Plus, with one person as the gatekeeper of the important but floating HTML5 specification, disagreements are bound to arise.  Those attending the summit <em>did</em> complain about changes to specifications that happened without their blessing &#8212; I heard terms like <em>ninja insertions</em>, and anecdotal stories about the rightness or wrongness of specification changes without a developer&#8217;s consent.  For the most part, these dissipate with time &#8212; that&#8217;s just part of the process, which explicitly is NOT based on W3C-style consensus (by design).  There&#8217;s a benevolent dictatorship at work here, which can be justified as being sound technically, but the fact of the matter is, you aren&#8217;t just dealing with an editor who puts in &#8220;majority rules&#8221; text.  The editor is very, very opinionated.  &#8220;Ninja insertions&#8221; in the specification can happen if you don&#8217;t monitor the email (which goes back to large cycles spent looking at email &#8212; just an occupational hazard, I suppose).  Sure, WHATWG may be an imperfect system, someone pointed out, <em>but it works</em> and <em>it&#8217;s fast</em>.</li>
</ul>
<p>So the two standards bodies which are of importance to Mozilla either have painful consensus building overheads or explicit legislation from the editor, both of which have pros and cons.  Where&#8217;s the upbeat coda I promised, if there&#8217;s only problems and tricky nuances?</p>
<p>Actually, I took a poll of the audience to see who would be willing to edit specifications.  The room was silent for a while, and then some of the usual suspects tentatively raised their hands.  I&#8217;m upbeat not necessarily because I get to chase people up to do work and officially commit to documenting things for the Web Platform (which is great), but because of the <em>number</em> of people that attended my session, and because of the fact that as a community, we collectively spent an hour or so strategizing about future directions.  The Web is a riotous assembly, too impatient for lengthy consensus cycles and too big to have a bottleneck of size one.  We&#8217;ll work this out yet, and it will be imperfectly functional, with standards getting crafted in more than one place.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/standards/2008/08/19/fear-and-loathing-on-the-standards-trail-with-an-upbeat-coda/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>After Oslo: Thoughts on Harmony and Evolution</title>
		<link>http://blog.mozilla.com/standards/2008/08/15/after-oslo-thoughts-on-harmony-and-evolution/</link>
		<comments>http://blog.mozilla.com/standards/2008/08/15/after-oslo-thoughts-on-harmony-and-evolution/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 20:32:12 +0000</pubDate>
		<dc:creator>aruner</dc:creator>
				<category><![CDATA[ECMA]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/standards/?p=4</guid>
		<description><![CDATA[This is a blog post about harmony in the ECMAScript process; or, about how opinionated technologists forgo stalemates and arrive at some measure of reconciliation.]]></description>
			<content:encoded><![CDATA[<p>Standards meetings rarely generate the kind of buzz that the ECMAScript meeting Brendan and I attended in Oslo did; check out <a href="http://ejohn.org/blog/ecmascript-harmony/">John Resig&#8217;s blog post</a>, and then <a href="http://yuiblog.com/blog/2008/08/14/premature-standardization/">Doug Crockford&#8217;s</a>.  And, there&#8217;s also <a href="http://openwebpodcast.com/episode-2-brendan-eich-and-arun-ranganathan-on-ecmascript-harmony">the Open Web Podcast on ECMAScript Harmonization</a> that John Resig, Alex Russell, and Dion Almaer hosted Brendan and I on.  Turns out that time spent indoors with computer language design mavens in sunny Oslo in late July have sowed the seeds of harmony.  But first, some back story.</p>
<p><em><a href="http://javascript.crockford.com/popular.html">Just</a> So <a href="http://www.codinghorror.com/blog/archives/000857.html">Stories</a></em> about <em>why exactly</em> JavaScript became the de facto programming language of the web abound; that it is very popular is either a <a href="http://weblogs.mozillazine.org/roadmap/archives/2008/04/popularity.html">blessing or a curse</a> for its creator, who says he still sees it as the &#8220;quickie love child between C and <a href="http://en.wikipedia.org/wiki/Self_programming_language">Self.</a>&#8221;  Its programming language antecedents, at least in terms of inspiration and influence, have resulted in a language with Java-like syntax, <a href="http://en.wikipedia.org/wiki/Scheme_(programming_language)">Scheme</a>-like first class functions, and Self-like prototypes.  It is implemented, with differences, in every browser, and is here to stay.  But how should it evolve?  As an integral part of the web platform, what should it be capable of in the future?  And, what guiding principles should inform these weighty decisions?  Glad you asked.  This is a blog post about harmony in the ECMAScript process; or, about how opinionated technologists forgo stalemates and arrive at some measure of reconciliation.</p>
<p><span id="more-4"></span></p>
<p> ECMAScript as a standard informs implementations such as JavaScript (in Firefox, Safari, and Opera, to name a few), JScript (in Microsoft&#8217;s Internet Explorer) and ActionScript (in Flash).  The current version is ECMAScript 3 (formally called <a href="http://bclary.com/2004/11/07/">ECMA-262 revision 3 [Link to HTML Version]</a>).  Note, however, that whatever is sanctioned by the specification remains frozen in time, and I don&#8217;t just mean the discovery of errata as time goes on.  The language grows; amongst other things, new APIs and programming constructs get introduced.  More importantly, developers, particularly those that give <em>other developers</em> useful, reusable stuff like <a href="http://www.prototypejs.org/">prototype</a>, <a href="http://dojotoolkit.org/">dojo</a>, or <a href="http://www.jquery.com/">JQuery</a>, <em>want</em> the language to evolve, whether that includes syntactic conveniences or features.  </p>
<p>Evolutionary steps are often tentative and experimental, till market popularity dubs them otherwise.  <a href="http://developer.mozilla.org/en/docs/New_in_JavaScript_1.6">JavaScript 1.6 in Mozilla</a> (implemented in Firefox 1.5) introduced <a href="http://developer.mozilla.org/en/docs/New_in_JavaScript_1.6">Array extras</a> as syntactic sugar, on top of what ECMAScript 3 says you can do with Arrays:</p>
<blockquote><p>
<code><br />
//location or index methods<br />
indexOf<br />
lastIndexOf<br />
<br/><br />
//iterative methods<br />
every()<br />
filter()<br />
forEach()<br />
map()<br />
some()<br />
</code>
</p></blockquote>
<p>It also included support for <a href="http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide:Processing_XML_with_E4X">E4X</a>, which itself was standardized via an ECMA activity (see <a href="http://www.ecma-international.org/publications/standards/Ecma-357.htm">ECMA-357: ECMAScript for XML</a>).</p>
<p>Then, <a href="http://developer.mozilla.org/en/docs/New_in_JavaScript_1.7">JavaScript 1.7 (which is in Firefox 2.0) introduced</a> generators (the <code>yield</code> keyword, for example, typically used in conjunction with <code>while</code> loops) and iterators (the <code>Iterator</code> object and <code>next()</code>), Array comprehensions (ways to initialize arrays using generators and iterators), elegant destructuring assignments (<code>[a,b] = [b,a]</code>), and <code>let</code> as the new &#8220;scope restricted&#8221; <code>var</code>.</p>
<p>Most recently, JavaScript 1.8 (which is in Firefox 3.0) gives us lambda-like function declarations (<code>function(x) x*x // look Ma, no curly braces or return! </code>), more syntactic sugar around generator expressions, and a few more Array extras (<code>reduce</code> and <code>reduceRight</code>). </p>
<p>It made sense to have a revision to ECMAScript 3, perhaps to acknowledge reality, and to standardize the moving parts that were already coming into vogue via JavaScript 1.6 and 1.7 (including catering to the clamoring for <a href="http://ejohn.org/blog/javascript-getters-and-setters/">getters and setters</a>).  Getters, setters, and the Array extras (extremely useful for DOM manipulation, among other things) in particular became hot ticket items.  </p>
<p>In parallel, visions for the <em>longer term</em> future of ECMAScript were also being distilled, under the name ECMAScript 4.  Adobe&#8217;s <a href="http://www.adobe.com/devnet/actionscript/articles/actionscript3_overview.html">ActionScript 3.0</a>, for example, introduced <code>package</code>s, <code>namespace</code>s, <code>class</code>es and <code>interface</code>s, along with type annotations as potential optimizations (check out syntax like <code>var x:int=80</code>), based on early ideas that accumulated within the ECMAScript 4 framework.  </p>
<p>Thus, two standardization endeavors under the aegis of the ECMA TC39 group: ECMAScript 3.1 and ECMAScript 4, respectively.  ECMAScript 3.1 (ES3.1) would be a revision of ECMAScript 3, which had been untouched for a long time.  And ECMAScript 4 (ES4) would look at the <a href="http://www.ecmascript.org/es4/spec/evolutionary-programming-tutorial.pdf">more evolutionary aspects</a> of the language, introducing newer syntax, constructs, and capabilities.  They would exchange ideas on two different mailing lists.  Of course, it made sense that ES3.1 would be a subset of ES4.  There would be a modest update (ES3.1) and a longer term endeavor (ES4), which sums up some of the back story (at least in terms of aspirations).</p>
<p>But of course, it wasn&#8217;t that simple (is it ever?).  The ES3.1 group was informed by design goals including simplicity and security (which are  <em>definitely</em> laudable and good goals for the Web, any resultant discord notwithstanding);  in particular, notions of <a href="http://en.wikipedia.org/wiki/Object-capability_model">object capability</a> played a role in language design, given its constituents, who include the folks behind <a href="http://www.erights.org/">E</a> and <a href="http://en.wikipedia.org/wiki/Smalltalk_programming_language">SmallTalk</a>.  It became clear that the agenda for ES3.1 wasn&#8217;t merely <em>{ES3 + &#8220;The Recognition of Reality (Defacto Standards)&#8221;}</em>.  A few saw it as a chance to clean up <a href="http://javascript.crockford.com/javascript.html">problems in a misunderstood language</a>.  There was the introduction of a secure subset mode to better enable safer mashups, and library additions such as <code>Object.freeze()</code> which enforced the <code>readonly</code>-ness of object properties. Various notions of types were also deemed slippery slopes that ought to be traversed with caution, lest the dynamic nature of ECMAScript languages be irreversibly compromised.  In general,  newer syntax in ES4 was viewed as a sort of <em>troubling adventurism</em> by the ES3.1 group, while similar misconceptions about ES3.1&#8217;s conservative approach to ECMAScript were harbored by the ES4 group.  <a href="http://www.crockford.com/">Doug Crockford</a> (of <a href="http://www.json.org/">JSON</a> fame) along with Microsoft <a href="http://wiki.ecmascript.org/lib/exe/fetch.php?id=es3.1%3Aes3.1&#038;cache=cache&#038;media=proposals:proposal_to_refocus_tc39-tg1.pdf">put forth a proposal</a> to refocus efforts, suggesting that ES4 was too much of a radical departure, making it a totally different language.  </p>
<p>Much can be made about disharmony in the ECMAScript process &#8212; about security considerations and design philosophies pitted against each other, thwarting the advent of newer capabilities to the language.  Discord, however, is NOT the big story.  At the meeting in Oslo that took place in July, the ECMAScript group arrived at the notion of <a href="https://mail.mozilla.org/pipermail/es4-discuss/2008-August/003400.html">ECMAScript Harmonized</a>, a reconciliation between the two groups.  Some design compromises needed to be arrived at, but they are good for the Web.  To quote Brendan&#8217;s executive summary:</p>
<blockquote><p>
Some ES4 proposals have been deemed unsound for the Web, and are off the table for good: packages, namespaces and early binding. This conclusion is key to Harmony.
</p></blockquote>
<p><a href="http://blog.oinam.com/2006/namespace-in-actionscript-30/">Namespace usage</a> implies a module system of some sort (and namespaces and packages go hand in hand, here), but in the case of the Global Object, the module inclusion system is our tried and tested (albeit problematic) <code>&lt;script src=&gt;</code>.  Then there&#8217;s also:</p>
<blockquote><p>
Plus, as some JS implementors have noted with concern, multiple open namespaces impose runtime cost unless an implementation works significantly harder.
</p></blockquote>
<p>So let&#8217;s agree to forgo namespaces in the global object.  John Resig asked me <a href="http://openwebpodcast.com/episode-2-brendan-eich-and-arun-ranganathan-on-ecmascript-harmony">on the podcast</a> if namespaces and packages was one concession too many to make, made under pressure from the ES3.1 group (who see the present namespace proposal as anathema to their design principles).  Actually, it was the ES4 group that proposed forgoing packages <em>and</em> namespaces, <em>voluntarily</em>, as better for the reality of scripts on the Web today.  I suppose these can exist as particular extensions within ActionScript to whatever the newly harmonized language looks like.</p>
<p>But, classes as syntactic sugar are still in, and that&#8217;s a really exciting instrument of abstraction (and syntactic sugar).  I talk on the podcast about how we spent a lot of time in Oslo engaging in <em>desugaring exercises</em> as useful for harmony, proving that classes can be desugared to ES3.1 syntax, with <code>Object.freeze</code>.  </p>
<p>As <a href="https://mail.mozilla.org/pipermail/es4-discuss/2008-August/003400.html">Brendan&#8217;s email shows</a>, our work is still cut out for us.  Some discussion around nominal  vs. structural typing needs to occur, as well as harmonization around generators and iterators.  And then there&#8217;s the issue of inheritance, which still needs to be worked out, while preserving the prototype-based inheritance that exists today.   <em>Zero, single</em>, or <em>multiple</em>?  What do developers <em>really</em> want? Let&#8217;s start easy, and then think about it.</p>
<p>Concern about security by those that pave the Web is, of course, good for the Web.  But so is evolution.  A hung committee full of implementers serves <em>neither</em> goal.  Now that we&#8217;re all harmonized, let&#8217;s get back to <a href="http://en.wikipedia.org/wiki/Rough_consensus">rough consensus and running code</a>, and let&#8217;s get on with it.  I&#8217;m looking forward to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/standards/2008/08/15/after-oslo-thoughts-on-harmony-and-evolution/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Building the Web, One Spec at a Time</title>
		<link>http://blog.mozilla.com/standards/2008/07/16/building-the-web-one-spec-at-a-time/</link>
		<comments>http://blog.mozilla.com/standards/2008/07/16/building-the-web-one-spec-at-a-time/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 00:18:26 +0000</pubDate>
		<dc:creator>aruner</dc:creator>
				<category><![CDATA[ECMA]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[WHATWG]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/standards/?p=3</guid>
		<description><![CDATA[(Cross-posted from arunranga.com)
I&#8217;m admittedly being a bit glib in my title.  Can innovation and advancement of the web platform occur at all, given the temporal straight jacket that standards bodies sometimes impose?  There are certainly proprietary platforms that leverage the web (Flash and Silverlight) and developers do happily bivouac in them, building some [...]]]></description>
			<content:encoded><![CDATA[<p>(Cross-posted from <a href="http://arunranga.com/blog/2008/07/building-the-web-one-spec-at-a-time/">arunranga.com</a>)</p>
<p>I&#8217;m admittedly being a bit glib in my title.  Can innovation and advancement of the web platform occur at all, given the temporal straight jacket that standards bodies sometimes impose?  There are certainly proprietary platforms that leverage the web (<a href="http://www.macromedia.com/software/flash/about/">Flash</a> and <a href="http://silverlight.net/">Silverlight</a>) and developers <em>do</em> happily bivouac in them, building <a href="http://memorabilia.hardrock.com/">some fairly compelling stuff</a>.  Some even argue that <a href="http://pseudosavant.com/blog/2008/07/08/a-proprietary-web-blame-the-w3c/">these proprietary platforms</a> push the envelope <a href="http://blogs.zdnet.com/carroll/?p=1855">more than what the web can do by itself,</a> given the <a href="http://blogs.zdnet.com/Stewart/?p=881">stagnancy of standards bodies</a>.</p>
<p>But let&#8217;s talk about the web platform.  Stagnant, really?  Innovation at Mozilla ultimately manifests itself as innovation for the web platform.  Let&#8217;s leave the intricacies of the standards process for another discussion &#8212; it isn&#8217;t ideal, and big questions about consortia (like <a href="http://www.w3.org/">W3C</a> and <a href="http://www.ecma-international.org/">ECMA</a>) are probably valid ones.  Great ideas are vetted for interoperability in forums such as the <a href="http://www.whatwg.org/">WHATWG</a>, and the <a href="http://www.w3.org/2008/webapps/">W3C&#8217;s WebApps WG</a>, and we browser vendors deliver as rapidly as feasible on implementations (some are slower than others &#8212; you know who you are).  Both IE8 Beta and Firefox 3 now support <a href="http://ejohn.org/blog/postmessage-api-changes/">postMessage</a>, for example, so talk of AJAX methodologies being stagnant ought to be revisited.  And support of <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-2d">Canvas2D</a> in browsers such as Opera, Safari, and Firefox results in <a href="http://blog.wired.com/monkeybites/2008/05/new-javascript.html">stellar innovations such as processing.js</a>, which &#8212; any &#8220;open platform&#8221; chauvinism on my part notwithstanding &#8212; gives Flash a royal run for its money.</p>
<p>Mozilla&#8217;s involvement in standards encompasses enhancements to JavaScript, graphics, and APIs for new capabilities.  Below is a breakdown of the work that will eventually be a part of the web platform.  Don&#8217;t stop and stare for too long &#8212; there is nothing stagnating here <img src='http://blog.mozilla.com/standards/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><span id="more-3"></span></p>
<ul>
<li>
<p>Evolving the <em>AJAX backbone</em> essentially means adding new capabilities to the <code>XMLHttpRequest</code> object, which is really the skinny man on stilts behind the AJAX wizard.  Currently, the <code>XMLHttpRequest</code> object (abbreviated XHR) can&#8217;t cross the single domain threshold, but we&#8217;re working on a &#8220;mitigation&#8221; mechanism to allow cross-domain access called <a href="http://dev.w3.org/2006/waf/access-control/">Access Control</a>, which will be used by API containers such as <a href="http://www.w3.org/TR/XMLHttpRequest2/">XHR Level 2</a>.  Allowing Cookies and HTTP-Authentication mechanisms for safer cross-domain mashups is <a href="http://lists.w3.org/Archives/Public/public-webapps/2008JulSep/0011.html">controversial, certainly</a>, and safety is paramount.  Amongst the topics to consider are interoperability with Microsoft&#8217;s equally controversial <code>XDomainRequest</code> object, introduced in IE8 Beta.  The <a href="http://www.w3.org/2008/webapps/">WebApps Working Group&#8217;s</a> progress has been good; I expect this feature to be released in Firefox 3.next.  Our long term goals ought to be to <a href="http://people.mozilla.com/~bsterne/site-security-policy/">clean up</a> the existing legacy of <a href="http://www.arunranga.com/articles/browser-cross-site.html">&#8220;ad-hoc&#8221; cross-domain access mechanisms</a> on the web, and introduce safer primitives to give developers the capability of doing safe mashups.</p>
</li>
<li>
<p>The <em>Canvas3D initiative</em> brings 3D graphics to the web, exposing <a href="http://blog.vlad1.com/2007/11/26/canvas-3d-gl-power-web-style/">an OpenGL 3D context to JavaScript via the canvas element</a>.  Pretty cool, eh?  This allows 3D modeling on the web, with the potential of a low-level API that does the <a href="http://www.khronos.org/opengles/">OpenGL stuff</a>, possibly allowing for use of a shading language and even modeling formats like <a href="http://www.khronos.org/collada/">Collada</a>.  There&#8217;s also the possibility of a higher level layer of abstraction for 3D graphics in general.  We&#8217;re raring to talk to the appropriate standards group, as well as get feedback on early implementations (check out <a href="http://blog.vlad1.com/2007/11/26/canvas-3d-gl-power-web-style/">Vlad&#8217;s extension</a>).</p>
</li>
<li>
<p><em>Worker Threads in JavaScript</em> allow for abstraction around multiple threads exposed to web content, and allows for inter-thread communication using an API like <code>postMessage</code>.  Use cases envision dedicated &#8220;background&#8221; processes happening asynchronously (and communicating with other processes on the spawning page).  Proposals abound; <a href="http://code.google.com/apis/gears/api_workerpool.html">Google Gears</a>, <a href="http://hixie.ch/specs/dom/workers/0.9">WHATWG</a>, and <a href="http://wiki.mozilla.org/DOMWorkerThreads">Mozilla&#8217;s DOM Worker Threads</a> all have skin in the game, and we&#8217;re all working to arrive at a single straw person which will evolve either in the <a href="http://www.whatwg.org/">WHATWG</a> or in the <a href="http://lists.w3.org/Archives/Public/public-webapps/2008AprJun/0416.html/">W3C WebApps WG, where it was proposed</a>.</p>
</li>
<li>
<p>Introducing <em>SVG capabilities in CSS</em> goes some of the way towards addressing the concern that the web stack consists of separate technologies that don&#8217;t &#8220;live together&#8221; well.  Mozilla&#8217;s Robert O&#8217;Callahan blogged first about <a href="http://weblogs.mozillazine.org/roc/archives/2008/06/applying_svg_ef.html">extending SVG&#8217;s notions of <code>filter</code>, <code>mask</code> and <code>clip-path</code></a>, and then about <a href="http://weblogs.mozillazine.org/roc/archives/2008/07/svg_paint_serve.html">extending SVG paint servers</a>.  The resultant demos are &#8230;. just <em>pretty darn awesome</em>.  In an ideal world, these would be <a href="http://www.w3.org/Style/2004/css-charter-long.html">extensions to the CSS charter</a>, since these make the <a href="http://people.mozilla.com/~roc/SVG-CSS-Effects-Draft.html">capabilities of SVG exposed to CSS</a>.</p>
</li>
<li>
<p>The birth of the <em>Geolocation API</em> for JavaScript was originally fraught with some small dissonance about where in the W3C the activity would live.  In the WebApps Working Group, or in a newly minted Geolocation Working Group?  It looks a lot like for reasons of corporate machinery (as well as, honestly, modular specification management), the Geolocation work will take place in a separate working group, despite objections from Mozilla, Opera, Apple, and Google (we&#8217;ll all still likely participate).  Andrei Popescu from Google is a promising editor of the <a href="http://dev.w3.org/geo/api/spec-source.html">nascent specification</a>, which reconciled ideas from <a href="http://code.google.com/p/google-gears/wiki/GeolocationAPI">Google&#8217;s Gears team</a> as well as <a href="http://azarask.in/blog/post/geolocation-in-firefox-and-beyond/">Mozilla&#8217;s Geolocation proposal.</a> </p>
</li>
<li>
<p><em>ECMAScript 3.1 and ECMAScript 4</em> are both enhancements to the defacto programming language of the web (and will manifest themselves in JavaScript <em>and</em> ActionScript &#8212; some things aren&#8217;t <em>totally</em> proprietary anymore, and both &#8220;proprietary&#8221; and &#8220;open&#8221; are words that ought to be used in an informed way).  <a href="http://wiki.ecmascript.org/doku.php?id=es3.1:es3.1_proposal_working_draft">ECMAScript 3.1</a> proposes to recognize some &#8220;reality on the web&#8221; as well as introduces notions around safe subsets.  <a href="http://www.ecmascript.org/docs.php">ECMAScript 4</a> introduces &#8220;evolutionary&#8221; enhancements to ECMAScript &#8212; think <code>class</code>es and structural types in JavaScript <img src='http://blog.mozilla.com/standards/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
</li>
</ul>
<p>Anyone that thinks the web is standing still while proprietary models out-maneuver us ought to be disabused of that notion.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/standards/2008/07/16/building-the-web-one-spec-at-a-time/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
