2,275 karma · joined June 4, 2011
>There's an important way in which embedding differs from subclassing. When we embed a type, the methods of that type become methods of the outer type, but when they are invoked the receiver of the method is the inner type, not the outer one. In our example, when the Read method of a bufio.ReadWriter is invoked, it has exactly the same effect as the forwarding method written out above; the receiver is the reader field of the ReadWriter, not the ReadWriter itself.
The workflow for using them is very different. A unit test suite contains a finite number of assertions and, assuming no bugs, should run in a relatively small (or at least bounded) amount of time. A generative test, however, usually can run forever _by design_.
A typical workflow is to start a run overnight and see if it caught anything in the morning. If the generative suite finds any bugs, you turn the specific cases that caused the failures into unit tests and commit them.
Though currently unprofitable, Lyft's ride economics appear to be going in the right direction.(Although, to be fair, most people run a Linux dom0.)
A good introduction to the topic from Paul Bloom (a professor of developmental psychology at Yale) is here: http://oyc.yale.edu/psychology/psyc-110/lecture-6.
Go is not C, and it's not going to be like C. It's not really reasonable to expect it to have the same toolchain conventions as C. I'm not saying the choices to Go authors have made are necessarily good, but I don't dislike them only because they're different from C.
Speaking only for myself, I don't see a conflict of interest between us and PayPal. PayPal has embraced our APIs and approach to support as the future of how merchants will integrate with PayPal, and we've been able to leverage PayPal's consumer brand to build better products for our merchants.
I was initially very, very skeptical of our acquisition, but I have to admit it's turned out well. I don't think there is any risk of them underfunding or cannibalizing us.