Maybe somebody already proficient in Rust, reading this, can contribute?
What are you talking about? Go code generation is getting better all the time.
> Mosquitto was compiled with gcc 4.8.2, the Go implementation was executed with go run, the D implementation was compiled with dmd 2.0.64.2 and the Erlang version I’m not sure.
The "I'm not sure" speaks for itself, but go run also includes both compilation time and execution time and they're comparing it against just the execution times of the other languages. That's not exactly an apples to apples comparison.
The Erlang code looks very nice. If you read this, great work Patrick!
https://bitbucket.org/pvalsecc/
Nice use of gen_fsm + binary matching.
Here is an example of the client code that takes only 200 lines:
https://bitbucket.org/pvalsecc/erlangmqtt/src/f37505188c1f1c...
Umbrella Project can be found on https://github.com/erlio/vernemq as well as our website https://verne.mq
Benchmarking the entire spec versus only the minimal set is almost certainly part of the problem here. If you want to benchmark implementations against each other, you should probably make sure they implement the same thing!
Edit: After a quick search, it looks like Go 1.2 was released only 4 days prior to this article being posted.
Thanks to the author for including standard deviation numbers and not just the averages like so many other "benchmarks".
This is an odd way to measure latency. Could someone explain further?
As for showing "their"/"my" language: there were implementations from 4 different sources, and I didn't write the benchmarks; the guy who wrote the Go implementation did (and that's why the benchmark app is in Go).