See http://www.syntax-k.de/projekte/go-review
______________________________________________________
Anyone comparing the appearance of Go source code to his favourite
C-oid gets a chance to express her basic attitude: Is Go partly like
what you love, or partly like what you hate? It has a bit of annoyance
for everyone, which is what you get when trying to do better. It
creates an own feeling, so you can't claim it just mimics some other
language. Well done!

In the end, we get a simple and clean type system that is easy to
learn, but unusual. It might be a major obstacle in selling Go to CS
beginners, who usually get taught classic OO principles. Its
simplicity and safety, however, make it well-suited for self-taught
programmers.

"Effective Go" is a great document to read if you come from a classic
OO background. It's important to have such a document, but it is not
complete enough. Researching and writing this review has taught me
more about Go than writing the application which I did in parallel.
There are so many things you are used to do which Go does differently
but equally well (or even better), and I wasn't aware of them. There
is a constant feeling of "Go can't do X" while it actually can do it
well, only way differently.

For a fair image of what Go's potential is, note the age of Go. The
first release was less than 2 years ago and declared stable enough
since this year. Look at what Go already does today, and imagine what
would be possible if Go had the same commercial backing as Java or
JavaScript have. The best example of a successful introduction of a
new language is Java, and now compare Go's feature set to that of Java
1.0. We have a winner here.

But to leverage that potential, the language needs some momentum.
Either through an open, active and growing community, or through
corporate backing. I'd prefer the community, but for real-world
success, there probably has to be some corporate involvement. Bonus
points if Oracle messes up the Java business even more :)

Really, Go can be the answer to the shortcomings of all currently
popular system programming languages, it just needs adoption.

And as a final note, I have seen a fair amount of criticism of Go on
the internet, which I cannot ignore, so here it goes: Most of these
people didn't actually look at it. Go is different, even though it
still looks kinda-C. It isn't. It's not C++, nor Objective C, and it
doesn't try to be! So stop saying "Who needs Go when we have
C++/Objective C?" already. Check out how Go tries to solve the same
problems in a radically different way. Accept the fact that OO can be
done in different ways. You may have opted to ignore it, but if you
use JavaScript, you already use something that isn't class-based OO.
Do not just accept it, actively use the power of that different
approach. To the other ones, those who think Go isn't taking this far
enough: Remember this is a real-world language. And it is there. And
it works. What use is a beautifully constructed language that doesn't
get stable, finished or fast enough for real-world problems? It's easy
to nitpick on details, but to make it a real product, you need to
address all constraints. That's what Go does.
____________________________________________________________________________





Best

A. Mani

-- 
A. Mani
ASL, CLC,  AMS, CMS
http://www.logicamani.co.cc

_______________________________________________
Ilugd mailing list
Ilugd@lists.linux-delhi.org
http://frodo.hserus.net/mailman/listinfo/ilugd

Reply via email to