14 ms·
On the foolishness of “natural language programming” (1979)
- amelius 6y agoMaybe natural language should become more like programming languages instead of the other way around. I suppose this could be especially useful in e.g. legal circles, where ambiguities are problematic.
- exdsq 6y agoLojban is a good example of this.
- sjy 6y agoThis is why we have legalese, which people who aren’t lawyers tend to look at in the same way that people who aren’t programmers look at code.
- jhanschoo 6y agoFor as long as the concepts that words refer to remain ambiguous for general discourse, there's not much use for a grammar that can only indicate extremely specific relations. Well, except in, say your example of a legal domain, where a specialized language (legalese) comes into service.
- tluyben2 6y agoLegalese is unambiguous? I have never seen any of that and we spent millions on legalese (as a company and being a company owner). It's always full of holes and difficultly written but easily confused language that you can interpret in many ways (and that happens exactly when in court by the opposing lawyers). Good or bad, but unambiguous it's not. Maybe Lojban or a fuzzy programming language could work.
- NateEag 6y ago> It's always full of holes and difficultly written but easily confused language that you can interpret in many ways (and that happens exactly when in court by the opposing lawyers). This sounds exactly like code. It's one place bugs come from - the human who wrote it interpreted the code differently from the human who wrote the language they used. See JS's implicit global vars for a classic example. And before someone says, "But that's human error; programs have only one valid interpretation," let me remind you of undefined behavior. It exists and is used in defining the C language (yes, it's one reason people don't like C, but since C is the substrate for a whole lot of other languages, it's hard to avoid at the moment).
- andrepd 6y agoSee lojban, essentially first-order logic that you can speak.
- euske 6y agoMaybe not this extreme, but we can use natural language as more like programming languages (by reducing vagueness). Corollary of this: we should mandate that politicians and officials all learn programming language and speak rather like programmers, so that they can say less BS.
- dragonwriter 6y ago> we should mandate that politicians and officials all learn programming language and speak rather like programmers, so that they can say less BS. I've rarely met anyone who uses natural language as imprecisely as most programmers, so I'm not sure that you want what you literally describe. Also, politicians (at least in the US) are disproportionately lawyers, who happen to be professionally trained in the precise use of natural language. They often use this, when they aren't outright lying, to say things that make very different commitments than casual listeners not themselves trained in the precise use and interpretation of natural language will initially interpret, so what you really need is to train their audience in critical listening.
- pydry 6y ago>I've rarely met anyone who uses natural language as imprecisely as most programmers I've rarely met a good programmer that didn't communicate with precision. Ive met lots of bad programmers who write unreadable code though, who couldnt communicate clearly by speech or writing either.
- ThrowawayR2 6y ago> "Corollary of this: we should mandate that politicians and officials all learn programming language and speak rather like programmers, so that they can say less BS." Unrealistic since most programmers I've met can't even manage to put together a logically coherent document or presentation without a lot of prompting.
- jasperry 6y agoI feel Dijkstra kind of undermines himself with the curmudgeonly "kids these days" remark at the end. Still, he makes a very strong historical argument for a broader point than the title suggests--for not being in such a hurry to get rid of formal notation. For some of us, that's preaching to the choir, but I feel like it could be well aimed today at those who think "IT" has no need for "Computer Science".
- coldtea 6y ago>I feel Dijkstra kind of undermines himself with the curmudgeonly "kids these days" remark at the end Not necessarily. The idea that "kids" across generations are always either the same or improving across times and cultural changes is an even bigger cliche than "kids these days". Dijkstra in this, as is made clear from the context, case doesn't even talk about kids (people) in general, but about a specific subset: educated people. So, while more people get an education than ever, and you could find total illiterates in greater masses in e.g. 1900 than when Dijkstra wrote this, there's also a decline in many aspects between a university graduate of 1950 and a graduate of say 2020. Part of this is because in the 1950 university degrees where rarer, and thus more demanding and elite. But it can be true even for graduates from colleges that remain highly selective (Yale/Harvard 1950 vs Yale/Harvard 2020). One example might be a CS degree with C/Assembly or Lisp and SICP vs one with some Java "market-driven" introductions to programming... One makes computer scientists, the other is a glorified job training program...
- rowanG077 6y agoI wouldn't be so sure that that 1950 university degrees were more demanding. More rare and elite, definitely. But it wasn't really intelligence or drive that made sure you could go to university. It was whether your social standing allowed it.
- Gibbon1 6y agoMy dad borrowed a couple of my engineer books. He said they had more material and harder problems than his old college books did. Also my instructors said they fretted about trying to figure out what to teach out of the ever growing body of work. When my dad went everyone graduated in four years. When I went was more typical to graduate in 5 to 6 years. And they worried that they wouldn't have enough four year students to meet accreditation requirements. Same time I never heard my professor complain about the poor quality of students.
- deleted 6y ago[deleted]
- astrowar 6y agoinform 7 is an example of programming in natural language. It specializes in solving a single problem and being more of a set of statements than a place to write algorithms. Even so, ambiguity problems in writing are complex and require constant consultations with the documentation to know which sentence is valid for which situation.
- Jtsummers 6y agoInform 7 is a natural language DSL for a rather narrow domain (interactive fiction). Dijkstra's discussion in this letter is probably from the general (at the time and recurring) discussion of general purpose natural language programming. That is an important distinction to keep in mind.
- sigsergv 6y agoNatural language is so opaque term. You need to establish context (vocabulary, relations, rules) if you want to pass some information to another person. The same phrase could have different meanings in different context. And from this point programming language is just another context.
- deleted 6y ago[deleted]
- mhh__ 6y agoIn the same sense that the data structures are generally more important than the code, I think the "quality"-axis is around some combination strictness, semantics, and safety rather than the syntax. I may be outspoken in saying this, but I try to avoid Python wherever possible because - although I like the syntax - I am quite worried about having to trust other humans to enforce semantics rather than a compiler. If something ill-formed is in my program, I want to know about it before it starts running rather than 5 hours into execution. I have the same opinion of C, too. In an ideal world where we could all sit around and plan our programs from scratch, I would love to program in a pure functional style - but this isn't really possible half the time: I try to minimize as much global (or even local) mutable state as possible, especially now that progress in execution speed is incremental and the growth is probably going to be in our ability to use concurrent execution. Python is supposed to faster to get going, and maybe it is compared to C++, but even then C++ can express things that can only be done with writing tests in Python (for free). There is a trade-off in that I've spent years honing my skills now, but is it that hard (It's quite hard to be holistic when teaching programming, I'm slightly glad I figured most of it out myself)
- jimbob45 6y agoIronically, natural language makes finding documentation extremely difficult. If you’re SQL problem revolves around the keywords “USING”, “HAVING”, or “WHERE”, Bing is going to really struggle to find you results. If, instead, you’re looking for strcpy, nearly every result will be relevant with little effort.
- drunkpotato 6y agoI just went to bing.com and typed `sql using` into the search box. The results were relevant. I tried again with google and duckduckgo. Same. I wonder if perhaps you are overestimating the difficulty here.
- jimbob45 6y agoEasy searches like that will work but you never need help on the easy queries. It’s in the complex queries with keywords modifying keywords where the issue arises.
- wizzwizz4 6y agoI have yet to succeed in getting my search engine to help me with debugging something like: colordiff -d -c3 <(wget -U "" -O /dev/stdout "https://www.microsoft.com/en-gb/servicesagreement/" | tidy) <(wget -U "" -O /dev/stdout "https://www.microsoft.com/en-gb/servicesagreement/upcoming.aspx" | tidy) | less -R SQL statements have the same problem; it's not their use of English-like words, it's the fact that SQL statements are programs and not mere commands.
- layoutIfNeeded 6y agoOn the other hand try searching for the meaning of ?: without knowing that it’s called “ternary operator”.
- Joker_vD 6y agoHa! Try searching for the meaning of sh's command "."! That's got to be the most obnoxious name for a command.
- zokier 6y agoI really like this quote: > some still seem to equate "the ease of programming" with the ease of making undetected mistakes Conversely you could say that ease of programming is equal (or at least correlated) with ease of getting confidence of your programs correctness. On the wider subject of the essay, I do note that languages like APL that really embraced symbolics for expression do not seem to have gained much ground, and on the other hand languages that are light on syntax and use more verbiage like for example Python have been massively popular. Overall I think the essay also relates to the common idea that naming things is difficult. The names we give our elements of code imbue the "all sorts of nonsense that, when we use our native tongues, are almost impossible to avoid". And how many bugs stem from people making assumptions about things based on their names because the sort of linguistic ambiguity etc that Dijkstra is talking about here?
- MichaelZuo 6y agoIndeed, Confucious himself recognized this issue and spent an enormous amount of effort on the “Rectification of names”, that to this day is still a major sticking point in any major endeavour. Which goes to show the challenges inherent in human languages. Also, “Every historical event begins with a struggle centered on naming.” - Milun Kundera
- matheusmoreira 6y agoI suppose it's not so easy to rectify the names we find in computing. It's a highly abstract field and also relatively young. It's really hard to come up with names for concepts which don't actually exist yet. We ended up with terse jargon at best and generic, sometimes incorrect names at worst. I think Scheme is the language with the cleanest symbol names and even in that language we find aggravating abbreviations such as the true and false symbols, all the different equality procedures and other historical Lisp jargon. In science and medicine people seem to just make up new words using latin or greek roots. Things are often named after the people who discovered them. It's very inconsistent. Any attempts to fix it by introducing better names inevitably results in the new generation having to know all of the names. Some professors will even quiz students on obscure names nobody cares about anymore. I wonder how mathematicians, physicists and engineers come up with names...
- pdfernhout 6y agoNatural language is adapted for many tens of thousands of years to be used by groups of hunter/gatherers working together on a common task -- which also includes arguing about related things like assumptions and priorities. In that context, physically pointing or showing things is important ("put it there"). As is also non-verbal feedback from expressions on people's faces or by where their eyes are looking. Also, people in the group can ask clarifying questions, like "What did you mean by X?" or "Can you be more specific?". Or the speaker can ask, "Did you understand what I said?" When people try to explain how to do a task without getting immediate feedback on how the receiver is understanding the communication, one can expect that natural language instructions will be missing critical information -- or may also specify unneeded extra information. Ever since I worked in the IBM Speech Research Group circa 2000, I have felt natural speech could be useful in programming -- but it will take a different perspective on how to use natural language as conversation and related creative experimentation to provide a different experience compared to what people are used to doing with conventional programming languages. It might be more akin to some aspects of pair programming perhaps. That said, a big feature of HyperTalk (used by HyperCard) was that is is closer to natural language than most programming languages. HyperTalk supported various alternate phrasings and also the use of the word "it". And the physical "card" metaphor provided an approachable metaphor for instructions about manipulating stacks. It is sad that Apple essentially killed off HyperCard for most users with various marketing decisions as it was an amazing platform that made programming approachable for many non-programmers. https://en.wikipedia.org/wiki/HyperTalk https://en.wikipedia.org/wiki/HyperTalk And Inform7 as mentioned by someone else here is another example. Although Inform7 feels more about being read as natural language (when you write is within strict limits) than about being written flexibly as natural language.
- k__ 6y ago"Natural language is adapted for many tens of thousands of years to be used by groups of hunter/gatherers working together on a common task " Is this the case? I don't know much about languages, but I can't even recognise earlier version of my native language from a few centuries ago.
- 6y ago
- Animats 6y agoAh, that's Dijkstra - programming is hard and programmers should suffer. He's right, though. Natural language is for communicating, not describing. When we really need to describe something detailed, we need either visuals or formalism.
- pvg 6y agoHe's got an anti-visual-programming rant in the archive as well, although I'm having a hard time remembering the keywords to find it with, perhaps because all who seek Dijkstra's wisdom must also suffer.
- User23 6y agoI doubt Dijkstra would have objected to a visual formalism that was, well, formal. Something like Peirce's existential graphs[1] for example. Dijkstra despised sloppiness, probably as a consequence of growing up in a war-ravaged country where his group could only manage to beg an hour a week of computer time from the Americans. As you imply, the EWD is a treasure. I've read through the vast majority of the English language ones and it has deeply improved my understanding of "Computing Science." I personally enjoy his non-technical writing too, abrasiveness and all, but I know that's not to everyone's taste. If it isn't, it's easily skipped. I do wish I had some Dutch though to get the bits I missed. Edit: > He's got an anti-visual-programming rant in the archive as well It just occurred to me to ask, is this the one where he argues that any visual description by its nature overspecifies? That's one of the recurring themes in his work, specify everything that needs to be specified, but no more. Of course even a vector of glyphs is still in the end a visual representation, so things are always overspecified. For example a + b and b + a are, in some languages, exactly equivalent and it would be nice to be able to directly represent that rather than having it require additional knowledge of the semantics. [1] https://en.wikipedia.org/wiki/Existential_graph https://en.wikipedia.org/wiki/Existential_graph
- Koshkin 6y agoBut there are things that can only be fully described using natural language. Emotions, for example. There aren't any visuals or formalism for those. (And no, emoticons don't count.) On the other hand, description is a form of communication anyway, so I fail to see the distinction that you are trying to make here.
- ebg13 6y agoI find that Dijkstra's essays often rub me the wrong way. He readily admits that high-level programming languages are a huge improvement over machine code, and then says (I'm paraphrasing) "BUT YOU MUST NOT TRY TO GO FURTHER". What?! That's just crass! Here it's like he's buried his head in a bucket of sand ensconced safely in his ivory tower, never having to interact with real people who have real desires for real things that could be solved with real programs if only baking apple pies from scratch didn't first require inventing the universe. The first two sentences show this well, where he conflates dreaming of a more interesting future with blaming the machine for being just a machine. > They blamed the mechanical slave for its strict obedience They just want a more forgiving interface that makes developing programs easier and they're probably frustrated that it doesn't exist. That's not the same as blaming the machine. Like, at all. That's blaming _us_ for making obscene devices that you can't program without a fuck ton of training and practice. How has one of the fathers of modern computer programming forgotten about the value of layers of abstraction and interactive feedback? He's dismissing the very same drive that causes us to write libraries and wizards and not just programs. It's the reason why we can now just magic up GUI windows and shit without having to think _at_ _all_ about what it actually means to construct blobs of pixels that can resize and move around and scroll and receive clicks and blink and marquee and and and. It's why we can now send an email to our friend Jeff in one line of new code and have it actually work, because there are thousands of other lines of code behind the scenes doing the work for us that we don't have to even think about most of the time. Would it really be so bad to try to keep going further down that road? To add abstractions for using real human sentences as well? Would it be so terrible if we could one day say "make a window called 'my window', and put a button in the lower left, and when I click on it play a trumpet sound" (with default behaviors for size and padding and fonts and stupid shit like that that normal people don't actually care about) instead of having to copypaste a thousand lines of greek from some website? Is it really so hard to imagine that a billion people are newly able to satisfy a billion simple desires over night every time we remove a small piece of that _need_ for always using bullshit symbols with unhelpful machines? That "but it won't automatically be precisely X" is a stupid programmer thing that only programmers say? Is it hard to do? Yes. Would it be bad if we did it? Wtf, no.
- simonh 6y ago
- gtsop 6y agoComputers 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.
- stevebmark 6y agoIt’s great how far English has come from this kind of terrible writing. It’s indirect, condescending, and hard to follow. We’ve become more direct speakers and looking back at this is a great example of how not to write.
- NateEag 6y agoI wish more people wrote as clearly and directly as Dijkstra. You must know a lot of literary geniuses, because I don't know many who come anywhere close to it.
- NAR8789 6y agoNatural language is ambiguous, sure, but natural-language programming already exists. I suspect most readers of HN are already very familiar with it. Dijkstra is of course right that you can't replace the precision of formal languages. Precision allows you to "one-shot" a spec. For simplicity, consider just machine code. A compiled program, given to the right machine, is a sort of message that can be delivered unidirectionally and understood perfectly. From the perspective of natural languages, that is nothing short of a miracle. Can you think of a case where you said something mildly complex and were understood perfectly, the first time, without questions and clarification? To drop the need for formality and precision then, the tradeoff is this: we must program by conversation; the compiler must be able to talk back and collaborate with the programmer to "discover" the program spec. This is not talking back in the sense of waiting for input or mouse events--at that point we are already running the fully compiled program. Remember, this conversation is replacing the work of writing the program. We want something that substitutes for the information content of the compiled binary, that "single message" I can send to a computer to tell it unambiguously what to do. Programming by conversation ends up being a kind of iterative programming by trial-and-correction. - Programmer says, "I my windows to automatically close when it's raining, and open when the sky is blue." - Compiler: "I can almost do that, but what about when it's both raining and the sky has patches of blue?" - Programmer: "That can happen?" - Compiler: "It's kind of counterintuitive, but it happens occasonally" - Programmer: "Well when that happens just keep the windows closed" - Compiler: "Ok, but what about-" - Programmer interrupts: "Do the other edge cases happen often?" - Compiler: "Maybe 0.1% of the time." - Programmer: "Ignore them and just let the system crash and call for help--I can just come work the windows myself those days" - Compiler: "Sure, I'll just need to ziptie a few motors to the windows like so, and-" - Programmer: "Whoa whoa, can't we make it prettier?" - Compiler: "I guess... gonna take a while though" - Programmer: "Oh, well I'm in a hurry. Ziptied motors it is!" - Compiler: "Ziptied motors it is!" You've seen this conversation before. You've had this conversation before. You've met and interacted with programmers who use this "natural language programming language". We call these programmers "Product Managers". You are deeply familiar with natural language programming, because you are the first compile-step in the build chain. You, the "programmer", are a very-high-level conversational code editor. Joking aside, any "natural language programming language" would probably need to operate in some kind of conversation format. Still probably immensely complex to build, and Dijkstra's point about ease of expression stands strong--some things are much, much faster to say in formal language rather than by having a slow conversation that whittles away the ambiguities, and it increases the amount of work from both Programmer and Compiler (conversations take mental energy!). But whittle away ambiguities we nonetheless can. Building a synthetic programmer is certainly a very far away goal, but "foolish"? Maybe, maybe not.
- dang 6y agoIf curious see also 2014 https://news.ycombinator.com/item?id=8222017 https://news.ycombinator.com/item?id=8222017 2010 https://news.ycombinator.com/item?id=1913308 https://news.ycombinator.com/item?id=1913308 2008 (1 comment) https://news.ycombinator.com/item?id=233780 https://news.ycombinator.com/item?id=233780
- torgian 6y agoThis was a fascinating read
- dshep 6y agoFor better or worst, reading Dijkstra always reminds of these funny (I think) comments that Alan Kay made in 1997... "Arrogance in Computer Science is measured in nano-Dijkstras" --Alan Kay Video: https://www.youtube.com/watch?v=9KivesLMncs https://www.youtube.com/watch?v=9KivesLMncs
- DonHopkins 6y agohttps://www.quora.com/Has-anyone-criticized-Alan-Kay https://www.quora.com/Has-anyone-criticized-Alan-Kay >Has anyone criticized Alan Kay? >Alan Kay, Had something to do with "Object-Oriented Programming". Answered May 3, 2016. >As Mark Miller mentioned, Dijkstra once said that "Object-Oriented Programming was such a bad idea that it could only have come from California"! However, he and I were friendly, so I took that as a backhanded compliment. My research group at Xerox Parc was known as "The Lunatic Fringe", usually (I thought) affectionately. I don't count trolls on reddit and slashdot and elsewhere. [...]
- sytelus 6y agoNatural language is designed for describing state of natural objects and events. Traditional programming is so much more abstract. It's super hard to describe what is an array or dictionary. Two people can agree how heavy an apple may be but they could not agree what exactly is an array. We grow up interacting with apple and its what nature designed for us. We don't grow up talking about arrays, they are purely imaginary abstract concept. This is why it is very hard to write quickshort algorithm in English than it is in pseudocode. But things are changin now. It is increasingly possible to take natural language constructs that can compose low level primitives through program synthesis. That is, AI can write lower level while we dictact higher level.
- mleonhard 6y agoGoogle uses a config language called Borg Config Language (BCL). It is an extension of GCL (https://research.tue.nl/en/studentTheses/gcl-viewer https://research.tue.nl/en/studentTheses/gcl-viewer ). GCL was built with ideas from natural language programming. It is extremely difficult to learn and use. Errors are very easy to make and hard to detect. Maintainability is poor. Some lessons are still unlearned after 40 years.
- pydry 6y agoGherkin/Cucumber/Behave too. All the same problems.
- MaxBarraclough 6y ago> it has been proposed (to try) to design machines that we could instruct in our native tongues. this would, admittedly, make the machines much more complicated, but, it was argued, by letting the machine carry a larger share of the burden, life would become easier for us. > I suspect that machines to be programmed in our native tongues - be it Dutch, English, American, French, German, or Swahili - are as damned difficult to make as they would be to use. Seems to me there's a intermediate step here that's worth mentioning: formal specification languages, such as Z notation and Event-B, which let us precisely describe our problem. [0] If you want a 'compiler' to be able to deal with a natural language request like Give me a C function that sorts an array of uint32_t, of arbitrary length, in place, you have two challenges: 1. Automatically map the natural language problem-description to a precise formal specification of the problem, in a language like Event-B. 2. Automatically map the formal spec to an efficient and correct implementation in C. (This is called refinement. For an example, see [1].) Formal specification languages are rarely used in today's software engineering, but it would make sense to use one in an automated system, to separate out these two very different challenges. (Needless to say, automating either of these stages is enormously challenging, and we're nowhere near accomplishing either of them.) Ideally, stage 1 would warn or error about the ambiguity in the example request: most likely the user wants an ascending ordering, but this should be made explicit in the request. Would such a system be useful? I think the answer is yes regardless of what precisely is meant. I don't share Dijkstra's concerns. We already know it's possible for humans to do effective software engineering, and the question here is really one of what an automated system would have to do to compete with that. Managers already make software happen using natural language! I don't think a comparison to attempts at spoken-word mathematics are all that relevant. A computer simulation of a skilled software engineer, including being a good conversationalist with requirements-engineering skills and the ability to absorb domain knowledge, would be useful by definition, and would put software engineers out of a job at a stroke. Would it be useful to have the weaker system Dijkstra describes, that 'compiles' a natural language specification? Seems clear enough that it would, as much human effort is currently spent doing this. Assuming the system works well, and isn't unworkably pedantic or obtuse, it would still be extremely valuable. > As a result of the educational trend away from intellectual discipline, the last decades have shown in the Western world a sharp decline of people's mastery of their own language Is this actually true, or is this one of those back in my day children were respectful things? [0] https://en.wikipedia.org/wiki/Specification_language https://en.wikipedia.org/wiki/Specification_language [1] See chapter 7 of this large PDF: https://eprints.soton.ac.uk/422225/1/Thesis.pdf https://eprints.soton.ac.uk/422225/1/Thesis.pdf
- cs702 6y ago> It may be illuminating to try to imagine what would have happened if, right from the start our native tongue would have been the only vehicle for the input into and the output from our information processing equipment. My considered guess is that history would, in a sense, have repeated itself, and that computer science would consist mainly of the indeed black art how to bootstrap from there to a sufficiently well-defined formal system. We would need all the intellect in the world to get the interface narrow enough to be usable, and, in view of the history of mankind, it may not be overly pessimistic to guess that to do the job well enough would require again a few thousand years. This is highly relevant now that we have information processing systems that can be -- and are being -- programmed in our native tongue, or natural language, such as GPT-3.
- ris 6y agoBookmarking this to point rubyistas at.