Go nails code readability and documentation better than any other language I'm aware of.<p>For example, look at the package documentation for Go's list data structure at <a href="http://golang.org/pkg/container/list/" rel="nofollow">http://golang.org/pkg/container/list/</a>.<p>5 seconds of reading this you immediately get what the package does and how to use it. Now let's say you want to know how the list is implemented. No problemo. Click the package files link list.go, <a href="http://golang.org/src/pkg/container/list/list.go" rel="nofollow">http://golang.org/src/pkg/container/list/list.go</a>, and you're presented with very readable source code.<p>Now compare this with Java. I just Google'd Java List. First link is this: <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html" rel="nofollow">http://docs.oracle.com/javase/6/docs/api/java/util/List.html</a><p>Documentation looks OK, but wait, this is the interface. I want to see docs for a concrete implementation. I'm tempted to click on the AbstractList link, but oh wait, that's just another non-concrete class that other List classes probably inherit from. Let's see, let's go to the ArrayList ... this looks good. <a href="http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html" rel="nofollow">http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList...</a><p>Nice. I wonder how they implemented this. And I'll keep wondering because I can't find a link to the source code. Maybe there is a link to it, maybe not. We're talking about Oracle so without knowing better, I'll assume there is not ...<p>Let's try Scala. Google "Scala List". Click on first link. <a href="http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.List" rel="nofollow">http://www.scala-lang.org/api/current/index.html#scala.colle...</a><p>What the fuh is a "sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with Product with GenericTraversableTemplate[A, List] with LinearSeqOptimized[A, List[A]]"<p>Oh sweet, this thing has all kinds of methods, i.e. ++, ++:, +:, /:, :+, ::, :::, :\<p>Reading further, I see section in the documentation called "Shadowed Implict Value Members". Wow, I have no idea what that is.<p>Looking back to the Go documentation, I immediately "relax" as another commenter put it.<p>For some reason, I think Scala will end up being the next Java. It has so much momentum, runs on the JVM, has seamless interop with Java code. Has the Play Framework, AKKA, and thousands of other awesome libraries written for it. And if Scala powers Twitter, then I think this answers the scalability and concurrency question.<p>While I'm bullish on Scala, at the end of the day, I find Go's simplicity make it more beautiful than any other language.