4 ms·
> And here we are in 2024 watching the emergence of natural language programming, where we merely describe the program's specification in natural language and h
by skydhash 3y ago
> And here we are in 2024 watching the emergence of natural language programming, where we merely describe the program's specification in natural language and have the computer generate the rest. There's your new paradigm.
Is it? When you take procedural, object-oriented, logic, and functional programming, they did not only changes how we code, they also change how we think about the solution. We had new entities and we could describe the relations between them to describe an algorithm. Natural languages have been there forever, but the thing it lacks is formality. Every term describe a very large class of objects and specifying which one you're referring too is arduous. The kind of specification needed to describe problem solving steps is what created programming languages in the first place.
Programming languages are not some arcane art that we need to suffer through. They're the best way to specify to a machine how it should work to do a task. Maybe AI can be the new machine, but its capabilities so far are not that impactful IMO.
- esafak 3y agoMany programs already start as natural language specifications by product managers. Consider a simple search engine. The spec could simply be "take a query and return a paginated list of results ranked by personalized relevancy". That simple request is enough to generate a mountain of code. The real problem starts when you want to iterate.
- skydhash 3y ago> The spec could simply be "take a query and return a paginated list of results ranked by personalized relevancy". The real problem is specifying what any of the quoted terms means (nouns and verbs). What is a query? What is a result? How many items in a page?... And then you recurse from whatever definitions and descriptions they gave you until what you have is terms from your favorite programming languages. Somewhere in the middle, you land into whitepapers and research materials. And sometimes the result is only good if you have PBs of data and lots of compute powers. Having lots of code is not where you want to start unless you like to manage complexity from the get go and have clear understanding of the domain space.
- esafak 3y agoMost engineers are perfectly capable of understanding this specification without an explanation of each term. We can deal with ambiguity. So can ML models; that's what they're for. When we are not sure, we can ask for clarification or look it up. So can today's LLMs... I think natural language programming is a lot like dealing with a contractor.
- xeckr 3y ago>"take a query and return a paginated list of results ranked by personalized relevancy" I mean, with a large enough context window...