6 ms·
Ask HN: What is Go really good for?
I want to learn Go but I need to visualize a real-world use case. Why should I use it instead of X, Y or Z. What do you use it for? Please supply examples.
- fiedzia 10y agoIt depends on what X,Y and Z are. What you may like about go if you come from: python/ruby: go is faster and allows you to write concurrent code php/js: go is faster, concurrent, and its designers were competent c/c++: go is simpler and prevents some common mistakes, compiles faster java: go is faster and simpler. garbage collection is less of a problem rust: go is simpler, compiles faster, io/task switching might be faster functional languages: go is simpler, for some its faster/more predictable What you may not like if you are coming from: python/ruby: go is verbose, you'll need much more code to express the same thing. Many libraries/frameworks are missing. more advanced concepts will be hard/impossible to express in elegant way. Long list of language features is missing. php/js: can't think of anything, everything is better c/c++: no access to c/c++ libraries, many language features missing. You cannot write operating system in go. It has GC java: no access to java libraries, lot of missing language and platform features, verbosity rust: lot of missing language features, verbosity, sloppy attitude to code correctness and safety, GC, slower generated code functional languages: Any functional language features are missing So you may come for speed or simplicity (meaning low-level primitiveness, not high-level elegance) and no-nonsense design, otherwise its just meh.
- aligajani 10y agoHey @fiedzia, thanks for your great reply. This has got me thinking.
- JimmyAustin 10y agoFormatted: What you may like about go if you come from: python/ruby: go is faster and allows you to write concurrent code php/js: go is faster, concurrent, and its designers were competent c/c++: go is simpler and prevents some common mistakes, compiles faster java: go is faster and simpler. garbage collection is less of a problem rust: go is simpler, compiles faster, io/task switching might be faster functional languages: go is simpler, for some its faster/more predictable What you may not like if you are coming from: python/ruby: go is verbose, you'll need much more code to express the same thing. Many libraries/frameworks are missing. more advanced concepts will be hard/impossible to express in elegant way. Long list of language features is missing. php/js: can't think of anything, everything is better c/c++: no access to c/c++ libraries, many language features missing. You cannot write operating system in go. It has GC java: no access to java libraries, lot of missing language and platform features, verbosity rust: lot of missing language features, verbosity, sloppy attitude to code correctness and safety, GC, slower generated code functional languages: Any functional language features are missing
- IndianAstronaut 10y agoThe lack of libraries is a huge issue when using Go. Even basic database connectors are often missing.
- aprdm 10y agoI am writing a queue system for vfx.
- aligajani 10y agoQueue system? Care to elaborate.
- girishso 10y agoBuilding cli tools... you can build cross platform as well. Major benefit here is, you just need to distribute single binary, no dependency hell.