Live data from Hacker News

Dijkstra On the foolishness of "natural language programming"

cs.utexas.edu

241–250 of 281 posts

Re: Dijkstra On the foolishness of "natural language programming"

#241
post #45

Earlier quoted context omitted.

> Do you find the resulting natural language description is easier to reason about? An example from an different field - aviation weather forecasts and notices are published in a strongly abbreviated and codified form. For example, the weather at Sydney Australia now is: METAR YSSY 031000Z 08005KT CAVOK 22/13 Q1012 RMK RF00.0/000.0 It's almost universal that new pilots ask "why isn't this in words?". And, indeed, mos…

I wonder why the legal profession sticks to natural language

Because law isn’t a fixed entity, it is a suggestion for the navigation of an infinite wiring

Re: Dijkstra On the foolishness of "natural language programming"

#242

Earlier quoted context omitted.

That's a really deep question. Obviously there are types of creativity that don't require words, like painting or sculpting, or improvising music, but I'm having real difficulty imagining programming without something at least resembling natural language. The closest my imagination gets is Scratch/Blockly, but even then you're essentially creating an AST composed out of statements and expressions, even if they're pic…

I think you're the kind of person who has an internal voice talking in their head, and can't imagine any other kind of thought? Math is all about abstract shapes and properties, for me. So is much of programming.

Yeah, just chiming in to say the same. Essentially all of my thinking is geometric in nature. The only time I have any internal monologue is as a mnemonic device to remember a sequence.

Re: Dijkstra On the foolishness of "natural language programming"

#243
post #165
post #116

Earlier quoted context omitted.

Although if you look at most maths textbooks or papers there's a fair bit of English waffle per equation. I guess both have their place.

People definitely could stand to write a lot more comments in their code. And like... yea, textbook style prose, not just re-stating the code in slightly less logical wording.

Yes exactly. Or like signposts on a road.

"You came from these few places, you might go to these few places, watch out for these bugbears if you go down that one path."

Re: Dijkstra On the foolishness of "natural language programming"

#244

Earlier quoted context omitted.

You claimed they weren't deterministic, I have shown that they can be. I'm not sure what your point is. And it is incorrect to base your analysis of future transformer performance on current transformer performance. There is a lot of ongoing research in this area and we have seen continual progress.

I reiterate: > This is assuming by "deterministic," you mean the same thing I said about programming language implementations being "controllable, reproducible, and well-defined." If you mean it produces random but same results for the same inputs, then you haven't made any meaningful points. "Determinism" is a word that you brought up in response to my comment, which I charitably interpreted to mean the same thing I…

What are these fundamental properties you speak of? 8 years ago this was all a pipe dream. Are you claiming to know what the next 8 years of transformer development will look like?

Re: Dijkstra On the foolishness of "natural language programming"

#245

People are sticking up for LLMs here and that's cool. I wonder, what if you did the opposite? Take a project of moderate complexity and convert it from code back to natural language using your favorite LLM. Does it provide you with a reasonable description of the behavior and requirements encoded in the source code without losing enough detail to recreate the program? Do you find the resulting natural language descri…

the vibe coding seems a lot like the dream of using UML, but in a distinctly different direction, and how in theory (and occasional practice) you can create a two way street, most often these things are one way conversions and while we all desire some level of two way dependency and continual integration to make certain aspects of coding (documentation, testing) to be up to date, the reality is that the generative code aspect always breaks and you're always going to be left with the raw products of these tools and it's rarely going to be a cycle of code -> tool -> code. And thus the ultimate value beyond the bootstrap is lose.

We're still going to have AI tools, but seriously complex applications, the ones we pay money for, arn't going to yield many LLM based curation strategies. There will probably be some great documentation and testing ones, but the architetural-code paradigm isnt going to yield any time soon.

Re: Dijkstra On the foolishness of "natural language programming"

#246
post #19

this clearly has nothing to do with the current main usages of LLMs, it's about using natural language as an interface to produce accurate results, as a further abstraction on top of general purpose languages.

What is the difference between those things?

LLMs take natural language as input and produces it as output (note that producing source code is the same thing). The algorithm that takes input and produces output is still written in mathematical precise symbols and needs to be accurate, even if the input and output aren't expressed in a formal language.

We will see if and when an algorithm can be parsed and executed from a natural language "source code" and if that is an improvement.

Also note that "source code" implies it is a code. Natural languages are not a code, that is, a unique mapping from a set to another.

Re: Dijkstra On the foolishness of "natural language programming"

#247

Earlier quoted context omitted.

That's a really deep question. Obviously there are types of creativity that don't require words, like painting or sculpting, or improvising music, but I'm having real difficulty imagining programming without something at least resembling natural language. The closest my imagination gets is Scratch/Blockly, but even then you're essentially creating an AST composed out of statements and expressions, even if they're pic…

I think you're the kind of person who has an internal voice talking in their head, and can't imagine any other kind of thought? Math is all about abstract shapes and properties, for me. So is much of programming.

Yeah, I suppose you're right and I'd love to understand more. Do you imagine a modality of programming a computer in an abstract (pictorial? diagrammatic?) way that fully bypasses the current need to form statements?

Re: Dijkstra On the foolishness of "natural language programming"

#248
post #180
post #71

Earlier quoted context omitted.

> Or weak typing. How many languages thought that simplifying strings and integers and other types into "scalar", and making any operation between any operands meaningful, would simplify the language? Yet every single one ended up becoming a total mess instead. Yet JavaScript and Python are the most widely used programming languages [1]. Which suggests your analysis is mistaken here. [1] https://www.statista.com/stat…

JavaScript is indeed weakly typed, and is widely lampooned and criticized for it¹². But Python has strong typing, and has always had it. (Both JavaScript and Python have dynamic typing; Python’s type declarations are a form of optional static type checking.) Do not confuse these concepts. 1. https://www.destroyallsoftware.com/talks/wat > 2. https://eqeq.js.org/ >

[deleted]

Re: Dijkstra On the foolishness of "natural language programming"

#249
post #180
post #71

Earlier quoted context omitted.

> Or weak typing. How many languages thought that simplifying strings and integers and other types into "scalar", and making any operation between any operands meaningful, would simplify the language? Yet every single one ended up becoming a total mess instead. Yet JavaScript and Python are the most widely used programming languages [1]. Which suggests your analysis is mistaken here. [1] https://www.statista.com/stat…

JavaScript is indeed weakly typed, and is widely lampooned and criticized for it¹². But Python has strong typing, and has always had it. (Both JavaScript and Python have dynamic typing; Python’s type declarations are a form of optional static type checking.) Do not confuse these concepts. 1. https://www.destroyallsoftware.com/talks/wat > 2. https://eqeq.js.org/ >

Ah, weak typing, a.k.a. implicit type conversions.

Re: Dijkstra On the foolishness of "natural language programming"

#250

People are sticking up for LLMs here and that's cool. I wonder, what if you did the opposite? Take a project of moderate complexity and convert it from code back to natural language using your favorite LLM. Does it provide you with a reasonable description of the behavior and requirements encoded in the source code without losing enough detail to recreate the program? Do you find the resulting natural language descri…

Language can carry tremendous amounts of context. For example: > I want a modern navigation app for driving which lets me select intersections that I never want to be routed through. That sentence is low complexity but encodes a massive amount of information. You are probably thinking of a million implementation details that you need to get from that sentence to an actual working app but the opportunity is there, the…

But it doesn't 'carry context' ; it's just vague and impossible to implement what you have in mind. And that's the problem; You assume people live in your reality, I assume mine, LLMs have some kind of mix between us and we will get 3 very different apps, none of which will be useful from that line alone. I like that line to be expanded with enough context to have an idea what you actually need to have built and I am quite sure pseudocode (or actual code) will be much shorter than a rambling english description you can come up with; most of which (unless it's logic language) will have enough unambiguous context to implement.

So sure, natural language is great for spitballing ideas, but after that it's just guessing what you actually want to get done.

Post reply on HN