8

How can I refer to something that barely works given a certain context and can get broken at any moment?

The thing is: I wrote some geometry calculations in an application that will work in our context, but any minimum condition can make it fail.

So I typed in the comment:

"... there are precision issues and different contexts that make this algorithm ___________."

A word or an idiom would do.

16 Answers 16

6

Related: haphazard. Things are often unreliable because they were improvised or cobbled together in an unsystematic fashion.

That term may come in handy for one of your future commits ;-).

  • 4
    Wow, that was a quick accept ;-). For what it's worth, I thought brittle was an excellent, idiomatic suggestion in an IT context. – Peter - Reinstate Monica Aug 9 '19 at 13:30
  • Jerry rigged is another good synonym. – Justin Aug 9 '19 at 22:48
  • This is related, but just related. It doesn't mean what the question asks for, and it definitely shouldn't be the accepted answer. – user2357112 supports Monica Aug 10 '19 at 21:49
38

How about brittle?

1a : easily broken, cracked, or snapped
definition from m-w.com

From the "choose the right synonym" section, Merriam-Webster also says:

Fragile, frangible, brittle mean breaking easily. Fragile implies extreme delicacy of material or construction and need for careful handling. Frangible implies susceptibility to being broken without implying weakness or delicacy. Brittle implies hardness together with lack of elasticity or flexibility or toughness.

Adding on to M-W's description, my understanding is that fragile implies that "ordinary handling" (e.g. just picking something up in a casual manner) is likely to cause damage or breakage, while brittle is generally okay with ordinary handling but anything beyond that (e.g. setting it down hard, bumping it) will likely cause damage.

So, if you consider "within your context" to be "ordinary handling", your algorithm works fine here; but trying to apply it to anything outside of that context is likely to cause a problem. Thus you could use "brittle" to describe it.

  • This is exactly what I needed!! – Matias Barrios Aug 8 '19 at 20:30
  • 2
    "Fragile" is a much better fit in this context. "Brittle" has the connotation of a physical material, which can be easily broken if minimal force is applied. Fragile can be used less physically, including in the context of the question. – Chris Melville Aug 9 '19 at 11:32
  • 3
    I think "brittle" is perfect here. For me it suggests, for example, that it the user makes a mistake with their input (e.g. typing "EXTI" instead of "EXIT"), then the program crashes instead of displaying a friendly error message. – TonyK Aug 9 '19 at 12:40
  • 8
    @ChrisMelville In my experience, brittle is frequently used to describe software. I think Hellion has nicely covered the different connotations of "brittle" and "fragile". – user888379 Aug 9 '19 at 12:41
  • 8
    In 33 years of software development, "brittle" is exactly the term I've most often encountered in the context of "something that works in only very limited circumstances and will fail/break (or return ludicrous results) in virtually every other case." Yes, this is an appeal to anecdotal evidence, which is why it's only a comment! – Forbin Aug 9 '19 at 17:47
14

"unreliable" seems like a good fit.

".. there are precision issues and different contexts that make this algorithm unreliable."

  • unreliable - "not able to be trusted to do or provide what is needed or promised" MW

  • If you describe a person, machine, or method as unreliable, you mean that you cannot trust them.
    e.g. He had an unreliable car. Collins

8

I would say "… makes this algorithm precarious"

Precarious: 1) not securely held or in position; dangerously likely to fall or collapse 2) dependent on chance; uncertain

  • 1
    What's the source of that quote? – V2Blast Aug 9 '19 at 4:48
  • I typed define precarious into my search engine, reviewed a few answers and re-swizzled some of them into this answer. – Scottie H Aug 13 '19 at 15:56
5

Very close to Hellion's answer of "Brittle" is "Fragile", which I hear in software contexts.

  • 1
    You might want to link a dictionary/definition and possibly quote the relevant definition to show how it fits. Link-only answers are generally frowned-upon, as the linked content may move, change, or be deleted. – V2Blast Aug 10 '19 at 19:49
5

Temperamental is often used this way in a colloquial context. From McMillan Dictionary, as linked above:

[HUMOROUS] used for describing something that often goes wrong or does not work in the way that you expect.

  • This photocopier’s a bit temperamental.
  • Still learning ... :) – Argent Aug 10 '19 at 19:52
  • 1
    Looks good! I've edited the quote formatting a bit to look nicer. – V2Blast Aug 10 '19 at 19:57
4

The algorithm is flaky. It seems like it ought to work, except that in many weird situations (which you might not fully understand), it gives unwanted results.

Per the Jargon File:

Subject to frequent lossage. This use is of course related to the common slang use of the word to describe a person as eccentric, crazy, or just unreliable. A system that is flaky is working, sort of — enough that you are tempted to try to use it — but fails frequently enough that the odds in favor of finishing what you start are low. Commonwealth hackish prefers dodgy or wonky.

In other words, the algorithm is prone to producing buggy output.

2

You say it will "work in our context but any minimum condition can make it fail." So why not write that? Why search for something else?

I guess you could also say 'has undergone no testing outside our specific needs'.

Or you do the right thing and fix the function :)

  • The original poster wants a short term that he can use in a "commit message". Commit messages are very short notes. In the git source code repository system, programmers are encouraged to write commit summaries that are 50 characters or shorter. (There is another field that can be longer, but the short message is the field that is most likely to be read.) – Jasper Aug 10 '19 at 6:59
  • “Important disclaimer in ____ field” – WGroleau Aug 10 '19 at 15:26
1

I'd suggest inflexible algorithms

Here some examples from the web:

Online merchants can actually increase their false decline rate (and also reduce sales) by using inflexible algorithms that don’t consider how new data and special circumstances affect a transaction’s legitimacy — like when customers make purchases on an overseas vacation.


When faced with an electrocardiographic recoding of a complex arrhythmia, we often use inflexible algorithms or try to recall patterns already seen, which is often insufficient to explain the mechanisms of difficult bradycardias and tachycardias.


Another major advantage of evolutionary algorithms is the ease of problem reformulation. In a rapidly changing field, such as genomics, the future use of algorithms may change unpredictably. Furthermore, subtle variations in the specifics of one problem instantiation may make inflexible algorithms less generally useful.

1

I'd go with "marginal", in the sense of being barely good enough for a given purpose.

  • "Marginal" is a very good word for something that mostly-sort-of works, but is not a good fit in the original poster's context. The original poster's context is mathematical, and involves minima. This means that the calculus / economics meaning of "marginal" is relevant, and likely to cause confusion with the "works except near the edges of the problem space" meaning of "marginal". – Jasper Aug 10 '19 at 6:37
  • You might want to link a dictionary/definition and possibly quote the relevant definition to show how it fits. (Link-only answers are generally frowned-upon, as the linked content may move, change, or be deleted.) – V2Blast Aug 10 '19 at 19:49
0

"unstable" - Being that your statement appears to be scientific, this would be a classic word to use. An idiom that I believe that is appropriate would be "fast and loose".

Definition: prone to change, fail, or give way; not stable

  • 1
    "Unstable" has a technical meanings in the fields of algorithms and software development. It is quite possible that two of these technical meanings are applicable in the original poster's situation: The algorithm might magnify small errors into big errors, and it is possible that this part of the program might be replaced with little notice. But if neither of these is the case, using the word "unstable" will confuse the issue. – Jasper Aug 10 '19 at 6:56
0

Situations like the one in your question can be described with the slightly technical term malfunction:

to fail to work or operate correctly

It's usually used in contexts that talk about some sort of mechanical equipment working incorrectly, but I think it is also possible to use this term in the context of computer algorithms. For example:

As of now, the program will likely malfunction and crash if you feed it unsanitized data. So, there still needs to be some work done before calling the program fully functional.

Also, consider the expression go haywire:

to stop working correctly

That one is somewhat similar in spirit to malfunction, but tends to be used in more informal contexts. For example:

Don't run the program yet. It's not in a working state. If you do, it will likely go haywire and make the eintire operating system crash.

0

How about "close enough for government work":

Good enough; OK; only satisfactory. The phrase implies that government work is usually of mediocre quality. Sufficiently close; done just well enough.

Another relevant link: https://en.wiktionary.org/wiki/close_enough_for_government_work

0

I thought I would add On the fritz, even though it doesn't work in the given context (usually it refers to electronic things); it may still help someone else:

On the fritz

Out of order; malfunctioning; broken.

Also robustness is a common metric in computer science, so you may want to just say "It's not very robust"

0

Here's one I stumbled across in the Entropic package repository documentation:

There are bugs, many unimplemented features, and the whole thing will probably fall over in a stiff breeze.

0

there are precision issues and different contexts that make this algorithm unpredictable.

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.