This book is the authoritative tutorial on the Scala programming language, co-written by the language’s designer, Martin Odersky. This fifth edition is a major rewrite of the entire book, adding new material to cover the many changes in Scala 3.0. In fact we have added so much new material that we split the book into two volumes. This volume, Programming in Scala, is a tutorial of Scala and functional programming. The second volume, Advanced Programming in Scala, which will be released as a PrePrint™ soon, is a deep dive into advanced aspects of Scala 3. The changes and new features covered in this book include:
- Quiet (indentation-sensitive) control syntax
- Intersection and union types
- Enums and Algebraic Data Types (ADTs)
- Context parameters and given instances
- Trait parameters and transparent traits
- Universal apply methods
- Extension methods
- Multiversal equality
- Export clauses
- main functions
About the book
The fifth edition of Programming in Scala is now available! This book is the authoritative tutorial on the Scala programming language, co-written by the language’s designer Martin Odersky.
The Scala language, which blends object-oriented and functional programming concepts, has been exploding in popularity in recent years. This book is a comprehensive, step-by-step guide to learning Scala. If you’re a programmer wanting to do your next software project in Scala, looking to expand your horizons by learning new concepts, or currently using Java and want to expand your knowledge of functional programming—or all of the above—then this book is for you.
About the authors
Martin Odersky is the creator of the Scala language. He is a professor at EPFL in Lausanne, Switzerland, and a founder of Lightbend, Inc. He works on programming languages and systems, more specifically on the topic of how to combine object-oriented and functional programming. Since 2001 he has concentrated on designing, implementing, and refining Scala. Previously, he has influenced the development of Java as a co-designer of Java generics and as the original author of the current javac reference compiler. He is a fellow of the ACM.
Lex Spoon is a software engineer at Semmle, Ltd. He worked on Scala for two years as a post-doc at EPFL. He has a Ph.D. from Georgia Tech, where he worked on static analysis of dynamic languages. In addition to Scala, he has helped develop a wide variety of programming languages, including the dynamic language Smalltalk, the scientific language X10, and the logic language that powers Semmle. He and his wife live in Atlanta with two cats and a chihuahua.
Bill Venners is president of Artima, Inc., publisher of the Artima Developer website (www.artima.com). He is author of the book, Inside the Java Virtual Machine, a programmer-oriented survey of the Java platform’s architecture and internals. His popular columns in JavaWorld magazine covered Java internals, object-oriented design, and Jini. Active in the Jini Community since its inception, Bill led the Jini Community’s ServiceUI project, whose ServiceUI API became the de facto standard way to associate user interfaces to Jini services. Bill is a community representative on the Scala Center advisory board, and is the lead developer and designer of the ScalaTest testing framework and the Scalactic library for functional, object-oriented programming.
Frank Sommers is founder and president of Autospaces, Inc, a company providing workflow automation solutions to the financial services industry. Frank has been an active Scala user for over twelve years, and has worked with the language daily ever since.