Like everyone else in San Francisco, I've been spending a lot of time playing with ChatGPT. As a developer, the large-language models that power this chatbot fascinated me. The first thing I asked myself was, "How can I build with that?" Thankfully, OpenAI has made the models available using an API. But as I dug into the docs, I came to a scary realization.
AI is powered by Python.
Maybe I'm being over dramatic here, but every code example I need is written in Python. Historically, this makes a lot of sense, given the deep ties between Python and machine learning. But as a web engineer who usually writes code in Javascript (a completely different paradigm), it feels like OpenAI is opening a million new doors to Python developers… and I'm left in the dust.
Python is the language of choice for academics and first-time programmers. Its flexible, English-like syntax makes it easy to pick up. These two factors, combined with its rich ecosystem of statistical analysis and machine learning libraries, means Python will continue to be the choice of developers looking to get started with AI.
However, Python has issues. I don't want to start a holy war by comparing two languages, but at a high level:
Complex dependency management - Installing, packaging, and deploying Python code is hard. Don't believe me? Check out this StackOverflow answer (the #2 result on Google for how to deploy Python code).
Less-evolved developer tools ecosystem - Python became mainstream years before "developer tools" was a popular startup area. When evaluating the most popular Python tools, they're often open-source and self-hosted.
Serverless deployments don't work out of the box - The most common dependencies for building with OpenAI (Pandas and Numpy) are a combined 100 megabytes in size. This large dependency size means deploying on popular serverless hosts like AWS Lambda becomes challenging (and usually requires complex workarounds).
As a web developer, these sound like familiar problems. In his 2022 blog post, Steamship founder Ted Benson agrees, "We think AI's spaghetti infrastructure rhymes with the growing pains of the web application stack." Massive amounts of attention and capital have been dedicated to building tools that make it easier for web developers to ship code.
What startups are building the tools for Python developers that make it easier to use AI?
Streamlit (acq by $SNOW) is the incumbent, making it easy to turn Python scripts into shareable web apps in minutes. But Streamlit is more focused on data engineering, leaving room for a new challenger to emerge in the AI space.
Steamship (Seed) is a managed stack for language AI packages. Like Streamlit, you can use Steamship to deploy a managed Python application with a web interface in minutes. Unlike Streamlit, they have integrations with popular AI libraries like Langchain that offer the path of least resistance to deploying an AI-powered application. But is a managed approach the right for everyone? Sometimes you need a little more power.
Modal (Seed) offers a powerful end-to-end infrastructure solution for Python developers. You can deploy something as simple as an API or utilize their access to infrastructure primitives like GPUs to train your own AI models. This provides a lot of flexibility for developers and enables Modal to serve a wide variety of use-cases.
The movement of dollars and talent back towards Python isn't going away anytime soon. I'm curious to see who will emerge to lead the charge in building developer tooling for Python engineers and to democratize AI development. With OpenAI and GPT-3, I believe the Python ecosystem is due for a renaissance.