Linked by MOS6510 on Thu 10th Jan 2013 23:25 UTC
General Development "For years I've tried my damnedest to get away from C. Too simple, too many details to manage, too old and crufty, too low level. I've had intense and torrid love affairs with Java, C++, and Erlang. I've built things I'm proud of with all of them, and yet each has broken my heart. They've made promises they couldn't keep, created cultures that focus on the wrong things, and made devastating tradeoffs that eventually make you suffer painfully. And I keep crawling back to C."
Permalink for comment 548519
To read all comments associated with this story, please click here.
RE[6]: C -> Go
by voidlogic on Sat 12th Jan 2013 19:43 UTC in reply to "RE[5]: C -> Go"
Member since:

I just can't buy into the notion of Go as a 'modern C'. There are similarities in syntax, not surprising of course when considering who the authors are, but the languages are targeting different areas.

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.

But in the domains where C dominate, characteristics like...

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.

Yes, but it will get slower once more optimizations are implemented.

I think you don't understand what makes Go fast to compile:

Furthermore, Go tip (1.1 in dev) has many many more optimizations than Go 1.0.3 and the compiler is 30% faster yet....

Hmmm.. are you are cherry-picking results or am I missing something? Here is the straight-up list:

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.

but again calling it a modern C is something I find to be nonsense.

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.

Cherry-picking D as a comparison is rather pointless I think

...I was responding to someone who was comparing Go and D... I don't think D is particularly relevant to most developers.

Reply Parent Score: 2