<?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: Java : if (compete with PHP / Ruby / Python) { stop fixing the syntax and start fixing the runtime }</title>
	<atom:link href="http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime</link>
	<description>Dhananjay Nene's opinions on software programming, design, architecture and the internet</description>
	<lastBuildDate>Sun, 22 Jan 2012 06:53:20 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Recent Faves Tagged With "runtime" : MyNetFaves</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-4960</link>
		<dc:creator>Recent Faves Tagged With "runtime" : MyNetFaves</dc:creator>
		<pubDate>Thu, 19 Mar 2009 11:20:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-4960</guid>
		<description>[...] public links &gt;&gt; runtime    Java : if (compete with PHP / Ruby / Python) { stop fixing the... First saved by wiechertj &#124; 9 days ago      Beginning Adobe AIR: Building Applications for the Adobe [...]</description>
		<content:encoded><![CDATA[<p>[...] public links &gt;&gt; runtime    Java : if (compete with PHP / Ruby / Python) { stop fixing the&#8230; First saved by wiechertj | 9 days ago      Beginning Adobe AIR: Building Applications for the Adobe [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GuyMac</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-71</link>
		<dc:creator>GuyMac</dc:creator>
		<pubDate>Tue, 15 Apr 2008 15:36:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-71</guid>
		<description>You nailed it!</description>
		<content:encoded><![CDATA[<p>You nailed it!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GuyMac</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-426</link>
		<dc:creator>GuyMac</dc:creator>
		<pubDate>Tue, 15 Apr 2008 14:36:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-426</guid>
		<description>You nailed it!</description>
		<content:encoded><![CDATA[<p>You nailed it!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Taimo</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-70</link>
		<dc:creator>Taimo</dc:creator>
		<pubDate>Tue, 15 Apr 2008 11:39:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-70</guid>
		<description>@Pragma, @Dhananjay

Here&#039;s what Sun database says about &#039;losing&#039; the compile cycle: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4910812

In practice, there are JavaRebel: http://www.zeroturnaround.com/javarebel/features/ and Weblogic 10.3 FastSwap feature: http://www.infoq.com/news/2008/01/weblogic-tech-preview.</description>
		<content:encoded><![CDATA[<p>@Pragma, @Dhananjay</p>
<p>Here&#8217;s what Sun database says about &#8216;losing&#8217; the compile cycle: <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4910812" rel="nofollow">http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4910812</a></p>
<p>In practice, there are JavaRebel: <a href="http://www.zeroturnaround.com/javarebel/features/" rel="nofollow">http://www.zeroturnaround.com/javarebel/features/</a> and Weblogic 10.3 FastSwap feature: <a href="http://www.infoq.com/news/2008/01/weblogic-tech-preview" rel="nofollow">http://www.infoq.com/news/2008/01/weblogic-tech-preview</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-64</link>
		<dc:creator>John</dc:creator>
		<pubDate>Tue, 15 Apr 2008 03:19:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-64</guid>
		<description>I think OSGI runtime can be used to run in multi-tenant environment. Or can it be?</description>
		<content:encoded><![CDATA[<p>I think OSGI runtime can be used to run in multi-tenant environment. Or can it be?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-425</link>
		<dc:creator>John</dc:creator>
		<pubDate>Tue, 15 Apr 2008 02:19:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-425</guid>
		<description>I think OSGI runtime can be used to run in multi-tenant environment. Or can it be?</description>
		<content:encoded><![CDATA[<p>I think OSGI runtime can be used to run in multi-tenant environment. Or can it be?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dhananjay Nene</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-63</link>
		<dc:creator>Dhananjay Nene</dc:creator>
		<pubDate>Mon, 14 Apr 2008 19:14:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-63</guid>
		<description>@Sakuraba,

&lt;blockquote&gt;
You addressed the correct things, but dont think a “process per request” model is truely desirable. What we need is true Isolates and the MVM.
&lt;/blockquote&gt;

Yeah .. but where are the isolates and MVMs ? The project barcelona which researched them seems to have worked on JDK 1.3 and subsequently retired. Its newer version - project Joe declares its goal as : &quot;Our goal is to design APIs, abstractions, and implementation techniques that allow people from all walks of computing to - figuratively speaking - spend their whole programming life without having to leave the Java platform&quot; ... Scary !!!

&lt;blockquote&gt;If you want to get the “Strg+S…Alt-TAB…F5″ development cycle, you can use Grails. It basically combines the great ideas Rails brought to the web world with the robust libraries of the Java platform. It is truely amazing and empowers live websites with millions of page views a month (see Grails success stories).
&lt;/blockquote&gt;

I would love to see some metrics on how many web hosts today support shared hosting of grails applications and do so in a inexpensive and performant way. If we can host grails applications for a large number of shared tenants at comparable price and performance points achieved by PHP / Python / Ruby that would be very wonderful. If the java infrastructure can be updated to support multi tenant hosting and grails is the vehicle of losing the compile cycle and if that achieves the objectives - I am all for it.</description>
		<content:encoded><![CDATA[<p>@Sakuraba,</p>
<blockquote><p>
You addressed the correct things, but dont think a “process per request” model is truely desirable. What we need is true Isolates and the MVM.
</p></blockquote>
<p>Yeah .. but where are the isolates and MVMs ? The project barcelona which researched them seems to have worked on JDK 1.3 and subsequently retired. Its newer version &#8211; project Joe declares its goal as : &#8220;Our goal is to design APIs, abstractions, and implementation techniques that allow people from all walks of computing to &#8211; figuratively speaking &#8211; spend their whole programming life without having to leave the Java platform&#8221; &#8230; Scary !!!</p>
<blockquote><p>If you want to get the “Strg+S…Alt-TAB…F5″ development cycle, you can use Grails. It basically combines the great ideas Rails brought to the web world with the robust libraries of the Java platform. It is truely amazing and empowers live websites with millions of page views a month (see Grails success stories).
</p></blockquote>
<p>I would love to see some metrics on how many web hosts today support shared hosting of grails applications and do so in a inexpensive and performant way. If we can host grails applications for a large number of shared tenants at comparable price and performance points achieved by PHP / Python / Ruby that would be very wonderful. If the java infrastructure can be updated to support multi tenant hosting and grails is the vehicle of losing the compile cycle and if that achieves the objectives &#8211; I am all for it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dhananjay Nene</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-424</link>
		<dc:creator>Dhananjay Nene</dc:creator>
		<pubDate>Mon, 14 Apr 2008 18:14:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-424</guid>
		<description>&lt;blockquote&gt;&lt;br&gt;You addressed the correct things, but dont think a “process per request” model is truely desirable. What we need is true Isolates and the MVM.&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Yeah .. but where are the isolates and MVMs ? The project barcelona which researched them seems to have worked on JDK 1.3 and subsequently retired. Its newer version - project Joe declares its goal as : &quot;Our goal is to design APIs, abstractions, and implementation techniques that allow people from all walks of computing to - figuratively speaking - spend their whole programming life without having to leave the Java platform&quot; ... Scary !!!&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;If you want to get the “Strg+S…Alt-TAB…F5″ development cycle, you can use Grails. It basically combines the great ideas Rails brought to the web world with the robust libraries of the Java platform. It is truely amazing and empowers live websites with millions of page views a month (see Grails success stories).&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;I would love to see some metrics on how many web hosts today support shared hosting of grails applications and do so in a inexpensive and performant way. If we can host grails applications for a large number of shared tenants at comparable price and performance points achieved by PHP / Python / Ruby that would be very wonderful. If the java infrastructure can be updated to support multi tenant hosting and grails is the vehicle of losing the compile cycle and if that achieves the objectives - I am all for it.</description>
		<content:encoded><![CDATA[<blockquote><p>You addressed the correct things, but dont think a “process per request” model is truely desirable. What we need is true Isolates and the MVM.</p></blockquote>
<p>Yeah .. but where are the isolates and MVMs ? The project barcelona which researched them seems to have worked on JDK 1.3 and subsequently retired. Its newer version &#8211; project Joe declares its goal as : &#8220;Our goal is to design APIs, abstractions, and implementation techniques that allow people from all walks of computing to &#8211; figuratively speaking &#8211; spend their whole programming life without having to leave the Java platform&#8221; &#8230; Scary !!!</p>
<blockquote><p>If you want to get the “Strg+S…Alt-TAB…F5″ development cycle, you can use Grails. It basically combines the great ideas Rails brought to the web world with the robust libraries of the Java platform. It is truely amazing and empowers live websites with millions of page views a month (see Grails success stories).</p></blockquote>
<p>I would love to see some metrics on how many web hosts today support shared hosting of grails applications and do so in a inexpensive and performant way. If we can host grails applications for a large number of shared tenants at comparable price and performance points achieved by PHP / Python / Ruby that would be very wonderful. If the java infrastructure can be updated to support multi tenant hosting and grails is the vehicle of losing the compile cycle and if that achieves the objectives &#8211; I am all for it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jos Hirth</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-62</link>
		<dc:creator>Jos Hirth</dc:creator>
		<pubDate>Mon, 14 Apr 2008 17:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-62</guid>
		<description>As Pragma already said you can get rid of the separate compile step with a custom ClassLoader. There are various options. E.g. javac, jdt (Eclipse&#039;s compiler) or Janino. Or even interpreters such as BeanShell.

Janino is the most entertaining one. It&#039;s amazingly fast. However, the error messages aren&#039;t as good and some of the new language features are missing.

I used Janino for game prototyping. Together with media caching you can get &quot;instant&quot; turn-overs. A refresh of a simple 2D game for example took less than half a second on a 500mhz machine. Whereas the same kind of thing with javac and without media caching took over half a minute. The vast majority of the time was spent with startup (javac+java).

The biggest benefit of &quot;full class scripting&quot; is that you can compile it the usual way and swap the loader once everything is done.</description>
		<content:encoded><![CDATA[<p>As Pragma already said you can get rid of the separate compile step with a custom ClassLoader. There are various options. E.g. javac, jdt (Eclipse&#8217;s compiler) or Janino. Or even interpreters such as BeanShell.</p>
<p>Janino is the most entertaining one. It&#8217;s amazingly fast. However, the error messages aren&#8217;t as good and some of the new language features are missing.</p>
<p>I used Janino for game prototyping. Together with media caching you can get &#8220;instant&#8221; turn-overs. A refresh of a simple 2D game for example took less than half a second on a 500mhz machine. Whereas the same kind of thing with javac and without media caching took over half a minute. The vast majority of the time was spent with startup (javac+java).</p>
<p>The biggest benefit of &#8220;full class scripting&#8221; is that you can compile it the usual way and swap the loader once everything is done.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sakuraba</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-61</link>
		<dc:creator>Sakuraba</dc:creator>
		<pubDate>Mon, 14 Apr 2008 16:59:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-61</guid>
		<description>You addressed the correct things, but dont think a &quot;process per request&quot; model is truely desirable. What we need is true Isolates and the MVM.

If you want to get the &quot;Strg+S...Alt-TAB...F5&quot; development cycle, you can use Grails. It basically combines the great ideas Rails brought to the web world with the robust libraries of the Java platform. It is truely amazing and empowers live websites with millions of page views a month (see Grails success stories).</description>
		<content:encoded><![CDATA[<p>You addressed the correct things, but dont think a &#8220;process per request&#8221; model is truely desirable. What we need is true Isolates and the MVM.</p>
<p>If you want to get the &#8220;Strg+S&#8230;Alt-TAB&#8230;F5&#8243; development cycle, you can use Grails. It basically combines the great ideas Rails brought to the web world with the robust libraries of the Java platform. It is truely amazing and empowers live websites with millions of page views a month (see Grails success stories).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dhananjay Nene</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-60</link>
		<dc:creator>Dhananjay Nene</dc:creator>
		<pubDate>Mon, 14 Apr 2008 16:48:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-60</guid>
		<description>@Pragma

Certainly an interesting idea. I am not sure about the issues that will crop up. But certainly something I will spend some time mulling over.</description>
		<content:encoded><![CDATA[<p>@Pragma</p>
<p>Certainly an interesting idea. I am not sure about the issues that will crop up. But certainly something I will spend some time mulling over.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dhananjay Nene</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-59</link>
		<dc:creator>Dhananjay Nene</dc:creator>
		<pubDate>Mon, 14 Apr 2008 16:19:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-59</guid>
		<description>@eutrilla

The JEE designers have focused on making the most efficient runtime that they have negatively impacted the ability to host a large number of Java applications on a single machine. Thus if one has to host 200 java webapps on a single server (not unheard of in PHP) - this means either one tomcat with 200 web apps or potentially 200 tomcats (in case you want to isolate the various applications from each other from misbehaving runaway code). This simply will not scale for a large number of webapps. The issue is not how much data one puts into the ApplicationContext - it is the fact that the existence of the ApplicationContext requires a continuously running process (unless one were to serialise an application context just like the session context) and the fact that one misbehaving application stuffing its application context can lead to negative impact for many other shared apps. The only safe scalable way that I can think of to handle is to get rid of the ApplicationContext and any other constructs which require continuously running processes. While this is lesser efficient than the current architecture, it is more suitable for multi-tenant or cloud based processing models.

With regards to IDEs supporting it - they still require the app server (tomcat to effectively reload the webapp from scratch - this is a big time drain). If a Python / Ruby / PHP developer were to experience the time gap all you will get from him / her is a big groan.</description>
		<content:encoded><![CDATA[<p>@eutrilla</p>
<p>The JEE designers have focused on making the most efficient runtime that they have negatively impacted the ability to host a large number of Java applications on a single machine. Thus if one has to host 200 java webapps on a single server (not unheard of in PHP) &#8211; this means either one tomcat with 200 web apps or potentially 200 tomcats (in case you want to isolate the various applications from each other from misbehaving runaway code). This simply will not scale for a large number of webapps. The issue is not how much data one puts into the ApplicationContext &#8211; it is the fact that the existence of the ApplicationContext requires a continuously running process (unless one were to serialise an application context just like the session context) and the fact that one misbehaving application stuffing its application context can lead to negative impact for many other shared apps. The only safe scalable way that I can think of to handle is to get rid of the ApplicationContext and any other constructs which require continuously running processes. While this is lesser efficient than the current architecture, it is more suitable for multi-tenant or cloud based processing models.</p>
<p>With regards to IDEs supporting it &#8211; they still require the app server (tomcat to effectively reload the webapp from scratch &#8211; this is a big time drain). If a Python / Ruby / PHP developer were to experience the time gap all you will get from him / her is a big groan.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ryan</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-58</link>
		<dc:creator>Ryan</dc:creator>
		<pubDate>Mon, 14 Apr 2008 16:12:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-58</guid>
		<description>I think your point on making it easier to host is spot on.  However for me its not for big old clunky java, I just want to host my Grails stuff.  Java can compete, but I think I agree with (oh shot, forgot his name) the guy that said Groovy is what Java 6 should be.  
Java isn&#039;t going anywhere, even &quot;old&quot; Java will be around for years to come, but Grails will allow it to be more competitive.
I&#039;m a Java guy by trade, I use PHP in my moonlighting gigs, and have recently fallen in love with Grails...but I can&#039;t host Grails anywhere for as cheap as I can host PHP.</description>
		<content:encoded><![CDATA[<p>I think your point on making it easier to host is spot on.  However for me its not for big old clunky java, I just want to host my Grails stuff.  Java can compete, but I think I agree with (oh shot, forgot his name) the guy that said Groovy is what Java 6 should be.<br />
Java isn&#8217;t going anywhere, even &#8220;old&#8221; Java will be around for years to come, but Grails will allow it to be more competitive.<br />
I&#8217;m a Java guy by trade, I use PHP in my moonlighting gigs, and have recently fallen in love with Grails&#8230;but I can&#8217;t host Grails anywhere for as cheap as I can host PHP.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eutrilla</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-57</link>
		<dc:creator>eutrilla</dc:creator>
		<pubDate>Mon, 14 Apr 2008 16:03:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-57</guid>
		<description>While I agree that the syntax changes are not that important as having a real great runtime environment, I don&#039;t think that your proposed focus areas are the most important ones. 

In JEE, Stateless Session Beans fit nicely into what you&#039;re asking for. ApplicationContext shouldn&#039;t have that much data, there&#039;s just one per user session and anyway, you have to store somewhere the data to pass to the Beans, right?

To that respect you might be interested in the Project Caroline (https://www.projectcaroline.net/main/index.php?q=node/13). I just learned about this project this morning, so I don&#039;t really know its current status, but seems to be similar to GAE.

On the second subject (the compile cycle) I can&#039;t see the benefit. After all most IDEs do it automatically without any need of the JVM to be modified. And anyway, do you really want to see a syntax error when something is deployed? 
In my experience the biggest problem is the deployment step. Being able to hot-switch class definitions without restarting your App Server is a bit time saver, and you can already do that except for inheritance hierarchy changes or modification of the list of attributes, methods or their signatures.


My biggest concerns would be start-up time (already addressed by java 6 update N), memory footprint, and maybe some way to limit the resource consumption of a module (CPU, memory, disk access, number of threads, ....), so it is easier to use in an hypothetical GAE-like environment.</description>
		<content:encoded><![CDATA[<p>While I agree that the syntax changes are not that important as having a real great runtime environment, I don&#8217;t think that your proposed focus areas are the most important ones. </p>
<p>In JEE, Stateless Session Beans fit nicely into what you&#8217;re asking for. ApplicationContext shouldn&#8217;t have that much data, there&#8217;s just one per user session and anyway, you have to store somewhere the data to pass to the Beans, right?</p>
<p>To that respect you might be interested in the Project Caroline (<a href="https://www.projectcaroline.net/main/index.php?q=node/13" rel="nofollow">https://www.projectcaroline.net/main/index.php?q=node/13</a>). I just learned about this project this morning, so I don&#8217;t really know its current status, but seems to be similar to GAE.</p>
<p>On the second subject (the compile cycle) I can&#8217;t see the benefit. After all most IDEs do it automatically without any need of the JVM to be modified. And anyway, do you really want to see a syntax error when something is deployed?<br />
In my experience the biggest problem is the deployment step. Being able to hot-switch class definitions without restarting your App Server is a bit time saver, and you can already do that except for inheritance hierarchy changes or modification of the list of attributes, methods or their signatures.</p>
<p>My biggest concerns would be start-up time (already addressed by java 6 update N), memory footprint, and maybe some way to limit the resource consumption of a module (CPU, memory, disk access, number of threads, &#8230;.), so it is easier to use in an hypothetical GAE-like environment.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pragma</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-56</link>
		<dc:creator>Pragma</dc:creator>
		<pubDate>Mon, 14 Apr 2008 16:01:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-56</guid>
		<description>&quot;Lose the compile cycle&quot;

An excellent idea.  Could this be accomplished through a special kind of ClassLoader?  I&#039;m sure a reasonably competent developer could cobble together a proof-of-concept with some effort.  Just point an environment variable to the JDK, compile your main() along with the bootstrap that sets your custom ClassLoader for the current thread, and off you go.</description>
		<content:encoded><![CDATA[<p>&#8220;Lose the compile cycle&#8221;</p>
<p>An excellent idea.  Could this be accomplished through a special kind of ClassLoader?  I&#8217;m sure a reasonably competent developer could cobble together a proof-of-concept with some effort.  Just point an environment variable to the JDK, compile your main() along with the bootstrap that sets your custom ClassLoader for the current thread, and off you go.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sakuraba</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-423</link>
		<dc:creator>Sakuraba</dc:creator>
		<pubDate>Mon, 14 Apr 2008 15:59:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-423</guid>
		<description>You addressed the correct things, but dont think a &quot;process per request&quot; model is truely desirable. What we need is true Isolates and the MVM.&lt;br&gt;&lt;br&gt;If you want to get the &quot;Strg+S...Alt-TAB...F5&quot; development cycle, you can use Grails. It basically combines the great ideas Rails brought to the web world with the robust libraries of the Java platform. It is truely amazing and empowers live websites with millions of page views a month (see Grails success stories).</description>
		<content:encoded><![CDATA[<p>You addressed the correct things, but dont think a &#8220;process per request&#8221; model is truely desirable. What we need is true Isolates and the MVM.</p>
<p>If you want to get the &#8220;Strg+S&#8230;Alt-TAB&#8230;F5&#8243; development cycle, you can use Grails. It basically combines the great ideas Rails brought to the web world with the robust libraries of the Java platform. It is truely amazing and empowers live websites with millions of page views a month (see Grails success stories).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dhananjay Nene</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-422</link>
		<dc:creator>Dhananjay Nene</dc:creator>
		<pubDate>Mon, 14 Apr 2008 15:48:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-422</guid>
		<description>@Pragma&lt;br&gt;&lt;br&gt;Certainly an interesting idea. I am not sure about the issues that will crop up. But certainly something I will spend some time mulling over.</description>
		<content:encoded><![CDATA[<p>@Pragma</p>
<p>Certainly an interesting idea. I am not sure about the issues that will crop up. But certainly something I will spend some time mulling over.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dhananjay Nene</title>
		<link>http://blog.dhananjaynene.com/2008/04/java-if-compete-with-php-ruby-python-stop-fixing-the-syntax-and-start-fixing-the-runtime/comment-page-1/#comment-421</link>
		<dc:creator>Dhananjay Nene</dc:creator>
		<pubDate>Mon, 14 Apr 2008 15:19:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dhananjaynene.com/archives/24#comment-421</guid>
		<description>@eutrilla&lt;br&gt;&lt;br&gt;The JEE designers have focused on making the most efficient runtime that they have negatively impacted the ability to host a large number of Java applications on a single machine. Thus if one has to host 200 java webapps on a single server (not unheard of in PHP) - this means either one tomcat with 200 web apps or potentially 200 tomcats (in case you want to isolate the various applications from each other from misbehaving runaway code). This simply will not scale for a large number of webapps. The issue is not how much data one puts into the ApplicationContext - it is the fact that the existence of the ApplicationContext requires a continuously running process (unless one were to serialise an application context just like the session context) and the fact that one misbehaving application stuffing its application context can lead to negative impact for many other shared apps. The only safe scalable way that I can think of to handle is to get rid of the ApplicationContext and any other constructs which require continuously running processes. While this is lesser efficient than the current architecture, it is more suitable for multi-tenant or cloud based processing models.&lt;br&gt;&lt;br&gt;With regards to IDEs supporting it - they still require the app server (tomcat to effectively reload the webapp from scratch - this is a big time drain). If a Python / Ruby / PHP developer were to experience the time gap all you will get from him / her is a big groan.</description>
		<content:encoded><![CDATA[<p>@eutrilla</p>
<p>The JEE designers have focused on making the most efficient runtime that they have negatively impacted the ability to host a large number of Java applications on a single machine. Thus if one has to host 200 java webapps on a single server (not unheard of in PHP) &#8211; this means either one tomcat with 200 web apps or potentially 200 tomcats (in case you want to isolate the various applications from each other from misbehaving runaway code). This simply will not scale for a large number of webapps. The issue is not how much data one puts into the ApplicationContext &#8211; it is the fact that the existence of the ApplicationContext requires a continuously running process (unless one were to serialise an application context just like the session context) and the fact that one misbehaving application stuffing its application context can lead to negative impact for many other shared apps. The only safe scalable way that I can think of to handle is to get rid of the ApplicationContext and any other constructs which require continuously running processes. While this is lesser efficient than the current architecture, it is more suitable for multi-tenant or cloud based processing models.</p>
<p>With regards to IDEs supporting it &#8211; they still require the app server (tomcat to effectively reload the webapp from scratch &#8211; this is a big time drain). If a Python / Ruby / PHP developer were to experience the time gap all you will get from him / her is a big groan.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

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

