Developing for Ruby on Windows?

I’ve heard a lot of criticism about developing for Ruby on Windows, but
am yet to see anyone elaborate on this. Can someone enlighten me on why
developing for Ruby on Windows is considered to be painful?

Cheers

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 17.09.2010 10:53, schrieb Tom W.rop:

I’ve heard a lot of criticism about developing for Ruby on Windows, but
am yet to see anyone elaborate on this. Can someone enlighten me on why
developing for Ruby on Windows is considered to be painful?

Cheers

My personal opinion about this is that developing on Windows is not as
hard as it used to be since the Ruby Installer + DevKit have been
released. However, Windows stays Windows, and the thing I personally
most miss in Windows is the #fork method and the ability to create
multi-process programs easily. When Ruby gets rid of the GIL sometime
and Ruby’s threads will run truly concurrent, I may not miss it anymore
(Ruby 2.0, maybe?).
Apart from that, I just dislike non-free (free as in freedom) operating
systems :wink:

Vale,
Marvin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkyTPKkACgkQDYShvwAbcNl8JACfazDUahmRyLi9MGEBTsyG8zpC
UwkAniD7xMFUnpv1psHCPL1ynTLQMg03
=Z3gp
-----END PGP SIGNATURE-----

There is quite a few reasons, the main one is that Ruby assumes a POSIX
environment
for general development, and this is worked around (usually
successfully) on
windows.

But there are enough areas where it doesn’t work that cause issues ad a
general feeling
of dissatisfaction.

Note that this situation is changing considerably. JRuby has made
serious
development
on windows for Ruby users possible for several years now, and the latest
release of
RubyInstaller has made dramatic changes to how Ruby works on Windows (in
short it introduces
the equivalent of a POSIX toolchain).

There is a long history on this problem, but it is not as interesting as
the
positive recent
developments that make Ruby on Windows a much more pleasant experience.

On 17/9/2010 6:02 PM, Quintus wrote:

hard as it used to be since the Ruby Installer + DevKit have been
released. However, Windows stays Windows, and the thing I personally
most miss in Windows is the #fork method and the ability to create
multi-process programs easily. When Ruby gets rid of the GIL sometime
and Ruby’s threads will run truly concurrent, I may not miss it anymore
(Ruby 2.0, maybe?).
Apart from that, I just dislike non-free (free as in freedom) operating
systems :wink:

Barring ideology, there are, in my opinion, two main annoyances in
working with Windows…

  1. Some times, it can take a while to start the Ruby interpreter - and
    Ruby runs slowly. While an annoyance, most people don’t deploy on
    Windows and a bit of extra time in starting a long(er) running program
    is fine for me.

  2. Some native gems fail to build and you need to find a way around it.
    Luis’ work and the DevKit, etc. are changing this situation on a daily
    basis… so, we will get there.

Barring that, I haven’t found any reason to avoid working on Windows
using Ruby. Some of the things that I do require Windows - for example,
I use Win32Ole to parse Word documents to put into a Radiant CMS site…
so, I’m happy enough working there.

Best Regards,
Mohit.
17/9/2010 | 6:11 PM.

I totally agree with Richard - I am stuck with windows mostly as I got
MS qualifications so I can possibly get a job in developing and my
machine doesn’t have sufficient space for a duel boot at the minute (
catch 22 - job = money = new machine!).

Sooo… using the latest windows installers results in a generally
pleasurable ruby experience. Nearly everything works well on windows and
I can develop with ruby to my hearts content. Occasionally a gem appears
that will not work on windows - I think this is due to a lack of thought
or even disregard rather than it can’t be done, e.g. rvm (switch
between ruby versions)

I use ruby 1.8.6 or 1.8.7 (waiting for some of my favourite gems to
update for 1.9) and I do have 1.9.1 which I am experimenting with.
Windows is XP and I use notepad++ or scite. Scite is excellent for
small programs and learning, why use anything else?

Have fun

Much of the criticism, I believe, comes from cultural rather than
technical concerns. Most of the movers-and-shakers in the Ruby
community are using either *nix or OS X and therefore most of the
blogs, articles, tutorials and books come written through that prism
(actually, earlier works were much better in this regard). This can
make it tricky for newcomers to learn Ruby if they’re on Windows and
it cements a perception that Ruby on Windows is harder than it should
be, or doesn’t work as well. Take the Rails Tutorial for example -
it’s very POSIX centric and even advises using Cygwin rather than
native Windows. It’s an awesome tutorial, but it would leave the
curious Windows-using dabbler with a sense that Rails, Ruby, Git and
the rest are really designed for Unix and unsatisfactory, hacky
afterthoughts on Windows. The result: people either switch, or turn
away. I know Rails != Ruby, but many (perhaps most) newcomers are
introduced to Ruby through Rails, so I believe this is a good example.

The thing is, Ruby on Windows needn’t be a poor experience - with the
right tools and advice, and good quality, disciplined cross-platform
programming on the part of Ruby developers, the beauty of Ruby can be
enjoyed just as well on Windows as it can on OS X or *nix. The Python
community seems to be ahead of Ruby on this point. I believe what we
need are more developers dedicated to improving the experience on
Windows (the RubyInstaller team being a fantastic example) and also a
more concious welcoming of Windows users into the community (as in,
less of the mocking of Windows and Windows users in general - yeah, I
know, boo-hoo, violins, etc. - but for a newcomer, it’s not the best
experience to feel like you’re some sort of pariah) Now, we all need
to have a sense of humour and have to be able to take a bit of
ribbing, but the joke is kind of old and stale now, and things have
improved tremendously in recent months on Windows, and, well, we’re
all just trying to get some work done, no? Can’t we all just be
friends, dammit? :wink: But if we can continue this trend of making
Windows feel less of a hostile environment for Ruby, then I’m sure
more Windows developers will be attracted and therefore will pour more
resources into improving Ruby on Windows. So, keep up the good work
and less of the negative stuff, in other words. :slight_smile:

(btw, this particular community is actually very welcoming and always
has been; my mild critique is more aimed at the high-profile bloggers,
developers and pundits, particularly in the Rails community.)

Charles

Charles R.
http://twitter.com/charlesroper

On 17/09/10 11:53 , Tom W.rop wrote:

I’ve heard a lot of criticism about developing for Ruby on Windows, but
am yet to see anyone elaborate on this. Can someone enlighten me on why
developing for Ruby on Windows is considered to be painful?

Cheers
The bulk of my development work is on Windows and it has been since I
started using Ruby (way back in the 1.6 days).
The O.Click installer was a blessing but had the known problems, the
new RubyInstaller is even better and the devkit makes life a lot easier.
The win32-* gems cover most of what people would need with windows
specific stuff.
The missing fork() and speed are the main concerns. The Ruby interpreter
on Windows performs abominably - so much so that when I have to work on
large sets of data I do the work on the Mac.
And all the web servers (webrick, mongrel, thin) perform much better on
any other platform.
Having said that 95% of the time performance is good enough and the ease
of expression in Ruby makes up for any windows specific annoyances.
Cheers,
V.-

On 17 September 2010 11:50, jonty [email protected] wrote:

Occasionally a gem appears that will not work on windows - I think this is
due to a lack of thought or even disregard rather than  it can’t be done,
e.g. rvm (switch between ruby versions)

Check out Pik: http://rubyinstaller.org/add-ons/pik/

Charles

On Fri, Sep 17, 2010 at 05:53:43PM +0900, Tom W.rop wrote:

I’ve heard a lot of criticism about developing for Ruby on Windows, but
am yet to see anyone elaborate on this. Can someone enlighten me on why
developing for Ruby on Windows is considered to be painful?

I’ll be sorta treading the same ground as some other people who
responded, but here’s my response anyway:

The problems with developing in Ruby on Windows fall into several
categories.

  • Ruby is slow on MS Windows.

  • Ruby documentation tends to be POSIX-oriented (that is, Unix and
    Unix-like systems are the targets). The famous Rails tutorial is a
    good example.

  • MS Windows is generally kind of hostile to non-Microsoft interpreted
    languages. This can make it more difficult to get your language of
    choice installed on the system than on other OSes, for instance, and
    it
    tends to mean that to do a lot of meaningful work one needs to jump
    through more hoops (such as the extra work involved to get Ruby
    working
    with WSH instead of just knuckling under and using VBScript). While
    JScript is actually one of Microsoft’s babies, even that is not quite
    as comfortable a fit for MS Windows scripting as VBScript.

  • A lot of Ruby gems do not work on MS Windows. This could be for many
    reasons, such as the fact a gem’s functionality might really only
    address a POSIX need.

  • The community generally prefers POSIX systems, and it shows in
    discussion, expertise, and so on.

  • MS Windows simply lacks some basic functionality that makes
    development
    easier, such as a proper fork(), a powerful shell that works better
    than a bolt-on afterthought like Powershell, and a general
    availability
    of simple scriptable interfaces for just about every piece of software
    running on the system. These are all capabilities that (most) other
    general purpose and server-specific operating systems offer.

That is not to say that using Ruby is not a good language to use on MS
Windows. As someone else pointed out, it’s a good enough language to
make the extra effort involved to use it worthwhile when you’re working
with MS Windows. Some other languages’ implementations have been
tweaked
to fit MS Windows a little better than Ruby’s, of course, but from my
perspective all truly multi-platform languages are more painful to use
on MS Windows than elsewhere.

Note that I’m not talking about JRuby. My minimal experience with JRuby
involves toying with Ruboto on my Android device.

Your mileage may vary, I suppose.

I’ve heard a lot of criticism about developing for Ruby on Windows, but

am yet to see anyone elaborate on this. Can someone enlighten me on why
developing for Ruby on Windows is considered to be painful?

Basically because the startup time for rails is so terribly slow.
Nothing else comes to mind.

-r

Ahh, many thanks charles - I hadn’t spotted pik yet, looks great I
will try it today!