<story><title>Why I like Java</title><url>http://blog.plover.com/prog/Java.html</url></story><parent_chain><item><author>chavesn</author><text>This is one of those criticisms that sounds right if you know a little bit about the topic, and is certainly clever enough in and of itself to make the reader think that it&amp;#x27;s making a good point.&lt;p&gt;But it&amp;#x27;s not making a good point.  It&amp;#x27;s not even close.  I wish people would stop voting it up.&lt;p&gt;- &lt;i&gt;&amp;quot;In Java, you can forget about doing it in the cleanest or the best way, because that is impossible.&amp;quot;&lt;/i&gt; -- cleanest in any language?  Or cleanest for Java?  Of course the &amp;quot;cleanest&amp;quot; way for Java is possible, and it does matter -- there is a huge difference between &amp;quot;clean&amp;quot; Java and unclean, and anyone who says otherwise is a Java pretender.  And arguing about &amp;quot;cleanest for any language&amp;quot; is just a proxy for a language flamewar.&lt;p&gt;- &lt;i&gt;&amp;quot;And nobody can glare at you and demand to know why you used 576 classes when you should have used 50, because in Java doing it with only 50 classes is probably impossible.&amp;quot;&lt;/i&gt; -- The &amp;quot;Har-har-so-many-classes-and-don&amp;#x27;t-even-get-me-started-on-variable-names&amp;quot; argument.  In Java, as in any language, you can over-design, or you can under-design, or you can design just what you need.  The number of classes may end up higher than in other languages, but this argument is silly and tired, and yes, length is one of the tradeoffs of Java.  An IDE (gasp!) should make that largely irrelevant.&lt;p&gt;- &lt;i&gt;&amp;quot;The code was ridiculously verbose, of course, but that was not my fault. It was all out of my hands.&amp;quot;&lt;/i&gt; -- This word &amp;quot;verbose&amp;quot; keeps being thrown around as an insult, but nobody brings up the tradeoffs.  Verbosity has a purpose, just like brevity and terseness do.  And of course it&amp;#x27;s never out of the programmers&amp;#x27; hands. Once given a language, it&amp;#x27;s all relative.&lt;p&gt;There&amp;#x27;s more, but I&amp;#x27;m arguing with a person who believes that a question about stdin and stdout is a proper gateway for measuring skill &lt;i&gt;toward any programming problem ever&lt;/i&gt;.</text></item></parent_chain><comment><author>rjknight</author><text>I took his post as a fairly standard &amp;quot;worse is better&amp;quot; argument.  Many newer or more fashionable languages enable some very &lt;i&gt;elegant&lt;/i&gt; programming styles, but this comes with a concern about the elegance of one&amp;#x27;s code, which can easily result in the programmer spending more time thinking about elegance than about functionality.  For example... should I use map or reduce here, or maybe an iterator, or... oh fuck it, I&amp;#x27;ll use a for loop.  It turns out that the old-school for loop works just as well despite earning you precisely zero style points.&lt;p&gt;There&amp;#x27;s actually something quite liberating about languages that deny you any clever solutions.  Just write code that works and don&amp;#x27;t worry about whether you could have used &amp;lt;fashionable programming concept X&amp;gt; instead.  I found Go to be quite refreshing for the same reason - the standard library is pretty small and the language lacks anything particularly magical, even some stuff that Java has like generics.  The end result, however, is code that is very easy to read and write for anyone who learned imperative programming in the last 30 years.</text></comment>
<story><title>Why I like Java</title><url>http://blog.plover.com/prog/Java.html</url></story><parent_chain><item><author>chavesn</author><text>This is one of those criticisms that sounds right if you know a little bit about the topic, and is certainly clever enough in and of itself to make the reader think that it&amp;#x27;s making a good point.&lt;p&gt;But it&amp;#x27;s not making a good point.  It&amp;#x27;s not even close.  I wish people would stop voting it up.&lt;p&gt;- &lt;i&gt;&amp;quot;In Java, you can forget about doing it in the cleanest or the best way, because that is impossible.&amp;quot;&lt;/i&gt; -- cleanest in any language?  Or cleanest for Java?  Of course the &amp;quot;cleanest&amp;quot; way for Java is possible, and it does matter -- there is a huge difference between &amp;quot;clean&amp;quot; Java and unclean, and anyone who says otherwise is a Java pretender.  And arguing about &amp;quot;cleanest for any language&amp;quot; is just a proxy for a language flamewar.&lt;p&gt;- &lt;i&gt;&amp;quot;And nobody can glare at you and demand to know why you used 576 classes when you should have used 50, because in Java doing it with only 50 classes is probably impossible.&amp;quot;&lt;/i&gt; -- The &amp;quot;Har-har-so-many-classes-and-don&amp;#x27;t-even-get-me-started-on-variable-names&amp;quot; argument.  In Java, as in any language, you can over-design, or you can under-design, or you can design just what you need.  The number of classes may end up higher than in other languages, but this argument is silly and tired, and yes, length is one of the tradeoffs of Java.  An IDE (gasp!) should make that largely irrelevant.&lt;p&gt;- &lt;i&gt;&amp;quot;The code was ridiculously verbose, of course, but that was not my fault. It was all out of my hands.&amp;quot;&lt;/i&gt; -- This word &amp;quot;verbose&amp;quot; keeps being thrown around as an insult, but nobody brings up the tradeoffs.  Verbosity has a purpose, just like brevity and terseness do.  And of course it&amp;#x27;s never out of the programmers&amp;#x27; hands. Once given a language, it&amp;#x27;s all relative.&lt;p&gt;There&amp;#x27;s more, but I&amp;#x27;m arguing with a person who believes that a question about stdin and stdout is a proper gateway for measuring skill &lt;i&gt;toward any programming problem ever&lt;/i&gt;.</text></item></parent_chain><comment><author>cowls</author><text>Guy works on Java projects for 3 years. In this time wasnt able to produce a high quality project, blames language.</text></comment>