But don't mistake this for having the same runtime characteristics- For what its worth the Computer Language Benchmarks Game shows Go as generally being faster, using much less memory and less code.
http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?t...
Also with clojure, the actual timeconsuming calculations can be made with java and that should be at least as fast as go (with a bit more memory).
So all in all I value the architectural things much more then pure speed. Go simply has a diffrent target then Clojure.
:-)
> can be made with java
Would that be idiomatic Clojure? :-)
Yes it would. Clojure is design with that idea in mind, make it connect really closly to java so that you can interop with no overhead.
Based on what?
You can find the code here: http://github.com/stuglaser/pychan
And documentation here: https://chan.readthedocs.org/en/latest/
This is also a good example why macros are just awesome. Go is a language design to work well with goroutins and channels, but the clojure code looks just as good and readable. You could simply not have such idiomatic use of these concepts without macros.
Or am I wrong, can a flexible language like scala or python be extended to look as good for that usecase? I dont know enougth of the tricks scala people use, I cant juge if it is possible.