# Some help against the raging hordes of 'J' fanatics

**URL:** <https://www.ruby-forum.com/t/some-help-against-the-raging-hordes-of-j-fanatics/73459>\
**Category:** Ruby\
**Created:** [October 24, 2006, 7:58pm UTC](https://www.ruby-forum.com/t/some-help-against-the-raging-hordes-of-j-fanatics/73459 "2006-10-24T19:58:59Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![splattael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/858c86/32.png) [@splattael](https://www.ruby-forum.com/u/splattael)\
**Post date:** [October 24, 2006, 7:58pm UTC](https://www.ruby-forum.com/t/some-help-against-the-raging-hordes-of-j-fanatics/73459/1 "2006-10-24T19:58:59Z")

</div>

Hello,

Maybe some of you already came across my latest blog entry - it’s about  
the comparison of a few Ruby vs Java idioms. Basically I wrote it  
because I just learning Ruby and I was astonished by it’s power, and  
well, I just blogged about a few tasks I solved recently. It can be  
found here:

[http://www.rubyrailways.com/sometimes-less-is-more/](http://www.rubyrailways.com/sometimes-less-is-more/)

Of course I have thought some Java guys will be pissed off by it, but I  
sat back and laughed at them. However the last bit was this comment:

I set up a tree in Ruby with this code (method\_missing behind of course)

tree = a {  
b { d e }  
c { f g h }  
}

And somebody said this is crap and can be done much nicely in Java. He  
also provides some kind of code…

Arghhh… This is now really… How to say…

As 98% of the comments is like ‘yeah Ruby is maybe cool, but Java is  
about equal or better’ and there is not even one real Ruby answer, I  
would like to challange some members to add some Ruby spice to the  
thing, too. I think the Ruby community is also cool enough to argue a  
bit about this, on Ruby’s behalf…  
What do you say?

\_\_  
Peter  
[http://www.rubyrailways.com](http://www.rubyrailways.com)

---

<div class="post-metadata">

**Author:** ![splattael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/858c86/32.png) [@splattael](https://www.ruby-forum.com/u/splattael)\
**Post date:** [October 24, 2006, 10:01pm UTC](https://www.ruby-forum.com/t/some-help-against-the-raging-hordes-of-j-fanatics/73459/2 "2006-10-24T22:01:54Z")

</div>

On Wed, 25 Oct 2006, Peter S. wrote:

> As 98% of the comments is like ‘yeah Ruby is maybe cool, but Java is  
> about equal or better’ and there is not even one real Ruby answer, I  
> would like to challange some members to add some Ruby spice to the  
> thing, too. I think the Ruby community is also cool enough to argue a  
> bit about this, on Ruby’s behalf…  
> What do you say?

Why do you need to do this? If they choose another language over  
Ruby, no-one is harmed by that. People will learn it if there is  
a compelling reason for them to do so, but they must see it as  
compelling, themselves. Many have seen Rails as such a reason.

When choosing a programming language one also needs to know about  
available libraries, platforms, experience of others in the team,  
whether support contracts are needed, and lots more. Sometimes  
something else is the right answer.

```
    Hugh
```

---

<div class="post-metadata">

**Author:** ![splattael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/858c86/32.png) [@splattael](https://www.ruby-forum.com/u/splattael)\
**Post date:** [October 24, 2006, 10:14pm UTC](https://www.ruby-forum.com/t/some-help-against-the-raging-hordes-of-j-fanatics/73459/3 "2006-10-24T22:14:01Z")

</div>

Peter S. wrote:

> I think the Ruby community is also cool enough to argue a  
> bit about this, on Ruby’s behalf…  
> What do you say?

I say that the Ruby community is cool enough not to argue about this.

–  
James B.

“I must create a system, or be enslaved by another man’s;  
I will not reason and compare; my business is to create.”

- William Blake

---

<div class="post-metadata">

**Author:** ![splattael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/858c86/32.png) [@splattael](https://www.ruby-forum.com/u/splattael)\
**Post date:** [October 24, 2006, 10:32pm UTC](https://www.ruby-forum.com/t/some-help-against-the-raging-hordes-of-j-fanatics/73459/4 "2006-10-24T22:32:38Z")

</div>

James B. wrote:

> Peter S. wrote:
> 
> > I think the Ruby community is also cool enough to argue a  
> > bit about this, on Ruby’s behalf…  
> > What do you say?
> 
> I say that the Ruby community is cool enough not to argue about this.

Yes, yes, yes, yes, yes, yes, yes, yes, yes. Please let us be forever  
free of the need to argue about “my language is better than yours.” Then  
we can spend all that energy on helping each other.

---

<div class="post-metadata">

**Author:** ![splattael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/858c86/32.png) [@splattael](https://www.ruby-forum.com/u/splattael)\
**Post date:** [October 24, 2006, 10:40pm UTC](https://www.ruby-forum.com/t/some-help-against-the-raging-hordes-of-j-fanatics/73459/5 "2006-10-24T22:40:53Z")

</div>

Peter S. wrote:

> As 98% of the comments is like ‘yeah Ruby is maybe cool, but Java is  
> about equal or better’ and there is not even one real Ruby answer, I  
> would like to challange some members to add some Ruby spice to the  
> thing, too. I think the Ruby community is also cool enough to argue a  
> bit about this, on Ruby’s behalf…  
> What do you say?

There is no honor in preying on the weak.

---

<div class="post-metadata">

**Author:** ![splattael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/858c86/32.png) [@splattael](https://www.ruby-forum.com/u/splattael)\
**Post date:** [October 25, 2006, 1:29am UTC](https://www.ruby-forum.com/t/some-help-against-the-raging-hordes-of-j-fanatics/73459/6 "2006-10-25T01:29:27Z")

</div>

> Hello,
> 
> Maybe some of you already came across my latest blog entry - it’s about  
> the comparison of a few Ruby vs Java idioms. Basically I wrote it  
> because I just learning Ruby and I was astonished by it’s power, and  
> well, I just blogged about a few tasks I solved recently. It can be  
> found here:
> 
> [http://www.rubyrailways.com/sometimes-less-is-more/](http://www.rubyrailways.com/sometimes-less-is-more/)

I read it but was turned off by what I saw as technical errors.

- neither the empty Java program nor the empty Ruby program does  
‘literally nothing’.

- it loudly states that it is only covering ‘features of the  
language’ and not libraries, but requires ActiveSupport for half  
of the examples.

- attr\_accessor is not _that_ big of a deal. even C programmers can  
do something very similar.

- there is a disclaimer that it’s not language bashing, but the tone  
clearly comes across to me as language bashing.

I understand where you’re trying to go–and agreed with you before you  
even started!–but I’m not getting there from the text. I read your  
section on arrays for example and think to myself ‘yeah, Ruby has  
dynamic lists, like Perl, Python, Lisp …’.

I have almost no knowledge of Java idioms, so I can’t help there. The  
guy who is claiming you can do everything with reflection sounds like  
he’s on to something, but I have some doubt that anyone is really  
using “byte code enhancement” instead of typing 2 method definitions.  
Gratuitous use of reflection in Java strikes me as code smell.

Steve

---

<div class="post-metadata">

**Author:** ![splattael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/858c86/32.png) [@splattael](https://www.ruby-forum.com/u/splattael)\
**Post date:** [October 25, 2006, 3:59am UTC](https://www.ruby-forum.com/t/some-help-against-the-raging-hordes-of-j-fanatics/73459/7 "2006-10-25T03:59:40Z")

</div>

Peter S. wrote:

> Hello,
> 
> Maybe some of you already came across my latest blog entry - it’s about  
> the comparison of a few Ruby vs Java idioms. Basically I wrote it  
> because I just learning Ruby and I was astonished by it’s power, and  
> well, I just blogged about a few tasks I solved recently. It can be  
> found here:
> 
> [http://www.rubyrailways.com/sometimes-less-is-more/](http://www.rubyrailways.com/sometimes-less-is-more/)

The post is such blatant trollbait I won’t even bother. Anecdote \* 10 !=  
evidence.

Then again, I have a reputation of a troll to keep, so here goes. (For  
my defense, I only troll back.)

I’ll try to touch on some points your commenters missed.

Ruby lets you write less code because the language is much, much, much  
larger. The Java policy is to defer non-basic things to tools so you can  
mix and match approaches. With some notable exceptions around singleton  
classes which aren’t possible with Java’s object model, but I find those  
somewhat of a hack, basically they seem to classes like lambdas are to  
named functions. Fun for one-off throwaway code, annoying to find bugs  
in if non-trivial, and you could as well make a generic object  
parameterised by a lambda or two to replace them without too much of a  
kludge (this pattern can also be implemented in Java-like object models  
with varying larger amounts of kludge). There’s also the varying design  
principles where on one side, you try and keep a clean (-ish) separation  
between the language and its artifacts (the libraries), and on the other  
you blur the boundaries of those. Understanding the latter completely is  
a much larger learning curve, even if the early “oh, wow, neato-whiz  
shorthand” shiny objects dangled in front of your nose hide that fact.

A lot of the examples you show are using dynamic code generation of  
sorts, which would require either XDoclet or load-time bytecode  
enhancement in Java to implement. Believe or not, that extra step is a  
virtue in circumstances. Dynamic code generation is basically Dark Magic  
(to wit: the umptillion metaprogramming threads that have people  
groaning over one gotcha or another), it requires more skill from a  
programmer to both write and read again. And while you might yet  
blissfully ignore the fact that the real world needs programs that are  
a) maintainable, and that b) by muppets, I find it a very hard fact. No  
matter how god damn smug you are, if your code will have to be  
understood by a student coder, there is no place for metaprogramming  
unless it’s damn well contained, tagged with big red neon signs saying  
“This works, do not touch”.

Summarising: just because you can’t see a point to verbosity doesn’t  
mean there is never none. Well, except for declaring types of locals,  
inference of those is on my personal Java 7 wishlist. (As optional  
syntactic-sugar for type checks / DbC and a standard library that plays  
along nicely with that is on the Ruby 2 one).

PS: Noone gives a flying _bleep_ about attr\_accessor or public static  
void main, that’s what IDEs or editor templates are for. I can  
IDE-generate default member accessors in (four) less keystrokes than  
typing “attr\_accessor” takes. (Alt+Ins Down Down Down Enter Shift-End  
Enter. From memory.) Which is a non-argument too, but I’ll leave it as  
an exercise to the reader to spot it. If you’re too cheap for IDEA and  
hardware to run it, sux2bu.

PPS: The comparing Java arrays to Ruby arrays because you can’t  
initialize lists in one statement is braindead beyond all belief. Redo  
from scratch. HINT:  
List strings = Arrays.asList(new String[] {“bing”, “cabbage”,  
“womble”});  
By the way, a Stack is a List, and a List is an array for any purpose  
you might need (the List contract is an extension of the array one).

Now, can I PLEASE have the constructive Ruby community that didn’t give  
a damn about any other programming languages either from a year ago or  
so back? I feel faintly disturbed by how much noise various programming  
language expatriate whiners are able to generate.

I also object to the overgeneralising blanket fanatic descriptor. You  
start with a shallow troll and then call people that defend against it  
fanatics? Sad.

David V.  
Your Unfriendly Neighborhood 'J’ava Fanatic

---

<div class="post-metadata">

**Author:** ![splattael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/858c86/32.png) [@splattael](https://www.ruby-forum.com/u/splattael)\
**Post date:** [October 25, 2006, 10:30am UTC](https://www.ruby-forum.com/t/some-help-against-the-raging-hordes-of-j-fanatics/73459/8 "2006-10-25T10:30:38Z")

</div>

Hi all,

Thanks for the comments. The outcome was quite different from what I  
have been expecting :-), but anyway your suggestions were (mostly)  
eye-opening and helpful in many ways.

Cheers,

\_\_  
Peter  
[http://www.rubyrailways.com](http://www.rubyrailways.com)
