Library standardization
Koroskin Denis
2korden at gmail.com
Fri Apr 18 14:58:54 PDT 2008
First of all, I don't want to start Tango vs. Phobos vs. ??? flame war.
But the way Tango or Phobos envolves is not the best one.
Current situation is, someone writes code, probably nice one, and it is
added
to main trunk. Problem is, interface is implementation driven, not
otherwise.
It is not discussed. And thats bad. Tests first, then code, Kent Beck said.
Of course, implementation can affect interface, but only after trial.
I mean, what we need is a detailed document (probably, wikified one) with
detailed library interfaces, their rationale, use cases, examples, stress
tests but NO implementation! Implementation is important, too, but only to
end
users, and not for standardization. Reference implementation will follow, I
promise. It shouldn't be fast, it should be CORRECT and standard compliant
in
the first place, and it should pass D Library Stress Test.
We need some kind of committee that would endorse that. And a separate
newsgroup
section. Drafts should be stored in wiki.
As such, my suggestion is to revive digitalmars.dtl group!
The condition is it should be regularly monitored by Walter/Andrei or any
other
person, that will be assigned for a duty.
We should discuss and answer the following questions:
- How DTL should be organized (bunch of files or structured like in
Java/C#/Tango)?
- What modules should it consist of?
- What classes does it provide?
- What interfaces these classes expose?
- What feature set of D should it use?
- Templates vs. Object Oriented approach
The library should document all these. Extensive set of functional and
unit tests should also be provided.
Reference implementation for D1/D2 will exist. However, library should be
design driven, not implementation driven.
Any module/class/method should be removed if Walter is not satisfied with
it.
Invariant should be held, that at any given moment Walter is satisfied
with every piece of the library.
I believe this is the only way we can create single powerful standard
library.
More information about the Digitalmars-d
mailing list