8 ms·
>4th level language receives plain text explanation of a goal and produces code in a 3rd level language. Such an explanation would read like this: I requi
by usrbinbash 5y ago
>4th level language receives plain text explanation of a goal and produces code in a 3rd level language.
Such an explanation would read like this:
I require some glue code so the system our company uses to pass messages between our services, can talk to the system of the company we talked to 2 days ago. Also, there should be a web interface or something to monitor it.
Not like this:
A function that queries the user from the database by its surname
- drran 5y agoSuch explanation can be like this: apt-get install foo bar baz Just few words, but they can generate very complex ready to run systems. Unfortunately, this is not a general-purpose language, but apt + shell is.
- usrbinbash 5y agoHow is this the "explanation of a goal"? I issue an imperative command to apt-get, and it tries to execute it. It has no knowledge of why I want foo bar and baz installed, nor can it decide if these 3 programs make sense for what I am trying to do, or if there is a better way to do it (maybe there is a package "bazinga", that can replace the foo-bar-baz stack?). A goal-aware package manager would look like this: super-apt "i need the system ready to function as a webserver, with a high availability database and backup capabilities"
- drran 5y ago> A goal-aware package manager would look like this: A typical package manager is already goal-aware, like `make`. It's input DSL is far from English, but it's not hard to translate your English sentence into «apache postgress rsync» by matching text to package descriptions. Package manager requires a solver for dependencies, constraints, and conflicts, which is far from trivial. For example, Fedora(RedHat) switched from in-house solver for yum/dnf to zypper SAT solver (libzypp) developed by SuSE/Ximian/Novell. Unfortunately, package managers are DSL, not a general purpose language.