10 ms·
> What we ended up with was O(n) _classes_ (where n = the number of computation operations). Speaking of complexity worship... Big O notation seems totally ir
by twtw 8y ago
> What we ended up with was O(n) _classes_ (where n = the number of computation operations).
Speaking of complexity worship...
Big O notation seems totally irrelevant here, unless the question involved scaling to arbitrary number of types of operations. Why not just say "we ended up with a class for every operation?"
- robotresearcher 8y agoPerhaps because they had a number of classes per operation, but that number was not important. Statements like this is what big-O is for.
- TeMPOraL 8y agoThe use of that notation implies the number of classes was proportional to number of operations (+/- constant factor), not that it was equal to number of operations. O(n) works both if there's 1 class per operation, and if there's 5 classes per operation.
- twtw 8y agoOk. O(n) also through a away a lot of useful information. It seems simpler in every sense to just say "several classes for every operation."
- TeMPOraL 8y agoAgain, you're absolutely right wrt. proper, formal usage. But big-O is also a part of programmer slang now. The OP used it in this form. (It's also faster to write, or even say out loud, "O(n)", than it is to write/say "proportional to number of").
- deleted 8y ago[deleted]
- derefr 8y agoFrequently when writing O(n), the writer is making a comparison. e.g. "The GC was O(n log n) wrt memory, but now it's just O(log n)." That expands to a lot more text. Or, to put that another way: there is a constant cost in human parsing complexity when writing "O(n)", but the number of parse-nodes in the text when using "O(n)" only increases as O(n), whereas without "O(n)", it increases with O(n^1.3). ;)
- wellpast 8y agoBig-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).