When you should use Go



  • Continuing the discussion from C# is going to be even more awesome:

    @xaade said:

    @ben_lubar said:
    Ever hear of Docker? This server is running on it. It's written in Go.

    Dropbox, CloudFlare, SoundCloud, and of course, Google, use it too.

    Thanks. To be clear, I honestly want to know.

    Because I see people flouting their favorite esoteric language, and while those are good and they expose flaws and the big languages pick up on those features and incorporate them, I don't feel comfortable dedicating time to a language that doesn't have real, practical, business use.

    It's like the green party. Thanks for showing us where we both screwed up, now I'm going to take your policies. This is a good thing, because those problems wouldn't have gotten attention otherwise. But we both know, the green party is never getting the Whitehouse.

    But without some examples of actual business use, because of all the hype for everyone's pet language, I cannot tell which language would be worth my time for building my career. I mean, if I want a fun pet language, I'll just use LISP. If I want to hurt myself, I'll use R. I don't need a hipster language.

    So, any information on how these languages are used, in an actual business context, is extremely useful.

    So, thank you for honestly answering.

    I'm writing a websockets server for FrankerFaceZ. It's written in Go. Why?

    1. The previous Python implementation started to crash & burn when the client count increased over ~9-11K.
    2. The expected peak concurrent users today is ~30K.
    3. Go does really well at handling services with lots of clients.

    Here's the memory use for the server, it's servicing around 5K users at peak, 3.5K as of screenshot..


  • BINNED

    Just to add one more data point. InfluxDB is written in Go. From what I have seen it is pretty good at handling huge amount of IO in parallel. If you have SSD it puts it into good use.



  • Yeah, the GFE - Google FrontEnd - servers run Go. Basically all they do is recognize the url, route the request, and io.Copy(...)



  • Pretty much anything's good when compared to Python.

    Let's see a comparison to C#.



  • @blakeyrat said:

    Let's see a comparison to C#.

    Well, performance isn't the only metric. It also has to be maintainable, and if they can find more Go programmers, then Go may be the best fit for them.

    <sarcasm>


  • @riking said:

    The previous Python implementation started to crash & burn when the client count increased over ~9-11K.

    It's an interpreted language with quite possibly the worst concurrency support in existence. What did you expect?



  • @dse said:

    Just to add one more data point. InfluxDB is written in Go. From what I have seen it is pretty good at handling huge amount of IO in parallel. If you have SSD it puts it into good use.

    Hmm, that name sounds familiar. Where did I hear that before?



  • Do you have a comparesment with C# and node.js? From some other charts I've seen, I think node should lag a little bit behind, and C# about 50%.

    @xaade said:

    Well, performance isn't the only metric. It also has to be maintainable, and if they can find more Go programmers, then Go may be the best fit for them.

    Yes, go has some powerful features, but also a lot of stupid quirks and problems at the language level. Too many IMO for a fresh new language, where they had an open field and plenty of time to smooth everything over before 1.0.



  • @xaade said:

    Well, performance isn't the only metric. It also has to be maintainable, and if they can find more Go programmers, then Go may be the best fit for them.

    In the abstract, fair enough.

    But if you're asserting that there's more Go programmers than C# programmers in circulation, you're taking crazy-pills. That's probably not even true on the Google campus.



  • @xaade said:

    ell, performance isn't the only metric. It also has to be maintainable, and if they can find more Go programmers, then Go may be the best fit for them.

    Hahahahaha



  • @xaade said:

    if they can find more Go programmers

    Yeah, good luck with that ;).



  • Well, @ben_lubar doesn't have a job yet, so that's at least 25% of Go programmers up for reaping...



  • When you should use Go:

    1. Never. Unless you're hanging out with Ben Lubar.

  • BINNED

    I am now almost tempted to learn Go or some other moon language just so I can annoy you all with it.

    Almost.



  • @Spanky587 said:

    When you should use Go:

    2<!-- Discourse changes it to a 1 -->. When you work at Google



  • Then when should you use ogle?



  • As far as moon languages go, I can highly recommend Lua.

    <!-- Lua is Portuguese for "moon" -->


  • @Buddy said:

    Then when should you use ogle?

    When you're the inventor of it and you get hired by Go<!-- I hate markdown -->ogle.



  • @LB_ said:

    @Spanky587 said:
    When you shouldpossibly are forced to use Go, probably and hopefully against your will:

    2<!-- Discourse changes it to a 1 -->. When you work at Google

    FTFY.



  • @Spanky587 said:

    Unless you're hanging out with Ben Lubar.

    Has he trapped you in his basement? Blink twice for yes.


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.