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.”