6 ms·
Go is a language designed to take CS college graduates to productive engineers at Google with as little fuss as possible. Considering it was designed for an org
by mrdoops 8y ago
Go is a language designed to take CS college graduates to productive engineers at Google with as little fuss as possible. Considering it was designed for an organization in the scope of Google, it's less likely to be the best option for something like a startup, small business, or even a medium size business.
- mawburn 8y agoI feel like you should spend some time with Go. If I were building a startup, I would probably choose Go for core infra for being able to move quickly as a developer and write incredibly performant code with about as much mental overhead as most dynamically typed languages. Anecdotally, I've seen it replace Java in quite a few small and medium sized established companies.
- Nimitz14 8y ago> I would probably choose Go for core infra for being able to move quickly as a developer At the company I used to work at it took nearly a 1000 lines to replace an 80 line bash script. So I can't help but laugh at this statement.
- feketegy 8y agoSince when LoC is a meaningful metric?
- dogma1138 8y agoSince always but it depends on what you actually take into account. More LOC means more opportunities for error, and more resources needed to review that code and more time required for a new developer to get familiar with the code base. That said if you have 85 LOC vs 1000 it usually means that the 85 LOC “app” used a metric ton of external dependencies which are on their own a good source for problems. When comparing apples to apples (as in both apps use dependencies equally) I don’t see how such delta can be caused by using a different language, even using assembly would likely not cause this much inflation.
- vrazj 8y agoI can replace those 1000 lines with a bash script of 1 line that just calls the Go program ^_^
- barbecue_sauce 8y agoI've helped port some bash-based CLI tools to Go. The amount of code produced was pretty similar, just some overhead for typing and adapting some of the `awk` and `sed` functionality to be self-contained in the program. What kind of stuff was this 80 line bash script doing that resulted in over 12.5 times more code?
- deleted 8y ago[deleted]
- deleted 8y ago[deleted]
- TheOtherHobbes 8y agoHow well did the bash script handle exceptions?
- Waterluvian 8y agoI feel like Python is your pepperoni pizza can't go wrong option for almost anything. Go feels similar but younger. I love languages with big standard libraries. Just need their package management story to settle down for a while. There's something wonderful about a language being so popular and around for so long that there's plenty of resources and answers on just about anything. I think that's a core part of what I'm missing from Go.
- meowface 8y agoIf Go adds generics and a smoother method of doing error handling, I could see it eventually taking Python's place. It already is doing so to an extent, but with those features plus everything else it can do better than Python, it'd be tough to beat. 95% of my programming is in Python, and I honestly don't really enjoy coding in Go that much, but with those changes I could see myself switching.
- Waterluvian 8y agoSame. 99% of my back-end and robot code is Python. Maybe this is a grass is always greener kind of thing but I'm hitting projects of a size where I miss static typing. I will say that asyncio is amazing and really solves concurrency for me. But Go looks like you also get parallelism without a lot of work.
- 1996 8y agoAsyncio is good but it will not give you true parallelism: asyncio still uses the GIL, on a single thread
- Waterluvian 8y agoYep. Concurrency is not parallelism. But a lot of the time it's just not necessary.
- pjmlp 8y agoOn the other hand if Python community had more love for PyPy, to follow up on JavaScript and Julia footsteps, maybe that wouldn't be even an issue.