|
Hughmoris posted:For you Go'ers (or whatever you call yourselves...): do you use Go for any sort of data analytics / data analyst jobs? We use it for logs and event analysis of pretty egregiously large streaming datasets (petabytes). I think Segment does too for data, as well as Uber for lots of different things. It's pretty well suited for getting most of the c++ performance with fewer footguns. pprof is your friend.
|
# ¿ Apr 15, 2022 03:46 |
|
|
# ¿ May 5, 2024 21:35 |
|
Pham Nuwen posted:Funny, I also use it for logs & event analysis. Do you work on an analysis product, and if so, do you mind sharing which one? If not, that's obviously fine. Can't post it here but happy to nerd out over discord if you wanna DM
|
# ¿ Apr 15, 2022 04:00 |
|
They're pretty great. We used them to write a workflow system and it was a massive improvement to the prior implementation. The limitation that variadic arguments have to all be the same type is a little frustrating.
|
# ¿ Apr 10, 2023 23:39 |
|
I'm rusty on the proposal but I think it was cut from an implementation complexity standpoint rather than a design issue, but I don't totally remember.
|
# ¿ Apr 10, 2023 23:53 |
|
I guess it makes sense in that slices are also invariant. There'd have to be a runtime type assertion when accessing a generic slice, which you can just do yourself. It's still annoying for our thing's API, which ended up like: Dep1(thing) Dep2(thing, thing) ... Still, having the compile time type safety did catch errors and make refactoring easier than it was without generics. Anyway I wanna learn rust after like the last 8 years of my life being Go.
|
# ¿ Apr 11, 2023 14:00 |
|
fletcher posted:The route I ended up going with was: The equivalent of this command is code:
code:
fletcher posted:Well, the way I see it is that at least the source code in github has the opportunity for me to review it, and it has more eyeballs on it in general. skul-gun is correct that by requesting go.senan.xyz/gonic/cmd/gonic@v0.15.2, you're guaranteed to get the same code that is in the checksum database maintained by the Go team at Google. This is documented here: https://go.dev/ref/mod#checksum-database. The checksum database is probably the biggest killer feature for the language, and protects you against the exact kind of risk that you are worried about. It's also independently auditable. The module URL serves as the canonical identifier for that code, and you can verify that with your eyeballs, git client, and your local cache of installed modules on your machine located at # go env GOPATH. I always install with a specific version tag when I don't absolutely trust the source. But @latest is really handy for things you do trust, like go install golang.org/dl/go1.21.0@latest. One last note worth mentioning is that go install is as safe as git then compiling it can be, in terms of curl | bash. No code is evaluated during go compilation like it is by package managers for other languages, such as npm. Edit: You check out the checksum tree node yourself, too: code:
Breaking Glass fucked around with this message at 22:01 on Aug 31, 2023 |
# ¿ Aug 31, 2023 21:30 |
|
|
# ¿ May 5, 2024 21:35 |
|
The vulnerability database is really useful, too: https://pkg.go.dev/vuln/
|
# ¿ Sep 1, 2023 00:43 |