Deep Learning: is Python future-proof?
What is the future of Python? Will Python remain the lingua franca for Deep Learning?
Yann LeCun hinted that Deep Learning may need a new programming language [source]. In order to remain the language of choice in Deep Learning, Python needs to address three pressing needs:
1. The need for better abstractions
Back then, Data Frames addressed the need to better explicit the semantic meaning of data and provide, off-the-shelf, data wrangling capabilities. Something that plain two dimensional matrices could not offer. Similarly, today's tensors (multi-dim numerical arrays) no longer suffice: Despite its ubiquity in deep learning, Tensor is broken. It forces bad habits such as exposing private dimensions, broadcasting based on absolute position, and keeping type information in documentation [source]. Named tensors are an interesting step in the right direction [source].
A little farther down the road, there is a strong case for static and strongly typed languages. As I argue in my "From Wittgenstein to Tensorflow" talk [source], as we transition from monolithic Deep Learning to composable, modular architectures [source], the support of a type system will become crucial in making the semantic meaning of modules explicit and transparent.
2. Support Differential Programming
We are transitioning towards a new programming paradigm (differential programming, software 2.0) which our next programming language of choice for Artificial Intelligence should be able to fluently support [source]. This is something where Python falls short. A comprehensive explanation of Python's key limitations can be found in the Swift for Tensorflow design overview documentation [link].
3. A unique, fluent language for mathematics down to the metal
The benefits of efficiency go beyond being able to juice our hardware better. The most relevant benefit of efficiency is being able to code in one, high-level, fluent language for mathematics, from the highest abstraction level down to the nitty-gritty numerical implementation details right down to the metal.
This is something that, for example, Julia does better than Python, which is often just a wrapper / glue language: Julia provides code introspection macros so that way you can see what your code actually compiles to [source].
Conclusion
Simplicity and a strong ecosystem have boosted the adoption of Python for the development of AI and, in particular, Machine Learning. There are, however, some inherent weaknesses in the language that may make Python unfit to meet the needs of AI developers and researchers going forward.