Jump to page: 1 2
Thread overview
standard library vs standard interfaces
Jan 21, 2007
Serg Kovrov
Jan 21, 2007
Hasan Aljudy
Jan 21, 2007
Serg Kovrov
Jan 21, 2007
Hasan Aljudy
Jan 21, 2007
Lionello Lunesu
Jan 21, 2007
Kyle Furlong
Jan 22, 2007
Bill Baxter
Jan 22, 2007
Kirk McDonald
Jan 22, 2007
Bill Baxter
Jan 22, 2007
Serg Kovrov
Jan 23, 2007
kris
Jan 23, 2007
Serg Kovrov
Jan 23, 2007
kris
Jan 22, 2007
Lionello Lunesu
Jan 22, 2007
Carlos Santander
Jan 22, 2007
Hasan Aljudy
Jan 21, 2007
donth ave
Jan 22, 2007
Lionello Lunesu
January 21, 2007
There were always trends to throw away Phobos as standard library in flavor of some other like Ares, Tango, or whatever. The problem is there are lot of code (I'd say most of it) that hard-coupled with current standard library.

So why not define well-thought, 'official' set of 'standard interfaces' (and standard implementation), as opposite to 'standard library'. It is not necessary for a library to fully support all interfaces, of course. We could have than any number of third party libraries to work with, in a 'standardized' way.

-- 
serg.
January 21, 2007

Serg Kovrov wrote:
> There were always trends to throw away Phobos as standard library in flavor of some other like Ares, Tango, or whatever. The problem is there are lot of code (I'd say most of it) that hard-coupled with current standard library.
> 
> So why not define well-thought, 'official' set of 'standard interfaces' (and standard implementation), as opposite to 'standard library'. It is not necessary for a library to fully support all interfaces, of course. We could have than any number of third party libraries to work with, in a 'standardized' way.
> 

My impressions is, the interface of the current standard library (phobos) IS the standard interface.
January 21, 2007
Hasan Aljudy wrote:
> My impressions is, the interface of the current standard library (phobos) IS the standard interface.

For example, for file operations I usually use (that is, my methods/classes expects) strings (filename) and std.stream.Stream interface. Thankfully we do not need any interface for string operations, but for streams we do.

Ares seems uses FILE* handle for that purpose. So, to switch to, or even to use part of Ares I have to rewrite some of my code.

Have no idea about Tango, but I'd be surprised if it implements std.* interfaces...

-- 
serg.
January 21, 2007

Serg Kovrov wrote:
> Hasan Aljudy wrote:
>> My impressions is, the interface of the current standard library (phobos) IS the standard interface.
> 
> For example, for file operations I usually use (that is, my methods/classes expects) strings (filename) and std.stream.Stream interface. Thankfully we do not need any interface for string operations, but for streams we do.
> 
> Ares seems uses FILE* handle for that purpose. So, to switch to, or even to use part of Ares I have to rewrite some of my code.
> 
> Have no idea about Tango, but I'd be surprised if it implements std.* interfaces...
> 

According to my last char with them on their irc (about 3 weeks ago), Tango doesn't conform to Phobos' interface; which is really unfortunate IMO.
January 21, 2007
"Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:ep0kmq$1csj$1@digitaldaemon.com...

> According to my last char with them on their irc (about 3 weeks ago), Tango doesn't conform to Phobos' interface; which is really unfortunate IMO.

I agree.. It makes a switch to Tango unnecessarily complicated.

L.


January 21, 2007
Serg Kovrov Wrote:
> 'official' set of 'standard interfaces'
best since sliced bread.
--
Anonymity is not a Crime
January 21, 2007
Lionello Lunesu wrote:
> "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:ep0kmq$1csj$1@digitaldaemon.com...
> 
>> According to my last char with them on their irc (about 3 weeks ago), Tango doesn't conform to Phobos' interface; which is really unfortunate IMO.
> 
> I agree.. It makes a switch to Tango unnecessarily complicated.
> 
> L. 
> 
> 

On the other hand, Tango was designed from the ground up to have a coherent, logical interface. Perhaps it should be the standard that *Phobos* has to conform to? :-)
January 22, 2007
Kyle Furlong wrote:
> Lionello Lunesu wrote:
>> "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:ep0kmq$1csj$1@digitaldaemon.com...
>>
>>> According to my last char with them on their irc (about 3 weeks ago), Tango doesn't conform to Phobos' interface; which is really unfortunate IMO.
>>
>> I agree.. It makes a switch to Tango unnecessarily complicated.
>>
>> L.
>>
> 
> On the other hand, Tango was designed from the ground up to have a coherent, logical interface. Perhaps it should be the standard that *Phobos* has to conform to? :-)

I can understand tango wanting to claim legitimacy by taking over the 'std' package namespace, but I think there are still some options that allow interop.

For one, Tango could choose a different top-level package that still sounds very legitimate, like d.* or lib.*.

Or Tango could make sure all it's std.* subpackages have different names from existing phobos ones.  Like std.math2 instead of std.math.  [Ok, that makes me barf even though I suggested it]

Or Tango could have an installer that allowed installing as both std.* and/or tango.* depending on whether you need to interop with phobos.

Or Tango could have an installer that moves *phobos* over to the namespace phobos.*.  At least that would allow an easy way to update old code by search and replace of "std." with "phobos."

--bb
January 22, 2007
Bill Baxter wrote:
> Kyle Furlong wrote:
>> Lionello Lunesu wrote:
>>> "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:ep0kmq$1csj$1@digitaldaemon.com...
>>>
>>>> According to my last char with them on their irc (about 3 weeks ago), Tango doesn't conform to Phobos' interface; which is really unfortunate IMO.
>>>
>>> I agree.. It makes a switch to Tango unnecessarily complicated.
>>>
>>> L.
>>>
>>
>> On the other hand, Tango was designed from the ground up to have a coherent, logical interface. Perhaps it should be the standard that *Phobos* has to conform to? :-)
> 
> I can understand tango wanting to claim legitimacy by taking over the 'std' package namespace, but I think there are still some options that allow interop.
> 
> For one, Tango could choose a different top-level package that still sounds very legitimate, like d.* or lib.*.
> 
> Or Tango could make sure all it's std.* subpackages have different names from existing phobos ones.  Like std.math2 instead of std.math.  [Ok, that makes me barf even though I suggested it]
> 
> Or Tango could have an installer that allowed installing as both std.* and/or tango.* depending on whether you need to interop with phobos.
> 
> Or Tango could have an installer that moves *phobos* over to the namespace phobos.*.  At least that would allow an easy way to update old code by search and replace of "std." with "phobos."
> 
> --bb

Tango uses the tango.* namespace. For a while, Phobos was still available as phobos.*, but I believe it was removed because no one really used it (and it was never "officially" supported, anyway). With sufficient demand, I bet it could be added back in.

-- 
Kirk McDonald
Pyd: Wrapping Python with D
http://pyd.dsource.org
January 22, 2007
Kirk McDonald wrote:
> Bill Baxter wrote:
>> Kyle Furlong wrote:
>>> Lionello Lunesu wrote:
>>>> "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:ep0kmq$1csj$1@digitaldaemon.com...
>>>>
>>>>> According to my last char with them on their irc (about 3 weeks ago), Tango doesn't conform to Phobos' interface; which is really unfortunate IMO.
>>>>
>>>> I agree.. It makes a switch to Tango unnecessarily complicated.
>>>>
>>>> L.
>>>>
>>>
>>> On the other hand, Tango was designed from the ground up to have a coherent, logical interface. Perhaps it should be the standard that *Phobos* has to conform to? :-)
>>
>> I can understand tango wanting to claim legitimacy by taking over the 'std' package namespace, but I think there are still some options that allow interop.
>>
>> For one, Tango could choose a different top-level package that still sounds very legitimate, like d.* or lib.*.
>>
>> Or Tango could make sure all it's std.* subpackages have different names from existing phobos ones.  Like std.math2 instead of std.math.  [Ok, that makes me barf even though I suggested it]
>>
>> Or Tango could have an installer that allowed installing as both std.* and/or tango.* depending on whether you need to interop with phobos.
>>
>> Or Tango could have an installer that moves *phobos* over to the namespace phobos.*.  At least that would allow an easy way to update old code by search and replace of "std." with "phobos."
>>
>> --bb
> 
> Tango uses the tango.* namespace. For a while, Phobos was still available as phobos.*, but I believe it was removed because no one really used it (and it was never "officially" supported, anyway). With sufficient demand, I bet it could be added back in.
> 

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.

--bb
« First   ‹ Prev
1 2