Why does everyone keep saying Go has C-level performance? The latest Alioth benchmarks indicate that it is only about half as fast as C. http://benchmarksgame.alioth.debian.org/u32/go.php
And the part about Go being faster than Java is certainly not true. Java blows Go out of the water in certain benchmarks.
There are a lot of reasons to like Go, and it is pretty fast, but it’s still not “within a close margin” of C’s performance.
We’re on a logarithmic scale, and there are clusters. Looking at the Mandelbrot results, you can see one cluster with most members at around 50× slower than C (Smalltalk, Lua, JRuby, and PHP, with Python and MRI Ruby as outliers on the slow side, and HiPE as an outlier on the fast side) and another cluster between 0.9× and 3× as slow as C (C, Ada, Java, C#, Haskell, Dart, and barely SBCL). Go is definitely in the “C-level” cluster and not the “PHP-level” cluster.
Why does everyone keep saying Go has C-level performance?
Probably because we each have a different perspective. For example, I can understand the “within a close margin of C’s performance” moniker if you’re moving from a language that is 40x slower to a language that is 2-4x slower. You may think that 2-4x slower is not a close margin, but someone else might. Depends on what you’re doing I guess.
Exactly. Coming from Python, Go gives me a set of performance options with lower effort than I would have to invest if I was to use C instead.
I suppose the “close margin” is open to interpretation, but saying that Go is “closer to the performance of native languages than other enterprise level languages such as Java, Scala, Erlang et al.” is clearly untrue. Erlang is slower than Go, but Java and Scala are both faster than Go in certain benchmarks. On that note, Haskell, OCaml, and SBCL are also faster than Go at some benchmarks. That’s why I think saying “Go has C-level performance” is a bit disingenuous, since a lot of other languages have similar or better performance.
The phrase “native languages” doesn’t even make sense. How is go not a native language itself?
You know, it’s possible to disagree with people without accusing them of dishonesty, which is what you are doing when you call them “disingenuous”.
Unfortunately, I can’t downvote you for extreme rudeness; the closest options are “troll” (which would imply that you’re being disingenuous, which I have no reason to believe) and “spam”. So I’ve chosen “spam”.
Meh, these kinds of articles actually turn me off from a language. I know I shouldn’t judge a language by its advocates, but I figure if I start using the language more, they’re the kind of people I’m going to be dealing with.
If you’re going to pitch a language for enterprise, you need to address your points specifically to the languages already in use. This article really falls flat in that regard. Garbage collection? Compared to java, it’s pretty bad. Multi platform? Is recompiling for linux easier than copying a jar file to linux? This isn’t a list of benefits, it’s a checklist of minimally viable features for any enterprise language. I would say, by many of these critieria, both Java and C# make better enterprise languages (C# losing first class multiplatform support). C++ is really the misfit that wedged its way into enterprise in the early days, but I don’t hear much about new C++ enterprise projects launching.
Even though I find the language rather useful, I find all the “why I
like Go” articles to be rather off-putting, particularly without a
reference point of why it worked for a particular project.
It’s the zeal of the newly converted. When most humans discover a new thing, the first thing they want to do is shout it from the roof tops. At least, this has been my experience with myself and other people.
I think if you try you can find enough blogs like this one about any new language. The problem is that go is over represented on this board.