Live data from Hacker News

I'm using the standard library

ghost.bubbleclub.de

1–10 of 14 posts

Re: I'm using the standard library

#4
As an entertaining counterpoint, here's Kelsey Hightower's "Go for Sysadmins" from Gophercon where he repeatedly touts the "paste a link to your cross-compiled binary in an internal chatroom" benefits of Go: https://www.youtube.com/watch?v=41GffiXhN6I

I understand what you're saying and I'm a big fan of shell scripting myself, but dependency-free single-binary deployments are very, very convenient.

I upvoted this story because I find the topic interesting even though I don't really agree.

Re: I'm using the standard library

#5
Does the go linker attempt any dead code elimination across libraries? Static linking is handy for distributing binaries but 8 megabytes does seem a bit excessive for a relatively simple program.

Then again, it isn't so out of place nowadays when you see how big a statically linked C program can get when linked against glibc...

Re: I'm using the standard library

#6
To answer the OP's objection clearly - the usefulness of a single binary that works anywhere trumps any benefit from having a smaller binary, especially in 2014 when we have 1TB harddrives and 10Gbe connections.

Having python installed as a pre-req on most OSes doesn't even seem valid to me. For the project OP posted, any idiomatic python programmer today will most likely use the "requests" library, which isn't part of the stdlib.

Re: I'm using the standard library

#7

As an entertaining counterpoint, here's Kelsey Hightower's "Go for Sysadmins" from Gophercon where he repeatedly touts the "paste a link to your cross-compiled binary in an internal chatroom" benefits of Go: https://www.youtube.com/watch?v=41GffiXhN6I I understand what you're saying and I'm a big fan of shell scripting myself, but dependency-free single-binary deployments are very, very convenient. I upvoted this sto…

I agree with this:

"but dependency-free single-binary deployments are very, very convenient"

On a semi-related topic, my first exposure to programming on the JVM was through Clojure, where it is common to use the Leinengen build/dependency manager, and which allows the creation of an uberjar, which offers what you mention, "dependency-free single-binary deployments".

Then I started doing some actual Java development, and I was surprised that uberjars are somewhat uncommon among Java projects. There is a plugin for Maven that allows the creation of uberjars, but many projects use complicated application servers and the co-location of needed jars -- a system that seems complicated and fragile. I ended up using Buildr as my build system, but it doesn't seem to offer an uberjar option, at least nothing as convenient as what is offered by Leinengen. Given the convenience of uberjars, I would think they would be more common Java projects. Apparently they are avoided because so many Java projects are huge (with many thousands of classes) and so a common uberjar pattern (of exploding all dependencies to the same level) runs into the problem of name collisions. Which brings up another issue relevant to Go and Clojure, the small size of many apps, the ease of going with a micro-services architecture, greatly increases the ease of deployment as well.

Re: I'm using the standard library

#9

To answer the OP's objection clearly - the usefulness of a single binary that works anywhere trumps any benefit from having a smaller binary, especially in 2014 when we have 1TB harddrives and 10Gbe connections. Having python installed as a pre-req on most OSes doesn't even seem valid to me. For the project OP posted, any idiomatic python programmer today will most likely use the "requests" library, which isn't part…

Truth to be told, while "request" is a fine library, it's not true that "any idiomatic python programmer today will most likely use [it]".

A small, vocal minority sure use it, but I'm sure far, far many programmers (like myself) are perfectly happy to use urllib2.

Post reply on HN