<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Brendan Eich: JavaScript 2 and the Future of the Web</title>
	<atom:link href="http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Thu, 09 Feb 2012 06:55:33 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
	<item>
		<title>By: zomia</title>
		<link>http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2/comment-page-1#comment-257898</link>
		<dc:creator>zomia</dc:creator>
		<pubDate>Mon, 29 Oct 2007 09:04:42 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2#comment-257898</guid>
		<description>why can i not see this presentation :( i really wanted to see. i read all about it on your website.</description>
		<content:encoded><![CDATA[<p>why can i not see this presentation :( i really wanted to see. i read all about it on your website.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brendan Eich</title>
		<link>http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2/comment-page-1#comment-154941</link>
		<dc:creator>Brendan Eich</dc:creator>
		<pubDate>Tue, 31 Oct 2006 05:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2#comment-154941</guid>
		<description>By &quot;hand-rolled continuations&quot; I mean explicit continuation-passing style (CPS).  See http://lambda-the-ultimate.org/node/1524 for more on this, and on Narrative JavaScript (which compiles its extended-JS input language to CPS JS).

/be</description>
		<content:encoded><![CDATA[<p>By &#8220;hand-rolled continuations&#8221; I mean explicit continuation-passing style (CPS).  See <a href="http://lambda-the-ultimate.org/node/1524" rel="nofollow">http://lambda-the-ultimate.org/node/1524</a> for more on this, and on Narrative JavaScript (which compiles its extended-JS input language to CPS JS).</p>
<p>/be</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brendan Eich</title>
		<link>http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2/comment-page-1#comment-154693</link>
		<dc:creator>Brendan Eich</dc:creator>
		<pubDate>Tue, 31 Oct 2006 00:05:51 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2#comment-154693</guid>
		<description>Charlie, it&#039;s possible to implement proper tail calls in a fairly costly way, using exceptions -- see http://w3future.com/weblog/2006/02/. This does not give you the simplified &quot;synchronous style&quot; programming you seek.  But at least with JS2/ES4, you&#039;ll get mandatory proper tail calls in addition to generators (yield expressions/statements).  So you can avoid writing spaghetti code in most cases.

Here is where generators break down: you can yield only one generator activation &quot;back&quot; to the caller or &quot;resumer&quot; (the code that calls .next(), .send(v), or perhaps .throw(e)).  If you want to restore synchronous control flow across a flow graph involving more than one function, with only the root function in the graph being the generator (where the yields are), then (bad, back to spaghetti) you will need to hand-craft a state machine to track where you left off in a subroutine, and resume there -- or (better, no spaghetti but not purely synchronous either), use nested generators.

Some people might give up and use hand-rolled continuations, relying on proper tail calls to avoid consuming indefinite stack space.  But doing that means explicitly turning your loops inside out and twisting them into if statements with continuations.

Nested generators are not so bad.  They should be familiar to Python folks.  We hope to build on that mindshare.  But I know of many cases where the flow graph that one wishes to make synchronous fits entirely in a single function, and for such cases, yield alone suffices.

/be</description>
		<content:encoded><![CDATA[<p>Charlie, it&#8217;s possible to implement proper tail calls in a fairly costly way, using exceptions &#8212; see <a href="http://w3future.com/weblog/2006/02/" rel="nofollow">http://w3future.com/weblog/2006/02/</a>. This does not give you the simplified &#8220;synchronous style&#8221; programming you seek.  But at least with JS2/ES4, you&#8217;ll get mandatory proper tail calls in addition to generators (yield expressions/statements).  So you can avoid writing spaghetti code in most cases.</p>
<p>Here is where generators break down: you can yield only one generator activation &#8220;back&#8221; to the caller or &#8220;resumer&#8221; (the code that calls .next(), .send(v), or perhaps .throw(e)).  If you want to restore synchronous control flow across a flow graph involving more than one function, with only the root function in the graph being the generator (where the yields are), then (bad, back to spaghetti) you will need to hand-craft a state machine to track where you left off in a subroutine, and resume there &#8212; or (better, no spaghetti but not purely synchronous either), use nested generators.</p>
<p>Some people might give up and use hand-rolled continuations, relying on proper tail calls to avoid consuming indefinite stack space.  But doing that means explicitly turning your loops inside out and twisting them into if statements with continuations.</p>
<p>Nested generators are not so bad.  They should be familiar to Python folks.  We hope to build on that mindshare.  But I know of many cases where the flow graph that one wishes to make synchronous fits entirely in a single function, and for such cases, yield alone suffices.</p>
<p>/be</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charlie Hubbard</title>
		<link>http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2/comment-page-1#comment-149515</link>
		<dc:creator>Charlie Hubbard</dc:creator>
		<pubDate>Fri, 27 Oct 2006 05:12:41 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2#comment-149515</guid>
		<description>Brandon,

I asked about using if using generators could restore synchronous control flow when using XHR.  You explained how under some circumstances they could help, but ultimately they can&#039;t restore synchronous control flow.  Unfortunately I think the only way we could restore synchronous control flow is by using full continuations which you explained are to costly for the browser.  But, could the stack inspection library proposal in the wiki give us the ability to implement full continuations?  Would local variables, parameters, and such be accesible as annotations?</description>
		<content:encoded><![CDATA[<p>Brandon,</p>
<p>I asked about using if using generators could restore synchronous control flow when using XHR.  You explained how under some circumstances they could help, but ultimately they can&#8217;t restore synchronous control flow.  Unfortunately I think the only way we could restore synchronous control flow is by using full continuations which you explained are to costly for the browser.  But, could the stack inspection library proposal in the wiki give us the ability to implement full continuations?  Would local variables, parameters, and such be accesible as annotations?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brendan Eich</title>
		<link>http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2/comment-page-1#comment-148455</link>
		<dc:creator>Brendan Eich</dc:creator>
		<pubDate>Thu, 26 Oct 2006 17:43:25 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2#comment-148455</guid>
		<description>Shelley: we in ECMA TG1 (the JavaScript working group) publish snapshots of our wiki at http://developer.mozilla.org/es4/ -- a new snapshot is due this week. If you look closely, you will see contributions from Microsoft, Mozilla, and Opera employees, along with other fine folks from University and small-company members -- and from Doug Crockford of Yahoo!.

So the big question is &quot;what IE release might include JS2/ES4?&quot;  But we have to finish the spec before you can hope to get an answer out of MSFT. That&#039;s only fair: any company tracking the spec would not want to commit to a ship date before the standard is finalized.

/be</description>
		<content:encoded><![CDATA[<p>Shelley: we in ECMA TG1 (the JavaScript working group) publish snapshots of our wiki at <a href="http://developer.mozilla.org/es4/" rel="nofollow">http://developer.mozilla.org/es4/</a> &#8212; a new snapshot is due this week. If you look closely, you will see contributions from Microsoft, Mozilla, and Opera employees, along with other fine folks from University and small-company members &#8212; and from Doug Crockford of Yahoo!.</p>
<p>So the big question is &#8220;what IE release might include JS2/ES4?&#8221;  But we have to finish the spec before you can hope to get an answer out of MSFT. That&#8217;s only fair: any company tracking the spec would not want to commit to a ship date before the standard is finalized.</p>
<p>/be</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shelley</title>
		<link>http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2/comment-page-1#comment-148254</link>
		<dc:creator>Shelley</dc:creator>
		<pubDate>Thu, 26 Oct 2006 14:48:53 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2#comment-148254</guid>
		<description>Is a presentation video going to be put online? Is Eich following up with a detailed overview of what shows in the slides? Is there a progress report coming out of the ECMAScript working group, as well as a listing of companies involved? I saw the deadline, but that&#039;s not a progress report. Most importantly: is there a commitment from the other browser makers to this plan?</description>
		<content:encoded><![CDATA[<p>Is a presentation video going to be put online? Is Eich following up with a detailed overview of what shows in the slides? Is there a progress report coming out of the ECMAScript working group, as well as a listing of companies involved? I saw the deadline, but that&#8217;s not a progress report. Most importantly: is there a commitment from the other browser makers to this plan?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jesse Kuhnert</title>
		<link>http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2/comment-page-1#comment-148174</link>
		<dc:creator>Jesse Kuhnert</dc:creator>
		<pubDate>Thu, 26 Oct 2006 13:32:21 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2#comment-148174</guid>
		<description>What on earth are you guys going on about? ;)

The presentation was very good. At least from a hungry technical consumer pov.</description>
		<content:encoded><![CDATA[<p>What on earth are you guys going on about? ;)</p>
<p>The presentation was very good. At least from a hungry technical consumer pov.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adrian Ziemkowski</title>
		<link>http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2/comment-page-1#comment-148166</link>
		<dc:creator>Adrian Ziemkowski</dc:creator>
		<pubDate>Thu, 26 Oct 2006 13:28:40 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2#comment-148166</guid>
		<description>So the next question is when do we get a server-side JS2 system that can communicate objects/calls directly to the client and back and load, say, php extensions server-side (to be used via JS2 rather than PHP... why write in two different interpreted languages?*)?
&#160;
Imagine writing core classes once and simply having different DAOs being used client side versus server side, and a client-side DAO making an ajax call to an instance of the object on the server which could then use its cache/db/etc DAOs (that would never get sent to the client) to set up the objects.  &lt;em&gt;That&lt;/em&gt; would get exciting.
&#160;
&lt;em&gt;* I know, I know, not everybody uses PHP.  I just use it as an example because it&#039;s also interpreted and because it has a large set of available extensions written in C, and if they&#039;re already being used by one non-native interpreted system, they might as well be used by another, no?&lt;/em&gt;</description>
		<content:encoded><![CDATA[<p>So the next question is when do we get a server-side JS2 system that can communicate objects/calls directly to the client and back and load, say, php extensions server-side (to be used via JS2 rather than PHP&#8230; why write in two different interpreted languages?*)?<br />
&nbsp;<br />
Imagine writing core classes once and simply having different DAOs being used client side versus server side, and a client-side DAO making an ajax call to an instance of the object on the server which could then use its cache/db/etc DAOs (that would never get sent to the client) to set up the objects.  <em>That</em> would get exciting.<br />
&nbsp;<br />
<em>* I know, I know, not everybody uses PHP.  I just use it as an example because it&#8217;s also interpreted and because it has a large set of available extensions written in C, and if they&#8217;re already being used by one non-native interpreted system, they might as well be used by another, no?</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thirumalai Veerasamy</title>
		<link>http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2/comment-page-1#comment-148148</link>
		<dc:creator>Thirumalai Veerasamy</dc:creator>
		<pubDate>Thu, 26 Oct 2006 13:11:29 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2#comment-148148</guid>
		<description>I am not able to view the presenation.  I use FF but even tried IE, the presentation doesn&#039;t show up properly, it is just me?</description>
		<content:encoded><![CDATA[<p>I am not able to view the presenation.  I use FF but even tried IE, the presentation doesn&#8217;t show up properly, it is just me?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zhou Renjian</title>
		<link>http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2/comment-page-1#comment-148034</link>
		<dc:creator>Zhou Renjian</dc:creator>
		<pubDate>Thu, 26 Oct 2006 12:05:32 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/brendan-eich-javascript-2-and-the-future-of-the-web-2#comment-148034</guid>
		<description>We want something revolutionary rather than something improved? 
1.5 -&gt; 1.6 -&gt; 1.7 -&gt; 1.8? -&gt;... -&gt; 2.0
Am I going to be sticky to 1.6 before 2.0 is widely adopted?

Hey, if there is a deadline, which all of IE, Firefox, Opera, Safari and other browser teams agree, that before that deadline there must be an updated version of its browser that is JavaScript2 compatible. If browser update fails to come up, it will have all the internet world known that it fails! 

Maybe we don&#039;t want to wait for years, what about a date 555 days later as the deadline, Saturday, May 3, 2008?

I think I&#039;m kidding. :)</description>
		<content:encoded><![CDATA[<p>We want something revolutionary rather than something improved?<br />
1.5 -&gt; 1.6 -&gt; 1.7 -&gt; 1.8? -&gt;&#8230; -&gt; 2.0<br />
Am I going to be sticky to 1.6 before 2.0 is widely adopted?</p>
<p>Hey, if there is a deadline, which all of IE, Firefox, Opera, Safari and other browser teams agree, that before that deadline there must be an updated version of its browser that is JavaScript2 compatible. If browser update fails to come up, it will have all the internet world known that it fails! </p>
<p>Maybe we don&#8217;t want to wait for years, what about a date 555 days later as the deadline, Saturday, May 3, 2008?</p>
<p>I think I&#8217;m kidding. :)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

