6 ms·
Computers don't speak any language, they exexute machine code - instructions. From assembly, to C, to python, we never made computers understand any sort of lan
by gtsop 6y ago
Computers don't speak any language, they exexute machine code - instructions. From assembly, to C, to python, we never made computers understand any sort of language. We managed to help humans reason about machine code in a manner that is more convinient to us, that is some text that resembles our natural languages. But this is the important part, let me repeat this in a different way: Programming languages aren't stripped down natural languages repurposed for computer interpretation. Programming languages are abstract machine code resembling our natural languages.
The meaning of this is that all programming languages will inherently have features of machine code (even if they are hidden away), else they would be incomplete, unable to perform all the functions we expect a computer to do.
People now look at code as is today, seeing some english-speak that is not completely english and think: hmmm well this looks like english but has some extra syntactic garbage that non-technical people don't understand. What if we removed all these and made the computer understand pure english? Then everyone would be able to program.
And this is the moment that the man forgot he is actually looking at abstract machine code rather than handicapped english.
I find it very interesting that all languages (the ones I've seen at least) that claim to be for non-technical people achive their goal in a veeery limited set of applications. As soon as one needs variables and functions (and that is usually very soon) things get technical fast.
- PaulStatezny 6y agoIn this comment you articulated what I usually struggle to whenever people bring up predictions about programmers becoming obsolete. Programming is fundamentally too technical to be able to elegantly replace with speaking/typing sentences in layman's terms.
- TheOtherHobbes 6y agoNo it isn't. The mistake Dijkstra - and everyone else - makes is assuming the code has to be a complete description of the algorithm used to solved the problem. Algorithms are fragile and have edge cases, so of course you can't specify an algorithm without a formal algorithm description language. But if you have an AGI that can infer intent and has contextual awareness, domain-specific knowledge, and a complete library of previous conversations and their resulting solutions, the problem stops being so problematic. Especially if the AGI can ask questions about your intent if your specification is still ambiguous. Even more so if it can research and explore a large improvised solution space and use its own heuristics to find the most robust solutions. So natural language programming will be very much be a thing in the future. But not for quite a while yet.
- TulliusCicero 6y ago"All we have to do is have a computer that's as smart as a human, and then programming doesn't have to be so technical!" Well sure, but we don't know when that's gonna happen, if ever.
- andi999 6y agoActually if an AGI has access to previous conversations it might just get utterly confused. So is 'goto considered harmful' or can you have 'structured programming with go to'. Probably real people also get confused thats why nobody reads this stuff.
- gtsop 6y agoYou are "proving" we are wrong by "assuming" the existence of a solution. This is a falacy. I would also argue that contextual awareness of a computer will never resemble the contextual awareness of a human being. That is because contextual awareness can only be derrived by actively participating in a culture, inherent attribute of human beings and not a thing computers can do. However, even if computers came to have contextual awareness as a human (again, i don't believe this is possible) that is something we would not want. Cultural differences produce different interpretations out of the same input. Example: Is it ok for a guy to get married with 10 women? Depending on your location on this world, the answer WILL be dofferent. Do you really want computers to interpret and (more importantly) act on their own based on some sort of contextual awareness they came up with? I'd say not.
- User23 6y agoAh yes, the sufficiently smart compiler.
- dfischer 6y agoAlso know as: Chinese Room Thought Experiment https://en.wikipedia.org/wiki/Chinese_room https://en.wikipedia.org/wiki/Chinese_room Replace Chinese with language as an interface between humans and computation / AI even.
- PaulStatezny 6y ago^ This is why Artificial General Intelligence is a pipe dream.
- stan_rogers 6y agoNo, it's why dissecting a human looking for its general intelligence is a waste of time. You won't find an atom of the stuff. The "person" is a process running on the hardware, not the hardware itself. Searle's position is only different from Descartes' dualism in vocabulary.
- dTal 6y agoThe argument works equally well for proving that humans can't think. It explains so much!
- minxomat 6y agoThat does not make sense to me. Surely I could apply the same logic to any supposedly thinking thing, including humans. If I could capture all the physical processes that your brain / body confirms, I can perform all of those on paper. Thus I can perform the same thoughts as you. However, I don’t understand you in any way - I can’t tell what or how you think from intermediate states in the process. This argument only works if you don’t believe that the physical processes are all you are and a perfect reproduction could do the same. I have my own theory of why that capture isn’t possible, but that doesn’t matter for the Chinese room argument.
- dfischer 6y agoYeah and in essence, just because the thing can communicate with you, doesn't mean it understands you. Especially when you consider all you have to do is follow a "translation layer" to repeat steps to produce an output, then it doesn't mean anything is understood. Just a "thing" that can follow steps consistently to produce a result. It is quite an interesting concept when considering at what extent is there anything actually translated in any system that is understood or just an interface to reproducing an algorithm based on some consistent logic? Fun stuff to me.
- dbtc 6y agoBut a programming language has 2 purposes: to tell a computer what to do and also to tell a human what the computer does. That's why programming languages are between machine code and human language. Some weighted more one way or the other, but always some kind of balance.
- thaumasiotes 6y agoNo, that's why programming languages have syntax for comments.
- dbtc 6y agoAnd why variables (methods etc) are given names with human-language words.
- bildung 6y agoFor that to fulfil the second purpose, fixing a comment would fix the code itself. This obviously doesn't work, so we are back at the beginning: The programming language also has to be somewhat human-readable to be productive.
- prox 6y agoI currently see it conceptually as this : Input Function(input) { Something needs being done with input } Output by calling Function It is what the computer does and it is what the human writes, even if it gets re-translated along the way.