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