Live data from Hacker News

Dijkstra On the foolishness of "natural language programming"

cs.utexas.edu

271–280 of 281 posts

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

#271
post #48

Earlier quoted context omitted.

Research on LLMs suggest that's probably not the case. See the work on reasoning in latent space, and on shared concepts between languages being represented independently of the individual language. Of course one might argue that even if LLMs are capable of ideation and conceptualisation without natural language, doesn't mean humans are. But the fact that up to 50% of people have no inner monologue seems to refute th…

Humans can't share ideas directly, they pass through language. Some idea is created at the other end, nominally the same one, but there's no reason to suppose a universal internal format. Even translating between human languages loses details, where words in one language map imperfectly to words in another. Moving ideas directly from one brain to another probably can't happen. So the statement in language doesn't map…

Sure, you can define "proper" and "idea" to the claim post-facto to change what's being claimed, but the point is we do have ideas without language, and converting into language is not creating the idea.

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

#272

Earlier quoted context omitted.

Humans can't share ideas directly, they pass through language. Some idea is created at the other end, nominally the same one, but there's no reason to suppose a universal internal format. Even translating between human languages loses details, where words in one language map imperfectly to words in another. Moving ideas directly from one brain to another probably can't happen. So the statement in language doesn't map…

Sure, you can define "proper" and "idea" to the claim post-facto to change what's being claimed, but the point is we do have ideas without language, and converting into language is not creating the idea.

Why not both? Yes, we have ideas without language: and, creating a form of words to express the idea is creating a new and somewhat different version.

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

#273

Earlier quoted context omitted.

Hmm... that's interesting. It sort of gives me a glimpse, but I'm still very confused about what the "process" of programming is for you. You mention in your explanation that these things in your head are somewhat "vague" and "abstract" - so how do you see the action of converting a general idea in your head into working code in the computer? Just to recap, the way I see this is that the non-verbal neural processes a…

The connections between the abstract entities are the connections between the source code elements. That thing goes to `match` which gives me either this or that . It's more that the program is sort of graph-shaped (all about connections) than that I have linear grammar sentences in my head. I could "serialize" the same mental model into various alternate syntaxes, e.g. assign to temporary variables or not, based on…

Thanks for putting that in writing. It's funny how I was expecting you to tell me about something very different from my approach to coding, but your explanation actually really resonated with how I think of it. My mind isn't as visual, but it's also very nonlinear, with me often dragging (option + up/down in VS Code) chunks around until they best fit with the code "story" I have inside my head. And I also tend to spend a lot of time to figure out just the appropriate variable naming, and sometimes change the names after moving the code around, attempting to have the code make more sense when read in order.

I quite like your idea of jumping across functions living independently rather than in files, and agree that a future AR approach for this is likely the way to go. I'd be very interested in something that's like the Minority Report interface, or even better, being able to visualize the code as being in a fully 3d space that I could navigate around (rather than having it come to me).

The git editor you showed looks neat, but I can't imagine myself using it. On a related note though, I quite liked the interface of the game TIS-100 and am wondering if there could be a professional version of that.

But zooming back out, I still can't seem to imagine programming as an activity being done entirely without text (or a pictorial equivalent), and would thus still argue that it is during this act of "translation" of pre-verbal neural activity to language that the program is created, perhaps especially because of how non-linear this process is.

P.S. What's the "no more than 7 rule"? I don't recall ever hearing of that, and can't seem to find any online sources. Is it about the 7±2 chunk limit on short-term memory?

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

#274

Earlier quoted context omitted.

The connections between the abstract entities are the connections between the source code elements. That thing goes to `match` which gives me either this or that . It's more that the program is sort of graph-shaped (all about connections) than that I have linear grammar sentences in my head. I could "serialize" the same mental model into various alternate syntaxes, e.g. assign to temporary variables or not, based on…

Thanks for putting that in writing. It's funny how I was expecting you to tell me about something very different from my approach to coding, but your explanation actually really resonated with how I think of it. My mind isn't as visual, but it's also very nonlinear, with me often dragging (option + up/down in VS Code) chunks around until they best fit with the code "story" I have inside my head. And I also tend to sp…

> Is it about the 7±2 chunk limit on short-term memory?

Yes.

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

#275

Earlier quoted context omitted.

The burden of proof is not on the person telling you that a citation is needed when claiming that something is impossible. Vague phrases mean nothing. You need to prove that there are these fundamental limitations, and you have not done that. I have been careful to express that this is all theoretical and possible , you on the other hand are claiming it is impossible; a much stronger claim, which deserves a strong ar…

You can't just make extraordinary claims [1][2], demand rigorous citation for those who question it, even going as far as to word lawyer the definition of cognition [3], and reverse the burden of proof. All the while providing no evidence beyond what essentially boils down to "anything and everything is possible." > Vague phrases mean nothing. Yep, you made my point. > Do you see the difference? Yes, I clearly state…

Your error is in assuming (or at least not disproving) that natural language cannot fully capture the precision of a programming language. But we already see in real life how higher-level languages, while sometimes making you give up control of underlying mechanisms, allow you to still create the same programs you'd create with other languages, barring any specific technical feature. What is different here though is that natural language actually allows you to reduce and increase precision as needed, anywhere you want, offering both high and low level descriptions of a program.

You aren't stating the obvious. You're making unbacked claims based on your intuition of what transformers are. And even offering up the tired "stochastic parrot" claim. If you can't back up your claims, I don't know what else to tell you. You can't flip it around and ask me to prove the negative.

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

#276

Earlier quoted context omitted.

You can't just make extraordinary claims [1][2], demand rigorous citation for those who question it, even going as far as to word lawyer the definition of cognition [3], and reverse the burden of proof. All the while providing no evidence beyond what essentially boils down to "anything and everything is possible." > Vague phrases mean nothing. Yep, you made my point. > Do you see the difference? Yes, I clearly state…

Your error is in assuming (or at least not disproving) that natural language cannot fully capture the precision of a programming language. But we already see in real life how higher-level languages, while sometimes making you give up control of underlying mechanisms, allow you to still create the same programs you'd create with other languages, barring any specific technical feature. What is different here though is…

If labeling claims as "tired" makes it false, not a single fact in the world can be considered as backed by evidence. I'm not flipping anything around either, because again, it's squarely on you to provide proof for your claims and not those who question it. You're essentially making the claim that transformers can reverse a non-reversible function. That's like saying you can reverse a hash although multiple inputs can result in the same hash. That's not even "unbacked claims" territory, it defies logic.

I'm still not convinced LLMs are mere abstractions in the same way programming language implementations are. Even though programmers might give up some control of the implementation details when writing code, language implementors still decides all those details. With LLMs, no one does. That's not an abstraction, that's chaos.

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

#277

Earlier quoted context omitted.

Your error is in assuming (or at least not disproving) that natural language cannot fully capture the precision of a programming language. But we already see in real life how higher-level languages, while sometimes making you give up control of underlying mechanisms, allow you to still create the same programs you'd create with other languages, barring any specific technical feature. What is different here though is…

If labeling claims as "tired" makes it false, not a single fact in the world can be considered as backed by evidence. I'm not flipping anything around either, because again, it's squarely on you to provide proof for your claims and not those who question it. You're essentially making the claim that transformers can reverse a non-reversible function. That's like saying you can reverse a hash although multiple inputs c…

I have been careful to use language like "theoretically" throughout my posts, and to focus on leaving doors open until we know for sure they are closed. You are claiming they're already closed, without evidence. This is a big difference in how we are engaging with this subject. I'm sure we would find we agree on a number of things but I don't think we're going to move the needle on this discussion much more. I'm fine with just amicably ending it here if you'd like.

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

#278
post #154
post #85

Earlier quoted context omitted.

If you don't mind sharing - what's the specific prompt you use to get this to happen, and which LLM do you use it with?

The rudest and most aggressive LLM I've used is Deepseek. Most LLMs have trained-in positivity bias but I can prompt Deepseek to tell me my code is shit very easily.

Ha! This is so much the difference between American and Chinese culture.

By way of illustration, in my earlier career as an actor one of my favorite ever directors to work with was a woman from a Chinese culture (a very, very successful artist, indeed a celebrity, in her home country) whose style was incredibly blunt, and always helpful. She'd interrupt you in full flow with: "No, no. That shit. Try like _____". Or my favorite instance (and just to set the scene: at the time I weighed 165 lbs, could run all day, and stand under a doorframe and lift a foot up to touch the lintel without bending my knee - I was fucking fit, is my point) we were reviewing costumes, and she says "[eszed] not that shirt! Make you look fat." Which, well, yeah: I'm the guy who no matter my body-fat keeps a little roll around my middle - visible abs were never in my genetic cards. I thanked her, and wore something looser.

As you say, American positivity bias won't allow that sort of feedback. I find it bracing.

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

#279
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…

And to this point - the English language has far more ambiguity than most programming languages.

I'm told by my friends who've studied it that Attic Greek - you know, what Plato spoke - is superb for philosophical reasoning, because all of its cases and declinsions allow for a high degree of specificity.

I know Saffir-Whorf is, shall we say, over-determined - but that had to have helped that kind of reasoning to develop as and when and how it did.

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

#280
post #30

Earlier quoted context omitted.

Being doing toy-examples of non-trivial complexity. Architecting the code so context is obvious and there are clear breadcrumbs everywhere is the key. And the LLM can do most of this. Prototype-> refactor/cleanup -> more features -> refactor / cleanup add architectural notes. If you know what a well architected piece of code is supposed to look like, and you proceed in steps, LLM gets quite far as long as you are han…

This begs the question, how many of the newer generation of developers/engineers "know what a well architected piece of code is supposed to look like"?

[deleted]
Post reply on HN