3 ms·
I think you're missing the practical use cases of natural language programming, at least those in the next decade or so. "Hello Computer! I need an inverse squ
by dougk16 14y ago
I think you're missing the practical use cases of natural language programming, at least those in the next decade or so.
"Hello Computer! I need an inverse square root function. It should take a float as a parameter and..." - Not practical
"Hello Computer! I need this image to pan across the screen. It should take one second. When it gets there, I want it to stop and become clickable. When you click it..." - Very practical
The practical solution here could even be iterative...
"No computer, no! The image should ease into position, not just go straight there!"
The point is you wouldn't rely on it for precise logic, just "good enough" behavior. You can definitely argue that this isn't programming though.
- pdonis 14y agoWhat you want isn't "natural language programming"; what you want is an AI. I think that's more than a decade away.
- dougk16 14y agoWell, we start to split hairs here, although my over the top "Hello computer!" skewed what I was getting at. If NLProgramming gains ground, there will likely be some level of AI behind it, but not necessarily a "true" AI. And it's not what I want...it will put me out of work ;)
- einhverfr 14y agobut you still require a hyperdefined subset of English to make that work, and such a parser cannot take into account dialectal and language drift issues.
- dougk16 14y agoIt could if there were some level of AI behind it.
- einhverfr 14y agoBut at that point you run into another problem, namely that you can interact with computers in natural language but I don't think you can program them, because once you have that level of AI, you can't guarantee that two computers will have the exact same understanding of the command any more than you can expect that two programmers will read a spec in the exact same way. What this means is that the consistency gained in programming languages would be lost. A computer program would no longer generate repeatable results.
- dougk16 14y agoInteresting point, but a counterpoint is that an AI for such purposes could either be deterministic (if it was running on local machines), or it could be a single highly creative and nondeterministic AI running "in the cloud" so to speak. There are also cases where absolute determinism isn't important, like in some games. I think both of our points are somewhat moot though, as I don't see NLP code as something that you would necessarily put up on github. I see it as playing a similar role to DSLs or metaprogramming nowadays, and similarly, it wouldn't always be a good solution. Simple use case: I recently finished an HTML5 puzzle minigame. The layout is pretty simple and has to adjust to window resizes, but the layout can't be done with straight HTML/CSS. So, my resize function is 120 lines of dense javascript, despite being able to describe in a simple paragraph what I would want. Indeed, a simple paragraph is what was given to me in the first place to describe the layout.
- einhverfr 14y agoI think the game example proves my point. You don't play a game by programming the game server. You play the game by itneracting with the computer. These are fundamentally different areas.
- fusiongyro 14y agoI can't help but sense this leading right back to the bad old days of PowerBuilder and Visual Basic. The whole idea behind 4GLs was, you "tell" the computer what you want it to do in high-level concepts. The problem is the 90% of the program it makes easy is was easy before, and the 10% that remains is effectively impossible for the non-programmer, and the programmer will balk at all the extra work they have to do to squeeze it in.