<?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"
	>
<channel>
	<title>Comments on: Testing Java with JRuby</title>
	<atom:link href="http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/</link>
	<description>I will not explain what this weblog is all about in a few words.</description>
	<pubDate>Wed, 03 Dec 2008 22:37:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
		<item>
		<title>By: Tej</title>
		<link>http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/#comment-597</link>
		<dc:creator>Tej</dc:creator>
		<pubDate>Mon, 02 Apr 2007 08:54:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/#comment-597</guid>
		<description>&lt;p&gt;All of these remind me of NetREXX (http://www-306.ibm.com/software/awdtools/netrexx/).  It was perhaps the first of these "not Java but compiles to JVM" languages back in the day.  I liked it quite a bit (since I also like REXX quite a bit).  Unfortunately the single researcher who worked on it lost interest and IBM let it die on the vine.  It hasn't been updated since Java 1.1 days.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>All of these remind me of NetREXX (http://www-306.ibm.com/software/awdtools/netrexx/).  It was perhaps the first of these &#8220;not Java but compiles to JVM&#8221; languages back in the day.  I liked it quite a bit (since I also like REXX quite a bit).  Unfortunately the single researcher who worked on it lost interest and IBM let it die on the vine.  It hasn&#8217;t been updated since Java 1.1 days.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: cp</title>
		<link>http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/#comment-591</link>
		<dc:creator>cp</dc:creator>
		<pubDate>Fri, 30 Mar 2007 16:43:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/#comment-591</guid>
		<description>&lt;blockquote&gt;
  &lt;p&gt;JRuby 0.9.8 can subclass.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That was indeed it.  I was using the 0.9.2 build at work and compiled from the subversion repository at home.  Do the docs mention this?  I did a cursory check on the wiki to try to find out if a current build could subclass but didn't have much luck.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Hopefully if you have any issues with JRuby you’ll report them on our bug tracker, via JRuby.org.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Indeed.  With this one, I wanted to make sure that it wasn't a PEBKAC issue first.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<blockquote>
  <p>JRuby 0.9.8 can subclass.</p>
</blockquote>

<p>That was indeed it.  I was using the 0.9.2 build at work and compiled from the subversion repository at home.  Do the docs mention this?  I did a cursory check on the wiki to try to find out if a current build could subclass but didn&#8217;t have much luck.</p>

<blockquote>
  <p>Hopefully if you have any issues with JRuby you’ll report them on our bug tracker, via JRuby.org.</p>
</blockquote>

<p>Indeed.  With this one, I wanted to make sure that it wasn&#8217;t a PEBKAC issue first.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Oliver Nutter</title>
		<link>http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/#comment-590</link>
		<dc:creator>Charles Oliver Nutter</dc:creator>
		<pubDate>Fri, 30 Mar 2007 14:01:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/#comment-590</guid>
		<description>&lt;p&gt;Hello there! Stopping by for a few quick points...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Groovy is no closer to LISP than Ruby. And when you consider Ruby's dynamic through-and-through, right down to its meta-model, I'd say Ruby's arguably closer than Groovy (and certainly much closer to Smalltalk). But I won't argue the JavaScript point...it's very much a functional language.&lt;/li&gt;
&lt;li&gt;JRuby 0.9.8 can subclass. Current trunk fixes many issues with that as well. We're trying to tie up the loose ends on Java integration this coming month.&lt;/li&gt;
&lt;li&gt;Interpretation can sometimes be faster than "compile always", especially if you're generating a lot of code. That said, JRuby will support ahead-of-time and just-in-time compilation to Java bytecode as well.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hopefully if you have any issues with JRuby you'll report them on our bug tracker, via JRuby.org. Thanks for giving it a try :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hello there! Stopping by for a few quick points&#8230;</p>

<ul>
<li>Groovy is no closer to LISP than Ruby. And when you consider Ruby&#8217;s dynamic through-and-through, right down to its meta-model, I&#8217;d say Ruby&#8217;s arguably closer than Groovy (and certainly much closer to Smalltalk). But I won&#8217;t argue the JavaScript point&#8230;it&#8217;s very much a functional language.</li>
<li>JRuby 0.9.8 can subclass. Current trunk fixes many issues with that as well. We&#8217;re trying to tie up the loose ends on Java integration this coming month.</li>
<li>Interpretation can sometimes be faster than &#8220;compile always&#8221;, especially if you&#8217;re generating a lot of code. That said, JRuby will support ahead-of-time and just-in-time compilation to Java bytecode as well.</li>
</ul>

<p>Hopefully if you have any issues with JRuby you&#8217;ll report them on our bug tracker, via JRuby.org. Thanks for giving it a try :)</p>]]></content:encoded>
	</item>
	<item>
		<title>By: cp</title>
		<link>http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/#comment-588</link>
		<dc:creator>cp</dc:creator>
		<pubDate>Thu, 29 Mar 2007 15:14:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/#comment-588</guid>
		<description>&lt;blockquote&gt;
  &lt;p&gt;So, for right now, it is the best gateway to “other people’s code”, which admittedly, you might have little use for. ;-)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think this gets right to it.  Other people's data?  Definitely.  Other people's code?  Not so much.  Seems easier to just get the data via services or even files or a database than it is to tie yourself down to a particular platform.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;No you haven’t. That’s even less valid than notions that Java compiles faster than C (which can be semi-true). All you’ve done is removed the compile phase out of Ant. Really all you’ve ensured is that the code gets compiled &lt;em&gt;each and every time&lt;/em&gt; you run it, rather than just the times where you’ve changed the code.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;True, although pedantic.  In practical terms, it means that I don't have put up with an explicit compile phase when running my tests.  Now, in a normal setting where compiles are kept simple and they don't demand to check 10,000 other things and download files and etc etc etc, this wouldn't be so big a deal.  For my current situation, it saves time even with the (absurdly long) time it takes for Ruby to compile down to byte code each and every time.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The reason you should look at Groovy and or Javascript is that they are both closer approximations to LISP than Ruby&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hmm.  From the presentation I saw last year, Groovy was pretty much Ruby with a few convenience functions for dealing with Java objects.  (Lots of "do what I mean" stuff that seemed to work pretty well, for example.)  What is it that makes Groovy more like Lisp than Ruby is?&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Plus Ruby’s implementation is a bit rougher around the edges than Rhino&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As I unfortunately found out, JRuby's implementation is &lt;em&gt;much&lt;/em&gt; rougher around the edges, almost to the point where (for testing, at least.  It could still be useful for automation) it's not usable.  More about that in another post.  (Or not.  The problem I had at work -- inability to subclass -- doesn't exist at home.  Interesting.)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<blockquote>
  <p>So, for right now, it is the best gateway to “other people’s code”, which admittedly, you might have little use for. ;-)</p>
</blockquote>

<p>I think this gets right to it.  Other people&#8217;s data?  Definitely.  Other people&#8217;s code?  Not so much.  Seems easier to just get the data via services or even files or a database than it is to tie yourself down to a particular platform.</p>

<blockquote>
  <p>No you haven’t. That’s even less valid than notions that Java compiles faster than C (which can be semi-true). All you’ve done is removed the compile phase out of Ant. Really all you’ve ensured is that the code gets compiled <em>each and every time</em> you run it, rather than just the times where you’ve changed the code.</p>
</blockquote>

<p>True, although pedantic.  In practical terms, it means that I don&#8217;t have put up with an explicit compile phase when running my tests.  Now, in a normal setting where compiles are kept simple and they don&#8217;t demand to check 10,000 other things and download files and etc etc etc, this wouldn&#8217;t be so big a deal.  For my current situation, it saves time even with the (absurdly long) time it takes for Ruby to compile down to byte code each and every time.</p>

<blockquote>
  <p>The reason you should look at Groovy and or Javascript is that they are both closer approximations to LISP than Ruby</p>
</blockquote>

<p>Hmm.  From the presentation I saw last year, Groovy was pretty much Ruby with a few convenience functions for dealing with Java objects.  (Lots of &#8220;do what I mean&#8221; stuff that seemed to work pretty well, for example.)  What is it that makes Groovy more like Lisp than Ruby is?</p>

<blockquote>
  <p>Plus Ruby’s implementation is a bit rougher around the edges than Rhino</p>
</blockquote>

<p>As I unfortunately found out, JRuby&#8217;s implementation is <em>much</em> rougher around the edges, almost to the point where (for testing, at least.  It could still be useful for automation) it&#8217;s not usable.  More about that in another post.  (Or not.  The problem I had at work &#8212; inability to subclass &#8212; doesn&#8217;t exist at home.  Interesting.)</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Christopher Smith</title>
		<link>http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/#comment-585</link>
		<dc:creator>Christopher Smith</dc:creator>
		<pubDate>Thu, 29 Mar 2007 08:59:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.obfuscated.org/2007/03/27/testing-java-with-jruby/#comment-585</guid>
		<description>&lt;p&gt;&#62; Chris has a fondness for busting my chops equaled by few.&lt;/p&gt;

&lt;p&gt;It's a calling.&lt;/p&gt;

&lt;p&gt;&#62; I still think that in general, I have little use for the Java platform. If I want to write code in something like Ruby or Python, I’ll just use Ruby or Python or whatever as they’re originally distributed. Bolting them on to the JVM really doesn’t do anything for me.&lt;/p&gt;

&lt;p&gt;So, I think depends on context. The JVM is the closest thing we have to a universal object-oriented linker and runtime, and it has the advantage of doing dynamic binding to boot. You step away from that and you are in to evil C land with all that entails. On top of that it is a pretty fast runtime (yeah, it sucks for dynamically typed code, but that looks to be fixed in the foreseeable future). So, for right now, it is the best gateway to "other people's code", which admittedly, you might have little use for. ;-)&lt;/p&gt;

&lt;p&gt;&#62; So I took Chris up on his suggestion and gave JRuby a look for writing tests. It works surprisingly well.&lt;/p&gt;

&lt;p&gt;I was under the impression JRuby actually works &lt;em&gt;better&lt;/em&gt; than regular Ruby when it comes to Unicode, but I could be wrong.&lt;/p&gt;

&lt;p&gt;&#62; ...and you’ve removed the compile phase from your test cycle.&lt;/p&gt;

&lt;p&gt;No you haven't. That's even less valid than notions that Java compiles faster than C   (which can be semi-true). All you've done is removed the compile phase out of Ant. Really all you've ensured is that the code gets compiled &lt;em&gt;each and every time&lt;/em&gt; you run it, rather than just the times where you've changed the code. Now, I'm all for having the computer do the work and hiding it from the humans, but don't kid yourself, there is compilation going on there.&lt;/p&gt;

&lt;p&gt;&#62; So thanks, Chris. That was a fine idea.&lt;/p&gt;

&lt;p&gt;It's all part of the service.&lt;/p&gt;

&lt;p&gt;In answer to the: Groovy suffers from the “if I want to use Ruby, I’ll use Ruby” problem.&lt;/p&gt;

&lt;p&gt;The reason you should look at Groovy and or Javascript is that they are both closer approximations to LISP than Ruby, so as per Greenspun's Tenth Law, you are saving yourself a lot of work and frustration by using them instead of Ruby. Plus Ruby's implementation is a bit rougher around the edges than Rhino (can't speak for Groovy). What Greenspun doesn't tell you is that if you actually were to use LISP, you'd be out of work with a Ph.D. in AI, so Groovy and Javascript are about as close as you can get without getting burned. ;-)&lt;/p&gt;

&lt;p&gt;Some folks think Groovy is going to become a big deal, but of course, all the ones I've talked to also think Mac's are due for a comeback. Me, I think Javascript looks likely to become an even bigger deal going forward, what with Adobe open sourcing their Javascript JIT and Javascript 2.0 just around the corner.&lt;/p&gt;

&lt;p&gt;Of course, I say all this and I've barely looked at Groovy (just been told I should by my betters), my Javascript is pretty weak, and with my "new language" focus being on Haskell, which is kind of the polar opposite of all these dynamically typed languages.&lt;/p&gt;

&lt;p&gt;So, I'm a hypocrite.
But you already knew that.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>&gt; Chris has a fondness for busting my chops equaled by few.</p>

<p>It&#8217;s a calling.</p>

<p>&gt; I still think that in general, I have little use for the Java platform. If I want to write code in something like Ruby or Python, I’ll just use Ruby or Python or whatever as they’re originally distributed. Bolting them on to the JVM really doesn’t do anything for me.</p>

<p>So, I think depends on context. The JVM is the closest thing we have to a universal object-oriented linker and runtime, and it has the advantage of doing dynamic binding to boot. You step away from that and you are in to evil C land with all that entails. On top of that it is a pretty fast runtime (yeah, it sucks for dynamically typed code, but that looks to be fixed in the foreseeable future). So, for right now, it is the best gateway to &#8220;other people&#8217;s code&#8221;, which admittedly, you might have little use for. ;-)</p>

<p>&gt; So I took Chris up on his suggestion and gave JRuby a look for writing tests. It works surprisingly well.</p>

<p>I was under the impression JRuby actually works <em>better</em> than regular Ruby when it comes to Unicode, but I could be wrong.</p>

<p>&gt; &#8230;and you’ve removed the compile phase from your test cycle.</p>

<p>No you haven&#8217;t. That&#8217;s even less valid than notions that Java compiles faster than C   (which can be semi-true). All you&#8217;ve done is removed the compile phase out of Ant. Really all you&#8217;ve ensured is that the code gets compiled <em>each and every time</em> you run it, rather than just the times where you&#8217;ve changed the code. Now, I&#8217;m all for having the computer do the work and hiding it from the humans, but don&#8217;t kid yourself, there is compilation going on there.</p>

<p>&gt; So thanks, Chris. That was a fine idea.</p>

<p>It&#8217;s all part of the service.</p>

<p>In answer to the: Groovy suffers from the “if I want to use Ruby, I’ll use Ruby” problem.</p>

<p>The reason you should look at Groovy and or Javascript is that they are both closer approximations to LISP than Ruby, so as per Greenspun&#8217;s Tenth Law, you are saving yourself a lot of work and frustration by using them instead of Ruby. Plus Ruby&#8217;s implementation is a bit rougher around the edges than Rhino (can&#8217;t speak for Groovy). What Greenspun doesn&#8217;t tell you is that if you actually were to use LISP, you&#8217;d be out of work with a Ph.D. in AI, so Groovy and Javascript are about as close as you can get without getting burned. ;-)</p>

<p>Some folks think Groovy is going to become a big deal, but of course, all the ones I&#8217;ve talked to also think Mac&#8217;s are due for a comeback. Me, I think Javascript looks likely to become an even bigger deal going forward, what with Adobe open sourcing their Javascript JIT and Javascript 2.0 just around the corner.</p>

<p>Of course, I say all this and I&#8217;ve barely looked at Groovy (just been told I should by my betters), my Javascript is pretty weak, and with my &#8220;new language&#8221; focus being on Haskell, which is kind of the polar opposite of all these dynamically typed languages.</p>

<p>So, I&#8217;m a hypocrite.
But you already knew that.</p>]]></content:encoded>
	</item>
</channel>
</rss>

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