My personal religious war against dynamic libraries

"Do one thing and do it well"

One thing can be very broadly defined. What is discourse? Does it do one thing or a collection of many things?

What is angular? Does it do one thing or does it do a composition of many things?

I think we should go back to isolation. We can't trust ourselves to keep track of complexity. No two user-facing applications should share too much™ under the hood. So what can they share? They can share anything that guarantees to not break interfaces and has a a track record of following some sane versioning like semver. For example, sharing the Linux kernel is probably OK.