News for hackers. Stuff that matters.
Re:Poll: How many programming languages do you command fluen... by jrockway on Saturday January 04, 2014 @01:38PM (#7012266)
Go is similar to C in the sense that for every decision C made, Go made the opposite.

Go: no headers. C: headers.

Go: no pointer math. C: pointer math.

Go: multiple return values. C: one return value.

Go: no parens for if/for. C: parens for if/for.

Go: interfaces. C: no interfaces.

etc.

Re:Poll: How many programming languages do you command fluen... by srl on Saturday January 04, 2014 @01:50PM (#7012331)
For any two points in N-space, you can draw an (N-1)-sphere around them such that the line between them forms the sphere's diameter. Then they appear to be opposites, within the artificially-limited domain you're talking about.
Re:Poll: How many programming languages do you command fluen... by stiff on Saturday January 04, 2014 @02:09PM (#7012420)
I didn't claim those are identical, but you are cherry-picking facts, what about:

- syntax (curly braces, star for pointers and dereferencing, ampersand for getting the address etc., cleaned up for faster parsing and with some genuinely new things)

- iteration via for loops (no iterators, no map/fold/...)

- structs for data abstraction

- layout of variables in structs corresponding directly to memory layout

- argument passing by value or via pointers

- very weak typing

Look at it from the other side, what new things has a C programmer coming to Go learn, besides the syntax? Slices, goroutines, make/new, and some little bits related to packages/runtime, all hardly difficult concepts. Some old habits do not work anymore, mostly minor things. Finally both authors (Thompson and Pike) were C coders for decades...

Re:Poll: How many programming languages do you command fluen... by jerf on Saturday January 04, 2014 @02:58PM (#7012617)
I wouldn't call Go's typing "very weak". It's not Haskell, but it's still a fairly typical manifestly-typed language like C# or Java (minus contra- and/or covariance), and you certainly can't just slop values around without thinking about their type. "Very weak" I'd reserve for Perl, Javascript, or (I think) PHP, with their propensity to turn "anything" into a string or a number out from underneath you.

It is generally stronger than C's, in that C lets you be quite... creative... in how you cast values. Go qua Go does not let you do that, though it does have an escape hatch via the unsafe package that lets you do anything C can, mostly used for interfacing with C.

Re:Poll: How many programming languages do you command fluen... by jrockway on Saturday January 04, 2014 @10:02PM (#7014297)
Go does indeed add some nice checks over C. For example, given:

    type foo int

    var (
	    A foo = iota
	    B
	    C
	    D
    )

    func bar(x foo) ...
It's an error to write:

   bar(2)
That's enough typing to prevent many types of annoying mistakes.
Re:Poll: How many programming languages do you command fluen... by jbooth on Saturday January 04, 2014 @02:54PM (#7012600)
Yeah, the only gotcha I've ever had with Go was being confused about why I couldn't pass a pointer to an interface. Then I grokked what interfaces are in Go (a pointer to an implementation satisfies an interface, a pointer to an interface is nonsensical), and was good to go.
Re:Poll: How many programming languages do you command fluen... by semiel on Saturday January 04, 2014 @01:53PM (#7012344)
> Go: no parens for if/for. C: parens for if/for.

If the if/for constructs are sufficiently alike that you can meaningfully compare their parentheses usage, then I think that's evidence they're pretty damn similar.

Re:Poll: How many programming languages do you command fluen... by aplummer on Saturday January 04, 2014 @01:57PM (#7012370)
Ha yes, I just looked at that and thought: How would I explain the difference in method calls in Obj-C and JS in 7 words. i.e. Something thats actually quite different...
Re:Poll: How many programming languages do you command fluen... by rawicki on Saturday January 04, 2014 @01:55PM (#7012362)
I don't think multiple return values or interfaces were considered at the time when C was made.

Also, the cost and gain of various features (for example headers) was completely different then.

Re:Poll: How many programming languages do you command fluen... by aplummer on Saturday January 04, 2014 @01:54PM (#7012352)
He seems to be comparing it to his wheelhouse: Ruby. Syntactically C & Go are very similar in comparison.