vibe.d / experience / feedback
Ola Fosheim Grøstad
ola.fosheim.grostad at gmail.com
Mon Oct 12 19:58:12 UTC 2020
On Monday, 12 October 2020 at 11:06:55 UTC, Robert M. Münch wrote:
> Go seems to be kept as simple as possible, even if you have to
> write more code. Which is, in the long run, the cheaper and
> smaller burden. No tricks, no surprises... that has a lot of
> merits.
Btw, Go has some major weaknesses related to tricks and surprises:
1. No exceptions... they encourage old 70s-style checking of
errors everywhere. That makes code much less readable. It is
possible to roll your own mechanism using their panic() feature,
but most Go enthusiasts frown upon that. (ignore them, they are
clueless)
2. Not as strong typing as it should have. Things related to
interfaces may not be detected until runtime if you get sloppy
with it. (avoid very generic interfaces)
3. I believe dynamic arrays are reallocated automatically, like
in D. So in Go, if you extend a dynamic array it will relocate
and old slices will peek to the old copy:
a := make([]int, 3)
b := a[:]
a = append(a,4,5,6)
b[2] = 3;
fmt.Println(a)
fmt.Println(b)
output:
[0 0 0 4 5 6]
[0 0 3]
So you have to define your own coding standard to avoid such
issues. Basically, ignore what is touted as Go idioms and create
a ruleset that makes sense for you.
More information about the Digitalmars-d-learn
mailing list