Taking a look back at Modularity in Software, at the #SignifyScalaConf, Dean Wampler asks; what went wrong?
Object-oriented programming promised us reusable, modular, component software. We were going to have exchanges where you could buy and sell components, like we buy and sell soybeans and steel beams. Instead, we got artisanal, small-batch, quirky, and non-reusable spaghetti code.
Today, we are excited about functional programming, microservices, serverless computing, and Kubernetes. They are taking us closer to this dream of modular, reusable components. Why are they working? We are also seeing the seams emerge in monolithic systems that are yielding fruitful decomposition into reusable subsystems, like distributed computing libraries (Akka, Ray), efficient data formats for memory (Apache Arrow) and on disk (Apache Parquet). I'll explore what we've learned about software modularity, how we are finding workable boundaries for decomposing systems. I'll discuss where problems remain and speculate about the future of software modularity.
This talk was given by Dean Wampler at the Scala in the City Conference.