Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Go is definitely a competitor to C, but only in places where you can tolerate a garbage collector. Zig seems to be a competitor to C in places where you can't.


I would say Go is more a competitor to Java.


Not until they up their game in modern language features.

Until then they are pretty much a competitor to what would be otherwise a userspace C application.

Assuming having a GC enabled language isn't an issue to meet application SLAs.


I'd say Go is a competitor to Java in terms of business case, not language features. In a similar way it competes with Python. You occasionally hear (heard? It's been a while) of Python projects getting rewritten in Go.


Besides the language features, Go is not a match for the wealth of graphical tooling, IDE support, deployment targets and libraries of Java world.

Naturally people port code from Python to Go.

It is what happens when one uses scripting languages for a full blown application and then discovers how slow it is.

Then Go gets choosen cause Google is cool and Oracle is bad.

Meanwhile corporations keep using Java, .NET, JavaScript and C++ as their main workhorses.

Go's selling points are Docker and Kubernetes, and not everyone is actually using them.


Just because the language has low language feature count doesn't make it a competitor to C.


It does given the authors and the use cases Google has been applying it to.

TCP/IP stack and file system utilities in Fucshia, Kubernetes, Android OpenGL/Vulkan debugger, UEFI replacement, DNS server


I disagree, Go ignores errors by default. No sane C dev would accept that as an "upgrade".


What do you mean? Error checking for C is very inconsistent (sentinel values and errno), so surely that's worse?


I think they mean that C coders have wrestled so much with the language's terrible error handling mechanics (or lack thereof) that it's probably one of the first thing they'd want fix when "upgrading" languages. I would tend to agree.


Upgrading error handling is great, but Go has the worst approach on doing it.


Worse than checked exceptions (Java)? How about unchecked exceptions?


In what way does C not ignore errors?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: