This paper discusses some intuitions about models of concurrency. Several examples of concurrent systems are presented to illustrate different kinds of concurrent computational structures. I argue that supporting large-scale concurrent systems requires building on some surprisingly simple programming primitives. However, some models of concurrency cannot support these primitives. I describe the actor model which incorporates these primitives and illustrate its potential use in supporting different programming paradigms. Developments in concurrent computers are briefly discussed; specifically, I argue that because of their scalability, multicomputers represent the most promising development in computer architecture. Multicomputers provide a powerful realization of the actor model. Finally, I sketch the relation between different programming paradigms and actors and argue for the advantages of multiparadigm programming systems obtained by embedding different programming languages in an actor base.