Scala is a contraction of the words "scalable" and "language." The scalability of a language is different from the scalability of a program or application. The scalability of a program is defined in terms of its performance, while the scalability of a language has a broad ranging definition, in that the high scalability of Scala is a consequence of the fusion of object-oriented and functional programming. Scala’s functional programming constructs let you compose complex functions from simple functions. Scala's object-oriented constructs let you structure highly adaptable objects through innovations in object-oriented constructs of Java. While Java has undoubtedly ushered in a wave of new era in software development, this initial chapter discusses why Scala supplants Java as a worthy successor and gets you started on a wonderful journey of great distances.