Can we attack the 'not enough libraries' thing straight on?

Hi –

We’ve all heard this: “Ruby is great, but it doesn’t have the
equivalent of CPAN.”

I’m not saying it’s not true… but I’m getting worried that we’re
settling into a culture where Ruby is “that great language that
doesn’t have the equivalent of CPAN,” and that as that reputation
spreads, it’s going to be harder to shake it off later – even when
lots more modules have been written.

So: is there a process by which we can identify exactly what all the
missing modules are? And then write them? :slight_smile:

The role of CPAN in all this needs to be kept in perspective. There’s
no obligation on [the] Ruby[ community]'s part to duplicate CPAN
module by module. In fact, it’s quite interesting to look at other
archives, such as http://www.haskell.org/libraries.

Also, I would advocate not getting embroiled in issues of naming,
specifically hierarchical module naming (text/soundex,
algorithms/sort/qsort, etc.). The main thing is for software to come
into existence, and for its availability to be publicized. If we try
to work out in advance questions like who gets to write the
authoritative x/y/z module, etc., the chances are fairly good that
nothing will ever get done.

So, all you almost-satisfied Ruby programmers, what’s missing? :slight_smile:

David

···


David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web: http://pirate.shu.edu/~blackdav

We’ve all heard this: “Ruby is great, but it doesn’t have the
equivalent of CPAN.”

I’ve been using Ruby since 2000 (I think) and I considered abandoning it
after reading Bruce Eckels make that exact point, but then I thought about
it and decided to stick with it. Ruby is too good a language (and fun too!)
to just scrap it because of this “library imbalance” which may or may not
ever affect me. IOW, there may be 10 times more libraries available for
Perl and Python, but how many of them do I actualy need?

So, all you almost-satisfied Ruby programmers, what’s missing? :slight_smile:

One part of cpan that I really like is the cpan shell that let’s you query
what you have, find what you need and install it. I haven’t looked at the
Perl code for that to see how complicated a task that is, but it’s a very
nice thing to have.

Joey

···

On Thu, 23 Jan 2003 10:36:31 +0900, dblack@candle.superlink.net wrote:

dblack@candle.superlink.net writes:

Also, I would advocate not getting embroiled in issues of naming,
specifically hierarchical module naming (text/soundex,
algorithms/sort/qsort, etc.)

David, I respect you and I agree with you; but on this point I have to
differ. As I’ve said several times in the past, if people don’t use
authoritative names for modules, they’ll use cutesy names, and you’ll
never know that Foozilla is a module to parse SGML. I know that if I
go to CPAN and get something called SGML::Parser then it’s reasonably
likely to be a SGML parser. Naming is important!

Please, let’s not forget lessons we learnt - even today: someone was
asking for a Ruby Lisp interpreter. Now, what would that be called?
Language::LISP? Scheme.rb? No, of course, it was given the eminently
sensible name of Rouge, from which one could determine, well,
absolutely nothing at all, except that it might have something to do
with makeup. Naming is important!

The things that CPAN has that Ruby doesn’t have:
1) sensibly named modules
2) reasonably comprehensive documentation
3) that’s it. Go forth and hackify.

···


In a sense Christianity is like Jazz - if you need to ask the questions
you won’t understand the answers.
- Bob Billing

So, all you almost-satisfied Ruby programmers, what’s missing? :slight_smile:

These are opinions. Other people might disagree

  1. Find a more accessible domain name. www.ruby-lang.org/raa is not as
    easy to remember as www.cpan.org. Unfortunatelly
    (ruby|cran|raa).(org|net) are all taken.

  2. I agree with the idea of naming conventions.

  3. RAA is hard to browse. I think that a setup of the style of
    www.search.cpan.org is best.

···

On Thu, Jan 23, 2003 at 10:36:31AM +0900, dblack@candle.superlink.net wrote:

Hi –

We’ve all heard this: “Ruby is great, but it doesn’t have the
equivalent of CPAN.”

I’m not saying it’s not true… but I’m getting worried that we’re
settling into a culture where Ruby is “that great language that
doesn’t have the equivalent of CPAN,” and that as that reputation
spreads, it’s going to be harder to shake it off later – even when
lots more modules have been written.

So: is there a process by which we can identify exactly what all the
missing modules are? And then write them? :slight_smile:

The role of CPAN in all this needs to be kept in perspective. There’s
no obligation on [the] Ruby[ community]'s part to duplicate CPAN
module by module. In fact, it’s quite interesting to look at other
archives, such as http://www.haskell.org/libraries.

Also, I would advocate not getting embroiled in issues of naming,
specifically hierarchical module naming (text/soundex,
algorithms/sort/qsort, etc.). The main thing is for software to come
into existence, and for its availability to be publicized. If we try
to work out in advance questions like who gets to write the
authoritative x/y/z module, etc., the chances are fairly good that
nothing will ever get done.

So, all you almost-satisfied Ruby programmers, what’s missing? :slight_smile:

David


David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web: http://pirate.shu.edu/~blackdav


Daniel Carrera
Graduate Teaching Assistant. Math Dept.
University of Maryland. (301) 405-5137

dblack@candle.superlink.net writes:

So: is there a process by which we can identify exactly what all
the missing modules are? And then write them? :slight_smile:

Yes: time and patience.

In fact, I think we are attacking the ‘not enough libraries’ thing
straight on – or as straight on as possible given the volunteer and
highly organic nature of this kind of effort.

I have to assume that the same process that has happened with Perl and
Python will happen with Ruby. As it matures, more and more quality
modules will come into existence.

So, all you almost-satisfied Ruby programmers, what’s missing? :slight_smile:

As a completely-satisfied Ruby programmer, I don’t find much lacking.
:slight_smile:

OK.

Having just been thru the exercise of translating a major Perl module
(SAP::Rfc) to Ruby, I noticed a number of things that I found self
saying “I wish Ruby had this”.

Firstly - you cannot ignore the power of CPAN (or equivalently well
organised software archives). CPAN (INMHO) is the root of the power of
Perl. To put it in Borg terms - it is the collective conciousness of
the Perl community, its works/achievements, and standardisation efforts.

When developing the module - there was no ONE set of modules that
defined/generated the install process, managing the documentation, and
enforcing a common set of standards. With Perl - it is a very powerfull
thing that a user can download a module (XXX::YYY) and know almost 100%
guaranteed that all they have to do is go: perl Makefile.PL && make test
&& make install; and then go perldoc XXX::YYY, and they are off and
racing. CPAN, and the gate-keepers of CPAN are instrumental in ensuring
this high standard of consistancy, that is such a winning formula (ok -
sure there are some warts, but it is still highly successful). All my
Perl modules that are uploaded to CPAN run thru a simple set of checks
to ensure that they have a certain set of things defined. There is even
a “smokehouse” system where by new modules/versions that are uploaded
are built, and checked for consistency (does it have the correct
documentation elements README, Changes, MANIFEST, perldoc etc.), and
whether they just plain work at all (ie. have a test suite, and whether
the test suite runs).

As mentioned elsewhere on this thread - the CPAN shell is missing. It
is not so much that the shell is missing, it is that it would not be
possible to have a successful “CPAN shell” for Ruby, because of the lack
of (some may say rigid) standards for publishing modules. The shell
works because there is a workable lowest common denominator of standards
to work with - as described above.

I think that in order to step up to the next level, Ruby will have to
address these issues, for the good of the Ruby community - without it -
how would an archive of many thousands of contributions thrive, without
creating needless duplication of effort, and keeping the barrier to
entry for new commers as low as possible?

Cheers.

···

On Thu, Jan 23, 2003 at 10:36:31AM +0900, dblack@candle.superlink.net wrote:

Hi –

We’ve all heard this: “Ruby is great, but it doesn’t have the
equivalent of CPAN.”

I’m not saying it’s not true… but I’m getting worried that we’re
settling into a culture where Ruby is “that great language that
doesn’t have the equivalent of CPAN,” and that as that reputation
spreads, it’s going to be harder to shake it off later – even when
lots more modules have been written.

So: is there a process by which we can identify exactly what all the
missing modules are? And then write them? :slight_smile:

The role of CPAN in all this needs to be kept in perspective. There’s
no obligation on [the] Ruby[ community]'s part to duplicate CPAN
module by module. In fact, it’s quite interesting to look at other
archives, such as http://www.haskell.org/libraries.

Also, I would advocate not getting embroiled in issues of naming,
specifically hierarchical module naming (text/soundex,
algorithms/sort/qsort, etc.). The main thing is for software to come
into existence, and for its availability to be publicized. If we try
to work out in advance questions like who gets to write the
authoritative x/y/z module, etc., the chances are fairly good that
nothing will ever get done.

So, all you almost-satisfied Ruby programmers, what’s missing? :slight_smile:

David


David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web: http://pirate.shu.edu/~blackdav

My only response is a vague one. I mostly agree with you, re: naming and
stuff, but whatever we do I’d rather have something more like CPAN and
less like Vaults of Parnassus.

CPAN is more or less professional-looking. Maybe it is the massive
hierarchy or the cool colons. VoP looks like a grab bag.

If you want 5 Lisp interpreters, call them Lang::Lisp::Rouge,
Lang::Lisp::Lithp, whatever. The category is important, the base name
isn’t so much. As long as you have a path to find them.

Now to address your actual post. Maybe we should have a web site. A
person can go in and request a CPAN module, based on their actual need for
it, maybe with a comment on why it would be a Good Thing To Have. People
could respond with the names of existing modules and why they fit the
bill, or someone could volunteer to write it, and maintain a progress bar.

As far as slavishly copying CPAN APIs, sometimes that’s a good idea, and
sometimes it’s a really bad idea. As far as copying the guts, I’d almost
always advocate doing it from scratch using Ruby best practices. Hacking
around nasty Perlisms is no fun.

We now have WriteExcel thanks to someone just adopting a module and
porting it. It’s not like it’s impossible to do.

My alternative solution is to just stop talking about CPAN around dblack.

–Gabriel

Sigh! I was going to keep out of this one, but the responses so far have
sucked me into it…

I don’t need CPAN and I don’t want such a beast.

I want a distribution. A bundle.

A CPAN is a tangled web of dependencies.

A distribution (like Redhat / Debian / Mandrake / …) is that tangled
web snapshotted, bundled, flattened out, smoothed and co-tested.

ie. When I install version X.Y of any distribution I get…
a) A Large bundle of goodies.
b) Where each goodie has been tested to operate at some reasonable level
of stability.
c) And the elements of the Bundle have been tested to interoperate!

Item a) means I can get stuck in and start working straight away. The
batteries are included.

Item b) means I’m not on the bleeding edge so I have reasonable confidence
that I can deploy the latest stable version to a customer and it will
just work.

Item c) means the risk of mutually incompatible module versions has been
removed for me.

You may object that distributions remove flexibility, some people wanting
slim bundles some wanting fat.

Just the same as you can get tiny Linux distributions I envisage there
will be tiny Ruby distributions.

Want to script something that must be deployed on a thousand Windows
clients but @@%$&^%$ windows cmd.exe is too pathetic to
contemplate?

Install a “tiny ruby” distro and away you go.

Want decent script engine for an embedded platform? Install a tiny linux
distro with a tiny ruby script distro.

Want to write something large and powerful? Install the fat distro and
away you go.

Where we are now is want module X, you must pull down item Y Version y1.y1
and item Z Version z1.z2. (You better hope the servers for X, Y and Z are
up when you want them.) Now you want module W as well, for that you need
module S and module Y Version y2.y2 which is incompatible with Y version
y1.y1

Oh dear.

I see Ruby 1.8.0 promises to have a lot more goodies bundled with it, I am
extremely glad.

But perhaps the Ruby bundle should be small as possible. Same as the Linux
kernel. Just Ruby and no libraries or extensions. This is so that “tiny
ruby” distributions can easily be created.

And then there should be a Fat Ruby, developed along the lines of the
Debian distribution, but with a far faster release cycle.

I propose that Matz strip the Ruby 1.8.0 Kernel to the minimum. Make
it really the smallest thing that will be useful. (Perhaps a better
definition would be the smallest thing that would not have to be patched
to make the “Fat Ruby” distribution.)

I propose that at least two Sourceforge projects be started up.

A “tiny ruby” that can be the engine for a Windows installer / scripter.

A “Fat Ruby” that evolves very much like the Debian project, but hopefully
faster. The “Fat Ruby” distro V1.0 should aim to have every mature /
usable item on RAA in it.

John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : john.carter@tait.co.nz
New Zealand

John’s law :-

All advances in computing have arisen through the creation of an
additional level of indirection, the trick is to work out which
indirection is actually useful.

···

On Thu, 23 Jan 2003 dblack@candle.superlink.net wrote:

We’ve all heard this: “Ruby is great, but it doesn’t have the
equivalent of CPAN.”

Hi –

We’ve all heard this: “Ruby is great, but it doesn’t have the
equivalent of CPAN.”

So, all you almost-satisfied Ruby programmers, what’s missing? :slight_smile:

libwww-ruby

···

On Thu, 23 Jan 2003 10:36:31 +0900 dblack@candle.superlink.net wrote:

David


David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web: http://pirate.shu.edu/~blackdav


“Daniel P. Zepeda” <daniel@z,e,p,e,d,a,-,z,o,n,e.net>
(Remove commas for address)

dblack@candle.superlink.net wrote:

We’ve all heard this: “Ruby is great, but it doesn’t have the
equivalent of CPAN.”

So, all you almost-satisfied Ruby programmers, what’s missing? :slight_smile:

yes, a CPAN equivalent is currently missing. however, worry not because
ruby will attract enough perl programmers that sooner or later they will
recreate a CPAN for ruby :slight_smile:

i’m widly guessing that of 10 perl programmers that migrate to/try out
other languages:

  • 1 will settle to python;
  • 7-8 will settle to ruby;
  • 1-2 will settle to other language;

ruby tries very hard to be a better perl, while python is just too
different from perl that perl programmers will miss all these features:

  • builtin regexes;
  • command line options (-i, -n, -p);
  • special variables ($_, $0…$9);
  • tainting;
  • all that nice quoting operators (qw//, qr//, qq//);
  • obfuscatability (sp?);
  • etc.
···


dave

True, but a meta-issue.

The question at hand (correct me if I’m wrong, David) is:
What libraries (i.e., content) does CPAN have that you
wish Ruby had? (Ditto for Python’s repository.)

Hal

···

----- Original Message -----
From: “Joey Gibson” joey@joeygibson.com
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Wednesday, January 22, 2003 7:58 PM
Subject: Re: Can we attack the ‘not enough libraries’ thing straight on?

So, all you almost-satisfied Ruby programmers, what’s missing? :slight_smile:

One part of cpan that I really like is the cpan shell that let’s you query
what you have, find what you need and install it. I haven’t looked at the
Perl code for that to see how complicated a task that is, but it’s a very
nice thing to have.

Joey Gibson wrote:

We’ve all heard this: “Ruby is great, but it doesn’t have the
equivalent of CPAN.”

I’ve been using Ruby since 2000 (I think) and I considered abandoning it
after reading Bruce Eckels make that exact point, but then I thought about
it and decided to stick with it.

I was sitting across the table from Bruce last week (while Andy was
belly dancing, but that’s another story) and mentioned that article. He
said he was planning on withdrawing it. That might have been second
thoughts, or I might have been leaning forward somewhat too agressively
(or it might be that the belly dancing was just too scary).

It would be very nice if Ruby could grow to have a sufficient number of
libraries, and if those libraries worked synergistically together. Think
how wonderful it would be to have something that was both powerful and
concise.

Dave

···

On Thu, 23 Jan 2003 10:36:31 +0900, dblack@candle.superlink.net wrote:

dblack@candle.superlink.net writes:

Also, I would advocate not getting embroiled in issues of naming,
specifically hierarchical module naming (text/soundex,
algorithms/sort/qsort, etc.)

David, I respect you and I agree with you; but on this point I have to
differ. As I’ve said several times in the past, if people don’t use
authoritative names for modules, they’ll use cutesy names, and you’ll
never know that Foozilla is a module to parse SGML. I know that if I
go to CPAN and get something called SGML::Parser then it’s reasonably
likely to be a SGML parser. Naming is important!

Please, let’s not forget lessons we learnt - even today: someone was
asking for a Ruby Lisp interpreter. Now, what would that be called?
Language::LISP? Scheme.rb? No, of course, it was given the eminently
sensible name of Rouge, from which one could determine, well,
absolutely nothing at all, except that it might have something to do
with makeup. Naming is important!

Pardon me while I play David’s Advocate. :slight_smile:

Yes, names are important. But what DAB is addressing is the
fact that people always say RAA < CPAN. And he wants to
know: What are the top things missing? And I want to know, too.

The point is: Let’s not discuss naming conventions IN THIS
THREAD. Let’s discuss what new libraries are needed.

And after all: Packages can be renamed MUCH more quickly than
they can be developed.

The things that CPAN has that Ruby doesn’t have:
1) sensibly named modules
2) reasonably comprehensive documentation
3) that’s it. Go forth and hackify.

If that’s true, then it’s not so much an issue of content
as of organization. But I’m not convinced everyone thinks
the way you do on this.

FWIW, I’m not a Perl hacker, so I don’t really have an
opinion. There’s nothing from CPAN that I miss. :slight_smile:

Hal

···

----- Original Message -----
From: “Simon Cozens” simon@simon-cozens.org
Newsgroups: comp.lang.ruby
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Wednesday, January 22, 2003 8:02 PM
Subject: Re: Can we attack the ‘not enough libraries’ thing straight on?

Hi –

dblack@candle.superlink.net writes:

Also, I would advocate not getting embroiled in issues of naming,
specifically hierarchical module naming (text/soundex,
algorithms/sort/qsort, etc.)

David, I respect you and I agree with you; but on this point I have to
differ. As I’ve said several times in the past, if people don’t use
authoritative names for modules, they’ll use cutesy names, and you’ll
never know that Foozilla is a module to parse SGML. I know that if I
go to CPAN and get something called SGML::Parser then it’s reasonably
likely to be a SGML parser. Naming is important!

Would it surprise you to learn that I rather knew I’d hear from you in
response to that part of my post? :slight_smile:

The thing is, names can be mapped later, and arbitrarily many views of
a module archive can be created. My concern is that the process of
deciding up front what things should be called, what to do about
multiple versions of modules, how to deal with badly written
“official” modules, etc., is potentially endless, and that if people
are waiting for that to happen, we’ll never get the modules we need.

Please, let’s not forget lessons we learnt - even today: someone was
asking for a Ruby Lisp interpreter. Now, what would that be called?
Language::LISP? Scheme.rb? No, of course, it was given the eminently
sensible name of Rouge, from which one could determine, well,
absolutely nothing at all, except that it might have something to do
with makeup. Naming is important!

Yes, but what if there are five Lisp interpreters? And what if some
of them are better than others? Same for SGML parsers, etc. Somehow
there has to be a mechanism for people to write software that they
want to write, and for it to be distributed on something other than a
winner-take-all basis. That, in turn, means that even if there’s a
naming hierarchy, it will never be the whole story. And that,
finally, means that there’s no reason to wait to write software until
that naming hierarchy is agreed upon (whatever that even means – I
don’t even know that such a process is possible).

The things that CPAN has that Ruby doesn’t have:
1) sensibly named modules
2) reasonably comprehensive documentation
3) that’s it. Go forth and hackify.

OK, but what modules do we need? :slight_smile: Or are you saying that (some of)
the software in question is there but hidden under names that make
people think it’s not there?

David

···

On Thu, 23 Jan 2003, Simon Cozens wrote:


David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web: http://pirate.shu.edu/~blackdav

I’ve been thinking (okay, dreaming) of a small snippet of Ruby code that
could turn the interactive Ruby shell (irb) into a RAA browser, much
like CPAN.pm for Perl. I imagined:

$ irb
irb(main):001:0> require ‘raa’
true

irb(main):002:0> raa.install ‘Foo::Bar’
…fetches the Foo::Bar module from RAA…
…installs it using setup.rb or whatever…

irb(main):002:0> raa.updates
…displays a list of currently installed modules, their versions, and
the latest version available according to RAA…

You get the idea. Is this attractive to anyone? Hasn’t this been
/done/ already?

Using irb seems right to me – leverage readline support if irb has it,
etc.

– Dossy

···

On 2003.01.23, Daniel Carrera dcarrera@math.umd.edu wrote:

  1. RAA is hard to browse. I think that a setup of the style of
    www.search.cpan.org is best.


Dossy Shiobara mail: dossy@panoptic.com
Panoptic Computer Network web: http://www.panoptic.com/
“He realized the fastest way to change is to laugh at your own
folly – then you can let go and quickly move on.” (p. 70)

> IOW, there may be 10 times more libraries available for Perl and Python, but > how many of them do I actualy need?

a very good point. just today i had to write a perl script and was
overwhelmed in modules and add-ons - many of which simply weren’t needed. one
idea i’ve had is the idea of ‘candidate libraries’ : anyone who’s worked with
the c++ boost libraries knows what i’m talking about, but here’s a short and
sweet explanation

  • libraries wishing to become part of the ruby standard library should
    follow some sort of standards (naming being one of them) and perhaps fit
    into some overall package management system (like the cpan shell). they
    should install in standard places, have standard docs (in fact it’d be
    great if there were a site_ruby/doc directory doccumenting every thing
    installed on your system), etc.

  • other modules can do what they please

this is one idea CPAN lacks - a central set of standards which modules must
conform to (unit testing for modules?) and a way to separte the really good
modules from all the chatter and useless crap…

just some some thoughts…

-a

···

On Thu, 23 Jan 2003, Joey Gibson wrote:

====================================

Ara Howard
NOAA Forecast Systems Laboratory
Information and Technology Services
Data Systems Group
R/FST 325 Broadway
Boulder, CO 80305-3328
Email: ahoward@fsl.noaa.gov
Phone: 303-497-7238
Fax: 303-497-7259
====================================

Simon Cozens wrote:

dblack@candle.superlink.net writes:

Please, let’s not forget lessons we learnt - even today: someone was
asking for a Ruby Lisp interpreter. Now, what would that be called?
Language::LISP? Scheme.rb? No, of course, it was given the eminently
sensible name of Rouge, from which one could determine, well,
absolutely nothing at all, except that it might have something to do
with makeup. Naming is important!

But then, what the heck is a “mozilla” anyway? Is it some sort of a
Japanese monster?
Or a “gnumeric”? Huh?
Or a “squid”? Seafood?

My point is, software are like indviduals. If our parents named us with
names that describe our ethnicity, origin, and functions, then I’ll be
called “Chinese dude who doesn’t live in China, and likes to program in
Ruby”.

My dual-cents, of course.

···


Wai-Sun “Squidster” Chia
Techinical Consultant
Consulting & Integration
“Just Another Ruby Miner”

“Gabriel Emerson” gemerson@evalsoft.com writes:

Now to address your actual post. Maybe we should have a web site. A
person can go in and request a CPAN module, based on their actual need for
it, maybe with a comment on why it would be a Good Thing To Have.

For one attempt:

[ruby-talk:20560]

Some of the requests are for stuff Ruby already has. It’d be
interesting to see a mapping of CPAN modules to Ruby modules.

I agree with you that ultimately distributions, and “certified
collections” of packages are probably an ultimate goal, but I would
suggest that one reason why this works for RedHat is that RedHat is a
commercial entity, and they (as an entity) have the man power/time and
the money to do it. Additionally - Perl5 is a distribution - it
contains a lot of packages that people generally use such as libwww,
CGI, Data::Dumper, the list goes on for a long way.

Saying that CPAN is a tangled web of dependencies is not viewing it for
what it is. It is a place that a community can publish its work, to a
given set of standards, knowing that that work can be resonably searched
for. Developing a repository of modules, and surround information
should be kept separate form how we access that information - for
example the CPAN shell neatly deals with package retrieval, including
dealing with mirror site, and manages drilling into the dependencies
issue.

In fact - I urge you all to check out the many facets of CPAN, so that
you can understand it fully.
http://pause.cpan.org - authors portal
http://search.cpan.org - main directory interface, with access to
documentation, versions, and how to get in touch with authors, and
interest groups etc.
http://rt.cpan.org - a relatively new effort to assisst with
maintenance, and bug tracking.

then there are any number of supporting sites such as
http://www.perldoc.com, etc.

Cheers.

···

On Fri, Jan 24, 2003 at 12:18:56PM +0900, John Carter wrote:

On Thu, 23 Jan 2003 dblack@candle.superlink.net wrote:

We’ve all heard this: “Ruby is great, but it doesn’t have the
equivalent of CPAN.”

Sigh! I was going to keep out of this one, but the responses so far have
sucked me into it…

I don’t need CPAN and I don’t want such a beast.

I want a distribution. A bundle.

A CPAN is a tangled web of dependencies.

A distribution (like Redhat / Debian / Mandrake / …) is that tangled
web snapshotted, bundled, flattened out, smoothed and co-tested.

ie. When I install version X.Y of any distribution I get…
a) A Large bundle of goodies.
b) Where each goodie has been tested to operate at some reasonable level
of stability.
c) And the elements of the Bundle have been tested to interoperate!

Item a) means I can get stuck in and start working straight away. The
batteries are included.

Item b) means I’m not on the bleeding edge so I have reasonable confidence
that I can deploy the latest stable version to a customer and it will
just work.

Item c) means the risk of mutually incompatible module versions has been
removed for me.

You may object that distributions remove flexibility, some people wanting
slim bundles some wanting fat.

Just the same as you can get tiny Linux distributions I envisage there
will be tiny Ruby distributions.

Want to script something that must be deployed on a thousand Windows
clients but @@%$&^%$ windows cmd.exe is too pathetic to
contemplate?

Install a “tiny ruby” distro and away you go.

Want decent script engine for an embedded platform? Install a tiny linux
distro with a tiny ruby script distro.

Want to write something large and powerful? Install the fat distro and
away you go.

Where we are now is want module X, you must pull down item Y Version y1.y1
and item Z Version z1.z2. (You better hope the servers for X, Y and Z are
up when you want them.) Now you want module W as well, for that you need
module S and module Y Version y2.y2 which is incompatible with Y version
y1.y1

Oh dear.

I see Ruby 1.8.0 promises to have a lot more goodies bundled with it, I am
extremely glad.

But perhaps the Ruby bundle should be small as possible. Same as the Linux
kernel. Just Ruby and no libraries or extensions. This is so that “tiny
ruby” distributions can easily be created.

And then there should be a Fat Ruby, developed along the lines of the
Debian distribution, but with a far faster release cycle.

I propose that Matz strip the Ruby 1.8.0 Kernel to the minimum. Make
it really the smallest thing that will be useful. (Perhaps a better
definition would be the smallest thing that would not have to be patched
to make the “Fat Ruby” distribution.)

I propose that at least two Sourceforge projects be started up.

A “tiny ruby” that can be the engine for a Windows installer / scripter.

A “Fat Ruby” that evolves very much like the Debian project, but hopefully
faster. The “Fat Ruby” distro V1.0 should aim to have every mature /
usable item on RAA in it.

John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : john.carter@tait.co.nz
New Zealand

John’s law :-

All advances in computing have arisen through the creation of an
additional level of indirection, the trick is to work out which
indirection is actually useful.

Hi,

From: “Daniel Carrera” dcarrera@math.umd.edu
Sent: Thursday, January 23, 2003 11:21 AM

These are opinions. Other people might disagree

For me as well.

  1. Find a more accessible domain name. www.ruby-lang.org/raa is not as
    easy to remember as www.cpan.org. Unfortunatelly
    (ruby|cran|raa).(org|net) are all taken.

How do you feel raa.ruby-lang.org ?

  1. RAA is hard to browse. I think that a setup of the style of
    www.search.cpan.org is best.

I don’t use CPAN modules so I seldom use CPAN search…

What is the most significant point of all the features which
CPAN search have and RAA don’t have, do you think? We’ll
change it better and better untill RAA.succ comes.

Regards,
// NaHi