<?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: Classpath hell just froze over</title>
	<atom:link href="http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/feed/" rel="self" type="application/rss+xml" />
	<link>http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/</link>
	<description>Augusto's corner of art, code and fun</description>
	<lastBuildDate>Tue, 23 Feb 2010 08:25:54 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Andy Tripp</title>
		<link>http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/comment-page-1/#comment-14217</link>
		<dc:creator>Andy Tripp</dc:creator>
		<pubDate>Wed, 15 Jul 2009 16:04:53 +0000</pubDate>
		<guid isPermaLink="false">http://sellmic.com/blog/?p=276#comment-14217</guid>
		<description>Like others, I think the new module system is the wrong path to take. In fact, I&#039;m still stuck, not able to agree on the need for it. Looking at MR&#039;s reasons:
    * Eliminate classpath complexity 
It&#039;s not &quot;eliminated&quot;, it&#039;s simply reformated from a single, simple CLASSPATH variable to a larger module system.

    * Increase performance. The VM download size can be made smaller
Download size decrease is not a factor: end users (other than applets) don&#039;t download the JRE.

, and startup time should improve because for small programs (say HelloWorld) unnecessary classes don’t have to be loaded at all.

unnecessary classes aren&#039;t loaded at all today by the classloader.

 Mark showed how he could run HelloWorld by only using 2 modules listed by the new jmod command; jdk.base@7-ea and jdk.boot@7-ea.

Did Mark show that there were in fact, any less classes loaded using the module system? If so, how could that be? The classloader is supposed to only load classes that are actually used.

    * Enable native integration for installing modules.
As others have pointed out, this is an inherently bad idea, and goes against the cross-platform nature of Java. The current &quot;bundle all needed jars with each app&quot; approach is the better way.</description>
		<content:encoded><![CDATA[<p>Like others, I think the new module system is the wrong path to take. In fact, I&#8217;m still stuck, not able to agree on the need for it. Looking at MR&#8217;s reasons:<br />
    * Eliminate classpath complexity<br />
It&#8217;s not &#8220;eliminated&#8221;, it&#8217;s simply reformated from a single, simple CLASSPATH variable to a larger module system.</p>
<p>    * Increase performance. The VM download size can be made smaller<br />
Download size decrease is not a factor: end users (other than applets) don&#8217;t download the JRE.</p>
<p>, and startup time should improve because for small programs (say HelloWorld) unnecessary classes don’t have to be loaded at all.</p>
<p>unnecessary classes aren&#8217;t loaded at all today by the classloader.</p>
<p> Mark showed how he could run HelloWorld by only using 2 modules listed by the new jmod command; jdk.base@7-ea and jdk.boot@7-ea.</p>
<p>Did Mark show that there were in fact, any less classes loaded using the module system? If so, how could that be? The classloader is supposed to only load classes that are actually used.</p>
<p>    * Enable native integration for installing modules.<br />
As others have pointed out, this is an inherently bad idea, and goes against the cross-platform nature of Java. The current &#8220;bundle all needed jars with each app&#8221; approach is the better way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Heiko Erhardt</title>
		<link>http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/comment-page-1/#comment-14159</link>
		<dc:creator>Heiko Erhardt</dc:creator>
		<pubDate>Wed, 08 Jul 2009 12:49:40 +0000</pubDate>
		<guid isPermaLink="false">http://sellmic.com/blog/?p=276#comment-14159</guid>
		<description>Java has established itself as main implementation language for business-critical systems (i. e. systems having 24x7 requirements).
Not addressing dynamic module management in a language-level approach to module management in Java 7 is a no-go IMO.

Also, Java being a cross-platform language, introducing platform-dependent package formats is the wrong way to go.
The best solution would be to have cross-platform package format, which could be mapped to a native package format by the Java installation at the time of the import of the package (if required at all!). However, this is an under-the-hood process that the package developer should not have to deal with.

Today, many applications are built upon (or are migrating to) OSGI. They won&#039;t abandon this platform once Java 7 comes out. As Augusto said, this is likely to repeat the java.util.logging disaster.

Please, for the sake of the language and the people who are using it, get yourself together at JSR 294 and
- build upon proven and mature technology such as OSGI
- improve and extend it where neccessary</description>
		<content:encoded><![CDATA[<p>Java has established itself as main implementation language for business-critical systems (i. e. systems having 24&#215;7 requirements).<br />
Not addressing dynamic module management in a language-level approach to module management in Java 7 is a no-go IMO.</p>
<p>Also, Java being a cross-platform language, introducing platform-dependent package formats is the wrong way to go.<br />
The best solution would be to have cross-platform package format, which could be mapped to a native package format by the Java installation at the time of the import of the package (if required at all!). However, this is an under-the-hood process that the package developer should not have to deal with.</p>
<p>Today, many applications are built upon (or are migrating to) OSGI. They won&#8217;t abandon this platform once Java 7 comes out. As Augusto said, this is likely to repeat the java.util.logging disaster.</p>
<p>Please, for the sake of the language and the people who are using it, get yourself together at JSR 294 and<br />
- build upon proven and mature technology such as OSGI<br />
- improve and extend it where neccessary</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: nWizard - Norbert Rakosi&#8217;s blog on Free Software development &#8230; JAVA &#8230; Personal Development&#8230; and &#8230; bad speling&#8230; &#187; Java modularisation (JDK 7.0)</title>
		<link>http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/comment-page-1/#comment-14098</link>
		<dc:creator>nWizard - Norbert Rakosi&#8217;s blog on Free Software development &#8230; JAVA &#8230; Personal Development&#8230; and &#8230; bad speling&#8230; &#187; Java modularisation (JDK 7.0)</dc:creator>
		<pubDate>Mon, 29 Jun 2009 09:50:58 +0000</pubDate>
		<guid isPermaLink="false">http://sellmic.com/blog/?p=276#comment-14098</guid>
		<description>[...] OSGI standard questions Classpath hell just froze over [...]</description>
		<content:encoded><![CDATA[<p>[...] OSGI standard questions Classpath hell just froze over [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian Steinert</title>
		<link>http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/comment-page-1/#comment-14089</link>
		<dc:creator>Christian Steinert</dc:creator>
		<pubDate>Sat, 27 Jun 2009 17:46:56 +0000</pubDate>
		<guid isPermaLink="false">http://sellmic.com/blog/?p=276#comment-14089</guid>
		<description>As a bystander, I find it increasingly confusing, what Jigsaw actually trying to BE.

I understand, that Sun is looking for some way that allows them to modularize the core java components, in such a way that the VM itself can benefit from it.

Then, there is the whole native packaging side of things, which - so far - seems pretty unrelated from a technical point of view. The whole idea of native packaging is both interesting and frightening at the same time, depending on how it is carried out. Having an easy way to install java apps in a linux distribution sounds great to me as a Debian user. Packaging tools would be nice, but they could, for example be developed in cooperation with icedTead - I don&#039;t see why they should go into the JDK. It should definitely not be necessary to generate &quot;installable binaries&quot; for each target platform, when deploying java code.
In my opinion, one of the major reasons one point of failure for java apps on the desktops was that they used .jar as extension for &quot;executable jar files&quot;. Why not have the convention of .javaapp files which are nothing but renamed executable .jars with an icon in them that are executed automatically through a Java-specific shell extension? This would make a LOAD of windows-specific java starter/installer programs go away over time. This does not say, that either installation support or a module system are not useful, but sometimes, a LITTLE more integration can make a big difference, without having to re-invent the universe.

Then, and that is the point that confuses me most, Mark Reinhold claimed that one of the possible future advantages of their module is that there is an act of installation which would, for example allow to pre-compile code to improve startup times. 
To me, this raises a lot of questions
- what is preventing Sun from pre-compiling their own Java code before download or during installation? No public plattform-specific installation mechanism is required for that. Was this not mainly about JVM startup times for Desktop and Web Apps?
- what is preventing the VM to cache compiled versions of code, once it has been run for the first time? Especially with module metadata, the VM could identify recurring uses of the same module and re-use previously compiled code. This would move part of the installation cost to the first usage of an application, but after that, startup times could be automatically improved by some VM trickery, based on module support in the Java runtime, yet without an explicit installation step.
- Downloaded code cannot be pre-compiled during installation anyway. Was not a lot of this motivated by wanting to speed up JavaFX applications? These will run without being installed before anyway.
- what does &quot;installation&quot; actually mean to Sun? Do they indeed have something like a global assembly cache in mind? If so, will its behavior be specified so that it can be provided by other VM implenentations? How will a package get into it? Only through Sun- and OS-specific installation procedures?

Whatever tricks the Sun&#039;s Java implementation does behind the scenes to perform its job does not matter as long as it helps performance and is an internal implementation detail. But if Sun should create deployment mechanisms that are specific to their own VM, then this would be rather dangerous, as it would put alternative implementations into disadvantage. What has been going on on the spec-side with Apache Harmony is sad enough, so I really hope that Sun is not adding mechanisms that hinder interoperability with their implementation in an area as important as deployment. (Btw: I have not used Harmony at all so far and I am not associated with any of the various &quot;camps&quot;, but as a Java developer I care about the long-term openness and interoperability of Java [as a plattform, not just of Sun&#039;s version of it]).

Somehow, Sun&#039;s decision to &quot;do their own thing&quot; with Jigsaw reminds me of what could be described as an extension of the Applet livecycle with the dragable Applets that were introduced during the 6u10 &quot;maintainance&quot; release, or their added support for JNLP-Applets. Shouldn&#039;t this stuff have been spec&#039;ed? Yes this did not add publically callable APIs in java.*-Packages, so I guess it does not violate the letter of the JCP, but nonetheless, these are proprietary extensions in inportant areas of the platform and therefore make me rather nervous, despite their technical merit.

Sorry for the very long comment. Overall, I like what Sun is trying to _achieve_ and I understand that they grow somewhat impatient. Nonetheless, it&#039;s important that they strive to keep their implementation as interoperable as possile.</description>
		<content:encoded><![CDATA[<p>As a bystander, I find it increasingly confusing, what Jigsaw actually trying to BE.</p>
<p>I understand, that Sun is looking for some way that allows them to modularize the core java components, in such a way that the VM itself can benefit from it.</p>
<p>Then, there is the whole native packaging side of things, which &#8211; so far &#8211; seems pretty unrelated from a technical point of view. The whole idea of native packaging is both interesting and frightening at the same time, depending on how it is carried out. Having an easy way to install java apps in a linux distribution sounds great to me as a Debian user. Packaging tools would be nice, but they could, for example be developed in cooperation with icedTead &#8211; I don&#8217;t see why they should go into the JDK. It should definitely not be necessary to generate &#8220;installable binaries&#8221; for each target platform, when deploying java code.<br />
In my opinion, one of the major reasons one point of failure for java apps on the desktops was that they used .jar as extension for &#8220;executable jar files&#8221;. Why not have the convention of .javaapp files which are nothing but renamed executable .jars with an icon in them that are executed automatically through a Java-specific shell extension? This would make a LOAD of windows-specific java starter/installer programs go away over time. This does not say, that either installation support or a module system are not useful, but sometimes, a LITTLE more integration can make a big difference, without having to re-invent the universe.</p>
<p>Then, and that is the point that confuses me most, Mark Reinhold claimed that one of the possible future advantages of their module is that there is an act of installation which would, for example allow to pre-compile code to improve startup times.<br />
To me, this raises a lot of questions<br />
- what is preventing Sun from pre-compiling their own Java code before download or during installation? No public plattform-specific installation mechanism is required for that. Was this not mainly about JVM startup times for Desktop and Web Apps?<br />
- what is preventing the VM to cache compiled versions of code, once it has been run for the first time? Especially with module metadata, the VM could identify recurring uses of the same module and re-use previously compiled code. This would move part of the installation cost to the first usage of an application, but after that, startup times could be automatically improved by some VM trickery, based on module support in the Java runtime, yet without an explicit installation step.<br />
- Downloaded code cannot be pre-compiled during installation anyway. Was not a lot of this motivated by wanting to speed up JavaFX applications? These will run without being installed before anyway.<br />
- what does &#8220;installation&#8221; actually mean to Sun? Do they indeed have something like a global assembly cache in mind? If so, will its behavior be specified so that it can be provided by other VM implenentations? How will a package get into it? Only through Sun- and OS-specific installation procedures?</p>
<p>Whatever tricks the Sun&#8217;s Java implementation does behind the scenes to perform its job does not matter as long as it helps performance and is an internal implementation detail. But if Sun should create deployment mechanisms that are specific to their own VM, then this would be rather dangerous, as it would put alternative implementations into disadvantage. What has been going on on the spec-side with Apache Harmony is sad enough, so I really hope that Sun is not adding mechanisms that hinder interoperability with their implementation in an area as important as deployment. (Btw: I have not used Harmony at all so far and I am not associated with any of the various &#8220;camps&#8221;, but as a Java developer I care about the long-term openness and interoperability of Java [as a plattform, not just of Sun's version of it]).</p>
<p>Somehow, Sun&#8217;s decision to &#8220;do their own thing&#8221; with Jigsaw reminds me of what could be described as an extension of the Applet livecycle with the dragable Applets that were introduced during the 6u10 &#8220;maintainance&#8221; release, or their added support for JNLP-Applets. Shouldn&#8217;t this stuff have been spec&#8217;ed? Yes this did not add publically callable APIs in java.*-Packages, so I guess it does not violate the letter of the JCP, but nonetheless, these are proprietary extensions in inportant areas of the platform and therefore make me rather nervous, despite their technical merit.</p>
<p>Sorry for the very long comment. Overall, I like what Sun is trying to _achieve_ and I understand that they grow somewhat impatient. Nonetheless, it&#8217;s important that they strive to keep their implementation as interoperable as possile.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JDK 7: Collecting Honey - Technology</title>
		<link>http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/comment-page-1/#comment-14024</link>
		<dc:creator>JDK 7: Collecting Honey - Technology</dc:creator>
		<pubDate>Wed, 17 Jun 2009 18:00:54 +0000</pubDate>
		<guid isPermaLink="false">http://sellmic.com/blog/?p=276#comment-14024</guid>
		<description>[...] Project Jigsaw, which will modularize the JDK. Most of the audience got it when Mark announced that Classpath is Dead, but for a deeper dive, check out this JavaPosse episode, where both Mark and Alex got a [...]</description>
		<content:encoded><![CDATA[<p>[...] Project Jigsaw, which will modularize the JDK. Most of the audience got it when Mark announced that Classpath is Dead, but for a deeper dive, check out this JavaPosse episode, where both Mark and Alex got a [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Al</title>
		<link>http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/comment-page-1/#comment-14008</link>
		<dc:creator>Al</dc:creator>
		<pubDate>Tue, 16 Jun 2009 10:10:09 +0000</pubDate>
		<guid isPermaLink="false">http://sellmic.com/blog/?p=276#comment-14008</guid>
		<description>Just take a look at &lt;a href=&quot;http://www.pomstrap.techlab.smk.fr/en/&quot; rel=&quot;nofollow&quot;&gt;POMStrap&lt;/a&gt;, it solves classpath hell using Maven POM files recursively.</description>
		<content:encoded><![CDATA[<p>Just take a look at <a href="http://www.pomstrap.techlab.smk.fr/en/" rel="nofollow">POMStrap</a>, it solves classpath hell using Maven POM files recursively.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Augusto</title>
		<link>http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/comment-page-1/#comment-13990</link>
		<dc:creator>Augusto</dc:creator>
		<pubDate>Sun, 14 Jun 2009 01:58:16 +0000</pubDate>
		<guid isPermaLink="false">http://sellmic.com/blog/?p=276#comment-13990</guid>
		<description>Note for anybody that attended the Q&amp;A:

When talking about OSGi, Alex Buckley brought up some issue somebody had (I think with the JDK&#039;s corba packages) while using OSGi but I don&#039;t remember main problem in the blog post or what blog it was. It was hard to hear, all I remember is that he read it out loud and said something like &quot;this is the type of thing we are trying/want to avoid&quot;. If anybody knows what this blog post was or what that part of the discussion was about please let me know.</description>
		<content:encoded><![CDATA[<p>Note for anybody that attended the Q&#038;A:</p>
<p>When talking about OSGi, Alex Buckley brought up some issue somebody had (I think with the JDK&#8217;s corba packages) while using OSGi but I don&#8217;t remember main problem in the blog post or what blog it was. It was hard to hear, all I remember is that he read it out loud and said something like &#8220;this is the type of thing we are trying/want to avoid&#8221;. If anybody knows what this blog post was or what that part of the discussion was about please let me know.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Augusto</title>
		<link>http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/comment-page-1/#comment-13982</link>
		<dc:creator>Augusto</dc:creator>
		<pubDate>Sat, 13 Jun 2009 13:22:33 +0000</pubDate>
		<guid isPermaLink="false">http://sellmic.com/blog/?p=276#comment-13982</guid>
		<description>I don&#039;t know what you mean when you say you&#039;re not sure this one &quot;will survive&quot;. It&#039;s going in Java 7, even if everybody keeps using OSGi it will be there.

As for Sun dropping the ball on another modular framework, which one are you referring to, the Netbeans Module system?</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know what you mean when you say you&#8217;re not sure this one &#8220;will survive&#8221;. It&#8217;s going in Java 7, even if everybody keeps using OSGi it will be there.</p>
<p>As for Sun dropping the ball on another modular framework, which one are you referring to, the Netbeans Module system?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bubak</title>
		<link>http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/comment-page-1/#comment-13976</link>
		<dc:creator>bubak</dc:creator>
		<pubDate>Fri, 12 Jun 2009 22:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://sellmic.com/blog/?p=276#comment-13976</guid>
		<description>Just another modular framework. Sun already dropped one, what makes you sure this one will survive? I will stick with OSGi.</description>
		<content:encoded><![CDATA[<p>Just another modular framework. Sun already dropped one, what makes you sure this one will survive? I will stick with OSGi.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Augusto</title>
		<link>http://sellmic.com/blog/2009/06/11/classpath-hell-just-froze-over/comment-page-1/#comment-13975</link>
		<dc:creator>Augusto</dc:creator>
		<pubDate>Fri, 12 Jun 2009 21:42:59 +0000</pubDate>
		<guid isPermaLink="false">http://sellmic.com/blog/?p=276#comment-13975</guid>
		<description>@alopecoid

Like everything, it has its pros and cons. I see some of the benefits of integrating with the native package management of a system, but it would be really nice to get the complete picture to feel more comfortable with the concept. Right now, nobody really knows how this is going to work in Windows (or Apple), and then there&#039;s even more details like what if I don&#039;t want to update modules at the system level but just for my application?

The native packaging issues related to Jigsaw could have been a dedicated technical track by themselves. I would hope more details and ideas come out soon just to see if people are comfortable with this or not.

@Peter

Thanks for your reply, I&#039;ll try to follow up in the comments section of your blog.</description>
		<content:encoded><![CDATA[<p>@alopecoid</p>
<p>Like everything, it has its pros and cons. I see some of the benefits of integrating with the native package management of a system, but it would be really nice to get the complete picture to feel more comfortable with the concept. Right now, nobody really knows how this is going to work in Windows (or Apple), and then there&#8217;s even more details like what if I don&#8217;t want to update modules at the system level but just for my application?</p>
<p>The native packaging issues related to Jigsaw could have been a dedicated technical track by themselves. I would hope more details and ideas come out soon just to see if people are comfortable with this or not.</p>
<p>@Peter</p>
<p>Thanks for your reply, I&#8217;ll try to follow up in the comments section of your blog.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
