facebookarchive / planout

PlanOut is a library and interpreter for designing online experiments.
http://facebook.github.io/planout
Other
1.68k stars 216 forks source link

Open sourcing Planout interpreter in Golang #30

Closed tsujeeth closed 9 years ago

tsujeeth commented 9 years ago

https://github.com/URXtech/planout-go-interpreter

Hey guys, we (at URX) have implemented a Planout interpreter in Golang. Check it out! Any feedback/suggestion is greatly appreciated.

eytan commented 9 years ago

Awesome! A few questions: 1) If I wanted to leave line-by-line comments, what is the best way to do that? 2) Does it produce random assignments that are consistent with the Python and Ruby implementations of PlanOut? 3) Some high level details in the README.md would be awesome: an example of how to run a script (say, one of the ones included in the demos/ folder in the main PlanOut distro), along with some sample output, and a few details on what has been implemented, is missing, or has been improved upon. 4) I am curious to see how things develop with respect to adding more sanity checks and typing. I've recently done some refactoring of the Hack implementation of the PlanOut interpreter we use at Facebook and it adds a lot more of this type of functionality. Hopefully we will be open sourcing the Hack version soon, so we can compare notes :) 5) Once you guys have things fleshed out and thoroughly tested, what do you think about adding your interpreter as a submodule to our github repository? (this is what Vimeo is planning on doing for their port of PlanOut to PHP).

tsujeeth commented 9 years ago

Thanks Eytan!

I'll create a pull request so that you can add comments per line.

eytan commented 9 years ago

Great, let me know when you've written the README.md. It would be a helpful reference point as a Go n00b...

GregBowyer commented 9 years ago

2) Does it produce random assignments that are consistent with the Python and Ruby implementations of PlanOut?

Not sure thats a bit of an oversight on our part to not have tested this, but I am sure we can make some sort of unit test to ensure compatibility. My Colleague did the porting using the python version as reference so it should be the same.

4) I am curious to see how things develop with respect to adding more sanity checks and typing. I've recently done some refactoring of the Hack implementation of the PlanOut interpreter we use at Facebook and it adds a lot more of this type of functionality. Hopefully we will be open sourcing the Hack version soon, so we can compare notes :)

That would be super useful to see given the typing adds a bit more complexity to this.

5) Once you guys have things fleshed out and thoroughly tested, what do you think about adding your interpreter as a submodule to our github repository? (this is what Vimeo is planning on doing for their port of PlanOut to PHP).

Sounds like a great plan

@etyan as we discussed on a different pull request, this does not yet have the return statement, hopefully tsujeeth or myself will be able to add that soon.

GregBowyer commented 9 years ago

I take it back @tsujeeth beat me to implementing the return statement :)

tsujeeth commented 9 years ago

https://github.com/URXtech/planout-go-interpreter/pull/5

Readme and sample files coming soon.

"Hopefully we will be open sourcing the Hack version soon, so we can compare notes" Definitely looking forward to this!

eytan commented 9 years ago

Closing this out, and I can continue to chime in on the reviews in the golang repository. Once the interpreter has stabilized and has good unit test coverage, I'd love to add it as a sub module to alpha/

krithika369 commented 4 years ago

Hello @eytan, I'm unable to access the Golang submodule under alpha (and can't find the repo on the owner's Github page either). I'm wondering what the status of this development was (I realise this is quite an old thread) and if there are any other active efforts to implement the PlanOut interpreter in Golang, that you may be aware of?

irvifa commented 4 years ago

Hello @eytan I also have similar problem there, is this moved as a private repo?

tsujeeth commented 4 years ago

The Golang planout repo (originally under URXtech) now resides at: https://github.com/biased-unit/planout-golang

The library has not seen development for over 2 years now. Contributions / Maintainers welcome!

@eytan , is there an active Go library out there?

irvifa commented 4 years ago

Please see this PR https://github.com/facebook/planout/pull/152 Thanks!