Differentiable programming is a language feature that we've been incubating for (the official) Swift as part of the Swift for TensorFlow project. After over a year's evolution and experimentation with real-world differentiable programming problems such as machine learning, the feature is getting closer to being ready for a Swift Evolution pitch. As such, we put together a design overview for this feature with an open roadmap. Your comments and suggestions are welcome!
Note: Opening this Google Doc does not require a Google account.
This document will be kept up to date, and the incomplete sections such as higher-order differentiation, infinite differentiability and control flow will be expanded soon. By the time we are ready to run a pitch (in late 2019), we will prepare detailed tutorials so that the community will get a better grasp of the problems this language feature is going to solve and help identify interesting use cases for it. Technical documentation about the implementation will also be written up in depth.