Hacker News new | ask | show | jobs
by error 5025 days ago
First congrats for the framework.

Secondly a question :)

Play team solved the compile "problem" of java using a lib from eclipse so it compiles files on the fly. do you have something similar, or do you plan to include something similar? I think compiling on every change you make while developing an app is painful, the biggest problem java frameworks have, excluding Play! of course.

1 comments

Yep, having the hot-compile functionality was a major point of this.

Here is a description of how it works: http://robfig.github.com/revel/manual/howrevelworks.html

Basically: In development mode, it runs a proxy (called the "harness") that watches your source for changes and recompiles/restarts your server on the next request, if necessary, using the "go build" tool. The go build process is incremental, so in theory should only recompile packages that have changed (and those that depend on them)

There is actually a way to do this fully in process. I think Rob Pike initially build this, and it's being used in the App Engine framework (or so I hear...).

Code: http://code.google.com/p/rsc/source/browse/#hg%2Fdevweb

It looks like he takes the same approach as Revel. From the comments:

    // Devweb is a simple environment for developing a web server.
    // It runs its own web server on the given address and proxies
    // all requests to the http server program named by importpath.
    // It takes care of recompiling and restarting the program as needed.
And, he uses "go build" to build the program:

    out, err := exec.Command("go", "build", "-o", "prox.exe", rootPackage).CombinedOutput()
It appears to do more than Revel does, though -- I will look at it more closely to see what extra it provides. Wish I had seen this before!
Russ Cox, not Rob Pike, built that.

It's not what's used in the App Engine SDK. I believe it was inspired by what we do in the App Engine SDK, though.

awesome!

This is a good reason to learn go :)