Building successes on accomplishments



next up previous contents
Next: Towards improved education Up: New efforts Previous: New efforts

Building successes on accomplishments

Despite an explosive variety and volume of new programming language ideas, no compelling language for parallel programming has appeared. Declarative languages focus on what results a computation is to produce rather than the computation itself. This provides a means of expression that permits parallelism, but does not explicitly express it. A language is needed that incorporates the two missing concepts from current programming languages, the process and the file, as central facilities, and that provides a higher-level means of writing parallel programs by allowing the programmer to develop the intuition of parallel computation.

Object-oriented programming is one of the most promising paradigms in this regard. With its message-passing discipline, object-oriented programming has great potential for the description of many aspects of process creation and interaction, and some initial attempts at this approach have been made. It will be important to pursue this in the context of a strong typing system to enhance the reliability of programs. Investigations of coherent and orderly alternatives in this direction should be aggressively encouraged as the development of a salutary language in which to write parallel programs would have a huge impact.

At the same time merging useful ideas from other programming paradigms should not be overlooked. For instance, pursuit of the integration of logic programming with object-oriented programming has been active recently, and this could be very helpful approach to obtaining a specification of object classes that would support essential interface abstraction. The exaggerated difficulty of ensuring correctness of parallel programs implies that issues of specification and verification need to be given recognition and support in the language design right from the outset.