The real Ruby vs. Python

Are there downsides to this approach for Windows users?

Licensing? If you are interested in just writing programs to use
internally or for personal use, probably no problems. But if you want
to resell your app, I'm not sure how the Cygwin license applies to
your code. Maybe it doesn't affect your code, but the ruby
interpreter that you would have to ship depends on the Cygwin DLL.
And to redistribute that, you have to make your source code available
(the way I read the license). Now is that the source code of the
interpreter or your programs running in the interpreter? It was gray
enough to make me steer clear of it.

···

--
Justin Rudd
http://seagecko.org/thoughts/

trans. (T. Onoma) wrote:

> I tried using the basic Ruby for windows package and got a few
> mysterious errors ("readline.dll not found" when running irb).
>
> I backed that out and used Cygwin to install ruby. Now it runs perfectly.
>
> I was able to install RubyGems and start exploring that as well. It
> didn't work with the "native" Ruby, but is completely seamless (to my
> cursory examination) when using Ruby under Cygwin.
>
> Cygwin, by explantion, is a POSIX layer on top of Windows. It adds
> aptget/rpm type functionality ... you download a small installer and
> it downloads package descriptions for all the (Li|U)nixy stuff. It
> handles downloading, installing, versioning, dependencies.
>
> http://www.cygwin.com/

Are there downsides to this approach for Windows users?

Cygwin adds a something like a gnu/linux/posix layer between the application and Windows, therefore not all "features" of Windows are easily accessible and sometimes performance suffers. From a Windows-user point of view sometimes unexpected effects may happen because of the different semantics of the 2 worlds, eg: file system permissions (Windows ACL's vs. POSIX bits within cygwin and the translation between them).

cygwin itself is convinient to install and maintain.

Gruß
Jan

···

On Wednesday 27 October 2004 10:48 am, Howard Lewis Ship wrote:

Curt Hibbs wrote:

David Ross wrote:

Binary releases are sometimes a problem, most of us are unix users,
there are some windows users.
   
I am a big proponent of being cross-platform *and* making things as easy as
possible for end users to install and use. So, this is not intended to start
any kind of competition or flame-war, mostly I'm just curious...

When I see the statement "most of us are unix users, there are some windows
users" it makes me wonder whether or not this is really true. I'm involved
in two major cross-platform Ruby projects: FreeRIDE and wxRuby. In both
cases the windows downloads are higher than all the other platforms
combined.

It would be interesting if there was a more reliable way to gauge Ruby's use
on various platforms, but I don't know how that could be done.

Curt

I don't have anything against windows, but now I will get a team together and have a group of people build binaries for windows users, now it consists of lypanov and me. Soon we shall have a binary revolution. To the Ruby Republic!

David Ross

···

--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/

Yes. IIRC, you lose all Win32 API interaction, especially Win32OLE,
which is an extremely compelling reason to use Ruby on Windows.

-austin

···

On Thu, 28 Oct 2004 00:07:10 +0900, trans. (T. Onoma) <transami@runbox.com> wrote:

On Wednesday 27 October 2004 10:48 am, Howard Lewis Ship wrote:
> Cygwin, by explantion, is a POSIX layer on top of Windows. It adds
> aptget/rpm type functionality ... you download a small installer and
> it downloads package descriptions for all the (Li|U)nixy stuff. It
> handles downloading, installing, versioning, dependencies.
>
> http://www.cygwin.com/
Are there downsides to this approach for Windows users?

--
Austin Ziegler * halostatue@gmail.com
               * Alternate: austin@halostatue.ca
: as of this email, I have [ 5 ] Gmail invitations

Dare I say it, but cloning CPAN near-exactly wouldn't be a bad way to go.

And that means putting RPAN (or whatever) as part of the Ruby standard
library, having college mirrors, doing dependancy checking, and so
forth.

···

On Thu, 28 Oct 2004 01:12:24 +0900, David Ross <dross@code-exec.net> wrote:

Its Me wrote:

>"Abe Vionas_MailingList" <mailinglist_abe@yahoo.com> wrote
>
>
>
>>What it comes down to is what it's coming down to for
>>me... platform maturity.
>>
>>
>
>This bites me quite often as well, though I have not given up. There are
>likely hordes of unwashed masses like me, not entirely adept at
>source-patch-recompile-rebuild, who never even get started with Ruby because
>of the kinds of issues Abe describes.
>
>Their loss or Ruby's? Unfortunately, probably both.
>
>I feel gems is one of the keys to getting past this. Gems can make my local
>(Windows) Ruby install feel like
> - a single plug-in system
> - pulling together 'requires'
> - incorporating documentation from a single starting point
> - including compatible versions and dependencies
>
>It would be great if gems was part of the standard Ruby distribution, if RPA
>could use gems as its underlying package manager (reducing confusion for
>newBs), and if RPA could then also take on the role of Release Manager for
>Ruby itself.
>
>Some misc thoughts:
>
>- Could gems ALSO cover binaries AND binary/library dependencies?
>
>- Could the gems RDOCs have links to some gems-aligned community
>documentation site, as someone else proposed here recently?
>
>
>
>
>
>
>
RPA and RubyGems have different aspects in implementation, so it would
not be compatible/easy. Now that I have a RPA QA team for windows, we
should have binaries put together soon. Good support for software. :slight_smile:

David Ross
--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/

> and if RPA could then also take on the role of Release Manager for
> Ruby itself.

We may be willing to do this, but

... oops - lost the end of this - "but we presently do not have the
resources where I think we could do this well."

Continuing with a comment from T.Onoma:

Seems to me it would be best of Gems team and RPA team really worked
hard together to create shared framework. Gems serving as a general
packagingframework and the idea of RPA becoming QC would be a real
boon for Ruby.

As I've said elsewhere: The problem is that the goals of RPA is
already quite ambitious, and that we feel we need to "own" the
packaging infrastructure for our packages. There are several of the
things we do right now that requires us to hack that infrastructure.

Doing RPA without controlling the packaging infrastructure is
something that I think would result in quite a lot worse result. A
result so much worse that you'd lose the motivation that drives the
RPA team. And then we'd be back at square one.

Eivind.

···

On Wed, 27 Oct 2004 18:48:07 +0000, Eivind Eklund <eeklund@gmail.com> wrote:
--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/

"Eivind Eklund" <eeklund@gmail.com> wrote in message

> - including compatible versions and dependencies
The latter is a property of package repository administration, not of

RubyGems.

I dont understand. Gem does transitive dependencies while being aware of
versions. Any package manager and installer should do this.

> It would be great if gems was part of the standard Ruby distribution, if

RPA

> could use gems as its underlying package manager (reducing confusion for
> newBs),

This is something we (the RPA team) consider infeasible; RubyGems does
not have the capabilities we believe necessary. This is both in terms
of RubyGems presently being less technically advanced than rpa-base,
and in terms of one key capability: The ability for RPA to modify the
technology to suit our needs.

I am sure there are things you need beyond core Gems. But there is such a
core of rubygems (at least notionally; I don't know the architecture) that
directly overlaps a core of RPA: installing a package, knowing dependencies,
and installing dependees.

module Gem; require_gem 'Core'... end
module RPS; require_gem 'Core' ... end

There will doubtless be many repositories of gems, perhaps just one
authoritative repository of RPA packages. I believe the RPA repository
should be a (very) special case of a Gem repository.

The key aspect of RPA is providing *maintainenance* for packages, and
not just for the packaging. The idea is that you can take a "blessed"
(core) RPA package, and you'll know:
- That the packaged software itself is of reasonable quality
- Security issues will be fixed
- That as far as is reasonably possible, the code will be fixed for
compatibility with newer versions of other packages
- We'll do bugfixes of packages for newer versions of Ruby
- There is a contact point for all the trivial little patches and
bugfixes that make the difference between a "well worn" package and an
annoying green one. This contact point remains even if the original
author lost interest in the software

That's great. But when RPA maintains a package -- a very non-trivial and
important undertaking -- if that involves some changes in the packaging or
the contents within the packaging, surely there is a NEW version of
something being created. Once that new version is published, I think it is a
bona-fide Gem.

If you think of packages having a status that includes at least { published,
editable ...}, then a published package has an immutable version#, name, and
content, and any package it depends on must also be published. Perhaps newer
versions of a package could be related to the original as
"backward-compatible version" or "incompatible variant", and Gem could make
use of this distinction.

Otoh, CVS head represents an "Editable" package status.

This is a large task. The present rpa-base and package set only
scratch the surface of what we're trying to do. We're presently
looking at the next step in the enabling this:

- A new version of rpa-base that support the development cycle for the
above much better (integration with version control system to make
maintenance of code uniform etc)
- Documentation to help more people be able to do RPA packaging
- Documentation and checklists for helping software quality
- Building a review team for doing code review for code we import into the

RPA

- Support for binary packages, to make Ruby deployment on Windows etc

easier

- Increase in team size

These are great, and 100% valid. It's just that there is a core that seems
identical, Imho.

Justin Rudd ha scritto:

you make the point excellently.
noone takes on the job, and therefore..
yeah. noone takes on the job.

I've tried a bit. I've got MySQL, PostgreSQL, and SQLite/Ruby
compiled for Windows. The PostgreSQL I haven't released because I
haven't tested it thoroughly. Although I'll probably release the
PostgreSQL one and let the community test it for me :slight_smile:

My next project is OpenSSL so that I can use the Ruby SSH project. But that is going to be awhile (I'm in the middle of moving from
Arizona to Washington).

this may help:
http://www.garbagecollect.jp/ruby/mswin32/en/

the win32 binary contains every ruby extension library that is included with the interpreter, and openssl.so /seemed/ to work with openssl from openssl.org. Sadly this page is often forgotten :slight_smile:

> The thing I've noticed is that the extension library code (the C code)
> usually has dependencies on things that are not defined in Windows.
> That is what takes the most time to get around. But the good news is
> that it is a small minority of projects that have this problem.

that's why people should use ruby/dl, say 'boo' for c bindings :wink:

Curt Hibbs wrote:

David Ross wrote:

Binary releases are sometimes a problem, most of us are unix users,
there are some windows users.
   
I am a big proponent of being cross-platform *and* making things as easy as
possible for end users to install and use. So, this is not intended to start
any kind of competition or flame-war, mostly I'm just curious...

When I see the statement "most of us are unix users, there are some windows
users" it makes me wonder whether or not this is really true. I'm involved
in two major cross-platform Ruby projects: FreeRIDE and wxRuby. In both
cases the windows downloads are higher than all the other platforms
combined.

It would be interesting if there was a more reliable way to gauge Ruby's use
on various platforms, but I don't know how that could be done.

Curt

mmm... Perhaps we can have a long list to a wiki, I'd like to get an actual headcount. The Ruby Window QA team is all setup. I'm curious if there are more people who could possibly donate some time or hardware for the progress of Windows QA support.

David Ross

···

--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/

Alexander Kellett wrote:

···

On Wed, Oct 27, 2004 at 11:51:33PM +0900, Matt Mower wrote:

As a windows user I feel I should chip in here. I don't think I'm
feeling as unloved as the OP and I can live with a little unix
centricity but I wouldn't argue with Ruby becoming more Win-friendly. I think the one-click installer is a great step in that direction but
I guess there are others.
   
the main problem is that even while i was on
windows i still had no clue how to help out,
build packages etc. i certainly don't have a spare copy of vs.net or anything lying around here so i'd be able to do, well, exactly nothing.

Alex

You can use mingw32. Help out you blasted lypanov. :stuck_out_tongue: I told earlier you its up to us, not end users.

David Ross
--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/

My background is Java, which is typically "build on windows, deploy on
*nix". So, for me, just getting Ruby and RubyGems set up is enough;
I'll worry about deployment and licensing after I've actually written
some code.

···

On Thu, 28 Oct 2004 00:39:41 +0900, Jan Krüger <jk@microgalaxy.net> wrote:

trans. (T. Onoma) wrote:

> On Wednesday 27 October 2004 10:48 am, Howard Lewis Ship wrote:
> > I tried using the basic Ruby for windows package and got a few
> > mysterious errors ("readline.dll not found" when running irb).
> >
> > I backed that out and used Cygwin to install ruby. Now it runs perfectly.
> >
> > I was able to install RubyGems and start exploring that as well. It
> > didn't work with the "native" Ruby, but is completely seamless (to my
> > cursory examination) when using Ruby under Cygwin.
> >
> > Cygwin, by explantion, is a POSIX layer on top of Windows. It adds
> > aptget/rpm type functionality ... you download a small installer and
> > it downloads package descriptions for all the (Li|U)nixy stuff. It
> > handles downloading, installing, versioning, dependencies.
> >
> > http://www.cygwin.com/
>
>
> Are there downsides to this approach for Windows users?

Cygwin adds a something like a gnu/linux/posix layer between the
application and Windows, therefore not all "features" of Windows are
easily accessible and sometimes performance suffers. From a
Windows-user point of view sometimes unexpected effects may happen
because of the different semantics of the 2 worlds, eg: file system
permissions (Windows ACL's vs. POSIX bits within cygwin and the
translation between them).

cygwin itself is convinient to install and maintain.

Gruß
Jan

--
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind

Hi David,

···

On Thu, 28 Oct 2004 00:03:14 +0900, David Ross <dross@code-exec.net> wrote:

Would you be willing to help me package binaries for RPA? :slight_smile: I can help
you re-learn if needed.

If you can put up with teaching me I would be happy to contribute some
of my spare time to this effort. Contact me in #ruby-lang.

Regards,

Matt

I can get interested developers a terminal account on windows server
if they need. I know windows boxes are in short supply in a lot of
places .

Ari

Michael DeHaan wrote:

Dare I say it, but cloning CPAN near-exactly wouldn't be a bad way to go.

And that means putting RPAN (or whatever) as part of the Ruby standard
library, having college mirrors, doing dependancy checking, and so
forth.

This is not quite the same thing, but...

The One-Click Ruby Installer for Windows is going to include RubyGems and a
GUI interface to RubyGems. RubyGems will be in the final 1.8.2 release of
the installer (hopefully the GUI interface will be ready in time to be
included as well). It is also possible that a follow-on release would
contain RPA (and a corresponding GUI interface).

Curt

···

On Thu, 28 Oct 2004 01:12:24 +0900, David Ross > <dross@code-exec.net> wrote:
> Its Me wrote:
>
>
>
> >"Abe Vionas_MailingList" <mailinglist_abe@yahoo.com> wrote
> >
> >
> >
> >>What it comes down to is what it's coming down to for
> >>me... platform maturity.
> >>
> >>
> >
> >This bites me quite often as well, though I have not given up.
There are
> >likely hordes of unwashed masses like me, not entirely adept at
> >source-patch-recompile-rebuild, who never even get started
with Ruby because
> >of the kinds of issues Abe describes.
> >
> >Their loss or Ruby's? Unfortunately, probably both.
> >
> >I feel gems is one of the keys to getting past this. Gems can
make my local
> >(Windows) Ruby install feel like
> > - a single plug-in system
> > - pulling together 'requires'
> > - incorporating documentation from a single starting point
> > - including compatible versions and dependencies
> >
> >It would be great if gems was part of the standard Ruby
distribution, if RPA
> >could use gems as its underlying package manager (reducing
confusion for
> >newBs), and if RPA could then also take on the role of Release
Manager for
> >Ruby itself.
> >
> >Some misc thoughts:
> >
> >- Could gems ALSO cover binaries AND binary/library dependencies?
> >
> >- Could the gems RDOCs have links to some gems-aligned community
> >documentation site, as someone else proposed here recently?
> >
> >
> >
> >
> >
> >
> >
> RPA and RubyGems have different aspects in implementation, so it would
> not be compatible/easy. Now that I have a RPA QA team for windows, we
> should have binaries put together soon. Good support for software. :slight_smile:
>
> David Ross
> --
> Hazzle free packages for Ruby?
> RPA is available from http://www.rubyarchive.org/
>
>

---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.775 / Virus Database: 522 - Release Date: 10/8/2004

*shrug* RPA isn't trying to mock CPAN exactly. We are trying to implement
a large repository like CPAN, but make te system have nice features, maybe
a -testing repository, etc. A big maybe is a -testing where users do
upload thier own .rps files, but give no promise on the system. Just some
ideas that cooked up from batsman and others in #rpa on freenode networks.

David Ross

···

--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/

Dare I say it, but cloning CPAN near-exactly wouldn't be a bad way to go.

And that means putting RPAN (or whatever) as part of the Ruby standard
library, having college mirrors, doing dependancy checking, and so
forth.

On Thu, 28 Oct 2004 01:12:24 +0900, David Ross <dross@code-exec.net> > wrote:

Its Me wrote:

>"Abe Vionas_MailingList" <mailinglist_abe@yahoo.com> wrote
>
>
>
>>What it comes down to is what it's coming down to for
>>me... platform maturity.
>>
>>
>
>This bites me quite often as well, though I have not given up. There
are
>likely hordes of unwashed masses like me, not entirely adept at
>source-patch-recompile-rebuild, who never even get started with Ruby
because
>of the kinds of issues Abe describes.
>
>Their loss or Ruby's? Unfortunately, probably both.
>
>I feel gems is one of the keys to getting past this. Gems can make my
local
>(Windows) Ruby install feel like
> - a single plug-in system
> - pulling together 'requires'
> - incorporating documentation from a single starting point
> - including compatible versions and dependencies
>
>It would be great if gems was part of the standard Ruby distribution,
if RPA
>could use gems as its underlying package manager (reducing confusion
for
>newBs), and if RPA could then also take on the role of Release Manager
for
>Ruby itself.
>
>Some misc thoughts:
>
>- Could gems ALSO cover binaries AND binary/library dependencies?
>
>- Could the gems RDOCs have links to some gems-aligned community
>documentation site, as someone else proposed here recently?
>
>
>
>
>
>
>
RPA and RubyGems have different aspects in implementation, so it would
not be compatible/easy. Now that I have a RPA QA team for windows, we
should have binaries put together soon. Good support for software. :slight_smile:

David Ross
--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/

gabriele renzi wrote:

that's why people should use ruby/dl, say 'boo' for c bindings :wink:

True. However, Ruby/DL has a compile-time limit (defaults to 10) on the number of callbacks you can use, which limits its usefulness in situations where callbacks are needed. This includes the Win32 API (for winprocs), or SQLite (where callbacks are one way to obtain query results).

Besides which: Ruby/DL is often touted as a great way to write extension libraries. Are there any examples of libraries that have been written using Ruby/DL instead of C? I've never seen any, much to my own frustration when I would like a good example of Ruby/DL usage. :frowning:

- Jamis

···

--
Jamis Buck
jgb3@email.byu.edu
http://www.jamisbuck.org/jamis

> This is something we (the RPA team) consider infeasible; RubyGems does
> not have the capabilities we believe necessary. This is both in terms
> of RubyGems presently being less technically advanced than rpa-base,
> and in terms of one key capability: The ability for RPA to modify the
> technology to suit our needs.

I am sure there are things you need beyond core Gems. But there is such a
core of rubygems (at least notionally; I don't know the architecture) that
directly overlaps a core of RPA: installing a package, knowing dependencies,
and installing dependees.

RubyGems installs packages in separate directories; it supports multiple
versions of a lib at a time but it is not totally transparent (you need
a combination of the "require hack" plus executable stubs, and the
datadir issue is yet to be addressed).
rpa-base installs atomically into $prefix; the operations are transacted
and it is transparent; it can track reverse dependencies and GC packages
on uninstall. It can also do parallel installs and update itself.

Even the basics are quite different. The basic, fundamental operation
(installing a package) is arguably stronger in rpa-base because it
is atomic. This is an absolute must because rpa-base manages files
in $prefix.

There is no gain in throwing away a codebase that works well and
replacing it with another that does NOT do what RPA needs, the way it
needs it.

However, we have tried to share code when possible, and it is in that
spirit that we contributed rpa-base's package format code to RubyGems,
which was integrated as of 0.8.0.

module Gem; require_gem 'Core'... end
module RPS; require_gem 'Core' ... end

The deep differences even in the core operations make this approach
impossible.

> This is a large task. The present rpa-base and package set only
> scratch the surface of what we're trying to do. We're presently
> looking at the next step in the enabling this:
>
> - A new version of rpa-base that support the development cycle for the
> above much better (integration with version control system to make
> maintenance of code uniform etc)
> - Documentation to help more people be able to do RPA packaging
> - Documentation and checklists for helping software quality
> - Building a review team for doing code review for code we import into the
RPA
> - Support for binary packages, to make Ruby deployment on Windows etc
easier
> - Increase in team size

These are great, and 100% valid. It's just that there is a core that seems
identical, Imho.

Well, it just isn't... Note that the development of rpa-base
began in February; by the time RubyGems 0.2.0 (first public
release) was out, in 2004-03-14, rpa-base was already doing atomic
installations/upgrades/deletions, handling extensions, RDoc generation,
automated unit test runs, etc. I just mention that to illustrate that
the development of these two codebases happened in parallel, and that
different design and implementation choices were taken on each.

···

On Thu, Oct 28, 2004 at 05:49:02AM +0900, Its Me wrote:

--
Running Debian GNU/Linux Sid (unstable)
batsman dot geo at yahoo dot com

I don't have anything against windows, but now I will get a team
together and have a group of people build binaries for windows users,
now it consists of lypanov and me. Soon we shall have a binary
revolution. To the Ruby Republic!

David Ross

Count me in. Power to the people.

kaspar

hand manufactured code - www.tua.ch/ruby

Curt Hibbs wrote:

Michael DeHaan wrote:
>
> Dare I say it, but cloning CPAN near-exactly wouldn't be a bad
way to go.
>
> And that means putting RPAN (or whatever) as part of the Ruby standard
> library, having college mirrors, doing dependancy checking, and so
> forth.

This is not quite the same thing, but...

The One-Click Ruby Installer for Windows is going to include
RubyGems and a
GUI interface to RubyGems. RubyGems will be in the final 1.8.2 release of
the installer (hopefully the GUI interface will be ready in time to be
included as well). It is also possible that a follow-on release would
contain RPA (and a corresponding GUI interface).

Oh yeah, and we also working on an installer for OS X that will contain the
same thing. (We still need to find someone to do an installer for KDE and
Gnome).

Curt

And use the same GUI for both?

Seems to me it would be best of Gems team and RPA team really worked hard
together to create shared framework. Gems serving as a general packaging
framework and the idea of RPA becoming QC would be a real boon for Ruby.
--Mind you though, setup.rb still does things they can't. So lets draw that
in too.

Together we stand, divided...

As they say,
T.

···

On Wednesday 27 October 2004 02:00 pm, Curt Hibbs wrote:

Michael DeHaan wrote:
> Dare I say it, but cloning CPAN near-exactly wouldn't be a bad way to go.
>
> And that means putting RPAN (or whatever) as part of the Ruby standard
> library, having college mirrors, doing dependancy checking, and so
> forth.

This is not quite the same thing, but...

The One-Click Ruby Installer for Windows is going to include RubyGems and a
GUI interface to RubyGems. RubyGems will be in the final 1.8.2 release of
the installer (hopefully the GUI interface will be ready in time to be
included as well). It is also possible that a follow-on release would
contain RPA (and a corresponding GUI interface).