Beyond Programming Languages As computer technology matures, our growing ability to create large systems is leading to basic changes in the nature of programming. Current programming language concepts will not be adequate for building and maintaining systems of the complexity called for by the tasks we attempt. Just as high level languages enabled the programmer to escape from the intricacies of a machine's order code, higher level programming systems can provide the means to understand and manipulate complex systems and components. In order to develop such systems, we need to shift our attention away from the detailed specification of algorithms, towards the description of the properties of the packages and objects with which we build. This paper analyzes some of the shortcomings of programming languages as they now exist, and lays out some possible directions for future research. CACM July, 1979 Winograd, T. Programming, programming languages, programming systems, systems development 4.0 4.20 4.22 4.40 CA790701 DH August 22, 1979 2:00 PM 2155 4 3150 2294 4 3150 2558 4 3150 2837 4 3150 2842 4 3150 2945 4 3150 3031 4 3150 3077 4 3150 3105 4 3150 3148 4 3150 3148 4 3150 3150 4 3150 3150 4 3150 3150 4 3150 3150 4 3150 3150 4 3150 3150 4 3150 3150 4 3150 3150 4 3150 3150 4 3150 3155 4 3150 2060 5 3150 2704 5 3150 2842 5 3150 2939 5 3150 2941 5 3150 2943 5 3150 2940 5 3150 3073 5 3150 3148 5 3150 3150 5 3150 3150 5 3150 3150 5 3150