On Thu, Sep 10, 2015 at 12:55 AM, Yawning Angel yawning@schwanenlied.me wrote:
FWIW, I don't particularly think that there must be One True PT language[0], I just recommend Go over the other alternatives due to it being both memory safe and easy to build on mobile. If someone writes a new PT in Python, I don't consider it a deal breaker, though it won't be as useful due to the difficulty of mobile support.
[0]: MUST be able to be built deterministically. SHOULD be memory safe. Past that, people can do what they want. If they ignore the SHOULD clause, the code needs to undergo more thorough auditing before it will be deployed into production.
I'm not advocating that the various PT implementations be abandoned, just that we have a common implementation across products when possible. If I recall correctly, there was a time when TBB, Tails, and Orbot were all shipping different implementations. I think the current state of PT implementation deployment is the following:
TBB: Go, Python Tails: Go Orbot: Go, C++ (on x86)
The benefit of having the Go implementation ship with all products is that PT authors can target one implementation and achieve deployment across all of the products.
As far as reproducibility of builds goes, if a reproducible Python build is a challenge, an alternative is to port FTE to Go and retire flashproxy.