5 ms·
They say you can narrow down from all of humanity to a single person with just 33 yes/no questions. I think a similar principle could be true for programs, if w
by im3w1l 6y ago
They say you can narrow down from all of humanity to a single person with just 33 yes/no questions. I think a similar principle could be true for programs, if we just knew the right questions to ask!
I think this is what makes programming hard to improve. We have a poor understanding of what kinds of programs people want to write.
- jmnicolas 6y ago> They say you can narrow down to a single person with just 33 yes/no questions. I resent those questionnaires since it's never a firm yes or no but something in between (or sometimes something completely different). You can't reduce the complexity of one human life to 33 questions.
- yetihehe 6y ago> I think a similar principle could be true for programs, if we just knew the right questions to ask! Those right questions to ask are VERY hard to find, so we programmers have to write many many very accurate answers about how our programs should behave. That process is called programming.
- dwohnitmok 6y agoThis is a dilemma that often rears its head (exemplified by the classic "42"). Intuitively difficult situations usually end up "conserving their difficulty." An easy solution means a difficult problem (hard to formulate the problem or the formalization of the problem is usually inapplicable). An easy problem usually means a difficult solution.
- im3w1l 6y agoSo many replies, I'll reply to you but it's really for everyone. The thought experiment was just meant to illustrate how much easier things could be if we knew better what programmers wanted to write. It was not a serious suggestion for how programming should work. What I do think should happen, and will happen, is that we will keep getting a better understanding of what behavior people want most of the time -- including the common variations, and make it ever easier to achieve it.
- yetihehe 6y agoThe ideal programming language would have only two commands: do_what_i_want() and do_it_faster(what). You could use them like this: do_it_faster(do_what_i_want()). > if we knew better what programmers wanted to write It's very simple: they want to write, what was not written before. What fun is to write what has already been written? You can just copy it. Most of what was written is typically embedded in some library/crate/module already. That is an ongoing process which will never* end. Summarising - it's impossible to know what programmers want to write, because the moment you find it and make it easier, they want to write another thing. * For physically possible values of never.
- porpoise 6y agoIs the idea behind the 33 yes-no questions thing a combinatorial point, though? World population is 7.5 billion, the smallest natural number n such that 2^n exceeds that number is 33. So it shows you can uniquely identify any human with 33 yes-no questions, but reaching a member of a set isn't necessarily analogous to reaching a state of understanding.
- mizzao 6y agoRight -- if you assign everyone on Earth a 33-bit number, the questions would just be "what is the bit at position i"? It seems impossible for any question to be replaced with an interpretable meaning.
- dwohnitmok 6y agoWell they could be marginally interpretable, but yes they'd all still feel really artificial, extrinsic, and prone to change. You could for example, have each of those questions be a series of geographical questions that eventually narrow down to a single point in space (you'll need to include z-axis questions as well). But the geographical regions cut out by each question will be insanely artificial. Intuitively "satisfying" questions would probably require intrinsic questions, i.e. ones that could pick out individuals from the entire sea of hypothetical humans, living or dead, real or imagined.
- toyg 6y agoNot just what people want to write, but what they are actually ready to pay for. Despite the mobile revolution altering some equilibria at the hardware level, software-making is still fundamentally led by business requirements, by the capitalistic research for efficiency gains in money-making. This can be observed in the disconnect between educational software-making (scratch etc) and "real" software-making.
- Izkata 6y ago> They say you can narrow down from all of humanity to a single person with just 33 yes/no questions. For anyone who hasn't seen it before, Akinator [0] is based on this concept. Imagine a fictional character (or youtuber) and answer a series of questions, and the genie will figure it out. (It works with just about any character at this point because if users find a path that doesn't result in a correct answer, they can add the character they were imagining) [0] https://en.akinator.com/ https://en.akinator.com/ - click "play" between the two app store icons.
- chadcmulligan 6y agoThat assumes you can ask the questions at exactly the same instance of time, you'd probably need more in real life, how many more? Nothing is absolute in programming - anyone who's tried to uniquely identify a person in a database has struck this problem. For instance there was a time when gender was part of the key for a person in a database - not the case now.