Baboon: 15 Years of Evolution Fighting Bad APIs
Pavel Shirshov
We specialize in back-end software development, where we often need to integrate our code with components built by other teams. From our experience, integration can account for up to 80% of the overall development effort.
Over the years, we've experimented with numerous methods to simplify and streamline these integrations. We've worked with a range of tools, from older technologies like WSDL to modern solutions like gRPC, custom protobuf-based protocols, and semi-formal tools such as Swagger, OpenAPI, and GraphQL.Despite these efforts, none of the existing tools fully met our needs.
This led us to start developing our own interface definition languages (IDLs) and compilers.In this talk, we'll discuss the limitations of current tools, introduce two iterations of our IDL, Idealingua, and explore the challenges of building a compiler from scratch. We'll then present Baboon, our latest project—a lightweight yet robust compiler for a data modeling language that focuses on automatic schema evolution and efficient tagless binary encoding.
We'll also demonstrate why Scala is an excellent language for building complex typers and compilers, and how Functional Programming and innovative design can make compiler development more approachable.Currently, Baboon is not a full IDL, but with community support, we hope to expand its capabilities and compete with other tools in this space.