9 ms·
> A system that has O(n) code artifacts for n "business requirements" (e.g.) is far more costly than one that has O(1), say. I understand what you are saying,
by twtw 8y ago
> A system that has O(n) code artifacts for n "business requirements" (e.g.) is far more costly than one that has O(1), say.
I understand what you are saying, I'm just objecting to how you are saying it. Unless you are interested in the limiting behavior as the number of "business requirements" goes to infinity, big O is the wrong tool. An O(1) approach that requires a foundation of 1M LOC is probably worse than an O(n) approach that requires 100 LOC per business requirement.
Sorry to obsess over the details here - I just think big O is overused in general and saw an opportunity to make a bad pun on complexity worship.
- TeMPOraL 8y ago"Big O" has evolved beyond its original intended usage. In informal and semi-formal setting, it just means "roughy proportional to". It's showcasing the first-order shape of growth, not just inviting to do analysis in the limit. I.e. it's coder slang now.
- twtw 8y agoI understand and I'm well aware that it has become "coder slang" - that's my point. On a thread about complexity worship, the first comment I saw was an unnecessary use of jargon that complicates things without new meaning. That, in my mind, results from a culture of complexity worship. > Never use a foreign phrase, a scientific word, or a jargon word if you can think of an everyday English equivalent. - orwell
- TeMPOraL 8y agoI think the slang version of "big O" is so common that there's no chance of misunderstanding. If anything, it serves as more of a shibboleth - if you don't get it, you're not part of the group the story is intended for. RE that Orwell quote, I have mixed feelings. I agree with it in so far as it means "pick easiest words for your audience at the precision level you need". But in general, words are not equivalents, even if they're listed as synonyms - each word has its own specific connotation. Say, "car" and "automobile". Technically, they refer to the same thing, but they feel different. That subtle emotional difference may not be important in formal setting, but it's an extra dimension of communication in informal cases (like e.g. this comment thread).
- tomnipotent 8y ago> it serves as more of a shibboleth Like the word "orthogonal" - always know I'm talking to a techie when that one rears its head.
- derefr 8y agoI'd say "perpendicular" but that's somehow even more niche, despite being a word everyone learns in high-school geometry. I guess there just comes a point where you've solved so many optimization problems that it's hard to not think of a bunch of solutions with different attributes as being embedded in an N-dimensional space?
- humanrebar 8y agoThat is an orthogonal concern. Versus That is an entirely different concern. The second is more approachable but requires an adverb to have the same meaning, and adverbs are also discouraged. I think orthogonal is fine.
- TeMPOraL 8y agoAlso it does not communicate the precise meaning. "Orthogonal" fits when concerns may be related, but they're independent from one another, so you can discuss them separately.
- humanrebar 8y agoWell, regardless of the adverb, you would need a modifier. Avoiding these technical considerations was part of Orwell's point I think. So I guess we could nitpick over "entirely" and "basically" just as easily. Maybe he should have just singled out the engineers and other pedants.
- TeMPOraL 8y agoPerpendicular is a weird word. And also harder to say, at least for foreigners. I tend to use "mutually independent" instead of "orthogonal" when talking with non-tech people.
- SilasX 8y agoIt's unfair to dismiss that as sloppy slang; that's exactly what Big O notation exists for: to concisely express such concepts as "the number of classes increases linearly with the number of business requirements", as differentiated from "the number of classes is independent of business requirements" or "the number of classes increases with the square of business requirements". The Orwell quote is valid at the heuristic level, but when a) there's an installed base of people who know the jargon, and b) the everyday English equivalent takes a lot more words to say the same thing, and c) something coherent is meant by the jargon that could be so translated if necessary, then that's exactly when you should use the jargon. Give me "a^2 + b^2 = c^2" over "the sum of the squares of the lengths of a and b is equal to the square of the length of c".
- dfox 8y agoThe point there is that Big-O notation also implies that the growth has given shape above some large-ish n. And metrics like "number of operators" or "number of bussiness requirements" rarely are so large that this makes sense. And in fact approaches to system design that try to make the code size independent of number of bussiness requirements and their possible changes in future lead to exactly the kind of "complexity worship" discussed in TFA (various ad-hoc turing complete VMs that interpret code represented as rows in bunch of relational tables and what not).
- derefr 8y agoPeople who write "x is O(n)" usually actually mean to write "x ∝ n", but 1. ∝ is hard to type on a keyboard, and 2. even fewer people (including CS majors!) know what ∝ means, than know what O(n) means well-enough to allow them to figure out its non-jargon usage from context.
- SilasX 8y agoSo you think that the imprecision of saying "O(n)" when the "large-ish" behavior is not relevant is worse than the verbosity of saying "scales directly/with the square of/not-at-all with [relevant constraint]"? FWIW, Big-O itself, even in technical contexts, gets imprecise with e.g. calling hashtables O(1), which is not possible, even under the idealized computer model (instant memory access, etc). Is there a shorter way of saying "scales proportionally with n" that you would suggest the tech community prefer because of its greater precision?
- deleted 8y ago[deleted]
- wellpast 8y agoGot you. Thanks for the clarification. Speaking of brain hemispheres, the left hemisphere doesn't get jokes like the one you made. The right hemisphere handles jokes, metaphors, etc. Looks like I'm a left-hemisphere-dominant pot calling the kettle black...
- deleted 8y ago[deleted]