Why not keep in line with modular design and use existing encryption libraries and then follow a similar design to Tesnsorflow such that a functional/dataflow design is done?
Think about future scalability (over the size of data or platform). Is python the best, or how about scala or similar?
I will definitely try to make my implementation modular and support code extensibility as much as possible. But at this point I can't directly tell which encryption libraries I will use as I still don't have a sufficient practical exposure to the existing encryption libraries other than in the Node platform (web based).
With regard to choosing Python as the language of choice for implementation,
- I chose Python mainly because it will allow me to focus on the implementation details (algorithm etc.) from a higher and more abstract level. I think it will be important as this project contains a research component and optimizing the codebase for the long-term use and extensibility is not the first priority. (but it is a priority nonetheless).
- Python bindings for the Tensorflow is currently the most popular choice for most of the projects. The reason is probably due to the simplicity of the syntax. The underlying implementation of the Tensorflow is in C++. Therefore using Python binding won't have that much negative impact on the performance.
- In my opinion writing a layer from Python would be much easier as there is an API already existing rather than for a language like Scala.
- Scala is more engineering oriented.
- I am more inclined towards Python or C++ when using Tensorflow because of its community size and support for these two languages.