News for hackers. Stuff that matters.
Re:I’m joining the Go team at Google by dragonwriter on Friday September 23, 2016 @11:31AM (#12565344)
> Go is not a C replacement/better C.

Its not a replacement for C in most of the places where C is far and away the best existing choice for a whole project, it is a replacement for C in the zone where C's performance and static typing are attractive and would decided the choice in its favor, but Python's expressiveness, batteries-included stdlib, etc. also make it attractive and make it a little bit painful that the other factors weigh in C's favor. For a system that you might be otherwise do polyglot Python (or some similar dynamic language)/C development for that reason (or where you might do C-only somewhat reluctantly for that reason), Go could be a reasonable replacement for C (and, in the case where the alternative would be polyglot, Python or whatever else.)

Re:I’m joining the Go team at Google by vvanders on Friday September 23, 2016 @11:56AM (#12565541)
Sure, but in those cases Java/Swift/C#/etc are also reasonable replacements. If you're not taking advantage of data locality then it's possible to approach C's performance in any of those languages.

If your primary concern is performance(which is the only reason I'd reach for C today, esp w/ security concerns) then Go is not going to replace C in that domain.

Re:I’m joining the Go team at Google by dragonwriter on Friday September 23, 2016 @12:17PM (#12565720)
> Sure, but in those cases Java/Swift/C#/etc are also reasonable replacements.

Well, Swift certainly wasn't when Go was introduced, but, yes, Java and C# were competitors in that role when Go was introduced (Java, even moreso at the time, tended to fall short on expressiveness -- which some argue Go does too, though in different ways -- and C# was deeply tied to .NET, which only had a first-class implementation on Windows; both of those have improved somewhat since Go was introduced.)

Re:I’m joining the Go team at Google by johncolanduoni on Friday September 23, 2016 @06:03PM (#12568298)
Swift probably, but Java and C# still suffer in a lot of situations from the lack of good AOT compilation options. There are implementations for both, but they're incredibly primitive compared to the JIT reference implementations.
Re:I’m joining the Go team at Google by pjmlp on Saturday September 24, 2016 @01:49AM (#12569644)
Not .NET Native, which uses the same backend as Visual C++.
Re:I’m joining the Go team at Google by johncolanduoni on Saturday September 24, 2016 @04:27PM (#12572498)
Unfortunately .NET Native is still for UWP only, so for most places you'd use Go it's pretty useless. Microsoft appears to have no plans to even bring it to ASP.NET: https://github.com/aspnet/Home/issues/285
Re:I’m joining the Go team at Google by pjmlp on Sunday September 25, 2016 @03:39AM (#12574357)
Probably not, but they have CoreRT instead.

https://github.com/dotnet/corert

Many of us are actually mostly working on Windows, so NGEN, RyuJIT and .NET Native are all very good nice toolchain features.

And if I compare Go with the whole .NET stack and tooling, there are lots of things I see missing, in spite of better AOT support across the board.

Re:I’m joining the Go team at Google by johncolanduoni on Sunday September 25, 2016 @03:59AM (#12574389)
... which is still in a fairly early state, like I said. And NGEN doesn't help the issue of runtime dependence at all.

I'm not really a fan of Go, but being able to write small tools in it without pulling in a huge runtime is a big drawback.

Re:I’m joining the Go team at Google by pjmlp on Sunday September 25, 2016 @04:48AM (#12574484)
But that isn't a language feature, rather a toolchain one.

Once upon a time, on the PC we only had static compilation, regardless of the language.

.NET Core would help with the runtime dependencies (XCopy Deploy), but currently it is also WIP for those of us that care about desktop applications.

Re:I’m joining the Go team at Google by johncolanduoni on Sunday September 25, 2016 @09:45AM (#12575275)
Is the .NET stack and tooling any more a language feature? You were happy to argue that tooling was important a moment ago.

In any case, when choosing a language for a project which doesn't fit your requirements because maybe the tooling will get there someday, I think you're going to pretty consistently end up in a sticky situation. I like C# a lot more than Go for most things, and some of the reasons are things you listed, but the goalpost shifting is getting ridiculous.

Re:I’m joining the Go team at Google by pjmlp on Sunday September 25, 2016 @12:33PM (#12576005)
I am just digressing, sorry if you see it as goalpost shifting.
Re:I’m joining the Go team at Google by coldtea on Friday September 23, 2016 @02:13PM (#12566739)
>it is a replacement for C in the zone where C's performance and static typing are attractive

Was C's "static" typing ever attractive as a static type system?