Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The benefit would be EASY cross platform support. From experience building Vagrant installers: it's a pain in the butt. Shipping a single binary client would probably simplify things greatly.


There are two reasons I rewrote Foreman in Go. You hit one of them square on the head. A single binary with no dependencies that can be cross-compiled on a Heroku dyno makes things much simpler.

Foreman was originally written in Ruby which ideally means it runs on any machine with a Ruby interpreter. When you get down to it, though, the differences in fork/exec between Ruby 1.8, 1.9, JRuby, Rubinius, etc make this a nightmare scenario of a different sort.

If you go to https://gobuild.herokuapp.com/ddollar/forego/master/darwin/a... you get a working program as a single binary in one step. Using bsdiff I can even ship binary diffs for fast upgrades (this is how `foreman update` works in the new version)

Oh and as a side effect the new Foreman is quite a lot faster to start up (Rubygems initialization is sloooooow)


I had no clue `forego` was actually available. This is incredible.


Yes! I love this way more than any speed upgrade. When is Vagrant being redone in Go ;)




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: