Acronyms and Names
Published: 2019-03-06 21:30:50

---
title: Acronyms and Names
published: true
description: 
tags: 
---

{% youtube hkDD03yeLnU %}

#Programmers LOVE their names and acronyms
Perhaps even more than other industries, we take pride and have fun in naming our programs. Names are important because, not only are they how we talk about our code (obviously), but they can also add important contextual information
    Take Ruby and Ruby Gems for example. Ruby is the programming language and Ruby Gems are libraries for Ruby. What does a gem make you think of? Something small, unique and valuable right? We could say the same thing about the libraries! They are "small" collections of code that does something unique that is valuable to us.

![Gem Names](http://geologycafe.com/images/gemstones.jpg)

 Someone could guess what a gem for ruby is just based on the name alone.
    
Take Pry as another example. Pry is used to "pry" into our code and see the inner workings of it.
    
Or take Windows, it's is a collection of windowed applications!
    
Or ISF - Interactive Shader Format, it's a shader format that's interactive!
    
That doesn't mean you can't have fun with your names, many companies like to add references, silliness or even recursion to their names! Look at what the creators of the popular linux OS Ubuntu named their versions...These names might look silly (because they are!!) but serve the purpose well as they are unique and easy to remember. You're probably more likely to remember "Disco Dingo" better than Ubuntu 19.04.01 LTS, plus "Disco Dingo" is inherently Ubuntu while 19.04.01 LTS could easily refer to another OS.

![Ubuntu Version Names](https://thepracticaldev.s3.amazonaws.com/i/0fkeugtgh00djjf5ik4q.png)

My personal favorite name is XINU, XINU is a primitive, linux-based operating system that is used as a framework to teach how operating systems work to beginners. XINU stands for XINU Is Not UNIX, but XINU is also UNIX backwards!

Let's look at some bad examples now. Specifically the notorious JavaScript language. Based on the context of the name, you may assume, and many have (including me!) that JavaScript is A) related to Java B) is a scripting language. But neither is true! It is it's own language built by Netscape, not Sun Microsystems.It's a lie!

![Capybara Water](https://media.giphy.com/media/GDmYAI8zwKTNm/giphy.gif)

Or what about Capybara? Why is it called Capybara? What does Capybara do? What does a real capybara do? Why isn't it as cute as a real one. We...Just... Don't... Know... 

![Capybara Goat](https://media.giphy.com/media/9Si6HlM5DfsA0/giphy.gif)

A name like Python gives us way more context than Capybara

#So why is this all important

There is a lot of code out there, and we need to able to talk about it clearly and efficiently. It helps IMMENSELY when you can guess what some code does based on it's name and context it's used.

If your name is hard to pronounce, people will call it something else, you may not want that

What if your name is immortalized? We still talk about FORTRAN (latest stable release is 2018 BTW!) even though that was made in the 1950s.

Social Media and SEO is tied into EVERYTHING these days, it sucks but your code will probably be more popular if it has a unique name people can remember and Google easily. SEO is important! I can't even remember the last time I went to the second page of a Google Search

##But is it actually important?
Not really... People will use your code if it's good regardless of it's name, JavaScript is one of the largest implemented languages in the world. 

#What makes a good name/acronym?
Make it unique/notable, this doesn't matter too much, but a unique easily searchable name will make it more notable and improve SEO
    
Make it easy to say, don't name your code something that's hard to pronounce or people will call it something else.
    
Make it themed, like Ruby - Gems, keeping related software named in a theme can make their relations inherently make sense.
    
Make it make sense. If you call something Student_controller, it should probably control the students, not handle server security
    
Make it professional. Adding swear words or something cringey or inappropriate. As neat as Brainfuck or the My Little Pony interpreter is, I probably won't talk to my boss about it.
    
Make it whatever you want. Seriously, at the end of the day you can name your code whatever you want. If people want to use your code, they will regardless of it's name, I mean... JavaScript is one of the most implemented languages in the world. 
    
But help the programmers of the world and make your names nice! This extends to anything in code, from classes to methods to variables to actual name of the app. In a professional setting, people who are not you are going to be reading your code and making edits, implementations, bastardizations and who knows what else. It could even be you in the future! Help yourself and your coworkers, have good names