Software systems bridge the gap between information processing needs and available computer hardware. As system requirements grow in complexity and hardware evolves, the gap does not necessarily widen, but it certainly changes. Although today’s applications require concurrency and today’s hardware provides concurrency, programming languages remain predominantly sequential. Concurrent programming is considered too difficult and too risky to be practiced by “ordinary programmers”. However, software engineering is moving towards a paradigm shift, following which concurrency will play a more fundamental role in programming languages. We discuss some of the implications of the shift towards process-oriented programming. We outline some of the features of our own process-oriented language. Finally, we review the potential impact on software engineering and on software development processes. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Fea...