We need pluggable *applications* (blog, CMS, RSS feed generation,
administrative panels, forum, wiki, caching, user management, etc) that
understand how to talk to each other --- expecting "plug and play"
compatibility between frameworks on this level, when there's no
consensus on the *primitives*, is a pipe dream. The first framework that
cracks this particular nut, in a way that makes it easy and pleasurable
for people to build web apps that perform, is going to gain a lot of
traction. Code talks.
I have been working on this in the happstack framework. Specially, the idea of making possible for you to write a new application by combining several libraries writing by different authors.
The first issue is that the libraries need to have unique URLS that can not collide with each other. If two libraries expect to be able to handle, "
http://localhost/submit", that will never fly.
So one aim of URLT was to ensure that when you combined different modules together, the URLs remained unique.
Another issue is that each library has it's own set of state that it needs to manage. happstack-state is pretty well situated in that regard. The happstack state is made up of an arbitrary number of state Components. Each library can have it's own state Components which get added to the global state.
The next big problem I have run into is user management / security. Each of the libraries maybe have different requirements regarding permissions, etc. But I am not clear how much independence they can have from the user management system. I don't really want to take a one-size-fits-all user management approach though if I don't have to.
- jeremy