Re: [BLACKBOX] Go

From: [at]} <Josef>
Date: Fri, 13 Nov 2009 09:53:23 +0100

----boundary-LibPST-iamunique-639481662_-_-
Content-type: text/plain

Hi Everybody!

I have just scanned the Go language spec and it looks a lot
like a mix from Oberon/CP and C with some interesting syntactical
ideas borrowed from functional languages, I guess,
but nothing really new.

Regarding OO features it seems weak to me.
It has type bound procedures but no inheritance.
It doesn't even have type extension for records as the
original Oberon introduced.
(Please correct me if I missed something in the spec.)

All it has is an interface type with structural equivalence rules.
An interface is a purely abstract type that only specifies a set of
method signatures. It is compatible with any type that has
the appropriate set of type bound procedures, which is checked
by the compiler.

I guess it would be very hard to program something like the Oberon
system with its many extensible message records in Go. The message
records would have to be expressed by interfaces with setter and getter
functions for accessing the record fields. And there is no subclassing for
creating extended message types.
It would also be very hard to program in a Java/C++-OO-style with
tons of methods inherited by subclasses. These would have to
be replicated by the programmer.
May be they envision a new OO-programminig style that
I am not aware of.

This is at least my understanding from the language spec.

A questionable point, in my oppinion, is the way exports are marked.
Go uses the convention that a name starting with a capital letter is public.
So when you decide to export a previously private name later on,
you have to change that name.
For me, the funniest part of the language spec is the name for threads in Go.
They are called 'goroutines'.

- JT


----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy----boundary-LibPST-iamunique-639481662_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIEhpIEV2ZXJ5Ym9keSFccGFyDQpccGFyDQpJIGhh
dmUganVzdCBzY2FubmVkIHRoZSBHbyBsYW5ndWFnZSBzcGVjIGFuZCBpdCBsb29rcyBhIGxvdFxw
YXINCmxpa2UgYSBtaXggZnJvbSBPYmVyb24vQ1AgYW5kIEMgd2l0aCBzb21lIGludGVyZXN0aW5n
IHN5bnRhY3RpY2FsXHBhcg0KaWRlYXMgYm9ycm93ZWQgZnJvbSBmdW5jdGlvbmFsIGxhbmd1YWdl
cywgSSBndWVzcywgXHBhcg0KYnV0IG5vdGhpbmcgcmVhbGx5IG5ldy5ccGFyDQpccGFyDQpSZWdh
cmRpbmcgT08gZmVhdHVyZXMgaXQgc2VlbXMgd2VhayB0byBtZS5ccGFyDQpJdCBoYXMgdHlwZSBi
b3VuZCBwcm9jZWR1cmVzIGJ1dCBubyBpbmhlcml0YW5jZS5ccGFyDQpJdCBkb2Vzbid0IGV2ZW4g
aGF2ZSB0eXBlIGV4dGVuc2lvbiBmb3IgcmVjb3JkcyBhcyB0aGUgXHBhcg0Kb3JpZ2luYWwgT2Jl
cm9uIGludHJvZHVjZWQuXHBhcg0KKFBsZWFzZSBjb3JyZWN0IG1lIGlmIEkgbWlzc2VkIHNvbWV0
aGluZyBpbiB0aGUgc3BlYy4pXHBhcg0KXHBhcg0KQWxsIGl0IGhhcyBpcyBhbiBpbnRlcmZhY2Ug
dHlwZSB3aXRoIHN0cnVjdHVyYWwgZXF1aXZhbGVuY2UgcnVsZXMuXHBhcg0KQW4gaW50ZXJmYWNl
IGlzIGEgcHVyZWx5IGFic3RyYWN0IHR5cGUgdGhhdCBvbmx5IHNwZWNpZmllcyBhIHNldCBvZlxw
YXINCm1ldGhvZCBzaWduYXR1cmVzLiBJdCBpcyBjb21wYXRpYmxlIHdpdGggYW55IHR5cGUgdGhh
dCBoYXNccGFyDQp0aGUgYXBwcm9wcmlhdGUgc2V0IG9mIHR5cGUgYm91bmQgcHJvY2VkdXJlcywg
d2hpY2ggaXMgY2hlY2tlZFxwYXINCmJ5IHRoZSBjb21waWxlci5ccGFyDQpccGFyDQpJIGd1ZXNz
IGl0IHdvdWxkIGJlIHZlcnkgaGFyZCB0byBwcm9ncmFtIHNvbWV0aGluZyBsaWtlIHRoZSBPYmVy
b24gXHBhcg0Kc3lzdGVtIHdpdGggaXRzIG1hbnkgZXh0ZW5zaWJsZSBtZXNzYWdlIHJlY29yZHMg
aW4gR28uIFRoZSBtZXNzYWdlXHBhcg0KcmVjb3JkcyB3b3VsZCBoYXZlIHRvIGJlIGV4cHJlc3Nl
ZCBieSBpbnRlcmZhY2VzIHdpdGggc2V0dGVyIGFuZCBnZXR0ZXJccGFyDQpmdW5jdGlvbnMgZm9y
IGFjY2Vzc2luZyB0aGUgcmVjb3JkIGZpZWxkcy4gQW5kIHRoZXJlIGlzIG5vIHN1YmNsYXNzaW5n
IGZvclxwYXINCmNyZWF0aW5nIGV4dGVuZGVkIG1lc3NhZ2UgdHlwZXMuXHBhcg0KSXQgd291bGQg
YWxzbyBiZSB2ZXJ5IGhhcmQgdG8gcHJvZ3JhbSBpbiBhIEphdmEvQysrLU9PLXN0eWxlIHdpdGgg
XHBhcg0KdG9ucyBvZiBtZXRob2RzIGluaGVyaXRlZCBieSBzdWJjbGFzc2VzLiBUaGVzZSB3b3Vs
ZCBoYXZlIHRvIFxwYXINCmJlIHJlcGxpY2F0ZWQgYnkgdGhlIHByb2dyYW1tZXIuXHBhcg0KTWF5
IGJlIHRoZXkgZW52aXNpb24gYSBuZXcgT08tcHJvZ3JhbW1pbmlnIHN0eWxlIHRoYXRccGFyDQpJ
IGFtIG5vdCBhd2FyZSBvZi5ccGFyDQpccGFyDQpUaGlzIGlzIGF0IGxlYXN0IG15IHVuZGVyc3Rh
bmRpbmcgZnJvbSB0aGUgbGFuZ3VhZ2Ugc3BlYy5ccGFyDQpccGFyDQpBIHF1ZXN0aW9uYWJsZSBw
b2ludCwgaW4gbXkgb3BwaW5pb24sIGlzIHRoZSB3YXkgZXhwb3J0cyBhcmUgbWFya2VkLlxwYXIN
CkdvIHVzZXMgdGhlIGNvbnZlbnRpb24gdGhhdCBhIG5hbWUgc3RhcnRpbmcgd2l0aCBhIGNhcGl0
YWwgbGV0dGVyIGlzIHB1YmxpYy5ccGFyDQpTbyB3aGVuIHlvdSBkZWNpZGUgdG8gZXhwb3J0IGEg
cHJldmlvdXNseSBwcml2YXRlIG5hbWUgbGF0ZXIgb24sXHBhcg0KeW91IGhhdmUgdG8gY2hhbmdl
IHRoYXQgbmFtZS5ccGFyDQpGb3IgbWUsIHRoZSBmdW5uaWVzdCBwYXJ0IG9mIHRoZSBsYW5ndWFn
ZSBzcGVjIGlzIHRoZSBuYW1lIGZvciB0aHJlYWRzIGluIEdvLlxwYXINClRoZXkgYXJlIGNhbGxl
ZCAnZ29yb3V0aW5lcycuXHBhcg0KXHBhcg0KLSBKVFxwYXINClxwYXINClxwYXINCi0tLS1ccGFy
DQpUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5ICJTSUdOT0ZGIEJMQUNL
Qk9YIiB0byBMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0h9fQBja0Jv
----boundary-LibPST-iamunique-639481662_-_---
Received on Fri Nov 13 2009 - 09:53:23 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:30:40 UTC