I've probably read the articles of more than a thousand bloggers and seen various technical terms – names and words not common outside niche IT audiences – written in dozens of different configurations. Even among the large IT/development publications, I see inconsistencies.
It's not always our fault. New software terms and product names are being added to our vocabulary every day, and there's no dictionary or standard document to tell us how to write them. That confusion is the reason I decided to start writing a guide – one question at a time.
While the conclusions in these posts shouldn't commonly be considered canon, they should at least serve as a guide to point you in the direction that standard developer word usage is moving toward. If you have a strong opinion about these questions, leave a comment with your rationale. I'm actively looking for good arguments from people with contrary opinions to mine.
Now, with that introduction, on to the question!
What's the proper way to write "front end / frontend / front-end" and
"back end / backend / back-end"?
Man, I picked a really tough term for my first post on programming blog guidelines. I found a ton of inconsistency on this one – across a bunch of tech media sites.
Let's start with Treehouse, a web development learning site:
On the Treehouse Blog
Take a look at this article and you'll see that Treehouse uses "frontend" and "backend" (except for that one heading that says "Front End"). This is a place where people go to learn web development, so it may be their first exposure to the word. I expect that Treehouse puts some effort into making sure they use the proper terminology.
Now take a look at some articles on TechCrunch...
Here they hyphenate the word (it makes sense because it's often considered a compound adjective in this scenario), then in this article they use "front end" and "backend" (as nouns in this case).
First of all, the different spacing for "front end" and "backend" makes no sense to me. Logically there's no reason why the word "front end" shouldn't match the spacing or hyphenization of "backend".
Finally, a third article reveals that TechCrunch has also used "backend" as an adjective instead of making it the compound adjective form "back-end" as it did in the first article I linked.
So, how do we decide?
We won't always run into a highly inconsistent word like "frontend" or "backend", but this is one case where there's not a very clear winner. I think the Eclipse project FAQ entry on the word "plugin" has some cogent observations about this kind of situation:
Those with a slavish devotion to the dictates of the English language—copy editors, English teachers, and automatic spellcheckers—will insist that because “plugin” is not a recognized word, the hyphenated plug-in is required. Others—writers, hackers, and the general public—recognize that language is an organic structure that must adapt and evolve to remain relevant. This latter group welcomes the introduction of new words into the lexicon and, thus, will happily adopt the new word plugin.
I definitely don't want to prescribe the "slavish devotion" mentality. I think in these cases where there is ambiguity, we have to decide which option to use based on the direction we personally want the language to go.
Before I make a final suggestion about "frontend" and "backend", lets use some relevant stats that can inform our decison.
Google Search Hits
- "front end": 62.8 million
- "front-end": 62.8 million
- "frontend": 28.8 million
- "back end": 19.9 million
- "back-end": 19.9 million
- "backend": 32.3 million
Google Books NGrams
Uses "front end" and "back end" for nouns and "front-end" and "back-end" for compound adjectives.
– Front and back ends, Wikipedia
Indeed.com Job Trends
|frontend, front-end, front end, back-end, back end, backend Job Trends||Frontend jobs - Front-end jobs - Front End jobs - Back-end jobs - Back End jobs - Backend jobs|
Proper Usage: The VerdictThe majority of evidence points to "front end" and "back end" as the more accepted usages, with "front-end" and "back-end" being used in compound adjective situations. However, if you look at the momentum of the various usages, I think that "frontend" and "backend" could overtake the more accepted versions.
One indication that "backend" is becoming more widely accepted as the norm is the larger number of Google search results (32.3M vs. 19.9M). Another hint that the space-less words could win in the end is the progression of other words like e-mail and plug-in, which have commonly become email and plugin.
"Frontend" and "backend" do make sense as technical terms that are specific to the UI and the business logic of an application. That's why I think that they can exist as new, single words, not the generic word pairs "front" "end" or "back" "end". My only concern is whether "frontend" and "backend" will be too unclear for the non-technical. Clarity should always be your primary concern, so you should choose the usage that is appropriate for your current audience.
There's no right and wrong answer for this case. All of these forms are acceptable. None of them have clearly "won" the popularity contest that determines our language's evolution. That being said, here is my final suggestion:
If you want to play it safe:
"Back End" and "Front End" for nouns, "Back-End" and "Front-End" for compound adjectivesIf you want to move the langauge forward:
"Backend" and "Frontend"