Linked by Hadrien Grasland on Wed 15th Jun 2011 07:32 UTC, submitted by ebasconp
General Development "The recently finished C++ ISO standard, with the working name of C++0x, is due to be published this summer, following the finishing touches to the ISO spec language and standards wonks agreed upon in March."
Thread beginning with comment 477254
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[3]: Basically, awesome
by moondevil on Wed 15th Jun 2011 12:26 UTC in reply to "RE[2]: Basically, awesome"
moondevil
Member since:
2005-07-08

There is nothing spectacular about Go interfaces besides not having to write an "implements" somewhere.

I like the language, but if you know your way around programming with interfaces and protocols in another languages, you will easily find similar features.

Reply Parent Score: 2

RE[4]: Basically, awesome
by FealDorf on Thu 16th Jun 2011 01:33 in reply to "RE[3]: Basically, awesome"
FealDorf Member since:
2008-01-07

The thing is that I feel it will increase the flexibility of the language as changes in an interface doesn't require the implementation/class to make the respective change.

The bit about writing "implements" is in some ways same as the "auto" keyword in C# and D -- it saves a LOT of retyping and improves interface-implementation segregation.

New interfaces can also be written as per one's requirements and the older classes needn't implement it. In general, we write wrappers to take care of this.

IIRC, most of the C++-inspired languages don't feature method renaming or deleting abilities as in Eiffel which is where the strength of nominal typing lies. Without that, it's a constrained form of Go styled interfaces since the method signature has to be the same.

Reply Parent Score: 1

RE[5]: Basically, awesome
by moondevil on Thu 16th Jun 2011 06:34 in reply to "RE[4]: Basically, awesome"
moondevil Member since:
2005-07-08

The thing is that I feel it will increase the flexibility of the language as changes in an interface doesn't require the implementation/class to make the respective change.


Since when? It is like any other programming language
that supports interfaces. If the interface changes somehow, the methods of the types that implement the interface need to be modified accordingly.


New interfaces can also be written as per one's requirements and the older classes needn't implement it. In general, we write wrappers to take care of this.


Same thing as in any other class with interfaces. I fail to see your point here.

Go is a very nice language, I play a lot with it and even contributed changes back. But lets not confuse the language marketing with facts.

Reply Parent Score: 3

RE[5]: Basically, awesome
by vodoomoth on Thu 16th Jun 2011 15:19 in reply to "RE[4]: Basically, awesome"
vodoomoth Member since:
2010-03-30

The thing is that I feel it will increase the flexibility of the language as changes in an interface doesn't require the implementation/class to make the respective change.

Do not wish for that: it would be a large open and welcoming avenue for bugs and compatibility problems. Imagine this "feature" in a plugin environment: nightmares more than you want.

Reply Parent Score: 3

RE[4]: Basically, awesome
by Timmmm on Thu 16th Jun 2011 14:01 in reply to "RE[3]: Basically, awesome"
Timmmm Member since:
2006-07-25

There is nothing spectacular about Go interfaces besides not having to write an "implements" somewhere.


That's a pretty big thing IMO. Especially if you're working with code you can't change.

Reply Parent Score: 2

RE[5]: Basically, awesome
by moondevil on Fri 17th Jun 2011 15:12 in reply to "RE[4]: Basically, awesome"
moondevil Member since:
2005-07-08

Why? The code you write to support an interface needs to be all on the same package.

It is not possible to add interface support to a type that lives in another package.

Reply Parent Score: 2