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.
I think the Google angle has been overblown. Sure, all the designers are from Google, but Google employs a number of people who are prominent in one language or another - Guido, for one, and Bram Moolenaar is working on Zimbu. It got posted to reddit by one of the Google people as "from Google", and the first talk was done at Google, so I think everyone just made an assumption. Google is nowhere on the front page of golang.org, and the developers are using @golang.org addresses.
I bet the developers are surprised at the media storm and wouldn't have otherwise gotten it except for that initial Reddit post explicitly tying it to Google.
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...