
I initially thought along these lines, but then concluded that it's not that simple (or at least, that's not the only interpretation of the classification).
Is a deep hierarchy really necessary?
Well, it seems useful to group codecs by purpose: Audio, Video, Compression, etc. so I believe we're not into diminishing returns at this level. Matt Harden said:
I would agree with Codec.Binary.Base64. Codec.Text should be reserved for codecs that deal with text data; i.e. translating text between various encodings like unicode, ISO 8859-1, ascii, ebcdic, etc.
That's a good point. Unless anyone objects, let's reserve Codec.Text for the text encodings (UTF-8 and so on). The options for Base64 and friends are therefore: Codec.Binary.Base64, Codec.Base64, or Codec.General.Base64. Or even Codec.BinaryToText.Base64? None stands out as the obvious choice to me, but we could defer the decision until the library actually exists ;-) Cheers, Simon