"Dave Thomas" <Dave / PragmaticProgrammer.com> wrote in message
news:m2n13bxrcv.fsf / zip.local.thomases.com...
>
> Folks:
>
> We currently have a problem with Ruby under Windows. The Cygwin
> version shipped with the Installshield system is the most fully
> featured, but at the same time seems to be flaky in some situations
> (mostly due to Cygwin issues and the normal DLL hell). MinGW seems
> fairly solid, but there are rumors that it doesn't support all the

First of all - I see the major problem of switching from Cygwin to MinGW or
other non-Posix enviroment to be the support of all the RAA modules. There
may be a price to pay in terms of RAA modules that is supported on Windows
and those that not. This may of course also go the other way: RAA modules
that only works on Windows. But I am willing to pay that price.

In my opinion Ruby on Windows should avoid using Cygwin:
a) because it is very difficult to install Cygwin properly if you need to
compile source.
b) because once installed it conflicts with other apps depending on Cygwin.
c) it is not sufficiently stable.
d) it complicates creating standalone apps written in Ruby.
e) it complicates integration with thirdparty Windows specific software
libraries to be used in Ruby extension (the counterargument being that it
makes Unix specific software more difficult to support).

If Ruby is to get any success in commercial enviroments (which I consider
important for the overall success of the language), it must be possible to
easily deploy applications that are partially written in Ruby.

I don't care if MinGW is slightly slower or that it might not support
everything (Ruby is already slow so that is not the deciding factor).
For the Ruby core itself this may come down to writing some support code for
Windows - but surely that can be accomplished without too much fuzz?

I'll quote Guy whom I fully agree with on this:

<Guy>This is of course my opinion, but look
at how successful PHP is. It is perhaps the most cross-platform web scriptin
g
language, yet it does not achieve that via a single binary. It has
windows-specific
approaches. I think this can be successful for Ruby, also.<Guy/>

I have not studied MinGW - but I guess it would be possible (as in not
difficult) to get core Ruby to compile directly under Windows without any
kind of third party support. I know there may be some socket issues and a
few other issues - and I my be a good idea to grab some software from
somewhere to solve such issues.

So the task is to identify exactly what Ruby need of support from the
operating system. There is file I/O, memory management, threads and network
I/O. But since you can already now embed Ruby, I guess this is almost a
non-issue except perhaps for the networking issue. So I don't see any major
reason for Ruby to depend on any third party distributions (well I still
like software like FxRuby etc. as add-ons to core Ruby but not as a
foundation).

I am surprised to hear the Ruby might be faster on Cygwin than MinGW. My
immediate guess is that it is related to memory management. malloc may
simply be more efficient in Cygwin. I understand that memory management is
being improved in Ruby, so that shouldn't cloud the issue.


BTW: nice meeting those of you who visited Aarhus a few weeks back.

MikkelFJ