Live data from Hacker News

Program your next server in Go

talks.golang.org

211–220 of 384 posts

Re: Program your next server in Go

#211
post #26
post #23

Earlier quoted context omitted.

You can also use left right keys to navigate. Just doesn't work with scroll wheel, if that is what you were expecting.

How about on mobile? It seems incompatible with portrait mode.

Powerpoint is not compatible with mobile either.

It's software for people giving talks, not for you. the fact that people can see it online is just a bonus.

Re: Program your next server in Go

#212
post #103
post #23

Earlier quoted context omitted.

You can also use left right keys to navigate. Just doesn't work with scroll wheel, if that is what you were expecting.

It doesn't work well being a user. Which is what i was expecting.

You are not the user.

The user of the software is the person giving the talk.

Re: Program your next server in Go

#213
post #103

Earlier quoted context omitted.

It doesn't work well being a user. Which is what i was expecting.

I don't know what your original comment was because it's been flagged. But, this slideshow did not work as I expected when I first opened the page. Honestly, if I have to think about how to get to the next slide, your software is worse than PowerPoint. Forgive me for being so harsh.

> if I have to think

It's not for you. You are not the primary audience. The user of the software is the person giving the talk. The fact that the slides are online is just a bonus.

Re: Program your next server in Go

#214
post #188

Earlier quoted context omitted.

How do you find the cgo overhead? Specifically with something like OpenGL, it seems like it would be a big pain point for rendering.

I don't have great measurements for this, but we have done optimizations to reduce the data flowing over the Go C interface. One of our key measurements that does make a big impact on performance is how often we need to upload data (that's not already over there) to the GPUs. So that's something we have worked on reducing (buffer reuse, compression). We also have a series of caches on the other side, so we aren't dra…

That's interesting. The cgo overhead was the only thing holding me back from considering it for games, since I didn't want to write a lot of C wrappers around the C libraries I want to use just to have them be more efficient, which is a shame, since Go is pretty nice, barring the C interop in some cases.

Re: Program your next server in Go

#215
post #58

The slides are awesome and I really am fond of go, but the examples using channels are all more code to write considerably than I'd write in C# or JavaScript with async/await and not any more robust or safe. Go is great for actor based systems where you model things using channels and goroutines for what they stand conceptually - not when you use it to simulate Task.WhenAll/Promise.all with a timeout. I think _that's…

> The slides are awesome

They look good, but completely failed to work on Firefox for Android.

Re: Program your next server in Go

#216
post #102

All of the server backends at my company are written in Go. This was a result of me writing a couple servers in Python a few years back, ending up with lots of problems related to hanging connections, timeouts, etc. I tried a couple different server libraries on Python but they all seemed to struggle with even tiny loads. Not sure what was up with that, but ultimately I gave Go a swing, having heard that it was good…

We run a cluster of P2P, GPU heavy machines that use Go to ingest byte streams of raw radar data, store that info in btrees, and render, cache & serve map tiles that are drawn on the fly in response to http requests. We are not using much outside the stdlib (opengl and gdal bindings). Garbage collection has become very fast in recent versions of the language. It's quite painless now, and we did struggle with it in th…

Would the vendor management support deterministic builds?

Re: Program your next server in Go

#217
post #31

I'd love to see Nim on this diagram: https://talks.golang.org/2016/applicative.slide#13 - it could be close to the top right corner.

I would contend that java should be considerably lower on the fun scale. Maybe they are counting other languages that target the JVM? Also perl is apparently as fun for humans python which I also find suspect after maintaining perl 5.x code. Turns out this subjective made up graph is subjective and made up I guess.

> Also perl is apparently as fun for humans python which I also find suspect after maintaining perl 5.x code.

When people talk about a language being 'fun', they need to distinguish between writing something new for the first time vs maintaining something or figuring out someone else's code.

Re: Program your next server in Go

#218
post #102

Earlier quoted context omitted.

We run a cluster of P2P, GPU heavy machines that use Go to ingest byte streams of raw radar data, store that info in btrees, and render, cache & serve map tiles that are drawn on the fly in response to http requests. We are not using much outside the stdlib (opengl and gdal bindings). Garbage collection has become very fast in recent versions of the language. It's quite painless now, and we did struggle with it in th…

Would the vendor management support deterministic builds?

Yes, that is the purpose of the vendor directory. You copy the source of each of your dependencies into vendor/ and commit it to your own source control so it can't change unless you do so yourself. I personally use git submodules to manage the contents of the vendor/ tree, but the go compiler/toolchain itself doesn't really care how you get the files into there.

Edit: other comments below have mentioned some of the tools available to manage your vendor/ tree. Using git submodules manually can be crude, especially when adding dependencies that themselves have other dependencies.

Re: Program your next server in Go

#219
post #102

Earlier quoted context omitted.

We run a cluster of P2P, GPU heavy machines that use Go to ingest byte streams of raw radar data, store that info in btrees, and render, cache & serve map tiles that are drawn on the fly in response to http requests. We are not using much outside the stdlib (opengl and gdal bindings). Garbage collection has become very fast in recent versions of the language. It's quite painless now, and we did struggle with it in th…

Would the vendor management support deterministic builds?

Yes. I check my vendor into git, so it's as deterministic as source code.

Re: Program your next server in Go

#220
post #160

Earlier quoted context omitted.

I think it refers to the Perl-era idea that good code should be somehow "clever" rather than maintainable. It's how bad programmers who spend hours agonizing over how to reduce their line count (presumably to save disk space?) justify their behavior.

For optimal code maintainability, there is a happy compromise between excessively terse and excessively verbose code. There is a lot of code in the wild that's too spread out.

Well sure, but erring on the side of verbosity at least ensures that someone can follow your thinking as long as the code is well structured. I would prefer to read 25 lines of decent Python over 3 lines of regexes in Perl.
Post reply on HN