diff options
-rw-r--r-- | _posts/2021-03-21-coins.md | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/_posts/2021-03-21-coins.md b/_posts/2021-03-21-coins.md new file mode 100644 index 0000000..f29937c --- /dev/null +++ b/_posts/2021-03-21-coins.md @@ -0,0 +1,38 @@ +--- +title: Cactus's Obvious, Intuitive Naming Scheme +--- + +It's well-established that naming things is one of the two hardest problems in computer science (along with cache invalidation and off-by-one errors). +So I solved naming. +If you've got a project that needs a name, here you go. + +The ingredients are simple: + +1. Your name. +2. The word "obvious". +3. A good adjective. +4. The kind of thing you've made. + +The canonical example, from which this scheme was reverse-engineered, is [Tom's Obvious, Minimal Language](https://en.wikipedia.org/wiki/TOML). +People who haven't used TOML might think that "obvious" is functioning here to describe the language, but various attributes of TOML ([non-ASCII keys requiring quotes](https://toml.io/en/v1.0.0#keys), [substantial distinctions between single- and double-quoted strings](https://toml.io/en/v1.0.0#string), [array-of-tables syntax](https://toml.io/en/v1.0.0#array-of-tables)) indicate that "obvious" is merely part of the name template rather than an actual descriptor. + +As an example, we can construct a name for this approach to assigning names to things. +My name is *cactus* (for some value of "name", and for that matter "my"), it would be good if this was *intuitive*, and this is a *naming scheme*. +As such, the name this process assigns to itself is "Cactus's Obvious, Intuitive Naming Scheme", which abbreviates nicely to "COINS". + +We can also construct COINS names for other things: + +- [Linus's Obvious, Free Kernel](https://en.wikipedia.org/wiki/Linux_kernel) +- [Bjarne's Obvious, Powerful Language](https://en.wikipedia.org/wiki/C%2B%2B) +- [Donald's Obvious, Expressive Language](https://en.wikipedia.org/wiki/TeX) +- [Leslie's Obvious, Usable Macros](https://en.wikipedia.org/wiki/LaTeX) +- [Jack's Obvious, Nightmarish Hellsite](https://en.wikipedia.org/wiki/Twitter) +- [Bram's Obvious, Terse Editor](https://en.wikipedia.org/wiki/Vim_(text_editor)) +- [Sonja's Obvious, Minimal Language](https://en.wikipedia.org/wiki/Toki_Pona) +- [Kurt's Obvious, Profound Theorem](https://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems) +- [[Miku]'s Obvious, Engaging Film](https://en.wikipedia.org/wiki/Primer_(film)) +- [Jimmy's Obvious, Collective Encyclopedia](https://en.wikipedia.org/wiki/Wikipedia) +- [Alan's Obvious, Revolutionary Mistake](https://en.wikipedia.org/wiki/Computer) + +Despite the fact that Tom's Obvious, Minimal Language inspired this naming scheme, it actually suffers greatly from having used it. +If I ever get my hands on a time machine, I will go back and tell Tom to call it "My INI-Like Format" instead. |