From: Jacob Fugal Date: 2006-07-22T01:24:35+09:00 Subject: Re: An open letter to Rubyists - Naming things On 7/21/06, Jeff Pritchard wrote: > Juggernaut, Capistrano, ferret, Mongoose, Curses, RMajic, Selenium, > BlueCloth, ozimodo, Mechanize,Korundum, Nitro, Mongrel First, the names you can't blame on the community: * Curses is an ages old C library. * RMagick (I could'nt find any project named RMajic, so I assume this is what you meant), provides bindings to ImageMagick, another ages old C library. * Mechanize is named as such because of the similarities to the long-standing perl module of the same name which it is modeled after. * Selenium is a library (I think it's Javascript?) for client side testing in a browser. The Ruby bridge is just one of many others in other languages for "remote controlling" the browser tests. Second, the names which have some sort of mnemonic to their functionality: * Ferret is named after the verb (which in turn is named after the animal, due to characteristic behavior). To "ferret" is "to uncover and bring to light by searching" (dictionairy.com), which happens to be exactly the aim of the library. * Juggernaut: The library aims to provide a way for the browser (client) and server to have a persistent connection so the server can push data to the client (as opposed to the request/response HTTP cycle). It just keeps pushing and pushing and pushing... (can't stop it, it's a juggernaut!) * Korundum provides Ruby bindings for KDE. So you can blame the K on the KDE fetish for starting *everything* with a K. :) And corundum is "an extremely hard mineral ... that occurs in gem varieties such as ruby" (also from dictionary.com). * Textile is a popular wiki-style markup format (name plays on the word "text"). RedCloth is an implementation of Textile in Ruby (Textile -> Cloth, get it? And it's red because it's Ruby...). Markdown is another popular markup format. Well if Textile has RedCloth, then Markdown should have *Cloth, just for name grouping, right? So BlueCloth it is... * Car racers use Nitro (nitrous oxide) to go faster. Nitro = fast, boosted speed. The web framework attempts to leverage that connotation regarding it's own capabilities. I can't really think of a mnemonic for the others (Mongoose' and Mongrel's names are derived from perceived characteristics and heritages of the libraries, respectively, but not from functionality). But I can attest that at least in the case of Capistrano (which had been formerly named SwitchTower before receiving a C&D letter) the choice of a name was at least in part restricted to something original and unrelated to the project in order to avoid yet another C&D. Names are tricky things... All in all, I prefer creatively named libraries. While it may take multiple exposures before the name sticks, the mnemonics -- or outright irrelevance -- of the name serve to stick it in my mind better. And the authors are served better because their name sticks out, rather than being yet another of 10-15 similarly named libraries competing in the same space. And if you think that there isn't or shouldn't be competition between libraries, just look at KDE vs Gnome, or Rails vs. Nitro vs. Borges vs ..., or even Ruby vs. Perl vs. Java vs. Python vs. everything else. Jacob Fugal