www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - new DIP48: Interface specifications for aggregate types

reply "Simen Kjaeraas" <simen.kjaras gmail.com> writes:
In response to Walter's DIP47 I have created my own take on what I see as  
the main problem:

http://wiki.dlang.org/DIP48

Destroy!

-- 
   Simen
Sep 08 2013
next sibling parent "Tove" <tove fransson.se> writes:
On Sunday, 8 September 2013 at 18:13:52 UTC, Simen Kjaeraas wrote:
 In response to Walter's DIP47 I have created my own take on 
 what I see as the main problem:

 http://wiki.dlang.org/DIP48

 Destroy!

I like it but would prefer interface instead of interface Since using interface in this way, reminds me too much of nameless struct:s/union:s.
Sep 08 2013
prev sibling next sibling parent "Jesse Phillips" <Jesse.K.Phillips+D gmail.com> writes:
On Sunday, 8 September 2013 at 18:13:52 UTC, Simen Kjaeraas wrote:
 In response to Walter's DIP47 I have created my own take on 
 what I see as the main problem:

 http://wiki.dlang.org/DIP48

 Destroy!

Personally I find this practice of creating a competing DIP to be very annoying. This was specifically outlined in the first DIP: http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP1 "A DIP should represent a problem the community wants to resolve and not just a specific resolution to a problem. This allows the DIP to be a central hub for any given problem. If a resolution is radically different from the current state of the DIP, an alternative DIP could be created as a sub page, e.g. under /DIPs/DIP1/Alternatives/Alt1?. The DIP should be created in its entirety such that it could replace the current DIP through simple copy and past." By creating separate DIPs and new forum posts, the discussion is segregated instead of being a progression to a solution. How is one to know that these two DIPs are to address the same problem: "Outline Member Functions of Aggregates" "Interface specifications for aggregate types"
Sep 08 2013
prev sibling next sibling parent "w0rp" <devw0rp gmail.com> writes:
I don't like DIP47, but I think I like this less. The original 
DIP this is competing against at least has some sense of 
familiarity. This is some weird new thing, and neither DIP really 
does anything meaningful.
Sep 08 2013
prev sibling next sibling parent "Simen Kjaeraas" <simen.kjaras gmail.com> writes:
On 2013-09-08, 20:28, Jesse Phillips wrote:

 On Sunday, 8 September 2013 at 18:13:52 UTC, Simen Kjaeraas wrote:
 In response to Walter's DIP47 I have created my own take on what I see  
 as the main problem:

 http://wiki.dlang.org/DIP48

 Destroy!

Personally I find this practice of creating a competing DIP to be very annoying. This was specifically outlined in the first DIP: http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP1 "A DIP should represent a problem the community wants to resolve and not just a specific resolution to a problem. This allows the DIP to be a central hub for any given problem. If a resolution is radically different from the current state of the DIP, an alternative DIP could be created as a sub page, e.g. under /DIPs/DIP1/Alternatives/Alt1?. The DIP should be created in its entirety such that it could replace the current DIP through simple copy and past." By creating separate DIPs and new forum posts, the discussion is segregated instead of being a progression to a solution. How is one to know that these two DIPs are to address the same problem: "Outline Member Functions of Aggregates" "Interface specifications for aggregate types"

Very good point, and perhaps we should be doing DIPs differently. Or perhaps the whole system is a bit wrong, in that the problem and the solution are presented alongside one another. If instead the problem was explained on the top, and suggested solutions discussed independently below (or even on separate pages). The way it is now, I for one feel that the DIP is the creator's property and should not be edited. -- Simen
Sep 08 2013
prev sibling next sibling parent Jacob Carlborg <doob me.com> writes:
On 2013-09-08 20:13, Simen Kjaeraas wrote:
 In response to Walter's DIP47 I have created my own take on what I see
 as the main problem:

 http://wiki.dlang.org/DIP48

As I wrote in the DIP47 thread: What's wrong with this currently working code: class Foo { void foo (); void foo () { writeln("Foo.foo"); } } void main () { auto foo = new Foo; foo.foo(); } -- /Jacob Carlborg
Sep 09 2013
prev sibling parent "Simen Kjaeraas" <simen.kjaras gmail.com> writes:
On Mon, 09 Sep 2013 09:13:55 +0200, Jacob Carlborg <doob me.com> wrote:

 On 2013-09-08 20:13, Simen Kjaeraas wrote:
 In response to Walter's DIP47 I have created my own take on what I see
 as the main problem:

 http://wiki.dlang.org/DIP48

As I wrote in the DIP47 thread: What's wrong with this currently working code: class Foo { void foo (); void foo () { writeln("Foo.foo"); } } void main () { auto foo = new Foo; foo.foo(); }

The fact that I can easily write this: class Foo { // Declarations: void foo(); // Definitions: void foo() { writeln("Foo.foo"); } void bar(int n) { writeln("Foo.bar(",n,")"); } } And the compiler will keep completely quiet about bar not being mentioned in the declarations section. -- Simen
Sep 09 2013