Session: Plugin Oriented Programming A New Way to Scale Development (Extended Session)
A universal truth has evolved in open source. Many open-source projects are difficult to maintain and teams maintaining them are spread too thin. The promise of code reuse that came from OOP has met a ceiling. Open Source developers become slaves to managing contributions.
A proposed solution to this problem is called POP, recently highlighted on the New Stack: https://thenewstack.io/saltstack-plugin-oriented-programming-could-help-open-source-woes/
POP is about scaling human capabilities. Making projects that are easier to contribute to in a large, distributed fashion. Software projects that are small are more manageable. A single developer can be expected to be able to manage and develop projects that consist of tens of thousands of lines of code, but it is unreasonable to conclude that a developer can be on-boarded to and own larger codebases.
In fact, larger codebases present serious long term issues, as they are not only deeply difficult to convey to others, but they are also irreplaceable. Over time new techniques are developed that can more easily solve historic problems. So instead of fixing older software to use newer capabilities, entirely new platforms are often produced.
POP aims to solve this issue, POP allows all code to be written in plugins, this allows entire applications to be made pluggable. But this is not all! POP makes applications pluggable with each other. So any POP application should be pluggable into another POP application.
The end result is that codebases can be broken up and tested in smaller chunks, but they can still be delivered as an easy to deploy and manage monolith. In many ways, it presents the benefits of microservices without the overhead of scheduler systems like Kubernetes.
In the end, the argument is, large projects almost always need to turn to plugin models, why not start with one?