Cloud development is marred with complexity. In addition to the domain knowledge for their business, a development team must also have significant expertise in cloud hosting and deployment, only some of which can be outsourced to a hosting provider or platform team. This is because programming languages are runtimes that run on a single machine, and must involve dozens of other tools such as hypervisors, databases, load balancers, and queues, in order to run in the cloud.
Darklang is a language designed to run on the cloud; that is the server, operating system, kernel, hypervisor, container, load balancer, orchestration framework, database, queue, and web host are all below the level of abstraction. By combining so many things below the programming language abstraction layer, we remove significant complexity burden from the developer:
- Our “Invisible Infrastructure” removes massive complexity not only from not having to manage cloud resources, but also from removing the many layers that need to interact with them, such as ORMs, serialization frameworks, connection pools, health checks, logging and telemetry, etc.
- We also enable new abilities which are nearly impossible using other tools, such as our 50ms deploys, and our always-on, replayable debugger that enables “Trace-driven development”.
What's the focus of your work these days?
I'm working on darklang, which is a cloud language, where it's not really designed for running on your computer so much as it is taking advantage of how we write applications in the cloud. My most recent focus has been adapting it for how AI is changing how we write software.
What's the motivation for your talk at QCon New York 2023?
I want people to come away with the idea that the way we write software has a ton of complexity that we take for granted. Specifically, many of the tools and concepts that we use for programming could be eliminated or at least greatly minimized if we slightly changed how we thought about devtools.
How would you describe your main persona and target audience for this session?
Ideally, Senior or Principal engineers, usually people who have deployed a bunch of applications in the cloud, are the sort of people who appreciate what I'm talking about.
Is there anything specific that you'd like people to walk away with after watching your session?
I think just the idea that how we do things is broken, and better is possible. In particular, the idea that having all these different tools which have interconnection points creates that complexity and that they can do better by looking for tools that do more.
What do you think is going to be the next big disruption in software?
AI, 100%. Despite all the hype, I think we actually are underestimating how Large Language Models and AI-based code gen are going to change how we write software. We even did a pretty hard pivot early this year once that became clear.