Notes about Go

  •     In (path ChecksumIterator) Iter() you see something which is hard to explain verbally. Essentially, it provides a generator façade for what is underneath the surface a bucket being filled by four threads ("goroutines") concurrently. Unless things have changed markedly, it would be very difficult in Python to create a generator which produces its values with the help of some number of threads.
    
    This is actually very easy in Python -- use a Queue[1], spawn some threads to populate it, and read from it in a generator.

    Go seems interesting, but many/most of its praised features are already done better in other languages. For example, while it supports "thousands of goroutines" (green threads), Haskell supports millions of green threads[2]. Even Stackless, which is not known for performance, has faster gthreads[3].

    Go also perpetuates several mistakes from C (ugly brace-delimited syntax) while dropping the true genuinely useful features (pointer arithmetic, manual memory management). Considering the wealth of high-quality, high-performance languages with mature library and compiler support (Haskell, Erlang, Factor, OCaml, even Ada), I'm mystified as to why Google would invest the time and energy into promoting yet another C clone.

    I suppose in a year, Go will be another mostly-abandoned language with a few users poking around the mailing list asking "what happened?". Most News.YC readers can name at least one language released to great fanfare, but with little developer adoption.

    [1] http://docs.python.org/library/queue.html

    [2] http://www.reddit.com/r/programming/comments/a4n7s/stackless...

    [3] http://dalkescientific.com/writings/diary/archive/2009/11/15...

  • If not for Google, GO would never have been noticed much less commented on by anyone important.

  • and there's no 9P library in sight

    Well, it so happens that someone wrote one just in time - http://bitbucket.org/f2f/go9p/

    Funny coincidence that I was reading ths story right now, and I got a mail in the 9fans archive about this 9p implementation written in Go, and to top it, look at the domain name !

  • An excellenrt arrticle with a couple of verey good examples.

  • > Plan 9, for example, has a fan mailing list, but there is no official mailing list sanctioned by the labs, and never has been. If you asked for a feature in Plan 9, you were usually told to go _ yourself, the blank usually being 'write it' but many other suggestions were also common. XML is the hated enemy, if you don't like the colors, edit the source code, Emacs is the devil, what other platforms, and 9P is the only protocol anyone will ever need.

    9fans is the official mailing list Dan, you should know that. I think you are characterising us as a bit hostile. We are rightly dubious about the merits of XML. Emacs is just a tool on another system. I would say "Go write it yourself" is a usual response from a small group of devs working unpaid on a project. Considering the number of non 9p protocols implemented in plan9 I think you are being rather unfair.