Expanding Phobos from a flat hierachy

Don don at nospam.com
Tue Feb 5 23:56:26 PST 2013


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.



More information about the Digitalmars-d mailing list