| Seems a bit of conflation of notions going on here: Just because logic/quantum/probabilistic all end with "programming", it doesn't mean that they all are what is called a "programming paradigm" in the typical sense [0]. Where does a paradigm end and a library implementation begin? For example, varying how a program arrives at the answer induces impertive/OOP vs. declarative paradigms [0].
On the other hand, quantum programming assumes a radically different type of "CPU" (i.e. instruction set) on which your program runs - which in turn obviously changes everything. But this can safely by implemented within existing paradigms, e.g. ProjectQ [1] is implemented in an OOP language: Python.
Thus, I would not call this a new programming paradigm (unfortunately [0] does that, but I think that is bad form). > you can view differentiable programming as extending logic programming [...] that allows interpolation between data and code. Reference? I have browsed one of the standard references [2] on automatic differentiation and googled a bit and could not find something that supports your statement. Even more so, is seems that even defining semantics for differential programming is barely in its starting stages [3]. > differentiable programming is at the level of syntax sugar for reverse mode differentiation, so I can't blame you for that conclusion. By the same argument you could say that probabilistic programming is just syntax sugar for painless specification of statistical models. Care to provide a reference where differential programming is presented as something more than "syntax sugar"? [0] https://en.wikipedia.org/wiki/Programming_paradigm#Further_p... [1] https://projectq.ch/ [2] Griewank A., Walther A., Evaluating Derivatives, SIAM 2008 [3] https://arxiv.org/pdf/1911.04523.pdf |
The main paper to read is [1] which introduces a syntactic notion of differentiation in the lambda calculus connecting substitution and nondeterministic choice to differentiation in the calculus of infinitesimals sense and also introduces a meaningful notion of Taylor expansion of arbitrary programs. This paper is mostly of academic interest, though. The resulting expansion is wildly uncomputable meaning that more modern, practical papers like [2] cite it wistfully as a dream of what could be achieved. How to computably handle most of the constructs we care about in a general programming sense is very active, open research. At the time the paper was introduced, it was more influential on (and influenced by) work on probabilistic and quantum programming through their related models of linear logic [3]. There are only a few slight axiom differences that separate differential, logic, probabilistic, and quantum programming though, so if you're willing to accept one as a "paradigm", then you should accept the others.
[1] https://www.sciencedirect.com/science/article/pii/S030439750... [2] https://arxiv.org/abs/1911.04523 [3] https://ncatlab.org/nlab/show/differential%20category