On Dec 21, 2010, at 9:45 AM, Charles Oliver Nutter wrote:

> On Tue, Dec 21, 2010 at 9:13 AM, James Edward Gray II
> <james / graysoftinc.com> wrote:
>> I was once trying to use JRuby in a POSIX environment where I needed =
Unixy process management.  It had to interoperate with other processes =
that expected these behaviors.  I ran into at least two challenges and =
filed the bugs I had seen.  In your replies, you gave me some =
workarounds and explained why things were purposely working this way.  =
At this point I realized JRuby was the wrong tool for the job and =
switched.
>=20
> I think the workarounds were quite acceptable.

They are.  They do work.  I didn't mean to imply that they don't.  As =
you noted, it's not a cure all (we can't get fork()), but you can get =
most functions.

>> My opinion is that Ruby grew up in Unix and it purposely exposes a =
lot of Unixisms.  I think that means exit!() should kill my process now =
and exec() should replace my process.  That's what those methods mean to =
me.  When you give me reasons why that isn't a good idea, it makes me =
feel like JRuby has stopped trusting me to make the best decisions.  =
That feels like the Java way, but not the Ruby way, in my opinion.
>=20
> Ruby needs to grow beyond being a Unix-only language.

When Ruby is running on Unix and doesn't have those abilities, we've =
lost something in the translation.

>> However, these feelings of mine are not why I said JRuby sucks at =
process management.  I said it because your exec() doesn't really exec() =
on purpose.  Your exec() isn't a POSIX exec().  I don't feel that's =
debatable.  It's just a fact.
>=20
> Ruby's exec isn't a POSIX exec when running on Windows. So it
> obviously is debatable.

I wasn't running on Windows when I found the bugs.

>> So I'll refine my statement a little:  JRuby sucks at POSIX style =
process management.
>=20
> How about "JRuby by default does not assume the user wants POSIX-style
> process management, but does not prevent you from using POSIX-style
> process management with a bit of extra work."

Yeah, kind of shocking I didn't just say that mouthful.  :)  OK, we'll =
go with your statement in the future.  I'm fine with it.

> I think it's the "sucks" that I don't like. Just saying something
> "sucks" because you don't agree with how it does things isn't
> informative or helpful.

I think it's sad you have trouble with that word.

I suck at a LOT of things.  I'll make you a list sometime.

I've heard Matz explain things MRI sucks at before, though he probably =
didn't use that exact word.

If JRuby was perfect, we would all use JRuby all the time and all other =
Ruby interpreters would die out.  That hasn't happened yet.  :)

> You can't please everyone all the time. It's unfortunate that some
> people think this means you "suck".

I never said you suck Charlie.  I don't think anything like that.  =
You're a hero of our community.

I also never said JRuby sucks.  I said it sucks at some things.

I'll try to remember to drop the word in the future though, knowing that =
it bothers you.

We can still be friends as far as I'm concerned!  :)

James Edward Gray II