Hi all,

It's a bit cheeky to call this an announcement, since it's only
announcing a project idea.

I would like to create a RubyForge project that builds a library of
useful classes and modules.  That basically describes the standard
library.  This library wouldn't be standard, hence the name
"non-standard library".

The purposes of the project:

 * collect existing small projects (e.g. Memoize) to ensure their
   continued maintenance, and hopefully give them higher exposure

 * provide a good environment for the development of ADTs, etc.
   that might otherwise not seem worthwhile due to project
   management overhead

 * provide a rich library that is easy to install and has a high
   standard of documentation and testing

   * thus, convenience and quality

For example, a very recent thread suggested *replacing* pack and
unpack with an OO version (Packer and Unpacker classes).  That's a
radical suggestion that's unlikely to be accepted.  The milder
approach of providing an OO facade to the existing methods is more
reasonable, but if accepted, would still take a long time to appear in
a Ruby release.

On the other hand, inclusion of this idea in a 'nonstdlib' project
would be feasible and fast.  Before long, you could write in your
code something like this:

  require_gem 'nonstdlib', '>= 0.3'
  require 'nonstdlib/packer'

  p = Packer.new
  p.word 0x01
  p.word 0x00
  # etc.

Notice that the version number can be specified to ensure that the
'nonstdlib' gem has the required feature.  Of course, you can use
the 'require' line without the 'require_gem' line: RubyGems is not an
actual dependency here.

The steps to getting this started are:

  1. Get feedback from interested people.

  2. Decide on a name.

  3. Start a RubyForge project and mailing list.

  4. Take it from there.

If there's no interest to start with, I'll just get going.  But this
sort of thing would benefit from involvement by interested people.

The main thing for now is the name.  That enables the creation of the
mailing list, on which people can express interest.

I think 'nonstdlib' is a good name.  Anyone got other ideas?

Cheers,
Gavin