pbstream’s name

I hate naming things. I’m starting to realize that pbstream is outgrowing its name. That’s the one thing I always thought was brilliant about the iPod’s name. When the iPod started playing video it was no problem — it’s a pod! Why shouldn’t a pod play video? There’s no way to outgrow the name “iPod.” Brilliant.

I had no such luck with pbstream. The tagline is currently:

pbstream - a stream-oriented implementation of protocol buffers.

It’s true that offering streaming semantics is one distinguishing feature of my implementation, but the way it’s growing it’s no longer really “stream-oriented.” It will offer both stream-oriented and structure-oriented semantics. Both will be equally supported/encouraged — it will be a matter of what best suits your needs.

If anything, the number one distinguishing feature of my implementation is that it is minimal. It gives you a set of tools to use whatever paradigm is the right trade-off for you. It gives you building blocks to assemble as you see fit. There are never “riders” — things like memory management that you have to take along with the parts you really want.

So what’s in a name? Desired characteristics:

  • Unique, reasonably Googleable.
  • Communicates that it is a protobuf implementation, and if possible communicates the philosophy described above.
  • The name (or a reasonable abbreviation thereof) makes for a nice prefix that can be appended to all my identifiers. Right now it’s pbstream_this and pbstream_that.

Originally I just called it “pb” but that was a tad bit too generic. I slightly like “pblab” (communicates that it gives you building blocks for forging your own strategies), but I dislike the connotation that it is unfinished, unpolished, not production quality.

Perhaps I could give it a name, but keep using “pb_” in my identifiers. It could also help me organize the names of the different parts. I could use names like:

  • pb_stream_parser_* for the stream parser.
  • pb_struct_* for the code that defines an in-memory structure.

I kind of like that. But I still need a name for the package itself that is better than “pb”. Ideas?

This entry was posted in upb and tagged . Bookmark the permalink.

9 Responses to pbstream’s name

  1. Brian Slesinsky says:

    Some suggestions:

    pblib – taken, alas
    llpb – low-level protobuf lib
    buflib
    pbufstuff
    bufferbase

  2. Aaron Leiby says:

    minpb
    pbj (j for josh or jelly)

  3. Phil says:

    Buffer the Streampire Killer

  4. Luca says:

    My pic would be upb (u meaning micro). It’s short to be used as identifiers prefix, it’s general, it denotes is a PB implementation and it denotes it is minimal.

    The only drawback is googleability, there are 365000 hits to upb, but even not being perfect, is not that bad either =)

  5. Luca says:

    BTW, your comment preview is broken, it shows the single and double quotes escaped:
    ‘ -> \’
    ” -> \”

  6. josh says:

    Ooh, I think we may have a winner. I really like “upb”!

    Thanks everyone for your suggestions.

    Yes, it’s annoying that preview doesn’t work correctly on this blog. Sorry about that. I think it’s a bug in the style I’m using, but I’ve never taken the time to really dive in and figure out what’s wrong.

  7. Catherine says:

    Josh! How could you ignore Phil’s amazing suggestion of “Buffer the Streampire Killer”?? Inconceivable.

  8. Jack says:

    Whenever I see prefixes like “pbstream_this and pbstream_that” in C++ code, I wounder why the author didn’t used namespaces for this purpose??

  9. josh says:

    Jack: C doesn’t have namespaces, and pbstream/upb is written in pure C (not C++).

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>