3 ms·
On fourth level of abstraction, no procedures or functions are used. Copilot is at 4th level.
by drran 5y ago
On fourth level of abstraction, no procedures or functions are used. Copilot is at 4th level.
- hyperman1 5y agoThe 1980's want their marketing back. https://en.wikipedia.org/wiki/Fourth-generation_programming_language https://en.wikipedia.org/wiki/Fourth-generation_programming_... They considered things like excel 4GL: You program some formulas and excel magically finds out what the necesarry steps are to do the computation. A lot of vendors created graphical programming languages and declared them 4GL. The term mostly died because nobody could stop laughing.
- galangalalgol 5y agoThe term died, the dream festered on. It got rebranded as model driven development andany in the embedded world bought into it in the late 90s, some have only ditched it in the last year or two, while plenty more have followed a second rebranding and keep drawing... There are some good graphical languages, lego mind storm, code spells, gnu radio companion, simulink, and maybe, sometimes, labview. Those languages aren't object oriented, they represent data flow. I suspect that makes a difference. But mostly they are for quick prototyping or small designs. And that makes an even bigger one. Diagrams don't scale well.
- drran 5y agoLevel of abstraction ≠ Generation of languages. The first 3 generation of languages were powered by higher levels of abstraction, which were possible because of better machines. However, further increase in level of abstraction did not make developers an order of magnitude more productive, except for niche areas. Switching to a better development process (Scrum) can achieve order of magnitude improvement in developer performance, while switching of programming language cannot. Anybody can claim that their product is a next gen revolutionary market shaking breakthrough. It's the self-promotion, not a science.
- usrbinbash 5y agoErm...Copilot still writes procedures and data types, most of which I have to describe one by one. And I still have to review all of them. How is that "4th level abstraction" whatever the current usage of the term?
- drran 5y ago3rd level languages are compiled into 2nd level languages (assembler, or byte code, or intermediate representation), then into machine code. Transpilers are compiling from one 3rd level language into another 3rd level language. Code generators or macros are receiving data and producing code in a 3rd level language. 4th level language receives plain text explanation of a goal and produces code in a 3rd level language. AI based tool is the only tool which is capable to do that, because such process requires understanding of the goal, not a mechanical transformation of input into output. It's possible to implement such AI in Lisp, Prolog, or using ML. Copilot is an example of such AI.
- 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"