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…
Dijkstra On the foolishness of "natural language programming"
271–280 of 281 posts
Re: Dijkstra On the foolishness of "natural language programming"
#272Earlier 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.
Re: Dijkstra On the foolishness of "natural language programming"
#273Earlier 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…
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"
#274Earlier 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…
Yes.
Re: Dijkstra On the foolishness of "natural language programming"
#275Earlier 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…
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"
#276Earlier 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…
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"
#277Earlier 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…
Re: Dijkstra On the foolishness of "natural language programming"
#278Earlier 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.
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"
#279Earlier 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 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"
#280Earlier 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"?