Naming libraries

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

tepples
Posts: 22145
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Naming libraries

Post by tepples » Fri Dec 04, 2015 11:06 am

Phil Karlton has claimed that the two hard problems in computer science are cache invalidation and naming things. (Leon Bambrick added off-by-one errors, but I consider that a subtype of naming things.) How do developers come up with names for programming libraries, such as FamiTone or MUSE? I ask because I plan as my next project to polish and package some components of my old NES games as a library for others to use, but it'll need a name. I tried Google, but that came up with irrelevant results such as naming buildings where people can borrow books, coming up with filenames given a library name, or coming up with function name prefixes given a library name.

A bit later, I found the naming chapter of Producing Open Source Software. What else should I know?

User avatar
freem
Posts: 163
Joined: Mon Oct 01, 2012 3:47 pm
Location: freemland (NTSC-U)
Contact:

Re: Naming libraries

Post by freem » Fri Dec 04, 2015 12:04 pm

my names for things are horribly generic, like "freemco NES Corelib" and "freemlib for Neo-Geo". Not really sure what to do about catchy names, since I prefer names that explain themselves...

User avatar
dougeff
Posts: 2772
Joined: Fri May 08, 2015 7:17 pm
Location: DIGDUG
Contact:

Re: Naming libraries

Post by dougeff » Fri Dec 04, 2015 12:08 pm

What's in a name? that which we call a rose
By any other name would smell as sweet;
(Romeo & Juliet, Act II, Scene II -- William Shakespeare)
nesdoug.com -- blog/tutorial on programming for the NES

lidnariq
Posts: 9848
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Naming libraries

Post by lidnariq » Fri Dec 04, 2015 1:21 pm

As long as you don't call it Yet Another $X $Y , you haven't gone too far wrong.

User avatar
Movax12
Posts: 529
Joined: Sun Jan 02, 2011 11:50 am

Re: Naming libraries

Post by Movax12 » Fri Dec 04, 2015 1:41 pm

It's trendy give things arbitrary names that have nothing to do with the thing. Examples: Chrome, Apache, or tangerine, a bank:
http://www.tangerine.ca

Pokun
Posts: 1567
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: Naming libraries

Post by Pokun » Fri Dec 04, 2015 3:46 pm

Among open source projects I think it's painfully common with really bad names that are:
  • Hard to pronounce, often made up by lots of consonants and or numbers that doesn't even mean anything, and doesn't become a pronouncable word.
    Hard to remember, often due to the above
    Just plain ugly
Often all of the above. I can't think of an example of this right now though.

User avatar
Dwedit
Posts: 4365
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Re: Naming libraries

Post by Dwedit » Fri Dec 04, 2015 7:22 pm

The naming of libs is a difficult matter, it isn't just one of your holiday games; You may think at first I'm as mad as a hatter when I tell you a lib must have three different names.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Re: Naming libraries

Post by thefox » Fri Dec 04, 2015 7:53 pm

One method you can use is to think of some words related to the content matter, and then "corrupt" them in some way. That's basically what I did with "Ngin" (derived from "engine", but also the "N" can be thought to refer to Nintendo/NES). If one were to do some branding, there are some options with the obvious connection from "gin" to the drink, but "gin" is also Japanese for "silver" (well, at least based on my limited knowledge of Japanese).

Googleability is of course a plus.
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi

zzo38
Posts: 1075
Joined: Mon Feb 07, 2011 12:46 pm

Re: Naming libraries

Post by zzo38 » Fri Dec 04, 2015 8:32 pm

I don't know completely, but I can say what I do know. Note also that some software has old names which might now be considered as misleading or the name doesn't quite fit or something, even if it did in the past.

Here is a list of some free/open-source software packages:
  • Swiss Ephemeris: This is easy; it is ephemeris software that was invented in Switzerland. (I have also heard of "Dutch Ephemeris" but it seems to be far less complete than Swiss Ephemeris.)
  • SQLite: A public domain SQL implementation.
  • AmigaMML: Originally the output was in Amiga format, even though now there is an option for PC format as well (which is the mode I mainly use now); so the name is kept for historical reasons.
I think Knuth (was it Knuth?) was mentioning about naming variables and subroutines and so on in a program; if you have the book "TeX: The Program" then you can see how he does it.
[url=gopher://zzo38computer.org/].[/url]

User avatar
Alp
Posts: 223
Joined: Mon Oct 06, 2014 12:37 am

Re: Naming libraries

Post by Alp » Fri Dec 04, 2015 11:44 pm

A simple acronym, or relatively descriptive name will usually suffice.
The "VERGE" engine comes to mind.

Of course, silly/potentially offensive names (like SCUMM) are more fun.
Here's a suggestion:
(A) (R)elatively open-(S)ource (E)ngine

zzo38
Posts: 1075
Joined: Mon Feb 07, 2011 12:46 pm

Re: Naming libraries

Post by zzo38 » Sat Dec 05, 2015 1:50 am

Alp wrote:A simple acronym, or relatively descriptive name will usually suffice.
The "VERGE" engine comes to mind.

Of course, silly/potentially offensive names (like SCUMM) are more fun.
Here's a suggestion:
(A) (R)elatively open-(S)ource (E)ngine
Yes, acronyms; I forgot that too, but that last example doesn't really even describe what the program is for. (Another example (of one of my own programs) is "ZORKMID", which stands for "Zork Machine Interpreter and Debugger". There are probably more examples (whether or not it is software I wrote) although I cannot think of them right now.)

Another thing is name software after yourself; apparently Torvalds named both "Linux" and "git" after himself.
Dwedit wrote:...when I tell you a lib must have three different names.
Why?
[url=gopher://zzo38computer.org/].[/url]

Drag
Posts: 1327
Joined: Mon Sep 27, 2004 2:57 pm
Contact:

Re: Naming libraries

Post by Drag » Sat Dec 05, 2015 2:26 am

Pick a random word and just roll with it. Grumble, Grmbl, Gurmble, Gubble, Gumple, etc. You can even use non-English words as a starting point, and nothing has to mean anything, because it's going to mean your library. :P

You can also just name it after yourself, like teplib or pinolib, but that might be better used for something more widespread than a niche NES thing.

User avatar
DRW
Posts: 2005
Joined: Sat Sep 07, 2013 2:59 pm

Re: Naming libraries

Post by DRW » Sat Dec 05, 2015 6:00 am

tepples wrote:How do developers come up with names for programming libraries, such as FamiTone or MUSE?
I guess naming conventions are as different as the people, so there isn't really anything that you need to know. I mean, look at the names of professional programs:
On the one hand, we have Visual Studio, on the other hand, we have Eclipse.
Picture processing programs have names such as Paint, Photoshop or Gimp.
Text formats are either the Microsoft Word format or the Acrobat format.

It's totally different every time.

The creator of MUSE simply shortened the words "music engine", i.e. a pretty generic and straightforward name made recognizable.
His player is the MUSE Tracker, which is equally simple.
But before he renamed it, it was called "Porno Tracker". What the fuck? What does that have to do with anything?

If you ask me, I would suggest to use a name that's not too fancy, but not too generic. "NES Sound Library" is too bland. But the other extreme is people who try to be clever or tongue in cheek or use some pun or something that has nothing to do with the product:

WINE: "WINE Is Not an Emulator". (An acronym that creates another, yet unrelated word. Oh, and we used a recursion. We're so geeky.)

Fiddler: A program to log web communication. (Isn't a fiddler someone who produces noise and not someone who records other people's noise?)

Kaffe: A virtual machine for Java. (Because get it? The island of Java is associated with coffee. So, we use a dialectic version of the German word for coffee for a product that has to do with the programming language Java. Get it? Get it? We're just as clever as the guys who did NetBeans. You know? Beans. Like in coffee beans. For a Java IDE. Java: Coffee: Coffee beans. Get it?)


So, I would just suggest to find out what's the main "selling" point of your library and make a name out of it that doesn't sound too stupid, but still unique enough:
fceux: The extended edition of the ultra version of the Famicom emulator.
My game "City Trouble": www.denny-r-walter.de/city.htm

tepples
Posts: 22145
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Naming libraries

Post by tepples » Sat Dec 05, 2015 8:03 am

Unity: Is it a 3D game engine, a dependency injection container, or a netbook-inspired desktop environment?

Xfce: Is it an extended Famicom emulator? No, it's a desktop environment for X Window System. The emulator is FCEUX, though I run it under Xfce.

So anyway, thanks for the tips. I found another:

List words that describe attributes associated with the library. Open the Wiktionary page for each and scroll to the translations section. Find two words with the same sound shape. For example, if something lets you play loops and play five of them at once, you could take Polish pętla (pronounced pentla) meaning "loop" and Greek πέντε (pronounced pente) and mash them up.

Bavi_H
Posts: 133
Joined: Sun Mar 03, 2013 1:52 am
Location: Texas, USA
Contact:

Re: Naming libraries

Post by Bavi_H » Sat Dec 05, 2015 10:16 am

DRW wrote:Fiddler: A program to log web communication. (Isn't a fiddler someone who produces noise and not someone who records other people's noise?)
To fiddle with something means to play around with or manipulate something. Fiddler lets you modify the traffic if you want to. The Fiddler website description tag for search engines says:
Fiddler is a free web debugging tool which logs all HTTP(S) traffic between your computer and the Internet. Inspect traffic, set breakpoints, and fiddle with incoming or outgoing data.

Post Reply