Go Programming talk [OT]
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Mon Jun 7 04:18:17 PDT 2010
On 06/06/2010 05:13 PM, bearophile wrote:
> A recent talk about Go, Google I/O 2010 - Go Programming, the real
> talk stops at about 33 minutes:
> http://www.youtube.com/user/GoogleDevelopers#p/u/9/jgVhBThJdXc
>
> At 9.30 you can see the switch used on a type type :-) You can see a
> similar example here:
> http://golang.org/src/pkg/exp/datafmt/datafmt.go Look for the line
> switch t := fexpr.(type) {
>
>
> Originally Go was looking almost like a toy language, I thought
> Google was thinking of it as a toy, but I now think Google is getting
> more serious about it, and I can see Go has developed some serious
> features to solve/do the basic things.
>
> So maybe Andrei was wrong, you can design a good flexible language
> that doesn't need templates.
Which part of the talk conveyed to you that information?
> Compared to Go D2 is way more complex. I don't know if people today
> want to learn a language as complex as D2.
>
> Go target flexibility and performance is not C++-class one (but
> probably it's not too much difficult to build a compiler able to
> produce very efficient Go programs).
>
> In the talk they show some interfaces and more things done with free
> functions, I don't know those things get compiled in assembly.
>
> Bye, bearophile
I'm surprised you found the talk compelling, as I'm sure you know
better. The talk uses a common technique - cherry-picking examples and
avoiding to discuss costs and tradeoffs - to make the language look
good. In addition, the talk put Go in relation with the likes of Java,
C++, and Python but ignores the fact that Go's choices have been made by
other languages as well, along with the inherent advantages and
disadvantages.
The reality is that in programming language design decisions that are
all-around wins are few and far apart; it's mostly tradeoffs and
compromises. Structural conformance and implicit, run-time checked
interfaces are well-known and have advantages but also disadvantages.
Flat, two-level hierarchies with interfaces and implementations are also
well-known along with their with advantages and disadvantages. I think
an honest discussion - as I hope is the tone in TDPL - serves the
language and its users better than giving half of the story.
Andrei
More information about the Digitalmars-d
mailing list