3 ms·
This would be more convincing if this hadn't been the predicted future for decades already, repeatedly labelling various "human readable" or AI based solutions
by pluma 11y ago
This would be more convincing if this hadn't been the predicted future for decades already, repeatedly labelling various "human readable" or AI based solutions the new messiah only to realize non-programs are not interested in learning to program and getting rid of the language doesn't change it.
Human language is ambiguous. Ambiguity results in errors. We do not accept errors in machines because we expect them to outperform humans. When you begin to formalize human language in such a way that it becomes unambiguous, you effectively just create a new programming language.
The unreliability isn't a quirk of the system. It's an inherent limitation of the medium. Even the best AI can't read minds and even if we had the technology to do it we'd still have to deal with the fact that even mind reading won't yield the correct solution (it'll just yield the solution you think is correct at the time).
We won't be able to get rid of programming languages (or programmers) until we create AIs that can improve themselves autonomously.
What you are right about, though, I think, is that we'll see a shift towards more declarative programming. While declarative programming has been around for ages it seems to be making a comeback.
- humanrebar 11y ago> When you begin to formalize human language in such a way that it becomes unambiguous, you effectively just create a new programming language. Exactly. This is why professional jargon (a) exists. Pick a noun in computers and programming. It has another meaning in another context. This is why contracts are written in "legal English" (b) and not in normal English. a) https://en.wikipedia.org/wiki/Jargon#Examples https://en.wikipedia.org/wiki/Jargon#Examples b) https://en.wikipedia.org/wiki/Legal_English https://en.wikipedia.org/wiki/Legal_English
- w_t_payne 11y agoThat's why I'm really keen on applying NLP (Natural Language Processing) to requirements documents.
- pluma 11y agoLegalese is not unambiguous. It is minimally ambiguous. Ambiguities can still derive from the way the (ideally completely unambiguous) terminology is used. In order to have a perfectly unambiguous legal document it would need to consist of a single well-defined phrase with a single well-defined context. If legalese were as unambiguous as you seem to think it is, most case law could be fully automated to the point we'd barely ever need actual lawyers and courts. The only perfect language is the language of mathematics (if we ignore conflicting notations and definitions often being relative to a specific -- though typically well-defined -- problem domain). As soon as it involves the real world, things get messy and the wider the margin of error becomes. Physics and Chemistry tend to work relatively well (unless you try to accurately predict complex systems). Biology a bit less so. Psychology is where things start to fall apart. Sociology is where it completely breaks down. But even legalese isn't as well-defined as mathematics. Simply because it has to refer to pre-existing concepts from the start or else it wouldn't be of any actual use (e.g. what's the point of defining "theft" without referring to any real-world interactions -- but once you involve real-world interactions you've left the rational objective domain and rely on the subjective experience of human observers).
- onion2k 11y agoWhen you begin to formalize human language in such a way that it becomes unambiguous, you effectively just create a new programming language. That has always been the case, but I believe solvers for general programming will change things dramatically. The point of a solver is that you give it a problem in a formal, relatively unambiguous language, and it finds a proof. At the moment this really only works for maths problems, and even then you often need a specialist solver for the type of problem. General solvers are coming though, and they'll expand beyond maths and they'll accept more and more ambiguous language - often that will mean they come up with the wrong solution, but that's just a matter of iterating until something is correct. I'm not suggesting one day you'll open up Notepad and type "The user is in a dystopian world full of Raiders" and get Fallout 4, but I strongly believe you'll be able to write "The first page is a form with inputs for name, address and email. When they've completed that form successfully they go to the product collection page." and you'll get the beginnings of an ecommerce app. In small ways we've already got that sort of thing (generators for various frameworks). It's only going to get better.
- ZenoArrow 11y ago> "This would be more convincing if this hadn't been the predicted future for decades already, repeatedly labelling various "human readable" or AI based solutions the new messiah only to realize non-programs are not interested in learning to program and getting rid of the language doesn't change it." Non programmers do program a lot, they just don't recognise it as such. What are formulas in Excel if not programming?
- pluma 11y agoIt's a common mistake to think that "programming" is an activity that merely describes the act of writing code. Yes, there are plenty of non-programmers (as in: people who are not identified as programmers by their job title or self-description) who program (including creating amazing monstrosities in VBA). Describing what a programmer does as "writing code" is only accurate to the same extent that what an accountant does can be described as "putting numbers in spreadsheets". Yes it may be a part of a typical professional's daily work, but even if it is a necessary part (which can be argued), it's not sufficient. Programming involves a lot more than just writing code -- and that's precisely the part you can't replace by creating a more approachable programming language and what I mean by "learning to program" being what non-programmers typically don't want to do. This is why "thinking like a programmer" is a thing that is separate from "learning programming language X".
- ZenoArrow 11y agoUsing formulas in Excel isn't merely coding. Using Excel often involves designing data models, tracking state, etc... Programming is largely based on organising and storing data, filtering and transforming data and displaying data, Excel does all of the above.