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

It's very nice, but the Javascript is 475KB mainly because it's written in poorly compiled Go; something like this could be written in 100x less vanilla Javascript.

What implementation of compile-to-javascript Go is this? They should add tags for closure compiler optimization, just simple optimisations (without type annotations, which are present, usefully in go) cuts the filesize by half.



GopherJS will compile large chunks of the Go stdlib, so the base size is a few 100KB. As your app grows, the generated code should approach the size of a normal JS app of similar size.

For instance, this demo uses the `fmt` package from the stdlib, which imports a whole lot of things. In normal Go programs, importing `fmt` means growing you binary size by a large bump.

https://github.com/tidwall/digitalrain/blob/master/digitalra...

I know the Go authors are concerned about the size of generated binaries, or at least have expressed concerns in the past. I don't know how work on that would translate in improvement to GopherJS' codegen.


Why doesn't it do tree shaking to eliminate unused Go stdlib stuff?


Dead code elimination is built in, but not super duper yet. There's daily updates to the project and it seems to get tighter every week.


The github readme says it was compiled to JS using GopherJS https://github.com/gopherjs/gopherjs




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

Search: