4 ms·
Golang really seems to have come a long way. But what holds me back from using it are the dangers of deadlocks and segfaults (due to forgotten error handling) t
by fnl 10y ago
Golang really seems to have come a long way. But what holds me back from using it are the dangers of deadlocks and segfaults (due to forgotten error handling) that might be introduced even inadvertedly if applied to industrial-scale projects (say, 1M+ LOC, 10+ developers). That is, I see many small (server/microservice) projects flourish with Golang, and it seems an excellent replacement for certain types of C projects, but I wonder how Go enthusiasts believe it could scale to compete with Java or C++, due to the way it does error handling, and deadlocking issues with channels.
- Strom 10y agoIt's even easier to mishandle errors and get deadlocks in C++. That is in addition to all sorts of other fun like buffer overruns. If the team is capable of not messing these things up in C++, then they are more than capable of not messing up in Go.
- fnl 10y agoModern C++14 provides quite good support on those fronts, and modern Java8 has lost most of its "code notoriety". But that's just arguing back and forth. Here's the real argument: What popular OSS projects of noteworthy scale are being developed in Go? I know a few dozens in either Java or C++, and even a few fairly noticable Scala projects (Spark, Flink, Play, ...), but I yet have to see anything written in Go that can be called "industrial sized".
- tasuki 10y agoDocker is written in golang: https://github.com/docker/docker https://github.com/docker/docker
- benjaminjackman 10y agoI think IPFS is being made in go. Not sure if that qualifies as industrial sized or not.
- sjellis 10y agoIf you want examples of "industrial-sized" Go projects right now, you may have to look at case studies for proprietary cloud infrastructure, e.g. CloudFlare, Fastly, DigitalOcean, SoundCloud, and SendGrid. These companies obviously don't open up their product code, but they've been happy to share some information about their use of Go.
- jgrahamc 10y agoWe share quite a lot of code: https://cloudflare.github.io/#cat-Go https://cloudflare.github.io/#cat-Go
- fnl 10y agoYes, I've noticed for years that Go gets heavily used in web service-oriented startups with many concurrent users (plus, its easier to pick up than Erlang :-)). But what I would really hope to see is Go being used for anything else than servers/services. I understand this is all the rage for certain companies, but none of that directly touches my own interests. Is Go only good for that niche, or will we see Go being adopted outside that "web services world"? E.g., for building old-school desktop apps, Go's concurrency features might be pretty cool - if its not too low-level for that?