English Language & Usage Stack Exchange is a question and answer site for linguists, etymologists, and serious English language enthusiasts. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

As a software engineer, I need to sometimes describe a piece of code as something that lacks performance or was not written with performance in mind.


This kind of coding style leads to unmaintainable and unperformant code.

Based on my Google searches, this isn't a real word. What is the correct way to describe this?


My usage of "performance" here is in regard to speed and efficiency. For example, the better the performance of code the faster the application runs. My question and example target the negative definition, which is in reference to preventing inefficient coding practices.

share|improve this question
The first sentence is exactly what's not clear to me. What do you mean by "lacks performance"? – Rupe Jun 23 '14 at 16:41
Related (possible dupe): english.stackexchange.com/q/38945/8019. – TimLymington Jun 23 '14 at 16:42
Do you mean it gives the wrong answers? Does it give confusing or less than accurate answers? Dp you mean that it takes too long by some arbitrary metric? Does it interfere with other processes running concurrently? Does it actually leak memory or file descriptors or file locks or other resources? Does it use a lot of memory? That its code is spaghetti code? Is it hard on the filesystem? Does it have some nonlinear explosion based on input size? Performant is a mincing weasel word at best. – tchrist Jun 23 '14 at 16:45
In fact let's take it back and ask what you mean by "performance". Are you talking about efficiency, stability, accuracy, what? The only kind of code I can think of which might be written with no aspect of performance in mind, would be code snippets used for teaching purposes. – Rupe Jun 23 '14 at 16:46
Why do you need to find the inverse of the non-word "performant"? Why don't you just say slow or inefficient, depending on what you actually mean? If you don't know what word you're looking for, chances are your audience won't know it either. Simplify. There is no reason to use myriad instead of many, utilize instead of use, etc. – Aaron Bertrand Jun 23 '14 at 19:51
up vote 15 down vote accepted

This kind of coding style leads to unmaintainable and unperformant code.

In my opinion, reads more easily as:

This coding style leads to unmaintainable and poorly performing code.

The key to well-written documentation and reports lies in ease of understanding. Adding poorly understood words such as performant decreases that ease.

In addressing the use of such a poorly described word as "performant", I came across the following lovely excerpt:

"The unlovely language of this unreal world floats along on a linguistic sea of rollouts, step changes, public domains, fit for purposes, stakeholder engagements, across the pieces, win-wins, level playing fields and going forwards," the report says.

I believe this wholeheartedly encapsulates the why's and wherefore's of not using vernacular that is imprecise, vague, and designed to confuse.

Sir Humphrey Appleby, in 1986, put it fairly succinctly when he stated:

‘Sometimes one is forced to consider the possibility that affairs are being conducted in a manner which, all things being considered and making all possible allowances is, not to put too fine a point on it, perhaps not entirely straightforward.’

See http://www.theguardian.com/society/joepublic/2009/nov/30/english-language-misuse and potentially, http://grammar.about.com/od/words/a/Doublespeak-Soft_Language-Gobbledygook.htm for more examples of why it is important to speak plainly and in a manner that allows ease of understanding.

itshambles.wordpress.com has an excellent piece on the vagaries of wholly unknown and unknowable language. The writing is both informative, and quite funny, and obviously well worth the read.

share|improve this answer
Sure, it's important to speak plainly and in a manner that allows ease of understanding. But in what way does "poorly performing" achieve that where "unperformant" fails? They convey the exact same information; it's just that one uses a neologism. – Mr. Shiny and New 安宇 Jul 9 '14 at 14:41
eeewwww big words. I'm a fan of using words that convey the point precisely, however not at the cost of needing to reference a dictionary to understand every sentence. In this case, "unperformant" isn't even in any dictionary. Heck "performant" isn't even in any well-respected dictionary with a meaning that conveys good performance. "Performant" means a "person who is part of a performance". – Max Vernon Jul 9 '14 at 14:53
Yes, as I've answered in my answer, "performant" is also a neologism (that's a "new word" if you don't like my technical term). If your objection is that you don't like new words, you should just state that, instead of trying to imply that the new word is somehow imprecise or otherwise wrong. – Mr. Shiny and New 安宇 Jul 9 '14 at 15:15
I'm not getting into an argument about "new" vs "old". I'm not getting into an argument at all. Have a +1 on your answer! – Max Vernon Jul 9 '14 at 15:18
@MaxVernon - I suspect a lot of folks would find that amusing. – Hot Licks Mar 16 at 17:54

The word "performant", meaning "performs adequately or well" appears to be a relatively recent coining. Some people object to its use as it is not clear about what kind of performance it is referring to.

If you accept the word performant as a valid, useful word, you will then be dismayed to find that there isn't really a standard for its inverse. However, you are probably safe using non-performant as it follows fairly typical rules for creating negative words. Note that non-performant is even more non-standard than performant, and neither word carries much specific meaning. It may be better for you to be more explicit about what kind of performance is lacking.

share|improve this answer
I think you've outlined the caveats really well here. To my mind, performant is a jargon usage too far (even more so for derivatives thereof), but I'd have no problem at all with underperforming. Which is very likely what OP means - not that it doesn't perform at all, but that it doesn't perform as well as it should/could. – FumbleFingers Jun 23 '14 at 17:20

I guess you could simply say inefficient code instead of unperformant.

share|improve this answer
Agreed, but only if by "performance" they mean "efficiency". Hence the questions in comments above. – Rupe Jun 23 '14 at 16:58
@Rupe is correct: efficiency is about benefit derived divided by total cost. Performance is related, but different. Performance is about identifying a particular cost and then ensuring that the program stays within its budget. For example: storing a million numbers that are always between 1 and 10 in 32 bit integers is inefficient in terms of memory cost per integer used, but may be highly performant in terms of parallelized operations per second due to proper alignment. – Eric Lippert Jun 23 '14 at 23:32
@Eric where is performant in a proper, official, English dictionary? Code can perform well (and can be described as such) without having to describe it using non-words. – Aaron Bertrand Jun 23 '14 at 23:54
@AaronBertrand: An official English dictionary? There is absolutely no such thing. There is no Academie Francaise equivalent in English, sorry. "Performant" is not a non-word; it's a perfectly cromulent word. – Eric Lippert Jun 24 '14 at 13:42
@AaronBertrand: And I looked up "word" in a "proper" English dictionary, and it said a single distinct meaningful element of speech or writing, not a single distinct meaningful element of speech or writing found in a proper official dictionary. Since "performant" is a single distinct meaningful element of speech or writing, and since you like words such as "word" to be defined in proper dictionaries, we must logically conclude that "performant" is a word, and not a non-word. – Eric Lippert Jun 24 '14 at 13:47

I'm a programmer. Here are the ways I would describe that kind of code:

The code has poor performance. The code is slow. / The code runs slowly. The code has high overhead. (You may specify time and/or memory overhead) The algorithm is needlessly expensive. The code is not optimized for performance. The code does not scale well.

share|improve this answer
Or how about "The code is not optimal". – ioquatix Dec 15 '15 at 22:02

I would argue that English speakers will generally be able to understand "unperformant". If we break the word apart.

Together unperformant basically means that X is the embodiment of not doing something (well).

The problem I see is the word relies on an unspecified and unqualified meaning of the word "perform". With my background I would interpret your statement

This kind of coding style leads to unmaintainable and unperformant code.

as meaning:

The way the developer is writing this piece of code makes it prohibitively expensive to maintain and the code is needlessly slow to execute.

  • Unmaintainable: prohibitively expensive (in terms of time/resources) to maintain.
  • Unperformant: needlessly slow (in terms of execution time)

That may or may not be your intention. Personally, when my code is performing well I think of it as executing quickly. This isn't always the case:

  • Data Modelers/Machine Learning people might think the predictions aren't good enough
  • Embeded developers, or other developers constrained by memory, might think the code is inefficient with memory.
  • Game developers might think the sprites are taking too long to render.
  • Security experts might think your password hash algorithm is too fast.
  • Cryptology developers might think your cipher is weak.
  • Developers trying to scale their work across machines/processors/cores may think it parallelizes poorly.
  • Machinists programming their CNC mill with M-codes might think the cuts are being made and/or ordered inefficiently.
  • A developer of a financial application might think that not enough significant digits are maintained.
  • Insert programming constraint here that isn't being respected.

Overall I think it is better to say what is "unperformant" about X or why X is "unperformant." That way the problem is clear, and you can side-step whether or not "unperformant" is a real word. In my opinion without context simply "unperformant" is too vague to be useful. Presumably you're trying to help the other person solve their problem, so it behooves you to frame the problem as clearly as possible.

share|improve this answer

A naive implementation describes the simplest thing that could possibly work. It's not written with performance in mind, and can generally be improved by a 1st year CS student.

share|improve this answer
But naive implementation does not necessarily mean it is slower or less efficient than a more mature implementation. – Aaron Bertrand Jun 23 '14 at 19:52
Even if it performs well enough it is still not written with performance in mind, which I understood to be the essence of the original question. – Jason M Jun 23 '14 at 22:09
But what I'm suggesting is that a naive implementation could have been written with performance in mind, that doesn't make it non-naive. – Aaron Bertrand Jun 23 '14 at 23:51

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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