<?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: Groovy/Scala/Ruby/Python on JVM</title>
	<atom:link href="http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/feed/" rel="self" type="application/rss+xml" />
	<link>http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/</link>
	<description>Computational Biology, Epidemiology, Infectious diseases, Open Science</description>
	<lastBuildDate>Mon, 02 Nov 2009 14:07:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Cmezs</title>
		<link>http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/comment-page-1/#comment-49487</link>
		<dc:creator>Cmezs</dc:creator>
		<pubDate>Mon, 03 Aug 2009 09:53:32 +0000</pubDate>
		<guid isPermaLink="false">http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/#comment-49487</guid>
		<description>I also don&#039;t like Scala. Added, I also hate Java, Python and Perl for personal reasons. 

The language, I like is PHP. PHP looks dirty, doesn&#039;t have this or that.....so what?? I love it. It just cuts my development and maintenance time.

May be we should seriously consider using php in bioinformatics provided your requirement of multi-processor handling capabilities exists with it. If it doesn&#039;t handle, use a C/C++ library for that part. That&#039;s all man !!!!!!  

Have you checked (what other&#039;s are doing??) this article:

http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=2241925

IMHO Scala has the worst syntax ever (Anyone is free to disagree) and it just complicates smaller brains who want to develop bigger things. I have a small brain which cannot understand umpteen programming language paradigms. 

Twitter could have retained RoR and used a low level module for essential area. Even they could have resorted to PHP. Worst!! Perl has a solution for that task already. 

Groovy&#039;s speed increase by 5x doesn&#039;t make it any better than PHP

Final solution: 

1) Good or bad or worst stick to PHP for 90% of tasks. 
2) For algorithms, multiple-processor, Graphics options resort to Good C/C++ libraries. 

That&#039;s all you need. (Whether it is bioinformatics or any other informatics)

Keep it simple and stupid (KISS)

Cheers,
Cmezs</description>
		<content:encoded><![CDATA[<p>I also don&#8217;t like Scala. Added, I also hate Java, Python and Perl for personal reasons. </p>
<p>The language, I like is PHP. PHP looks dirty, doesn&#8217;t have this or that&#8230;..so what?? I love it. It just cuts my development and maintenance time.</p>
<p>May be we should seriously consider using php in bioinformatics provided your requirement of multi-processor handling capabilities exists with it. If it doesn&#8217;t handle, use a C/C++ library for that part. That&#8217;s all man !!!!!!  </p>
<p>Have you checked (what other&#8217;s are doing??) this article:</p>
<p><a href="http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=2241925" rel="nofollow">http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=2241925</a></p>
<p>IMHO Scala has the worst syntax ever (Anyone is free to disagree) and it just complicates smaller brains who want to develop bigger things. I have a small brain which cannot understand umpteen programming language paradigms. </p>
<p>Twitter could have retained RoR and used a low level module for essential area. Even they could have resorted to PHP. Worst!! Perl has a solution for that task already. </p>
<p>Groovy&#8217;s speed increase by 5x doesn&#8217;t make it any better than PHP</p>
<p>Final solution: </p>
<p>1) Good or bad or worst stick to PHP for 90% of tasks.<br />
2) For algorithms, multiple-processor, Graphics options resort to Good C/C++ libraries. </p>
<p>That&#8217;s all you need. (Whether it is bioinformatics or any other informatics)</p>
<p>Keep it simple and stupid (KISS)</p>
<p>Cheers,<br />
Cmezs</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roman Beslik</title>
		<link>http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/comment-page-1/#comment-7836</link>
		<dc:creator>Roman Beslik</dc:creator>
		<pubDate>Sat, 17 May 2008 18:48:09 +0000</pubDate>
		<guid isPermaLink="false">http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/#comment-7836</guid>
		<description>&gt;a 21st century language where meta programming is absent can only be called in “beta stage”... How is Haskell in that respect?

Haskell has a Template Haskell.
http://www.haskell.org/th/</description>
		<content:encoded><![CDATA[<p>&gt;a 21st century language where meta programming is absent can only be called in “beta stage”&#8230; How is Haskell in that respect?</p>
<p>Haskell has a Template Haskell.<br />
<a href="http://www.haskell.org/th/" rel="nofollow">http://www.haskell.org/th/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tiago</title>
		<link>http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/comment-page-1/#comment-4099</link>
		<dc:creator>tiago</dc:creator>
		<pubDate>Mon, 25 Feb 2008 23:17:37 +0000</pubDate>
		<guid isPermaLink="false">http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/#comment-4099</guid>
		<description>Greg,

This was a SIMPLE example to illustrate a point. Sometimes a certain function causing bad typing inferences might be chained many functions up and calling many other things. That might be a nightmare going through many many functions. This is an example for illustrative purposes only, I still remember when I first got a problem like this, with caml light, circa 14 years ago. More or less 800 lines of code separated where the compiler was signaling the error and where the error really was. Me and my colleague went home 4am or so in the morning. I had a rehash of this a couple of years ago when I implemented a population genetics simulator in caml.

Of course the simpler solution is to explicit type anything in sight, but that is throwing inferred typing away. I can make my population genetics code available where this pattern is easily seen: some functions have some parameters explicitly typed: A bug was traveling through there.</description>
		<content:encoded><![CDATA[<p>Greg,</p>
<p>This was a SIMPLE example to illustrate a point. Sometimes a certain function causing bad typing inferences might be chained many functions up and calling many other things. That might be a nightmare going through many many functions. This is an example for illustrative purposes only, I still remember when I first got a problem like this, with caml light, circa 14 years ago. More or less 800 lines of code separated where the compiler was signaling the error and where the error really was. Me and my colleague went home 4am or so in the morning. I had a rehash of this a couple of years ago when I implemented a population genetics simulator in caml.</p>
<p>Of course the simpler solution is to explicit type anything in sight, but that is throwing inferred typing away. I can make my population genetics code available where this pattern is easily seen: some functions have some parameters explicitly typed: A bug was traveling through there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg M</title>
		<link>http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/comment-page-1/#comment-4097</link>
		<dc:creator>Greg M</dc:creator>
		<pubDate>Mon, 25 Feb 2008 22:55:59 +0000</pubDate>
		<guid isPermaLink="false">http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/#comment-4097</guid>
		<description>That&#039;s what you call a nightmare? Where all the answers are given to you? Then you&#039;ve never had a nightmare. How would that debugging session have gone in a dynamically-typed language? If you think that&#039;s any better it&#039;s because you forgot CAML has an interactive mode as well, but many times it will be a whole lot worse.</description>
		<content:encoded><![CDATA[<p>That&#8217;s what you call a nightmare? Where all the answers are given to you? Then you&#8217;ve never had a nightmare. How would that debugging session have gone in a dynamically-typed language? If you think that&#8217;s any better it&#8217;s because you forgot CAML has an interactive mode as well, but many times it will be a whole lot worse.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Spiewak</title>
		<link>http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/comment-page-1/#comment-4092</link>
		<dc:creator>Daniel Spiewak</dc:creator>
		<pubDate>Mon, 25 Feb 2008 20:12:15 +0000</pubDate>
		<guid isPermaLink="false">http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/#comment-4092</guid>
		<description>I&#039;ve done quite a bit of odd stuff with Scala recently and I haven&#039;t really felt the need for metaprogramming in any respect.  In fact, I would argue that the need for metaprogramming in static languages is virtually non-existent beyond simple data annotation (which Scala provides).  Don&#039;t get me wrong, I love metaprogramming in languages which encourage it (like Ruby), but there are &quot;better&quot; ways to satisfy most of its use-cases in languages like Java and Scala.

Regarding val vs var: I absolutely agree with you on this one.  Scala&#039;s designers seem to think that the whole imperative world is going to jump-ship on mutability and begin to meditate on the purity of their composed functions (it&#039;s no coincidence that one of the features of pure-functional languages is called *higher-order* functions).  With that said, I&#039;ve found myself structuring around immutability in my Scala code without any detrimental effect on my code.  I&#039;m not ready to abandon var just yet, but that&#039;s not what Scala is all about.  It&#039;s a hybrid language, so you use whatever works best for a given scenario.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve done quite a bit of odd stuff with Scala recently and I haven&#8217;t really felt the need for metaprogramming in any respect.  In fact, I would argue that the need for metaprogramming in static languages is virtually non-existent beyond simple data annotation (which Scala provides).  Don&#8217;t get me wrong, I love metaprogramming in languages which encourage it (like Ruby), but there are &#8220;better&#8221; ways to satisfy most of its use-cases in languages like Java and Scala.</p>
<p>Regarding val vs var: I absolutely agree with you on this one.  Scala&#8217;s designers seem to think that the whole imperative world is going to jump-ship on mutability and begin to meditate on the purity of their composed functions (it&#8217;s no coincidence that one of the features of pure-functional languages is called *higher-order* functions).  With that said, I&#8217;ve found myself structuring around immutability in my Scala code without any detrimental effect on my code.  I&#8217;m not ready to abandon var just yet, but that&#8217;s not what Scala is all about.  It&#8217;s a hybrid language, so you use whatever works best for a given scenario.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tiago</title>
		<link>http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/comment-page-1/#comment-4090</link>
		<dc:creator>tiago</dc:creator>
		<pubDate>Mon, 25 Feb 2008 17:37:17 +0000</pubDate>
		<guid isPermaLink="false">http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/#comment-4090</guid>
		<description>Jonathan,

I am not suggesting that Groovy does better in that respect (for what I know, it does not), but that is not the point here. The point is about Scala: Call me cynical but it there is mass adoption (which I doubt) the style will be mostly imperative.</description>
		<content:encoded><![CDATA[<p>Jonathan,</p>
<p>I am not suggesting that Groovy does better in that respect (for what I know, it does not), but that is not the point here. The point is about Scala: Call me cynical but it there is mass adoption (which I doubt) the style will be mostly imperative.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan O'Connor</title>
		<link>http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/comment-page-1/#comment-4086</link>
		<dc:creator>Jonathan O'Connor</dc:creator>
		<pubDate>Mon, 25 Feb 2008 15:22:49 +0000</pubDate>
		<guid isPermaLink="false">http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/#comment-4086</guid>
		<description>Two points:
Your argument about Scala not being suitable for multi-core development is based on one main premise: Developers who are used to imperative languages will not or can not switch to a declarative style. Certainly, I agree that some developers will never write in that way. (I had a professor in college, who always wrote in Fortran style, even in Lisp!) And I would also agree that almost everybody switching to a new language uses the style of a previously learned language. (I did this when I switched from C++ to Java). But eventually, they will learn to write better code.

If you feel that Scala does not solve the multi-core problem, then how does Groovy do? I would think it is even worse than Scala, but I now very little about Groovy, so I could well be wrong.</description>
		<content:encoded><![CDATA[<p>Two points:<br />
Your argument about Scala not being suitable for multi-core development is based on one main premise: Developers who are used to imperative languages will not or can not switch to a declarative style. Certainly, I agree that some developers will never write in that way. (I had a professor in college, who always wrote in Fortran style, even in Lisp!) And I would also agree that almost everybody switching to a new language uses the style of a previously learned language. (I did this when I switched from C++ to Java). But eventually, they will learn to write better code.</p>
<p>If you feel that Scala does not solve the multi-core problem, then how does Groovy do? I would think it is even worse than Scala, but I now very little about Groovy, so I could well be wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tiago</title>
		<link>http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/comment-page-1/#comment-4080</link>
		<dc:creator>tiago</dc:creator>
		<pubDate>Mon, 25 Feb 2008 11:27:57 +0000</pubDate>
		<guid isPermaLink="false">http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/#comment-4080</guid>
		<description>Greg,

Caml can be a type debugging hell, imagine this: Function fa has a bug (a typing bug), function fa, calls fb (passing a wrong parameter type) which calls fc. Now the caml interpreter will infer a certain (wrong) type for fc. Now you call fc from elsewhere, say fd, and the compiler will throw an error in fd. Notice that the error is far, far away in fa. Solution, explicit typing everywhere on the chain (which you can do in caml)... On the example above, when fc is explicitly typed then the error will be raised on the correct chain of calls. But with explicit typing we are throwing type inference away in the first place...

Regarding Scala, you can see some comments that I have made on the scala mailing lists with my needs. I would just add another point: lack of good documentation and a community that is still small - maybe the things that I need are there but I could not discover it. With groovy its a different story...</description>
		<content:encoded><![CDATA[<p>Greg,</p>
<p>Caml can be a type debugging hell, imagine this: Function fa has a bug (a typing bug), function fa, calls fb (passing a wrong parameter type) which calls fc. Now the caml interpreter will infer a certain (wrong) type for fc. Now you call fc from elsewhere, say fd, and the compiler will throw an error in fd. Notice that the error is far, far away in fa. Solution, explicit typing everywhere on the chain (which you can do in caml)&#8230; On the example above, when fc is explicitly typed then the error will be raised on the correct chain of calls. But with explicit typing we are throwing type inference away in the first place&#8230;</p>
<p>Regarding Scala, you can see some comments that I have made on the scala mailing lists with my needs. I would just add another point: lack of good documentation and a community that is still small &#8211; maybe the things that I need are there but I could not discover it. With groovy its a different story&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg M</title>
		<link>http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/comment-page-1/#comment-4069</link>
		<dc:creator>Greg M</dc:creator>
		<pubDate>Mon, 25 Feb 2008 01:59:14 +0000</pubDate>
		<guid isPermaLink="false">http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/#comment-4069</guid>
		<description>Two things: 

You do realize you can ask the interpreter/compiler what the types of everything are in CAML, don&#039;t you? CAML is one of the last languages I&#039;d expect to give you type debugging hell.

Meta-programming is little more than a poor substitute for higher-order functions IMO. But if you see a higher value than &quot;little&quot;, maybe you could tell us where you&#039;ve missed it in Scala.</description>
		<content:encoded><![CDATA[<p>Two things: </p>
<p>You do realize you can ask the interpreter/compiler what the types of everything are in CAML, don&#8217;t you? CAML is one of the last languages I&#8217;d expect to give you type debugging hell.</p>
<p>Meta-programming is little more than a poor substitute for higher-order functions IMO. But if you see a higher value than &#8220;little&#8221;, maybe you could tell us where you&#8217;ve missed it in Scala.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: links for 2008-02-25</title>
		<link>http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/comment-page-1/#comment-4065</link>
		<dc:creator>links for 2008-02-25</dc:creator>
		<pubDate>Mon, 25 Feb 2008 00:36:41 +0000</pubDate>
		<guid isPermaLink="false">http://tiago.org/ps/2008/02/24/groovyscalarubypython-on-jvm/#comment-4065</guid>
		<description>[...] Perfect Storm » Blog Archive » Groovy/Scala/Ruby/Python on JVM Picks Groovy over the others and identifies some issues with Scala. (tags: scala) [...]</description>
		<content:encoded><![CDATA[<p>[...] Perfect Storm » Blog Archive » Groovy/Scala/Ruby/Python on JVM Picks Groovy over the others and identifies some issues with Scala. (tags: scala) [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
