Supercompilation and partial evaluation are still not widely used in practice. Why and what to do?
Such methods of metacomputation as supercompilation and partial evaluation appeared around half a century ago. Since then, they have fruitfully developed, deep scientific results were achieved, many software prototypes were created. However, they are still not used in the practice of programming, although their authors foresaw a great prospect for them to automate programming and expected rapid achievement of the goals. What's the big deal? We consider the history of programming from the point of view of the evolutionary theory of metasystem transitions by V.F. Turchin in order to reveal the origins of metacomputation methods and their place in the overall picture. We note that unlike software tools that were easily put into practice, such as, for example, optimizing compilers, these methods could not be implemented in such a way that they could be used automatically, because they contain too many points of choice of solutions, options, degrees of freedom that the machine cannot resolve without human assistance. For further progress to practice, we propose to pay special attention to embedding metacomputation tools in modern programming environments and developing and designing convenient human-machine interfaces, where a person will remain the top-level metasystem that makes creative decisions. In addition, we propose to include supercomputers in the arsenal of software developers' tools, including metacomputation, as it happened in applied engineering fields, but for some reason the development of effective and reliable programs for critical applications is not considered to justify the use of supercomputers.
metacomputation, metasystem transition, supercompilation, partial evaluation, future of programming