Hal said:
Quite true. I wonder if there is a (Rubyland) cultural explanation?
It might jut be a practical matter, and maybe a Good Development Practice.
Here's an example: I'm working on an application that, among other
things, sends E-mail. I want it to send multi-part/alternative HTML
E-mail, so that it looks OK even when the mail reader does not render
the HTML part. I also want embedded images.
So, I code something up, it works, but has some odd quirks. I figure
that if I release the HTML E-mail part of the code as a stand-alone
library, others can use it, find issues, suggest fixes (or, better yet,
write the fix for me), suggest interesting use cases/improvements, and
so on. Benefits for many people.
Plus, I get pushed to write better unit tests, write docs, manage
dependencies, write a less-coupled API for the code. Better design emerges.
Eventually, I'll get my app finished. I'm expecting, though, that a few
independent libs should emerge as a side-effect. Ideally, the core
business logic should be calling out to assorted libraries, coordinating
the overall behavior.
If only for selfish reasons, people working on applications should try
to release what libraries emerge from their work, since they open
themselves up to code fixes, enhancements, and better overall design.
James