<?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: Google App Engine and The Java Web; The Wrong Java?</title>
	<atom:link href="http://almaer.com/blog/google-app-engine-and-the-java-web-the-wrong-java/feed" rel="self" type="application/rss+xml" />
	<link>http://almaer.com/blog/google-app-engine-and-the-java-web-the-wrong-java</link>
	<description>blogging about life, the universe, and everything tech</description>
	<lastBuildDate>Sat, 08 Sep 2012 07:06:53 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Ray Cromwell</title>
		<link>http://almaer.com/blog/google-app-engine-and-the-java-web-the-wrong-java/comment-page-1#comment-40666</link>
		<dc:creator>Ray Cromwell</dc:creator>
		<pubDate>Wed, 08 Apr 2009 18:25:42 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2369#comment-40666</guid>
		<description>Dion,
  The problem exists because frankly, the browsers have approached VMs in the wrong fashion. They have decided to standardize on a language syntax, rather than standardize a dynamic-language friendly generic VM. As you clearly realize, on the server side, people love the ability to use any of the favorite languages for development, but on the client, they are effectively forced to use Javascript. Now, why do advocates of open development push so strongly for heterogenous open development on the server, but rebel when anyone suggests developing in a language other than their beloved Javascript? :)

 Cross-compilation to Javascript is the only mechanism for getting new languages on the client VM. Javascript is the only available entry point to V8/TraceMonkey/SquirrelFish&#039;s underlying JIT/VM infrastructure. You don&#039;t just see this with GWT, there are projects that compile Python to JS, Ruby to JS, hybrids like Objective-J. &quot;JS as assembler&quot; is not going to go away until this issue in the browser platform goes away. We are wedded now to decisions made in 1995, which may have been the most efficient way back then, but in the era of super-advanced VMs like V8 look silly. Why should V8&#039;s internals remain tightly bound to a single input syntax when it could be used for other languages?

 On GWT, it is a cross-compiler, and in that regard, there is nothing stopping the GWT team from adding new frontend languages in time. I could forsee a future in which GWT can compile Scala, and other languages to Javascript as well, but not until the Java compilation has reached its limits, which it has not.

 I don&#039;t see the issue between HTML5 and GWT. HTML5 covers the markup, and DOM APIs. GWT can interface to any of these and do so with no overhead whatsoever.  The fact that it made feel weird to you is an emotional or aesthetic observation, not a practical one. There are people who may feel that certain constructs in Javascript are &#039;weird&#039; too. I don&#039;t see any legitimate criticism.

 The reason why you don&#039;t ship down a JAR and run it in the Java VM is precisely because of the way GWT works. It is a static ahead-of-time compiler that operates on a closed-world code base, which allows it to perform optimizations that can&#039;t be done on Java bytecode traditionally. This means GWT can prune dead code away that would normally be shipped in the JAR.

 GWT is all about end user experience, reducing latency. Shipping down a JAR full of byte code which can&#039;t be optimized until runtime loading would defeat the purpose of saving bytes on the wire and startup time.

 And, as I talk about in my latest post (http://timepedia.blogspot.com/2009/04/gwts-type-system-is-more-powerful-than.html) GWT is actually more powerful than Java. I can do things with GWT that you can&#039;t do in Java, like add extension methods to types with zero-overhead.</description>
		<content:encoded><![CDATA[<p>Dion,<br />
  The problem exists because frankly, the browsers have approached VMs in the wrong fashion. They have decided to standardize on a language syntax, rather than standardize a dynamic-language friendly generic VM. As you clearly realize, on the server side, people love the ability to use any of the favorite languages for development, but on the client, they are effectively forced to use Javascript. Now, why do advocates of open development push so strongly for heterogenous open development on the server, but rebel when anyone suggests developing in a language other than their beloved Javascript? :)</p>
<p> Cross-compilation to Javascript is the only mechanism for getting new languages on the client VM. Javascript is the only available entry point to V8/TraceMonkey/SquirrelFish&#8217;s underlying JIT/VM infrastructure. You don&#8217;t just see this with GWT, there are projects that compile Python to JS, Ruby to JS, hybrids like Objective-J. &#8220;JS as assembler&#8221; is not going to go away until this issue in the browser platform goes away. We are wedded now to decisions made in 1995, which may have been the most efficient way back then, but in the era of super-advanced VMs like V8 look silly. Why should V8&#8217;s internals remain tightly bound to a single input syntax when it could be used for other languages?</p>
<p> On GWT, it is a cross-compiler, and in that regard, there is nothing stopping the GWT team from adding new frontend languages in time. I could forsee a future in which GWT can compile Scala, and other languages to Javascript as well, but not until the Java compilation has reached its limits, which it has not.</p>
<p> I don&#8217;t see the issue between HTML5 and GWT. HTML5 covers the markup, and DOM APIs. GWT can interface to any of these and do so with no overhead whatsoever.  The fact that it made feel weird to you is an emotional or aesthetic observation, not a practical one. There are people who may feel that certain constructs in Javascript are &#8216;weird&#8217; too. I don&#8217;t see any legitimate criticism.</p>
<p> The reason why you don&#8217;t ship down a JAR and run it in the Java VM is precisely because of the way GWT works. It is a static ahead-of-time compiler that operates on a closed-world code base, which allows it to perform optimizations that can&#8217;t be done on Java bytecode traditionally. This means GWT can prune dead code away that would normally be shipped in the JAR.</p>
<p> GWT is all about end user experience, reducing latency. Shipping down a JAR full of byte code which can&#8217;t be optimized until runtime loading would defeat the purpose of saving bytes on the wire and startup time.</p>
<p> And, as I talk about in my latest post (<a href="http://timepedia.blogspot.com/2009/04/gwts-type-system-is-more-powerful-than.html" rel="nofollow">http://timepedia.blogspot.com/2009/04/gwts-type-system-is-more-powerful-than.html</a>) GWT is actually more powerful than Java. I can do things with GWT that you can&#8217;t do in Java, like add extension methods to types with zero-overhead.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Porter</title>
		<link>http://almaer.com/blog/google-app-engine-and-the-java-web-the-wrong-java/comment-page-1#comment-40665</link>
		<dc:creator>Porter</dc:creator>
		<pubDate>Wed, 08 Apr 2009 16:53:29 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2369#comment-40665</guid>
		<description>Considering a number of how-tos have already been published on using Groovy, Scala, Clojure, and you even mention one on using jRuby...  I&#039;m not sure where you&#039;re going with the &quot;wrong Java&quot; direction.  It&#039;s a Java 1.6 (6) JVM.  There are some limitation in terms of threading and file I/O, as well as certain Java APIs (JMS for instance) - other than that - as far as I can tell, anything that runs on the modern JVM is fair game.

App Engine isn&#039;t a virtualized server, nor is it a v-host.  It&#039;s a different animal altogether.  That being said - I don&#039;t think you&#039;ll be prevented from using DSLs, and going the lightweight route.</description>
		<content:encoded><![CDATA[<p>Considering a number of how-tos have already been published on using Groovy, Scala, Clojure, and you even mention one on using jRuby&#8230;  I&#8217;m not sure where you&#8217;re going with the &#8220;wrong Java&#8221; direction.  It&#8217;s a Java 1.6 (6) JVM.  There are some limitation in terms of threading and file I/O, as well as certain Java APIs (JMS for instance) &#8211; other than that &#8211; as far as I can tell, anything that runs on the modern JVM is fair game.</p>
<p>App Engine isn&#8217;t a virtualized server, nor is it a v-host.  It&#8217;s a different animal altogether.  That being said &#8211; I don&#8217;t think you&#8217;ll be prevented from using DSLs, and going the lightweight route.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Iein Valdez</title>
		<link>http://almaer.com/blog/google-app-engine-and-the-java-web-the-wrong-java/comment-page-1#comment-40664</link>
		<dc:creator>Iein Valdez</dc:creator>
		<pubDate>Wed, 08 Apr 2009 16:35:32 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2369#comment-40664</guid>
		<description>So I presented last night at campfire and think the combination of GWT and Java AppEngine is actually really powerful and productive. See my techblog post about why we&#039;re excited about the combination and why we chose to stay away from hand coding javascript....

http://techblog.appirio.com/2009/04/early-peek-at-google-app-engine-for.html</description>
		<content:encoded><![CDATA[<p>So I presented last night at campfire and think the combination of GWT and Java AppEngine is actually really powerful and productive. See my techblog post about why we&#8217;re excited about the combination and why we chose to stay away from hand coding javascript&#8230;.</p>
<p><a href="http://techblog.appirio.com/2009/04/early-peek-at-google-app-engine-for.html" rel="nofollow">http://techblog.appirio.com/2009/04/early-peek-at-google-app-engine-for.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joel Webber</title>
		<link>http://almaer.com/blog/google-app-engine-and-the-java-web-the-wrong-java/comment-page-1#comment-40663</link>
		<dc:creator>Joel Webber</dc:creator>
		<pubDate>Wed, 08 Apr 2009 16:05:53 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2369#comment-40663</guid>
		<description>Dion,

I see where you&#039;re coming from here -- it *does* seem a bit odd to cross-compile from one &quot;high-level&quot; language to another. But at the same time, I don&#039;t see GWT and HTML5 evangelism as being in any way antithetical to one another. GWT is simply a tool to help get leverage over a complex Java[script] code base. HTML5 is a collection of browser APIs that we either have already created abstractions for, or will be doing as soon as they&#039;re prevalent enough to be useful. We *love* most of the HTML5 features here on the GWT team, because their adoption will increase the number of cool things we can do in the browser.

To reiterate a point I keep trying to get out there: GWT doesn&#039;t use Java as a source language because we think it&#039;s the greatest language in the world. It uses Java because (a) it has extremely good tools, and (b) its type system allows us to perform a lot of optimizations that would otherwise be impossible.

To your point about &quot;other Javas&quot; we could support, I&#039;m pretty excited about Scala support, though at this point it&#039;s more of a twinkle in Lex&#039;s eye than anything else. The other languages you mention would seem less useful in this context, because their dynamic type systems would preclude most interesting optimizations -- without a monolithically optimizing compiler in the mix, I&#039;d just as soon write Javascript (opinions may of course differ on that last bit; you&#039;ll find I&#039;m the sort who will happily write code in any language that allows me to get the job done).

Allow me to humbly submit my blog post from last year for your consideration:
http://gwt-unofficial.blogspot.com/2008/12/gwt-javascript-and-correct-level-of.html

Cheers,
joel.</description>
		<content:encoded><![CDATA[<p>Dion,</p>
<p>I see where you&#8217;re coming from here &#8212; it *does* seem a bit odd to cross-compile from one &#8220;high-level&#8221; language to another. But at the same time, I don&#8217;t see GWT and HTML5 evangelism as being in any way antithetical to one another. GWT is simply a tool to help get leverage over a complex Java[script] code base. HTML5 is a collection of browser APIs that we either have already created abstractions for, or will be doing as soon as they&#8217;re prevalent enough to be useful. We *love* most of the HTML5 features here on the GWT team, because their adoption will increase the number of cool things we can do in the browser.</p>
<p>To reiterate a point I keep trying to get out there: GWT doesn&#8217;t use Java as a source language because we think it&#8217;s the greatest language in the world. It uses Java because (a) it has extremely good tools, and (b) its type system allows us to perform a lot of optimizations that would otherwise be impossible.</p>
<p>To your point about &#8220;other Javas&#8221; we could support, I&#8217;m pretty excited about Scala support, though at this point it&#8217;s more of a twinkle in Lex&#8217;s eye than anything else. The other languages you mention would seem less useful in this context, because their dynamic type systems would preclude most interesting optimizations &#8212; without a monolithically optimizing compiler in the mix, I&#8217;d just as soon write Javascript (opinions may of course differ on that last bit; you&#8217;ll find I&#8217;m the sort who will happily write code in any language that allows me to get the job done).</p>
<p>Allow me to humbly submit my blog post from last year for your consideration:<br />
<a href="http://gwt-unofficial.blogspot.com/2008/12/gwt-javascript-and-correct-level-of.html" rel="nofollow">http://gwt-unofficial.blogspot.com/2008/12/gwt-javascript-and-correct-level-of.html</a></p>
<p>Cheers,<br />
joel.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://almaer.com/blog/google-app-engine-and-the-java-web-the-wrong-java/comment-page-1#comment-40662</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Wed, 08 Apr 2009 15:28:32 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2369#comment-40662</guid>
		<description>So App Engne good, but GWT bad? I can see your point. However, a lot of web developers really hate JavaScript and its implementations. From a language standpoint, it is so different from the OO languages that most developers live and breathe. Even most of the frameworks out there try to make JavaScript more like an OO language (Prototype/Ruby for example.) And then there are the implementations (browsers.) Being able to write in a true OO language, leveraging tools like Eclipse, and having the implementation differences not only smoothed over, but actually having a compile that aggressively takes advantage of the differences in implementations, is very appealing to many developers. 

I would say that Google&#039;s support for the would-be standards of HTML 5 is optimistic and forward thinking at best. GWT is realistic. Web standards remain a romantic notion. You could give Google credit for backing different strategies, or you could just rack it up to Google being a big company with a lot of different groups who do their own thing.</description>
		<content:encoded><![CDATA[<p>So App Engne good, but GWT bad? I can see your point. However, a lot of web developers really hate JavaScript and its implementations. From a language standpoint, it is so different from the OO languages that most developers live and breathe. Even most of the frameworks out there try to make JavaScript more like an OO language (Prototype/Ruby for example.) And then there are the implementations (browsers.) Being able to write in a true OO language, leveraging tools like Eclipse, and having the implementation differences not only smoothed over, but actually having a compile that aggressively takes advantage of the differences in implementations, is very appealing to many developers. </p>
<p>I would say that Google&#8217;s support for the would-be standards of HTML 5 is optimistic and forward thinking at best. GWT is realistic. Web standards remain a romantic notion. You could give Google credit for backing different strategies, or you could just rack it up to Google being a big company with a lot of different groups who do their own thing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anshu Mishra</title>
		<link>http://almaer.com/blog/google-app-engine-and-the-java-web-the-wrong-java/comment-page-1#comment-40661</link>
		<dc:creator>Anshu Mishra</dc:creator>
		<pubDate>Wed, 08 Apr 2009 14:57:11 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2369#comment-40661</guid>
		<description>You may write your app in groovy :- http://www.gr8conf.org/blog/2009/04/08/27</description>
		<content:encoded><![CDATA[<p>You may write your app in groovy :- <a href="http://www.gr8conf.org/blog/2009/04/08/27" rel="nofollow">http://www.gr8conf.org/blog/2009/04/08/27</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
