We use libraries every day when building applications, and most languages live and die by their ecosystems of robust packages. Reusable code saves us time and energy, and give us access to useful tools and flows that would otherwise be impractical to use. Yet we rarely talk about library design as its own discipline. What makes one library more powerful than another? Are there genres of libraries? Why do some seem to fit together so well? How come some feel just plain weird even if they're effective? Are there strategies for overcoming framework fatigue?
After writing several suites of Elixir libraries, bootstrapping numerous features, and balancing more trade-offs than she can count, Brooklyn has learned a thing or two about library design. She's also made plenty of mistakes along the way. Framed as a retrospective on building the Witchcraft Suite and others, this talk aims to share her learnings and overall philosophy of library design. Along the way, she will link it to principles from the more studied principles of programming languages, and hopefully help spread ideas that help the Elixir community build the most enjoyable and flexible ecosystem out there!
Brooklyn is the CEO & Chief Scientist at SPADE Co, an R&D agency focused on Web3 technologies. She is an Ethereum Core Developer, and has written a number of blockchain-related standards. She is the author of several Elixir libraries, including Witchcraft, Exceptional, Algae, and Quark. She has founded and organised multiple meetups and conferences, centred around functional programming, culture and mentorship.
Lately she has been thinking a lot about the success and failure modes of different tech disciplines, speeding up VMs, and how dependent types can help save us from ourselves. When not roaming the world as a digital nomad, Brooklyn is based out of Vancouver, Canada.