From: James Edward Gray II Date: 2010-12-22T01:29:22+09:00 Subject: Re: Ruby and science ? 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 > 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. > > 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. > > 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. > > 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. > > 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