165

Which is correct?

  1. front-end engineering
  2. frontend engineering
  3. front end engineering

I looked over http://www.grammarbook.com/punctuation/hyphens.asp, referenced in this answer, and I'm still not sure which to use.

Rule 1 under Hyphens Between Words says:

To check whether a compound noun is two words, one word, or hyphenated, you may need to look it up in the dictionary. If you can't find the word in the dictionary, treat the noun as separate words.

"Frontend" is not found at reference.com. "Front-end" and "front end" are both found, which "front end" as two words representing the software term, so I think this must be right. However...

Rule 1 under Hyphens With Prefixes says:

The current trend is to do away with unnecessary hyphens. Therefore, attach most prefixes and suffixes onto root words without a hyphen.

I think that "frontend" qualifies under this rule. Compare that with "backend" and it sounds to me that "front" and "back" are prefixes to "end".

Also, the most common usage I've noticed is "frontend" as a single word when talking about software. Common usage has to count for something, right?

What's considered the final say here?

3
  • Hello and welcome to the site! Your question has been closed as a duplicate of another. If you read that post and still don't feel that your question has been answered, then please feel free to edit this question to reflect what part of the answer in the duplicate you find incomplete. If you have questions about why your post was closed, please leave a comment here or ask on Meta.
    – Kit Z. Fox
    Jul 15, 2011 at 18:58
  • 1
    If your concern is with job titles, it's interesting to look at the LinkedIn job title autocomplete suggestions. If you type "Frontend", it suggests "Frontend Developer" or "Frontend Engineer", but it doesn't give anything for "Front-end", and if you try "Front End" it only suggests "Front End Supervisor". I'm guessing this is powered by the most common entries, which suggests that in the tech industry "Frontend" is most commonly used.
    – jackocnr
    Jan 9, 2014 at 3:12
  • @KitZ.Fox While I understand your argument for closing the question, the term(s) in question are so frequently used that consideration beyond applying the hyphenating vs non-hyphenating grammar rules discussed in the question this question supposedly duplicates seem pertinent.
    – kontur
    Jul 23, 2015 at 14:39

6 Answers 6

66

For the compound noun front + end it is front end:

Noun

front end (plural front ends)

  1. (computing) that part of a hardware or software system that is closest to the user.

frontend and front-end are alternative forms.

The compound noun front + end + engineering may be another matter.

2
  • 1
    Agreed. After more searching, "front end" seems to be the most common form when used as a noun. I found it in dictionaries like Webster and Dictionary.com (and Wiktionary, as you pointed out). However, I think that Ascendant may be right that we might see a change in the foreseeable future as confused people like me mix it up as we go along ;) Jul 22, 2011 at 2:49
46

"Frontend" and "backend" in this situation are technical terms, and as such I don't think they conform strictly to traditional ways of creating new words.

I'd put it in a similar category as putting the letter "e" in front of things: For example, should we call it e-mail and e-commerce or email and ecommerce? Most of us have settled on "email" but we split the difference on "e-commerce," but in any case, traditional language authority didn't move fast enough to lead this debate, but only explained or justified it after the fact.

So it goes with "frontend" and "backend", whichever one wins out may become enshrined by dictionaries (like "googling" yourself) or there may not be a winner in the forseeable future (such as in the "ecommerce" case)

5
  • 14
    I had a technical writing professor explain it's often just a matter of time before the hyphen disappears. The hyphen indicates the pairing is fairly common but still relatively new. By the time front-end becomes "frontend" there's already a consensus the new word stands on its own.
    – PJ Brunet
    May 8, 2014 at 21:55
  • @PJBrunet But it is still H-bomb, X-ray, T-bone. Mar 25, 2015 at 6:58
  • 2
    @FrederikKrautwald The difference between H-bomb/X-ray and the e-mail/e-... versions is probably caused by the fact that "email" is 2 syllables, and that's the same whether you write it as e-mail or email. However, when you write hbomb or xray it would be written as a 1 syllable word (and those sound horrible). The same goes for newer words starting with an "i".
    – user194431
    Dec 23, 2016 at 10:19
  • 3
    Six years have passed since this question was asked and the battle is still ongoing. The internet hasn't yet settled on any one version, you can find all of them (frontend/front-end/front end) in roughly equal proportions if you do a google search. Jul 6, 2018 at 5:52
  • There might be a difference in perception when you talk about the frontend as an object (the piece of code that grows bigger and bigger as JavaScript ecosystem evolves) and the front-end as a part of a system (which would be a more formal/historical vision in my opinion). Also as a French speaker the "front-end" form with hyphen is non-intuitive (and "front end" is worse), because we would never use the "end" word alone, we mostly use the "frontend" version in French sentences.
    – Eric Burel
    Feb 24, 2021 at 10:48
38

I like the spelling convention set in GCC Coding Convention:

  • "front end" (noun)
  • "front-end" (adjective)
3
  • 8
    "front end" (noun) like in; I work in the front end. "front-end" (adjective) like in; I work as a front-end developer.
    – numediaweb
    Oct 22, 2013 at 14:19
  • This is the convention preferred by FreeCodeCamp, which I like as a non-native speaker: "Also, front-end development (adjective form with a dash) is when you’re working on the front end (noun form with no dash). The same goes with the back end, full stack, and many other compound terms."
    – Eric Burel
    Feb 24, 2021 at 10:40
  • @numediaweb Is that really how it works? Can anything become an adjective? I'm building a car. I'm a car builder. Seems odd that car would now be an adjective.
    – Erik B
    Dec 3, 2021 at 16:02
5

"Front end" but "front-end engineering." It's really pretty simple: When you're using a compound as an adjective (that is, when it's modifying another noun) you hyphenate it, not because somebody said to, but to avoid confusion. That way you don't have people wondering what "end engineering" is. I think the comment about avoiding unnecessary hyphens is just to keep people from going overboard, like "hot-dog bun."

2
  • 3
    Mmmmm, I could really go for a steaming hot, delicious dog bun.
    – jimm101
    Sep 20, 2018 at 23:35
  • 1
    xkcd.com/37
    – targumon
    Aug 13, 2019 at 22:43
2

Your research under "Hyphens with Prefixes" may not apply to this case. While "front" is being added as a prefix, the rule is referring to prefixes like non-, un- and in-. So while words like nonaggression and unable do not have hyphens, frontend doesn't seem like a valid compound word.

Since "front" isn't a prefix in the same sense as those listed above, I believe you should use the rule of "Hyphens Between Words". Either "front end" or "front-end" would be valid under this rule.

0

From Grammarly:

Generally, you need the hyphen only if the two words are functioning together as an adjective before the noun they’re describing. If the noun comes first, leave the hyphen out.

So, like Yury succinctly said:

  • "front end" (noun)
  • "front-end" (adjective)

But I don't think it's set in stone, as the Chicago Manual of Style says.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.