Video: https://www.youtube.com/watch?v=6t80gIb-HBI
New tools are changing how people program, and even who programs. Type hints, modern editor support and, more recently, AI-powered tools like GitHub Copilot and ChatGPT are truly transforming our workflows and improving developer productivity. But what does this mean for how we should be writing and designing our APIs and libraries?
In this talk, I'll share what I've learned from developing open-source tools used by thousands of developers, strategies for how to design future-proof developer APIs and why, contrary to what you might think, making tools programmable is becoming even more important, not less.
If how people program is changing, how should we adjust how we’re designing our APIs, whether they’re Python, REST or some other technology? In this talk, I’ll suggest three implications.
First, programmatic interfaces are becoming more accessible. More professional tools can be optionally programmable, and more users will be able to take advantage of that feature to make their tasks more reliable and less repetitive.
Second, libraries can lean more towards composable building blocks, instead of offering a large flat surface of entry point functions. Guiding users through multi-step workflows is hard, so a "horizontal" design with lots of all-in-one functions can be easier to adopt from documentation. But the horizontal design is also harder for users to extend and debug. Generative AI tools can help address the learning curve problem, and give users more control.
Third, backwards compatibility will be more important than ever. Evolving versions already made it much harder to find usage from sites such as StackOverflow, and it causes an even bigger problem for current generative AI technologies. This is another point in favour of composable building blocks, as it's much harder to maintain backwards compatibility for a horizontal API style.