Whenever speed is key, I use Go. Its concurrency primitives are dead simple. It has excellent support for cutting-edge technologies like WebSockets and SPDY (these libraries/"packages" were written by Google), as well as MongoDB (see "mgo").
I'm using Go in production (for an almost-complete MVP). For a telephony app I had to dial 100 simultaneous phone numbers to bring people into conference calls. Trying that in Python maxed out my EC2 instance's resources. I had to kill and restart it from the AWS web interface.
Then I rewrote that part in Go. I was staring at the output of htop (similar to top) when it ran and thought something was wrong; it used a few megs of RAM, no noticeable CPU, and finished in 0.59 seconds _on a micro instance_. Now you can see why Google wanted such a language!
I never appreciated static typing ("who wants to go from Python to Java or C++?") until Go, which makes very heavy use of type inferencing. The upshot is you'll find yourself declaring types 0 times instead of twice in Java. In Python and Ruby you don't declare them at all, resulting in type errors _all over the place_ and programs that run ~20 times slower; see http://shootout.alioth.debian.org/u64q/benchmark.php?test=al....
The Go compiler tells me which lines contain the type errors. Usually my program is correct once these errors are gone. Can't say the same for Python, whose apps can run for days before a corner case is hit, exposing a type error that would've been caught at compile time in Go.
It's interesting that you mentioned Clojure. Well, it's powerful alright, but I found it to be extremely complicated (does a language _really_ need 4 kinds of concurrency and to consist of literally 500 functions?)
If you believe as I do -- as do most who appreciate small, simple, but extremely powerful languages like Python and C -- that simplicity is a feature, you will love Go. If you love Java, C++, D, and other huge languages, consider those or something like Scala or Clojure instead. IMO, doing so means giving up clarity/comprehensibility for a longer list of features, almost all of which _can_ be useful, but all of which make mastering the language much more difficult.
Go has been my favorite language for about a year now. Its only weakness is lack of library and/or framework support, which is an occasional bummer.
That said, I very strongly recommend giving Go a try if you haven't already. I played with Clojure for months till it finally made sense and I saw how powerful it _could_ be, but I still couldn't do anything with it that I couldn't do in Python.
After 2 hours with Go (1.5 years ago), I wrote my first ever concurrent program... _trivially_. This can not be stressed enough. Want a function call to `f` to be non-blocking? Type `go f()`. Yes, it's that simple. Launch a couple functions like that, and bam, you're doing extremely efficient concurrent programming.
If you want the convenience of Python or Ruby plus the speed and type safety of C++, give it a shot! http://golang.org
I could not have imagined writing this in Python or Ruby and I don't know Clojure at all.
Go was good because it's close to a systems language and has great concurrency mechanisms. The program makes extensive use of goroutines and channels for communication. I also make use of a large number of packages from the Go library as well as one external package for memcached integration.
The total code is about 4,000 lines.
Did you run into any difficulties managing 4000 lines of code?
We were actually having a talk today about using it here on an embedded Linux device we produce. I'm not very confident anything will come of it but I think it would be a good fit.
Mono also offers the possibility to fully AOT your .NET application.
Most Java VMs can be made to fully JIT the code, bypassing any interpretation with flags similar to -XX:CompileThreshold in Hotspots' case.
If you prefer compile Java directly to native code, you can make use of gcj, Aonix Perc or Excelsior JET.
Language != Implementation
> The biggest benefits over python/ruby are static typing and that it is compiled.
I find channels, interfaces, and attaching functions to data (as apposed to attaching methods and data to objects) rather compelling features personally.