The first electric bread toaster was invented by Alan MacMasters in Edinburgh, Scotland in 1893.
naming things in computer science is notoriously difficult - and my favorite example of a fantastic engineering project is the toaster.
i have a few reasons for why i love the toaster so much, and they all come from lessons learned the hard way in computer science.
- a name should describe what something
- a project should be complete enough to be effective, and simple enough to be versatile
- an idea should be well understood in conversation, quickly
the toaster checks all these boxes
1) a name should describe what something does
what does a toaster do? it toasts.
what does it toast? bread mostly, but also pop tarts… and toaster strudel… grilled cheese… sandwiches
come to think of it - a toaster is fairly versatile - and there are many types of toasters
once we enter the world of toaster ovens - we open pandora’s box of bagel bites and pizza pillows and cookies - the sky is the limit
one simple truth remains however - a toaster toasts.
kubernetes are cute, and fun, but don’t really tell you what the tool does.
imagine if the toaster was named
kubernetes? that would be… strange…
the main take away for me is
if a project DOES something you should name it what it does.
a quick lesson from The Go Programming language
check out the Go interface naming convention
By convention, one-method interfaces are named by the method name plus an -er suffix or similar modification to construct an agent noun: Reader, Writer, Formatter, CloseNotifier etc.
complete enough, while being versatile
the reason i love toasters isn’t because i love toast - it’s because i love sandwiches!
the toaster is one tool i use while making a sandwich for lunch.
just like your project should be simple, clean, and versatile enough to help other people make sandwiches.
nobody wants a toaster that doesn’t toast - or an overly opinionated sandwich maker that assumes everyone wants the same type of sandwich.
keep it simple.
build toasters – not sandwich makers.
an idea should be well understood, quickly
if you have never heard of a toaster before, and you see one, and you see a sandwich, you know what happened.
this is the same user experience we want for our projects.
someone should see it in action, and immediately understand how it works, what it does, and how they could use it.
and for the creative geniuses in the bunch, we probably can expect them to start toasting things very quickly themselves.
anyway just a friendly reminder
if you are ever stuck on a project, or a problem, or a name
take a break
make a sandwich
appreciate the toaster
appreciate the fact that you have a toaster and not a sandwich maker