Expanding Phobos from a flat hierachy

Paul D. Anderson paul.d.removethis.anderson at comcast.andthis.net
Thu Feb 7 10:58:20 PST 2013


On Wednesday, 6 February 2013 at 07:56:26 UTC, Don wrote:
> In the "Implementing Half Floats in D" thread, we seemed to 
> have reached a consensus on two important points:
> (a) Phobos should have a broad scope (rather than being small 
> like the C standard library).
> (b) The current flat structure of Phobos (every module in the 
> root) does not scale to hundreds of modules.
>
> It's not quite unanimous on (a), but seems to be close enough.
>
> Together, (a) and (b) mean we need a plan. The sooner we can do 
> it, the less painful it will be. But, on the other hand, it's 
> something that we really don't want to get wrong.
>
> Personal taste plays a huge role in this (Practically any 
> structure can work, but we're looking for an arrangement which 
> is intuitive and aesthetically pleasing to as many people as 
> possible). It'll be most productive to stick to uncontroversial 
> facts as long as possible.
>
> It would be great if people with extensive experience in other 
> languages could give a brief description of the structure of 
> the corresponding libraries. (Also include pseudo-standard 
> libraries, for example boost in C++).
>
> 1. How many total modules are there? How old is the library? 
> What is the recent growth rate of the library (Percentage 
> increase in size per year, over whatever time interval is 
> reasonable for that library)?
> 2. How deep is the hierarchy? How many top-level branches are 
> there?
> 3. How has the library dealt with obsolete functions and 
> modules? Eg, are there entire top-level branches which are 
> obsolete? How many stupid names are there (eg, 
> "std.algorithm2") which were forced by the original design 
> becoming obsolete?
> 4. How much of the library is successful/convincing? To make it 
> a bit less subjective: how much of the library is commonly 
> ignored, in favour of using third-party libraries instead? 
> Which areas are failures in this way (eg, GUI, database, ...)? 
> Which areas are the most often praised?
>
> Maybe such a survey already exists, but I haven't been able to 
> find an existing one.

Java Standard Library:

Total of 209 packages.

3 top-level packages:
   java  ( 56 packages, 13 top level within java)
   javax (117 packages, 20 top level within javax)
   org   ( 36 packages,  4 top-level within org)

Max depth of package tree:

   5

Duplicated Names:

   java.io and java.nio (new io)
   java.net and javax.net
   java.lang and javax.lang

Note that javax was initially intended to be an experimental 
library where its packages would get moved to the java library 
eventually. But the first time they tried to move a package from 
javax to java there were a lot of complaints. Too much broken 
code. So the experimental library become an addition to the 
standard library.

Paul


More information about the Digitalmars-d mailing list