5 ms·
Big-O applied to code artifacts-to-manage-over-time is very relevant here. If not the common usage of Big-O, which is in terms of algorithmic steps. But still h
by wellpast 8y ago
Big-O applied to code artifacts-to-manage-over-time is very relevant here. If not the common usage of Big-O, which is in terms of algorithmic steps. But still highly relevant.
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.
- 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.
- 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]
- taeric 8y agoTough to say, really. If your O(1) is just a constant 2000 code artifacts, but your O(n) is 5 per business requirement, it is amusing to consider that 400 business requirements might be better spread over more systems. My view is that, even in algorithm analysis, Big-O has been overused. Too many people will point out crap like "That is 4 items per entity!" When I point out we only have 50 entities and that 200 is an easily handled number, I just get evil glares.
- MaxBarraclough 8y agoSomewhat related: I've always enjoyed that the matrix multiplication algorithms with the best theoretical time complexity, are completely impractical for use on real-world matrix multiplication problems. Wikipedia describes why people use the Strassen algorithm in real-world implementations, despite its inferior asymptotic time complexity [0] : > unlike the Strassen algorithm, it is not used in practice because it only provides an advantage for matrices so large that they cannot be processed by modern hardware. [0] https://en.wikipedia.org/wiki/Coppersmith%E2%80%93Winograd_algorithm https://en.wikipedia.org/wiki/Coppersmith%E2%80%93Winograd_a...
- taeric 8y agoHad a fun discussion on that in this forum not long ago. https://news.ycombinator.com/item?id=17891360 https://news.ycombinator.com/item?id=17891360 Basically, I was hoping some of the optimized methods were competitive nowdays. Spoiler, still not practical. :(