Please don't use ::Tiny unless it meets the ::Tiny criteria, thanks!
Don’t get me wrong, I really, really, really appreciate effort put into making something as small and efficient as possible.
However, it seems like we have a recent trend of using ::Tiny for things that do not meet the actual criteria of ::Tiny.
That is bad because seeing ::Tiny gives a certain expectation that, when not met, could be surprising, even bad.
Just because it is way less bloaty than something, like say, Moose: still not necessarily “::Tiny”.
Here are the rules Adam Kennedy originally defined for what ::Tiny means:
- The module should be implemented in "as little code as possible"
- The module should implement a useful subset of functionality
- The module should use at least 1/10th the amount of memory overhead, ideally less than 100k
- The module MUST have no non-core dependencies
- The module MUST be only one single .pm file
- The module should be back-compatible to at least 5.004
- The module should omit functionality rather than implement it incorrectly.
- If applicable, the module should be compatible with the larger module.
If you have a module with ::Tiny in the name space then please either make it ::Tiny or rename it.