<?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: Commons Lang - Why?</title>
	<atom:link href="http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/</link>
	<description>Rants and opinion interspersed with awe-inspiring tales of heoric software engineering endeavours.</description>
	<pubDate>Wed, 19 Nov 2008 14:14:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: New Adventures In Software &#187; Uncommons Maths - The Name Game</title>
		<link>http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/#comment-72</link>
		<dc:creator>New Adventures In Software &#187; Uncommons Maths - The Name Game</dc:creator>
		<pubDate>Mon, 26 Nov 2007 22:48:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.uncommons.org/?p=30#comment-72</guid>
		<description>[...] Apache Commons Math (regardless of the incidental mention Commons Math received in my previous rant against Commons Lang). Commons Math provides a lot of functionality that Uncommons Maths does not [...]</description>
		<content:encoded><![CDATA[<p>[...] Apache Commons Math (regardless of the incidental mention Commons Math received in my previous rant against Commons Lang). Commons Math provides a lot of functionality that Uncommons Maths does not [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: New Adventures In Software &#187; In Praise of JiBX</title>
		<link>http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/#comment-36</link>
		<dc:creator>New Adventures In Software &#187; In Praise of JiBX</dc:creator>
		<pubDate>Mon, 16 Jul 2007 22:25:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.uncommons.org/?p=30#comment-36</guid>
		<description>[...] previous post, about the Apache Commons libraries, and Commons Lang in particular, was slightly controversial and [...]</description>
		<content:encoded><![CDATA[<p>[...] previous post, about the Apache Commons libraries, and Commons Lang in particular, was slightly controversial and [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hani Suleiman</title>
		<link>http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/#comment-35</link>
		<dc:creator>Hani Suleiman</dc:creator>
		<pubDate>Thu, 05 Jul 2007 13:06:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.uncommons.org/?p=30#comment-35</guid>
		<description>I agree with Dan, Stephen, both your examples are very unclear, and can be simplified to if(myVariable) and if(!myVariable), and I doubt anyone could argue that any method calls are simpler than that.</description>
		<content:encoded><![CDATA[<p>I agree with Dan, Stephen, both your examples are very unclear, and can be simplified to if(myVariable) and if(!myVariable), and I doubt anyone could argue that any method calls are simpler than that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ivan</title>
		<link>http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/#comment-34</link>
		<dc:creator>Ivan</dc:creator>
		<pubDate>Sat, 30 Jun 2007 14:09:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.uncommons.org/?p=30#comment-34</guid>
		<description>Commons Lang is a little outdated.  The only thing I really use it for is the full exception trace method... heh.</description>
		<content:encoded><![CDATA[<p>Commons Lang is a little outdated.  The only thing I really use it for is the full exception trace method&#8230; heh.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/#comment-33</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Sat, 30 Jun 2007 13:14:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.uncommons.org/?p=30#comment-33</guid>
		<description>Stephen, even ignoring the fact that auto-boxing makes BooleanUtils redundant, since I'm assuming this code pre-dates auto-boxing, is there really a need for both isFalse() and isNotTrue?  If the argument is because the object may be null, I am unconvinced.  I'd rather fail fast with a NullPointerException than hide the bug.</description>
		<content:encoded><![CDATA[<p>Stephen, even ignoring the fact that auto-boxing makes BooleanUtils redundant, since I&#8217;m assuming this code pre-dates auto-boxing, is there really a need for both isFalse() and isNotTrue?  If the argument is because the object may be null, I am unconvinced.  I&#8217;d rather fail fast with a NullPointerException than hide the bug.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: laurent</title>
		<link>http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/#comment-32</link>
		<dc:creator>laurent</dc:creator>
		<pubDate>Sat, 30 Jun 2007 12:43:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.uncommons.org/?p=30#comment-32</guid>
		<description>I work at a company with 100+ java devs, with a "java support" team getting slashed one year ("those architects in their ivory tower are too expensive") and recreated the next ("we need to on a common framework").
In that unstable environment, Commons Lang and friends slowly replaced the StringUtils, BeanUtils, .. classes developed and "maintained" separately for each project. I love it just for that reason. They can do the job 10 times slower, I don't care...</description>
		<content:encoded><![CDATA[<p>I work at a company with 100+ java devs, with a &#8220;java support&#8221; team getting slashed one year (&#8221;those architects in their ivory tower are too expensive&#8221;) and recreated the next (&#8221;we need to on a common framework&#8221;).<br />
In that unstable environment, Commons Lang and friends slowly replaced the StringUtils, BeanUtils, .. classes developed and &#8220;maintained&#8221; separately for each project. I love it just for that reason. They can do the job 10 times slower, I don&#8217;t care&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Klaus Meffert</title>
		<link>http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/#comment-31</link>
		<dc:creator>Klaus Meffert</dc:creator>
		<pubDate>Sat, 30 Jun 2007 09:40:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.uncommons.org/?p=30#comment-31</guid>
		<description>Good points I can immediately follow, especially regarding BooleanUtils! But as other said, many classes from the commons libs are very useful. Recently I replaced calls to Java encode and decode routines with the ones from commons codec. The latter run myriads of times faster!

So what would really help is if your appropriate criticism is forwarded to the regarding apache projects in order to make them better.</description>
		<content:encoded><![CDATA[<p>Good points I can immediately follow, especially regarding BooleanUtils! But as other said, many classes from the commons libs are very useful. Recently I replaced calls to Java encode and decode routines with the ones from commons codec. The latter run myriads of times faster!</p>
<p>So what would really help is if your appropriate criticism is forwarded to the regarding apache projects in order to make them better.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen Colebourne</title>
		<link>http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/#comment-30</link>
		<dc:creator>Stephen Colebourne</dc:creator>
		<pubDate>Fri, 29 Jun 2007 22:52:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.uncommons.org/?p=30#comment-30</guid>
		<description>Of course you are welcome to your opinion :-) Commons-lang reallly just represents a combination of the utility libraries that every good developer and development team writes.

Oh, and why BooleanUtils.isNotTrue ? Well write the code and see which is easier to understand:

if (!Boolean.TRUE.equals(myVariable)) { ...}

if (BooleanUtils.isNotTrue(myVariable)) { ...}

Personally, I find the latter *much* more readable and expressive of intent. Generally, avoiding nulls and the negate ! operator result in safer clearer code.</description>
		<content:encoded><![CDATA[<p>Of course you are welcome to your opinion <img src='http://blog.uncommons.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Commons-lang reallly just represents a combination of the utility libraries that every good developer and development team writes.</p>
<p>Oh, and why BooleanUtils.isNotTrue ? Well write the code and see which is easier to understand:</p>
<p>if (!Boolean.TRUE.equals(myVariable)) { &#8230;}</p>
<p>if (BooleanUtils.isNotTrue(myVariable)) { &#8230;}</p>
<p>Personally, I find the latter *much* more readable and expressive of intent. Generally, avoiding nulls and the negate ! operator result in safer clearer code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/#comment-29</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Fri, 29 Jun 2007 08:37:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.uncommons.org/?p=30#comment-29</guid>
		<description>Torsten, there's no point in writing patches for code which (in my opinion) servces no useful purpose.  The only way to improve JVMRandom would be to delete it and use java.util.Random instead.  And yes, I am a fan of useless BileBlogs :)

Brian, you are absolutely correct, this is kind of the point I was making in the first paragraph.  The redundancy of some of the classes is down to its age rather than incompetence.

Per, you may be right.  I certainly have not looked at all of the classes.  But the vast majority of the ones I did look at didn't appear to offer much.</description>
		<content:encoded><![CDATA[<p>Torsten, there&#8217;s no point in writing patches for code which (in my opinion) servces no useful purpose.  The only way to improve JVMRandom would be to delete it and use java.util.Random instead.  And yes, I am a fan of useless BileBlogs <img src='http://blog.uncommons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Brian, you are absolutely correct, this is kind of the point I was making in the first paragraph.  The redundancy of some of the classes is down to its age rather than incompetence.</p>
<p>Per, you may be right.  I certainly have not looked at all of the classes.  But the vast majority of the ones I did look at didn&#8217;t appear to offer much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Per Olesen</title>
		<link>http://blog.uncommons.org/2007/06/29/the-tragedy-of-the-jakarta-commons/#comment-28</link>
		<dc:creator>Per Olesen</dc:creator>
		<pubDate>Fri, 29 Jun 2007 06:18:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.uncommons.org/?p=30#comment-28</guid>
		<description>You might be right in some of your comments on commons-lang. I find stuff like StringUtls and ArrayUtils helpful.

I do not agree completely with you on this statement "...SunÃ¢â‚¬â„¢s enhancements over the years to the standard libraries and Java language (e.g. generics, auto-boxing and enums) have obsoleted many of the Commons classes". Actually, Sun has been quite conservative with adding value on classes in the java.lang package. Nearly every project I've been on or a lot of the open-source ones I've used, have a StringUtils they've written themselves.

If using IDEA, try opening a project with many dependencies, hit Ctrl-N, check "Include non-project classes" and type "StringUtil". There will be more than one, I can almost guarantee you.

I guess this is due to two things:
* sun being conservative
* Java not being dynamic enough to fix it yourself

In Ruby, I could just open up the String class and add new methods :-)</description>
		<content:encoded><![CDATA[<p>You might be right in some of your comments on commons-lang. I find stuff like StringUtls and ArrayUtils helpful.</p>
<p>I do not agree completely with you on this statement &#8220;&#8230;SunÃ¢â‚¬â„¢s enhancements over the years to the standard libraries and Java language (e.g. generics, auto-boxing and enums) have obsoleted many of the Commons classes&#8221;. Actually, Sun has been quite conservative with adding value on classes in the java.lang package. Nearly every project I&#8217;ve been on or a lot of the open-source ones I&#8217;ve used, have a StringUtils they&#8217;ve written themselves.</p>
<p>If using IDEA, try opening a project with many dependencies, hit Ctrl-N, check &#8220;Include non-project classes&#8221; and type &#8220;StringUtil&#8221;. There will be more than one, I can almost guarantee you.</p>
<p>I guess this is due to two things:<br />
* sun being conservative<br />
* Java not being dynamic enough to fix it yourself</p>
<p>In Ruby, I could just open up the String class and add new methods <img src='http://blog.uncommons.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
</channel>
</rss>

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