3 ms·
With any improvement in programming language technology, we narrow the disparity between human and computer representations of logic. In it's simplest form, thi
by dasmithii 12y ago
With any improvement in programming language technology, we narrow the disparity between human and computer representations of logic. In it's simplest form, this is the premise of language designers.
The biggest difficulty with current languages is their reliance on absolute determinacy. Programmers must express in exact form what computations ought be performs, and the languages possesses no intelligence in themselves. I think this needs to change. Inference should have applications outside type declaration, and the vast knowledge base that is the Internet should be taken into account.
At this point, there are two promising pursuits that I've seen. First is Wolfram Language, which you've all heard of. The other is Escher, which enables "programming in analogies". It's on early stages right now, but I'd encourage you to check it out at https://github.com/gocircuit/escher https://github.com/gocircuit/escher.
- dasmithii 12y agoThe problem with analogy-based programming is the lack of determinacy. There are no guarantees when it comes to abstract, knowledge-based inference. And so many concepts in modern programming would have to be abandoned to make this shift. Unit tests, for instance, would lost value dramatically. In the end, an analogy-based approach seems inevitable though, especially once natural language-based inexact. grow popular. Everyday speech is littered with ambiguities, and programming "languages" need to handle these. They can't throw compilation errors upon each inexact command.
- akkartik 12y agoI'm not as confident as you, but yes I've been watching Escher development for some time.
- rcfox 12y agoDeclarative approaches (like answer set programming, or satisfiability modulo theories) revolve around expressing what the final result should look like, with no regard for how the result is achieved.