Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> English (or all spoken human language) is not precise enough to articulate what you want your code to do

Exactly. And this is why I feel like we are going to go full circle on this. We've seen this cycle in our industry a couple times now:

"Formal languages are hard, wouldn't it be great if we could just talk in English and the computer would understand what we mean?" -> "Natural languages are ambiguous and not precise, wouldn't it be great if we could use a formal langue so that the computer can understand precisely what we mean?"

The eternal hope is that someday, somehow, we will be able to invent a natural language way of communicating something precise like a program, and it's just not going to happen.

Why do I think this? Because we can't even use natural language to communicate unambiguously between intelligent people. Our most earnest attempt at this, the law, is so fraught with ambiguity there's an entire profession dedicated to arguing in the gray area. So what hope do we have controlling machines precisely in this way? Are future developers destined to be equivalent to lawyers, who have to essentially debate the meaning of a program before it's compiled, just to resolve the ambiguities? If that's where this ends up, I will be very sad indeed.



> The eternal hope is that someday, somehow, we will be able to invent a natural language way of communicating something precise like a program, and it's just not going to happen

My take is more nuanced.

First, there is some evidence [1] that human language is neither necessary nor sufficient to enable what we experience as "thinking".

Second, our intuition, thinking etc are communicated via natural languages and imagery which form the basis for topics in the humanities.

Third, from communication via natural language - slowly emerges symbolism, and formalism which codifies intuitions in a manner which is operational, and useful.

As an example, socratic dialog was a precursor to euclidean geometry which operationally codifies our intuitions of space around us in a manner which becomes useful.

However, formalism is stale as there are always new worlds we experience which cannot be captured by any formalism. The genius of the human brain which is not yet captured in LLMs is to be able create symbolisms of these worlds almost on demand.

ie, if we were to order in terms of expressive power, it would be something like:

1) perception, cognition, thinking, imagination 2) human language 3) formal languages and computers codifying worlds experienced via 1) and 2)

Meanwhile, there is a provocative hypothesis [2] which argues that our "thinking" process lies outside computation as we know it.

[1] https://www.nature.com/articles/s41586-024-07522-w [2] https://www.amazon.com/Emperors-New-Mind-Concerning-Computer... [3] https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667...


> Are future developers destined to be equivalent to lawyers, who have to essentially debate the meaning of a program before it's compiled, just to resolve the ambiguities?

Future developers? You sound like you've never programmed in C++.


> The eternal hope is that someday, somehow, we will be able to invent a natural language way of communicating something precise like a program, and it's just not going to happen

what we operationally mean by "precise" involves formalism. ie, there is an inherent contradiction between precise, and natural languages.


>> The eternal hope is that someday, somehow, we will be able to invent a natural language way of communicating something precise like a program, and it's just not going to happen.

I think the closest might be the constructed language "Ithkuil". Learning it is....difficult, to put it mildly.

https://ithkuil.net/


I hear formal Sanskrit has precise logical semantics


I would rather look into the direction of Lojban.


it doesn't have to be precise enough anymore though because a perfect AI can get all the details from the existing code and understand your intent from your prompt.


Every time someone points out the fundamental limitation of natural languages vs. formal languages, there's another zealot quick to reply with a logic defying concept of a plan.


  "Forty-two!" yelled Loonquawl. "Is that all you've got to show for seven and a half million years' work?"

  "I checked it very thoroughly," said the computer, "and that quite definitely is the answer. I think the problem, to be quite honest with you, is that you've never actually known what the question is."

  "But it was the Great Question! The Ultimate Question of Life, the Universe and Everything!" howled Loonquawl.

  "Yes," said Deep Thought with the air of one who suffers fools gladly, "but what actually is it?"

  A slow, stupefied silence crept over the men as they stared at the computer and then at each other.
  
  "Well, you know, it's just everything... everything..." offered Phouchg weakly.
  
  "Exactly!" said Deep Thought. "So once you do know what the question actually is, you'll know what the answer means."


I agree with this. People use natural language all the time for programs. Talking to a teammate when pair programming, clients asking for features in language to developers. Details are there in the existing code and through a running conversation. This is why I like a lot to code with ChatGPT over a copilot type of setup.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: