Linked by Thom Holwerda on Mon 11th Feb 2013 22:59 UTC
General Development "I feel like writing about the Go programming language (or 'Golang') today, so instead today's topic is computer stuff. For the record, the language I've programmed the most in has been Python, so that’s the perspective I'm analyzing it from." Some good and bad things about Go.
Thread beginning with comment 552397
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[9]: My thoughts on Go
by satsujinka on Wed 13th Feb 2013 22:33 UTC in reply to "RE[8]: My thoughts on Go"
satsujinka
Member since:
2010-03-11

If you use interfaces as a primary means of tagging your objects then, yes you can't do that in Go.

However, interfaces aren't just a means of saying this object can do this, that, and the other. The methods of an object do that just fine; there's no need to be redundant. Instead, Go uses interfaces as a contract. If I need a Reader then I'm going to be using a Read method. Which object this is doesn't matter.

I commented on this earlier, but Go's interfaces are backwards in comparison to most others. It's not the object that implements an interface, but the interface that defines an object.

Reply Parent Score: 2

RE[10]: My thoughts on Go
by lucas_maximus on Wed 13th Feb 2013 23:17 in reply to "RE[9]: My thoughts on Go"
lucas_maximus Member since:
2009-08-18

If you use interfaces as a primary means of tagging your objects then, yes you can't do that in Go.


However, interfaces aren't just a means of saying this object can do this, that, and the other. The methods of an object do that just fine; there's no need to be redundant. Instead, Go uses interfaces as a contract. If I need a Reader then I'm going to be using a Read method. Which object this is doesn't matter.


Except that contract isn't explicitly stated. I don't know that by looking at the code. I don't think that is helpful when it comes to code readability. I am big on that.

Reply Parent Score: 2

RE[11]: My thoughts on Go
by satsujinka on Wed 13th Feb 2013 23:25 in reply to "RE[10]: My thoughts on Go"
satsujinka Member since:
2010-03-11

What are you talking about? Of course the contract is apparent:

func Example(Reader r) { ... }

The contract of this function states that it's going to use a Read method provided by R (assuming typical Go naming conventions.)

Reply Parent Score: 2