# Organization of standard and 3rd party libraries

**URL:** <https://www.ruby-forum.com/t/organization-of-standard-and-3rd-party-libraries/123768>\
**Category:** Ruby\
**Created:** [December 20, 2007, 1:25pm UTC](https://www.ruby-forum.com/t/organization-of-standard-and-3rd-party-libraries/123768 "2007-12-20T13:25:16Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [December 20, 2007, 1:25pm UTC](https://www.ruby-forum.com/t/organization-of-standard-and-3rd-party-libraries/123768/1 "2007-12-20T13:25:16Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [December 20, 2007, 1:55pm UTC](https://www.ruby-forum.com/t/organization-of-standard-and-3rd-party-libraries/123768/2 "2007-12-20T13:55:06Z")

</div>

On Dec 20, 2007 1:24 PM, Trans [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

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

–

[http://ruby-smalltalk.blogspot.com/](http://ruby-smalltalk.blogspot.com/)

* * *

All truth passes through three stages. First, it is ridiculed. Second,  
it is violently opposed. Third, it is accepted as being self-evident.  
Schopenhauer (attr.)

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [December 20, 2007, 10:33pm UTC](https://www.ruby-forum.com/t/organization-of-standard-and-3rd-party-libraries/123768/3 "2007-12-20T22:33:18Z")

</div>

On Dec 20, 7:54 am, “Robert D.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> if categories could be applied already, maybe the SL is just not big  
> 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.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [December 22, 2007, 2:59pm UTC](https://www.ruby-forum.com/t/organization-of-standard-and-3rd-party-libraries/123768/4 "2007-12-22T14:59:15Z")

</div>

On Dec 20, 2007, at 3:32 PM, Trans wrote:

> > > libraries  
> > > require “extensions/facets…”  
> > > require “ruport/text/…”  
> > > then  
> > > 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.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [December 29, 2007, 5:15pm UTC](https://www.ruby-forum.com/t/organization-of-standard-and-3rd-party-libraries/123768/5 "2007-12-29T17:15:06Z")

</div>

On Dec 22, 2007 2:58 PM, John J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> > > > library developers to categorize their libraries better as well?  
> > > > enough right now…
> > 
> > like…  
> > –and really there seems to be no standard ideas to speak of on the

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

–

[http://ruby-smalltalk.blogspot.com/](http://ruby-smalltalk.blogspot.com/)

* * *

All truth passes through three stages. First, it is ridiculed. Second,  
it is violently opposed. Third, it is accepted as being self-evident.  
Schopenhauer (attr.)

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [December 29, 2007, 5:53pm UTC](https://www.ruby-forum.com/t/organization-of-standard-and-3rd-party-libraries/123768/6 "2007-12-29T17:53:11Z")

</div>

On Dec 22, 2007, at 8:58 AM, John J. wrote:

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

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