standard library vs standard interfaces
Serg Kovrov
kovrov at no.spam
Mon Jan 22 15:56:19 PST 2007
Bill Baxter wrote:
> Ok, then I misunderstood what the OP's problem was then. He wants Tango
> to be a strict superset of Phobos? Ick. No thanks. I agree that old
> programs should be able to keep using phobos even after Tango is
> installed, but I don't see why Tango should be required to follow the
> haphazard 'design-by-accretion' API of Phobos.
'The OP' is me, I presume =)
Something tells me it's gonna take a while... No, I haven't meant Tango
to be derived or aimed to be exact replacement for Phobos for sake of
compatibility of legacy code. In fact it concerns future code.
My original point was to have independent set of interfaces, that can be
used as expected types. Every library can implement (among their own)
some of those interfaces. That way libraries could be combined with each
other or even switchable.
As an example, for a text editor application one could have thee major
components - text storage class, text display widget, and driver (main)
application. Storage component meant to be initialized by application,
by passing an object of a class providing well known, 'standard sream'
interface (capable of seeking and writing data). Let it be
std.interfaces.IStream (something similar to current std.stream.Stream).
For file access application can use something called
phobos.io.FileStream (standard implementation of well known I/O
interface). But later one could add support for remote storage feature,
using third-party library 'Mega I/O'. Something like
megaio.net.DavStream, which happens to implement same well known
interface, and by that seamlessly fits in.
Ok, maybe I/O stream interface is not best example, but hope you got the
idea. It could be any general interface - archivers, threads, IPC, GC,
messaging, widgets... Any possible lib-to-user, lib-to-lib, and
user-to-user interaction use-cases.
As for bottom line, I'd like to have an implementation-agnostic set of
interfaces. Considered as 'standard interfaces', but fully separated
from standard or (any other library). Defined by authors, potential
authors, and potential users of libraries. And of course by authors of
standard library. It doesn't have to be fully implemented in standard
(or any other) library. It is more like future-proof interfaces.
--
serg.
More information about the Digitalmars-d
mailing list