Ruby on Linux & Windows

(Tim) #1

I'm not trying to start anything here but I'd like some feedback from those of you who are working with Ruby on both Linux *and* Windows.

Our server platform is Linux (with a few legacy Windows servers here and there) and my current development platform is Windows XP, which I grudgingly switched to work on a project that has since been postponed indefinitely... Since I am going to be working primarily on server and web apps (with occasional client utilities) I thought this might be a good time to evaluate whether I should switch back to Linux or some form of Unix.

I am comfortable enough on either platform, but being somewhat new to Ruby I do have a couple of nagging questions...

1. Are there any major hurdles to writing portable code across platforms with Ruby? If I stick with Windows on my dev boxes will I have to do a lot of platform checks to make sure things work properly on both Windows and Linux?

2. Is one platform notably better supported by Ruby at the system level? Are there features I won't be able to use on Windows that are available on Linux? (syscall comes to mind... anything else?)

Sorry, I know these questions are somewhat vague...

Thanks for any help,
Tim

(Robert Oliver) #2

It might just be me, but Ruby seems to run slower under Windows, in almost
every operation. This is just my observation though and may be not the norm.

As far as development platforms for Ruby go, I can tell you from personal
experience that Linux has many strong points in its favor towards Ruby
development. First off, MySQL seems to feel more at home on Linux than in
Windows, and its usually installed on most distributions by default.
Secondly, KDE's (and Gnome's to, I'm not sure, I'm a KDE person) ability to
use ftp:// and scp:// type filestreams in its file I/O are huge timesavers,
and nothing in Windows can come quite close to this.

That being said, if you're more familiar with Windows, its just plain easier
to use Windows than Linux. The Windows command line however really in my
opinion is just enough to be called a console, and Linux / bash beats this
hands down. It just seems easier to develop with Ruby under Linux for me.

That's my $0.025 :slight_smile:

···

--
Robert W. Oliver II
CEO / President - OCS Solutions, Inc.
Web Development, Web Hosting, Internet Marketing, Custom Programming

Ruby Forums - http://www.rubyforums.com/

On 8/30/05, Tim Ferrell <Tim.Ferrell@s0nspark.com> wrote:

I'm not trying to start anything here but I'd like some feedback from
those of
you who are working with Ruby on both Linux *and* Windows.

Our server platform is Linux (with a few legacy Windows servers here and
there)
and my current development platform is Windows XP, which I grudgingly
switched
to work on a project that has since been postponed indefinitely... Since I
am
going to be working primarily on server and web apps (with occasional
client
utilities) I thought this might be a good time to evaluate whether I
should
switch back to Linux or some form of Unix.

I am comfortable enough on either platform, but being somewhat new to Ruby
I do
have a couple of nagging questions...

1. Are there any major hurdles to writing portable code across platforms
with
Ruby? If I stick with Windows on my dev boxes will I have to do a lot of
platform checks to make sure things work properly on both Windows and
Linux?

2. Is one platform notably better supported by Ruby at the system level?
Are
there features I won't be able to use on Windows that are available on
Linux?
(syscall comes to mind... anything else?)

Sorry, I know these questions are somewhat vague...

Thanks for any help,
Tim

<http://www.rubyforums.com/>

#3

The main problems I've had with Ruby on Windows are:
* No fork(), popen() is dodgy
* No iconv with the One-Click Installer (but that's easily remedied)

(Austin Ziegler) #4

[...]

I am comfortable enough on either platform, but being somewhat new to
Ruby I do have a couple of nagging questions...

1. Are there any major hurdles to writing portable code across
   platforms with Ruby? If I stick with Windows on my dev boxes will I
   have to do a lot of platform checks to make sure things work
   properly on both Windows and Linux?

In general, no. I do all of my Ruby development work on Windows and
aside from a couple of issues with capitalization several years ago, I
have been told of nothing that I've released having cross-platform
problems.

2. Is one platform notably better supported by Ruby at the system
   level? Are there features I won't be able to use on Windows that
   are available on Linux? (syscall comes to mind... anything else?)

Mostly fork. There are some issues, IMO, with the lack of support for
the Windows filesystem specifics (alternate data streams, very long
filenames, Unicode filenames). When Matz checks in the new M17N strings
into 1.9, though, I will look at implementing the Windows filesystem
stuff in a way that fully supports Windows.

If you are doing web development, be aware that some TCP/IP stack shims
(Zone Alarm, possibly Norton Antivirus) are very badly behaved and do
not work at all with Ruby if they are installed.

-austin

···

On 8/30/05, Tim Ferrell <Tim.Ferrell@s0nspark.com> wrote:
--
Austin Ziegler * halostatue@gmail.com
               * Alternate: austin@halostatue.ca

(karlin.fox@gmail.com) #5

If you want a better windows shell, try cygwin with puttycyg:
(http://gecko.gc.maricopa.edu/~medgar/puttycyg/)

Also, beware when using C extensions in Ruby. While C can obviously be
cross platform and many packages do just fine with this, the
installation (or worse, compilation) process can be vastly different.
I learned this trying to get Cairo to work with GTK on Linux and
Windows: quite a nightmare.

(Tim) #6

Well, I can tell you I miss a real shell on Windows ... cygwin doesn't really do it for me. :slight_smile:

Thanks for the thoughts...

Tim

Robert Oliver wrote:

···

It might just be me, but Ruby seems to run slower under Windows, in almost every operation. This is just my observation though and may be not the norm.

As far as development platforms for Ruby go, I can tell you from personal experience that Linux has many strong points in its favor towards Ruby development. First off, MySQL seems to feel more at home on Linux than in Windows, and its usually installed on most distributions by default. Secondly, KDE's (and Gnome's to, I'm not sure, I'm a KDE person) ability to use ftp:// and scp:// type filestreams in its file I/O are huge timesavers, and nothing in Windows can come quite close to this.

That being said, if you're more familiar with Windows, its just plain easier to use Windows than Linux. The Windows command line however really in my opinion is just enough to be called a console, and Linux / bash beats this hands down. It just seems easier to develop with Ruby under Linux for me.

That's my $0.025 :slight_smile:

(Thomas Morgan) #7

Can you explain this further? I'm running ZoneAlarm,
and have had no problems running various socket-using
ruby programs. (Well, no problems I wouldn't have
still had without it, anyway.) Is it just certain
things that don't work, or something else?

-Morgan

···

--- Austin Ziegler <halostatue@gmail.com> wrote:

If you are doing web development, be aware that some
TCP/IP stack shims
(Zone Alarm, possibly Norton Antivirus) are very
badly behaved and do
not work at all with Ruby if they are installed.

____________________________________________________
Start your day with Yahoo! - make it your home page

(Robert Oliver) #8

The shell is the biggest problem I have with Windows. Good Network IO like
KDE has would be nice to. Perhaps that's just over the next Windows Vista.
They'll never do the shell right though.

Just wondering, why do you use Windows XP for devel? Do you use any apps
that hold you to that platform?

···

On 8/30/05, Tim Ferrell <Tim.Ferrell@s0nspark.com> wrote:

Well, I can tell you I miss a real shell on Windows ... cygwin doesn't
really do
it for me. :slight_smile:

(Kelly Dwight Felkins) #9

The only incompatibility I've found is the mysql host specified in the
database configuration file. I think on linux you use 'localhost' and on
windows you have to say 127.0.0.1 <http://127.0.0.1>. Actually I suspect the
127.0.0.1 <http://127.0.0.1> works fine on both.

···

On 8/30/05, Tim Ferrell <Tim.Ferrell@s0nspark.com> wrote:

Well, I can tell you I miss a real shell on Windows ... cygwin doesn't
really do
it for me. :slight_smile:

Thanks for the thoughts...

Tim

Robert Oliver wrote:
> It might just be me, but Ruby seems to run slower under Windows, in
almost
> every operation. This is just my observation though and may be not the
norm.
>
> As far as development platforms for Ruby go, I can tell you from
personal
> experience that Linux has many strong points in its favor towards Ruby
> development. First off, MySQL seems to feel more at home on Linux than
in
> Windows, and its usually installed on most distributions by default.
> Secondly, KDE's (and Gnome's to, I'm not sure, I'm a KDE person) ability
to
> use ftp:// and scp:// type filestreams in its file I/O are huge
timesavers,
> and nothing in Windows can come quite close to this.
>
> That being said, if you're more familiar with Windows, its just plain
easier
> to use Windows than Linux. The Windows command line however really in my
> opinion is just enough to be called a console, and Linux / bash beats
this
> hands down. It just seems easier to develop with Ruby under Linux for
me.
>
> That's my $0.025 :slight_smile:
>

(Austin Ziegler) #10

It's easier if you search, because I've never experienced it and I
stopped using ZoneAlarm years ago. There are some people who have bad
experiences with ZoneAlarm to the point that the standard question is
"Do you have ZoneAlarm installed? If so, uninstall it."

-austin

···

On 8/31/05, agemoagemo@yahoo.com <agemoagemo@yahoo.com> wrote:

--- Austin Ziegler <halostatue@gmail.com> wrote:
> If you are doing web development, be aware that some
> TCP/IP stack shims
> (Zone Alarm, possibly Norton Antivirus) are very
> badly behaved and do
> not work at all with Ruby if they are installed.
Can you explain this further? I'm running ZoneAlarm,
and have had no problems running various socket-using
ruby programs. (Well, no problems I wouldn't have
still had without it, anyway.) Is it just certain
things that don't work, or something else?

--
Austin Ziegler * halostatue@gmail.com
               * Alternate: austin@halostatue.ca

(Christopher Aldridge) #11

Perhaps I did not spend enough time with these annoyances but the following
aggravated me:

1) I developed a small script to spawn a new process on UNIX, then was able
to utilize process signals to kill it accordingly.. When trying it out on
windows, it bombed and after reading further, I became more uncomfortable
with ruby's win32 process management(or lack thereof)

2) rubyw is useless for me. It's supposed to serve as an alternate version
of ruby that runs scripts in the background.. Problem is, if you're running
a druby server, for instance, the command line continues to pop up every
time the script is called. This could be because my script is doing either
IO.popen(), system() or ``, but nevertheless, it's annoying and I have found
no solution to it yet.

3) I could not get the mysql to work period on windows. --could on NIX, but
not win32. perhaps it was the version of mysql, compiler, or mysql
module.... Not offering solutions, just voicing my opinion..

if anyone has solutions for any of my annoyances, please voice them.. kind
regards.

···

On 8/30/05, Kelly Felkins <railsinator@gmail.com> wrote:

The only incompatibility I've found is the mysql host specified in the
database configuration file. I think on linux you use 'localhost' and on
windows you have to say 127.0.0.1 <http://127.0.0.1> <http://127.0.0.1>.
Actually I suspect the
127.0.0.1 <http://127.0.0.1> <http://127.0.0.1> works fine on both.

On 8/30/05, Tim Ferrell <Tim.Ferrell@s0nspark.com> wrote:
>
> Well, I can tell you I miss a real shell on Windows ... cygwin doesn't
> really do
> it for me. :slight_smile:
>
> Thanks for the thoughts...
>
> Tim
>
> Robert Oliver wrote:
> > It might just be me, but Ruby seems to run slower under Windows, in
> almost
> > every operation. This is just my observation though and may be not the
> norm.
> >
> > As far as development platforms for Ruby go, I can tell you from
> personal
> > experience that Linux has many strong points in its favor towards Ruby
> > development. First off, MySQL seems to feel more at home on Linux than
> in
> > Windows, and its usually installed on most distributions by default.
> > Secondly, KDE's (and Gnome's to, I'm not sure, I'm a KDE person)
ability
> to
> > use ftp:// and scp:// type filestreams in its file I/O are huge
> timesavers,
> > and nothing in Windows can come quite close to this.
> >
> > That being said, if you're more familiar with Windows, its just plain
> easier
> > to use Windows than Linux. The Windows command line however really in
my
> > opinion is just enough to be called a console, and Linux / bash beats
> this
> > hands down. It just seems easier to develop with Ruby under Linux for
> me.
> >
> > That's my $0.025 :slight_smile:
> >
>
>
>

(Tim) #12

Well, the main reason for the switch was because the project I had handed to me was to be written inside of the new ERP system we are implementing, which requires Windows on the client. I was rather disgusted with the technology, though, and found a way to avoid that mess by doing a web app and tying into the client via a browser component.

I do have a few tools I like on Windows, but they have little to do with development ... mostly multimedia stuff. I can live lesser toys on Linux, though, if it means smoother development and less "pioneering" :slight_smile:

Thanks for the input,
Tim

Robert Oliver wrote:

···

The shell is the biggest problem I have with Windows. Good Network IO like KDE has would be nice to. Perhaps that's just over the next Windows Vista. They'll never do the shell right though.

Just wondering, why do you use Windows XP for devel? Do you use any apps that hold you to that platform?

On 8/30/05, Tim Ferrell <Tim.Ferrell@s0nspark.com> wrote:

Well, I can tell you I miss a real shell on Windows ... cygwin doesn't really do
it for me. :slight_smile:

(Falmn Kex) #13

"Robert Oliver" <rwoliver2@gmail.com> escreveu na mensagem
news:64c8d1a705083017447b766e94@mail.gmail.com...

The shell is the biggest problem I have with Windows.

I have been playing with Monad - the new windows command line shell. It
makes the usual unix command line look like toys made for neanderthals. It
really is very good.

Anyway, there is native bash for Windows and why not use Ruby as a shell?
Works great.

(Sy) #14

You could also consider VMware so you can do it all from one chair.

···

On 8/30/05, Tim Ferrell <Tim.Ferrell@s0nspark.com> wrote:

I do have a few tools I like on Windows, but they have little to do with
development ... mostly multimedia stuff. I can live lesser toys on Linux,
though, if it means smoother development and less "pioneering" :slight_smile:

(gregarican) #15

x1 wrote:

I could not get the mysql to work period on windows. --could on NIX, but
not win32. perhaps it was the version of mysql, compiler, or mysql
module.... Not offering solutions, just voicing my opinion..

There are some minor configuration changes and existing enviormental
conditions that must be present. For example I know that Windows boxes
typically have a TEMP variable set to c:\temp, %windir%\temp,
%userprofile%\local settings\temp, etc. But for UNIX-y applications a
c:\tmp directory must be created. I recall using a Windows MySQL
client/server setup when our company tested out a POS/Inventory
product. MySQL pretty much installed out of the box with a couple of
tweaks here and there...

(Robert Oliver) #16

VMware is a great.. but there's one major drawback for me:

Copy and paste from a Windows host to a Linux guest doesn't work at all..
I've never been able to get this to work. Tried about 10000 things.

Since copy and pasting is so important, I'm left with using IM's to paste
between the two, which is really annoying :slight_smile:

···

On 8/30/05, Sy <sy1234@gmail.com> wrote:

On 8/30/05, Tim Ferrell <Tim.Ferrell@s0nspark.com> wrote:
> I do have a few tools I like on Windows, but they have little to do with
> development ... mostly multimedia stuff. I can live lesser toys on
Linux,
> though, if it means smoother development and less "pioneering" :slight_smile:

You could also consider VMware so you can do it all from one chair.

--
Robert W. Oliver II
CEO / President - OCS Solutions, Inc.
Web Development, Web Hosting, Internet Marketing, Custom Programming

Ruby Forums - http://www.rubyforums.com/

(daz) #17

Robert Oliver wrote:

VMware is a great.. but there's one major drawback for me:

Copy and paste from a Windows host to a Linux guest doesn't work at all..
I've never been able to get this to work. Tried about 10000 things.

Since copy and pasting is so important, I'm left with using IM's to paste
between the two, which is really annoying :slight_smile:

Sounds like a problem Hal had. I may be way off base, though.

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/89663

daz

(Kent Sibilev) #18

I prefer Linux any time of the day (I like MacOSX too), but when I'm
being forced to use Windows, the first thing I do I install coLinux.
I've found it much lighter than VMWare and there's usually no need for
window system anyway.

Just my two cents.
Kent.

···

On 8/31/05, Robert Oliver <rwoliver2@gmail.com> wrote:

VMware is a great.. but there's one major drawback for me:

Copy and paste from a Windows host to a Linux guest doesn't work at all..
I've never been able to get this to work. Tried about 10000 things.

Since copy and pasting is so important, I'm left with using IM's to paste
between the two, which is really annoying :slight_smile:

On 8/30/05, Sy <sy1234@gmail.com> wrote:
>
> On 8/30/05, Tim Ferrell <Tim.Ferrell@s0nspark.com> wrote:
> > I do have a few tools I like on Windows, but they have little to do with
> > development ... mostly multimedia stuff. I can live lesser toys on
> Linux,
> > though, if it means smoother development and less "pioneering" :slight_smile:
>
> You could also consider VMware so you can do it all from one chair.
>
>

--
Robert W. Oliver II
CEO / President - OCS Solutions, Inc.
Web Development, Web Hosting, Internet Marketing, Custom Programming
http://www.ocssolutions.com/

Ruby Forums - http://www.rubyforums.com/