Deep Learning: is Python future-proof?
Photo by Alfons Morales on Unsplash

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.

To view or add a comment, sign in

More articles by Mattia Ferrini

  • Generative AI is a mash up artist

    The Washington Post reported on layoffs of copywriters and other creative workers. “Those who write marketing and…

    1 Comment
  • Have you hired your Chief Decision Scientist yet?

    It's been only three years since Jennifer Lerner, Professor of Public Policy, Decision Science, and management at…

    2 Comments
  • Data-driven: what AI experts got wrong

    I recently had the opportunity to speak at the curious 2022 conference in Darmstadt, Germany. It took me some courage…

    9 Comments
  • Decision making: risk, uncertainty or a black swan?

    On a daily basis, it is estimated that an adult makes an average 35,000 decisions per day. This is not surprising!…

    1 Comment
  • Knowledge beyond data

    How can organizations address the limitations of forecasting methodologies based on historical data by tapping into the…

    6 Comments
  • Is Data-Driven Decision Making truly possible?

    What is Data-Driven Decision Making? Data-driven Decision Making (DDDM) is the process of making decisions based on…

    12 Comments
  • To TIOBE or not to TIOBE

    Does the popularity of a programming language matter when choosing a tech stack? The decision should be obviously…

    5 Comments

Insights from the community

Others also viewed

Explore topics