i'm programming in Go now it feels like they've mashed the worst parts of C and Javascript syntax together, with the package dependency hell of early-2010s Ruby, and the elitist community of early-2000s Linux fanboys oh, and Google owns it
-
Show this thread
-
Replying to @AmyZenunim
Don't forget the garbage collector from Java and the static linking of... 70s UNIX? Though, having worked at Google, I can see how it works for *them* in some contexts :-)
4 replies 4 retweets 54 likes -
Replying to @marcan42 @AmyZenunim
giving me a static binary i don't need to worry about is the only thing i, an amateur who doesn't write programs, like about Go
2 replies 0 retweets 21 likes -
Replying to @atomicthumbs @AmyZenunim
Static binaries are great for toy projects or for companies like Google who recompile and redeploy everything constantly. For everyone else, they are a huge security liability as dependencies get linked in and never updated. Patching a dependency means updating *all* dependents.
3 replies 1 retweet 26 likes -
you also can't statically link the entire world. eventually you must be dynamically linking, in a sense, to the OS kernel's syscall interface now, on Linux you have Linus who promises to keep that extremely stable, so it works however… Windows and macOS are not Linux.
1 reply 0 retweets 9 likes -
Replying to @hikari_no_yume @marcan42 and
a reasonable individual would conclude, okay, we'll make an exception to dynamically linking just for these OSes, and link to the OS's userland dynamic library that handles kernel stuff and which does have a stable interface however that reasonable individual is not the Go devs
1 reply 0 retweets 8 likes -
Go tried to hardcode syscalls on macOS anyway. Then they broke the gettimeofday interface and all Go apps exploded. The other issue is that Go's C FFI is slow (and buggy and convoluted), and they have to use it for syscalls on those platforms, with worse results.
1 reply 0 retweets 11 likes -
Replying to @marcan42 @hikari_no_yume and
So Go *does* dynamically link with C libs in the end on those platforms, but that entire feature sucks.
1 reply 0 retweets 7 likes -
aaaahahaha
1 reply 0 retweets 0 likes -
Replying to @hikari_no_yume @marcan42 and
I also wonder how they handle like, 3D graphics. I guess it's not something people use Go for, but if they want to, sorry… you need dynamic linking. You can't statically link the graphics driver, unless perhaps you really love Mesa
1 reply 0 retweets 2 likes
I mean, they do claim to support dynamic linking C libs. People use it. I've used it. It sucks.
-
-
Replying to @marcan42 @hikari_no_yume and
The first time I tried using Go I ran into a FFI bug which took 2 days to find and fix (after the Go devs had been unable to figure it out for months) and then a month of bureaucracy to get merged. I didn't write any more Go after that (and after seeing the guts of the runtime).
1 reply 0 retweets 5 likes -
Replying to @marcan42 @hikari_no_yume and
Then I still had to find and debug *another* Go runtime bug after unfortunately running into random segfaults in a piece of software I used that was written in go. The root cause turned out to be Go devs knowingly making invalid ABI assumptions **to avoid using their slow FFI**.
1 reply 0 retweets 5 likes - Show replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.