4 ms·
Maybe future programming systems can use an assertive pattern, where software developers only define what the software is supposed to do. And the programming sy
by julius 4y ago
Maybe future programming systems can use an assertive pattern, where software developers only define what the software is supposed to do. And the programming systems generates a program that fulfills all assertions.
Then when the software designer finds that the software does something wrong, he can simply add assertions. Its a little like TDD but without coding.
For GUI applications it would be cool to define assertions via natural language and the programming system drawing pictures to explain what it understood.
- RcouF1uZ4gsC 4y agoMy intuition is that making all the assertions to write correct code with decent performance and scaling is at least as complicated as writing the code.
- cholantesh 4y agoIsn't that what low-code solutions claim to offer?
- jocro 4y agoThis is closer to no-code, but yeah. Main reason to make the distinction is that most systems that parade themselves as "low-code" today are IME indistinguishable to high-code development to your average joe. Even taking this example, the level of value totally depends on the degree of abstraction you can trust the computer to perform for you. There is a tremendous amount of nuance to human language and while we've come a very long way in that field of study, it's still a hard nut to crack.
- cholantesh 4y agoI would agree. In my current role, we have a dedicated, growing team that builds such applications which tells me all I need to know.
- Taikonerd 4y agoLike declarative programming? [0] I agree with you: assertions in natural language would be a killer app. [0]: https://en.wikipedia.org/wiki/Declarative_programming https://en.wikipedia.org/wiki/Declarative_programming
- simiones 4y agoWe only need to invent AGI, and we'll get this, but not before.
- meijer 4y agoThat sounds a lot like logic programming. For some reason, it did not take off.
- marginalia_nu 4y ago> Maybe future programming systems can use an assertive pattern, where software developers only define what the software is supposed to do. And the programming systems generates a program that fulfills all assertions. Isn't this just a programming, but harder and worse? We've invented programming languages to be less ambiguous about what we want done, that's a feature and not a bug. It allows us to avoid the struggle of lawmakers (who are programming in spoken language) and lets us tell the computer exactly and unambiguously what to do. Natural language does not. "Bang on the floor" may mean to slam the floor or to have sex on the floor. There's a programming joke that goes like a programmer's partner says "Go to the store and buy a loaf of bread, and if they have eggs, buy twelve". The programmer comes back with twelve loaves of bread. Time flies like an arrow, fruit flies like a banana.
- jackling 4y agoThis kinda sounds like Prolog. Add a bunch of assertions and write a query to validate if it's true/get the missing vars.
- AnimalMuppet 4y agoHere's a phrase for you: "malicious compliance". When I say "what" but not "how", I am trusting the system to be reasonable in the "how" it generates. But "reasonable" depends on my situation. Unless the system knows and understands that, it may easily do what I said, but do something that is anywhere from non-optimal to disastrous. And if I have to say enough to prevent that - to prevent all the ways that could happen - is that more efficient, or less, compared to just writing the code myself?