Take the 2-minute tour ×
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.

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.

Example:

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?

EDIT

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
1  
The first sentence is exactly what's not clear to me. What do you mean by "lacks performance"? –  Rupe Jun 23 at 16:41
1  
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 at 16:45
3  
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 at 16:46
1  
"Performance" is widely used in the computer world for "speed of working", and from that people have coined the adjective "performant". I don't believe that this word is widely understood outside the software world. –  Colin Fine Jun 23 at 16:59
4  
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 at 19:51

5 Answers 5

up vote 8 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.

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 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 at 14:53
    
Interestingly, Google NGram has no reference to "unperformant" whatsoever. And that covers a lot of books. books.google.com/ngrams/… –  Max Vernon Jul 9 at 15:06
1  
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 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 at 15:18

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
2  
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 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 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 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 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 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 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

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
1  
But naive implementation does not necessarily mean it is slower or less efficient than a more mature implementation. –  Aaron Bertrand Jun 23 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 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 at 23:51

Your Answer

 
discard

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.