Organization of standard and 3rd party libraries

T

Trans

Do you think Ruby's standard library would be better if it was
organized more categorically? Might it, in turn, encourage 3rd party
library developers to categorize their libraries better as well? AFAIK
net/ is the only categorized set of libs in the standard lib and
Austin is one of the very few who religiously organizes his libraries
in this manner.

Is categorization a good idea, or a waste of time?

T.
 
R

Robert Dober

Do you think Ruby's standard library would be better if it was
organized more categorically? Might it, in turn, encourage 3rd party
library developers to categorize their libraries better as well? AFAIK
net/ is the only categorized set of libs in the standard lib and
Austin is one of the very few who religiously organizes his libraries
in this manner.

Is categorization a good idea, or a waste of time?
A good idea I believe, but only if it comes naturally. I have no idea
if categories could be applied already, maybe the SL is just not big
enough right now...
I believe that it might indeed be a nice thing for 3rd party
developers to have entry points into a tree.
I imagine things like
require "extensions/facets...."
or
require "text/ruport"
or
require "crazy/labrador/" ;)


maybe one could peek over to Python or Perl and steal some ideas ;).

Cheers
Robert
 
T

Trans

A good idea I believe, but only if it comes naturally. I have no idea
if categories could be applied already, maybe the SL is just not big
enough right now...
I believe that it might indeed be a nice thing for 3rd party
developers to have entry points into a tree.
I imagine things like
require "extensions/facets...."
or
require "text/ruport"
or
require "crazy/labrador/" ;)

maybe one could peek over to Python or Perl and steal some ideas ;).

I see it the other way around:

require "facets/extensions/...."
require "ruport/text/..."
require "labrador/crazy/..."

Whereby the first name represents a project/package and the rest
indicates the categories. Ruby itself has no sub-namespace, of course.
That stands to reason as it is all "toplevel". What would be
interesting then is to be able to "include" a namespace. Ie. Something
like...

use "ruport"

then

requre 'text/...'

But that's not really the main point. Just wondering about
categorization in general. Unlike the Perl, where CSPAN provides the
incentive to do so, the Ruby community doesn't seem to do much at all
--and really there seems to be no standard ideas to speak of on the
matter. For example, I recently talked to a maintainer of the Text
project about perhaps a merger with my English project. His response
was that he felt certain libs belonged to the Text namespace and
others to the English namespace. But that's misconstrued IMO. I've
never thought of English as anything more than a project name. By
Tim's reasoning it would mean he has taken ownership of the entire
Text category. Which is clearly silly. So that's why I think
"{package}/{catagory}/..." makes sense.

T.
 
J

John Joyce

I see it the other way around:

require "facets/extensions/...."
require "ruport/text/..."
require "labrador/crazy/..."

Whereby the first name represents a project/package and the rest
indicates the categories. Ruby itself has no sub-namespace, of course.
That stands to reason as it is all "toplevel". What would be
interesting then is to be able to "include" a namespace. Ie. Something
like...

use "ruport"

then

requre 'text/...'

But that's not really the main point. Just wondering about
categorization in general. Unlike the Perl, where CSPAN provides the
incentive to do so, the Ruby community doesn't seem to do much at all
--and really there seems to be no standard ideas to speak of on the
matter. For example, I recently talked to a maintainer of the Text
project about perhaps a merger with my English project. His response
was that he felt certain libs belonged to the Text namespace and
others to the English namespace. But that's misconstrued IMO. I've
never thought of English as anything more than a project name. By
Tim's reasoning it would mean he has taken ownership of the entire
Text category. Which is clearly silly. So that's why I think
"{package}/{catagory}/..." makes sense.

T.
I think this concept of <package_name>/<category_name> is a very good
idea. It does help to encapsulate things in a logical way.
As for other people's projects conforming...
unless something happens with ruby and gems on this kind of thing
(including adding some sort of namespace) you're likely to see
resistance from many people.
Many people are protective and sensitive about their libraries. Even
if it is open source they want control.
Some folks are more willing to let the software take on its own
existence.
 
R

Robert Dober

I think this concept of <package_name>/<category_name> is a very good
idea. It does help to encapsulate things in a logical way.
As for other people's projects conforming...
unless something happens with ruby and gems on this kind of thing
(including adding some sort of namespace) you're likely to see
resistance from many people.
Many people are protective and sensitive about their libraries. Even
if it is open source they want control.
Some folks are more willing to let the software take on its own
existence.

I have a mild concern wiith this, I would like to have things like the
followwing too

meta/enum/whatever

a

whatever/enum/meta
seems less natural to me, but I guess I would adapt, nice that we
agree on this in general ;)

Cheers
Robert
 
G

Gary Wright

As for other people's projects conforming...
unless something happens with ruby and gems on this kind of thing
(including adding some sort of namespace) you're likely to see
resistance from many people.
Many people are protective and sensitive about their libraries.
Even if it is open source they want control.
Some folks are more willing to let the software take on its own
existence.


Instead of trying to come up with a single organization
that satisfies everyone, why not partition the name space:

std/... # specified by Matz and company
rc/... # specified by Ruby Central community
rf/... # specified by Ruby Forge community
x/... # unregistered namespace, first come, first serve

The idea is that the top-level name would identify the
organizer and/or organizing principle for the lower-level
names. The x/... suggestion is similar to how extensions are
proposed to mime types or mail headers. New top-level names
could be proposed and then approved by Matz and company but
ideally would remain small and would not clash with any existing
well-known project names.

Not sure how this might interact with the Ruby class/module namespace,
but any attempt to standardize either namespace should probably be
coordinated.

Gary Wright
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top