Linked by MOS6510 on Thu 10th Jan 2013 23:25 UTC
Thread beginning with comment 548519
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.
Furthermore, Go tip (1.1 in dev) has many many more optimizations than Go 1.0.3 and the compiler is 30% faster yet....
Sounds great, but it most likely means that the original compiler had lots of untapped speed improvements prior to this upcoming version. Implementing optimizations to be applied during code generation will slow the compiling down.
Oh, and both the Go compiler and the Go runtime are written in, you guessed it, C
1. Your link does not include Go in the comparison.
Yes it does, it's two steps behind Java 7.
Your link is only considering execution time
That is how you measure language performance. Memory usage and code size are other metrics.
The is important because although Go is a little slower than Java (which is actually one of the fastest languages, BUT Java uses MUCH more memory
I actually don't think that matters much when it comes to the areas where Go and Java are likely to be deployed (which are unlikely memory constrained areas), obviously it's not a bad trait to use less memory though.
Still I think Go has every chance of eventually beating Java in raw performance, currently Java has what is probably the best in class garbage collector, Go's garbage collector is (as of 1.03 atleast) likely far behind.
Also in overall compiler optimizations the Go compiler sometimes loses out heavily to Gccgo on the exact same code, indicating that there is still alot of room for improvements to be made.
Again, I mean modern C as in C the general purpose language of the 1970/80s, not C is the systems programing language of today.
Well if you had framed it as such then I would have had no problem with your claim, although I would still find it odd to compare Go with C's much more widespread usage in the 70/80's as opposed to the areas it mainly occupies today.
...I was responding to someone who was comparing Go and D...
Ah, my bad, sorry.
Even though it didn't appear so initially I think we agree more than we disagree. Perhaps with different emphasis, but:
"Your link is only considering execution time
That is how you measure language performance. Memory usage and code size are other metrics. " I disagree with you here. Performance is multidimensional and those three factors are the primary factors.
Look at something like car performance, it is a combination attributes like maximum speed, acceleration, breaking, handling etc. Again, multidimensional.
Also, you are correct, the Go tip/1.1 garbage collector is much better.
"Again, I mean modern C as in C the general purpose language of the 1970/80s, not C is the systems programing language of today.
Well if you had framed it as such then I would have had no problem with your claim, although I would still find it odd to compare Go with C's much more widespread usage in the 70/80's as opposed to the areas it mainly occupies today. " "We did not want to be writing in C++ forever" -Rob Pike
This goes back to the Bell labs guys feeling that C++ took C in the wrong direction. Go is Ken, Rob and Robert's attempt at C like language that they feel improves on C as a general purpose language, going a different direction than C++ took (a path mostly followed by Java/C++).
http://commandcenter.blogspot.co.il/2012/06/less-is-exponentially-m...





Member since:
2005-09-03
C might have a limited domain now, but you are forgetting when it was written is was very much a general purpose language. In the same way Go is.
Go might not have these qualities compared to C, but it does have many of these qualities compared to modern applications programming languages. Outside of writing a OS, Go's problem domain is a super-set of C as used in modern times.
I think you don't understand what makes Go fast to compile: http://golang.org/doc/go_faq.html#What_is_the_purpose_of_the_projec...
Furthermore, Go tip (1.1 in dev) has many many more optimizations than Go 1.0.3 and the compiler is 30% faster yet....
You are missing something.
1. Your link does not include Go in the comparison.
2. If you do include it, you will see only very fast languages like C/C++/Java beat Go out (and Go is improving) Go beats most languages on the list (including C# Mono).
Most importantly:
3. Your link is only considering execution time, my link is a composite of execution time, memory usage and code size (weighted the same).
The is important because although Go is a little slower than Java (which is actually one of the fastest languages, BUT Java uses MUCH more memory (hence its reputation). You can play with the weights of my first link to reflect your own priorities regarding exec time vs memory usage vs code size and make your own call.
Again, I mean modern C as in C the general purpose language of the 1970/80s, not C is the systems programing language of today. I'm not suggesting Go replaces what C is used for primaily nowadays (in some cases). The primary use cases of C has changed, I mean "modern C" in regards to C's original more general purpose nature.
...I was responding to someone who was comparing Go and D... I don't think D is particularly relevant to most developers.