The Artima Developer Community


Programming in Scala cover

Second Edition
Published
December 13, 2010
883 pages (eBook)
LI,852 pages (Paper Book)

Programming in Scala, Second Edition
A comprehensive step-by-step guide

by Martin Odersky, Lex Spoon, and Bill Venners

This book is the authoritative tutorial on the Scala programming language, co-written by the language's designer, Martin Odersky. This second edition provides more than 100 pages of new material that covers new features in Scala 2.8, including:

  • The design of the new collections library
  • Structural subtyping
  • The new rules for implicits
  • Package objects
  • Chained package clauses
  • Named and default parameters
  • The copy method on case classes

This book is now complete, in stock, and ready to ship!

You can purchase just the PDF eBook for $29.95, just the paper book for $54.95, or get them both by purchasing the PDF/Paper combo at a discount for $69.95. If you purchase the PDF eBook or combo, you will be entitled to receive periodic updates as errata are fixed, for no additional charge. Also, by purchasing the PDF eBook you can for no additional charge download Mobi or ePub eBook versions of the eBook that look great on your Kindle, Nook, iPad, or other reading device.

In Stock.
Paper book usually ships within 24 hours. PDF eBook ready for immediate download.

Buy It Now

Format
Quantity Volume
Discounts

About the book

Scala is an object-oriented programming language for the Java Virtual Machine. In addition to being object-oriented, Scala is also a functional language, and combines the best approaches to OO and functional programming.

In Italian, Scala means a stairway, or steps—indeed, Scala lets you step up to a programming environment that incorporates some of the best recent thinking in programming language design while also letting you use all your existing Java code.

Artima is very pleased to publish a new edition of the best-selling book on Scala, written by the designer of the language, Martin Odersky. Co-authored by Lex Spoon and Bill Venners, this book takes a step-by-step tutorial approach to teaching you Scala. Starting with the fundamental elements of the language, Programming in Scala introduces functional programming from the practitioner's perspective, and describes advanced language features that can make you a better, more productive developer.

Table of contents

What Readers are Saying ii
Contents xii
List of Figures xxiii
List of Tables xxv
List of Listings xxvii
Foreword xxxv
Foreword to the First Edition xxxvii
Acknowledgments xxxix
Introduction xlii
1. A Scalable Language 50
2. First Steps in Scala 69
3. Next Steps in Scala 82
4. Classes and Objects 104
5. Basic Types and Operations 118
6. Functional Objects 140
7. Built-in Control Structures 160
8. Functions and Closures 185
9. Control Abstraction 208
10. Composition and Inheritance 223
11. Scala's Hierarchy 251
12. Traits 259
13. Packages and Imports 278
14. Assertions and Unit Testing 296
15. Case Classes and Pattern Matching 310
16. Working with Lists 345
17. Collections 378
18. Stateful Objects 400
19. Type Parameterization 423
20. Abstract Members 448
21. Implicit Conversions and Parameters 480
22. Implementing Lists 504
23. For Expressions Revisited 517
24. The Scala Collections API 534
25. The Architecture of Scala Collections 610
26. Extractors 634
27. Annotations 650
28. Working with XML 658
29. Modular Programming Using Objects 672
30. Object Equality 687
31. Combining Scala and Java 713
32. Actors and Concurrency 726
33. Combinator Parsing 762
34. GUI Programming 791
35. The SCells Spreadsheet 803
A. Scala scripts on Unix and Windows 828
Glossary 829
Bibliography 845
About the Authors 848
Index 849

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 Scala Solutions Inc. He works on programming languages and systems, more specifically on the topic 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 LogicBlox, Inc. He worked on Scala for two years as a post-doc at EPFL. He has a Ph.D. in computer science from Georgia Tech, where he worked on static analysis of dynamic languages. In addition to Scala, he has worked on a wide variety of programming languages, ranging from the dynamic language Smalltalk to the scientific language X10 to the logic language that powers LogicBlox. He and his wife currently live in Atlanta with two cats, a chihuahua, and a turtle.

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 also the lead developer and designer of ScalaTest, an open source testing tool for Scala and Java developers.

The first edition of Programming in Scala won the 2009 Jolt Productivity Award in the Technical Books category.

Praise for the first edition

Programming in Scala is clearly written, thorough, and easy to follow. It has great examples and useful tips throughout. It has enabled our organization to ramp up on the Scala language quickly and efficiently. This book is great for any programmer who is trying to wrap their head around the flexibility and elegance of the Scala language.

- Larry Morroni, Owner, Morroni Technologies, Inc.

The Programming in Scala book serves as an excellant tutorial to the Scala language. Working through the book, it flows well with each chapter building on concepts and examples described in earlier ones. The book takes care to explain the language constructs in depth, often providing examples of how the language differs from Java. As well as the main language, there is also some coverage of libraries such as containers and actors.

I have found the book really easy to work through, and it is probably one of the better written technical books I have read recently. I really would recommend this book to any programmer wanting to find out more about the Scala language.

- Matthew Todd

I am amazed by the effort undertaken by the authors of Programming in Scala. This book is an invaluable guide to what I like to call Scala the Platform: a vehicle to better coding, a constant inspiration for scalable software design and implementation. If only I had Scala in its present mature state and this book on my desk back in 2003, when co-designing and implementing parts of the Athens 2004 Olympic Games Portal infrastructure!

To all readers: No matter what your programming background is, I feel you will find programming in Scala liberating and this book will be a loyal friend in the journey.

- Christos KK Loverdos, Software Consultant, Researcher

Programming in Scala is a superb in-depth introduction to Scala, and it's also an excellent reference. I'd say that it occupies a prominent place on my bookshelf, except that I'm still carrying it around with me nearly everywhere I go.

- Brian Clapper, President, ArdenTex, Inc.

I bought an early electronic version of the Programming in Scala book, by Odersky, Spoon, and Venners, and I was immediately a fan. In addition to the fact that it contains the most comprehensive information about the language, there are a few key features of the electronic format that impressed me. I have never seen links used as well in a PDF, not just for bookmarks, but also providing active links from the table of contents and index. I don't know why more authors don't use this feature, because it's really a joy for the reader. Another feature which I was impressed with was links to the forums ("Discuss") and a way to send comments ("Suggest") to the authors via email. The comments feature by itself isn't all that uncommon, but the simple inclusion of a page number in what is generated to send to the authors is valuable for both the authors and readers. I contributed more comments than I would have if the process would have been more arduous.

Read Programming in Scala for the content, but if you're reading the electronic version, definitely take advantage of the digital features that the authors took the care to build in!

- Dianne Marsh, Founder/Software Consultant, SRT Solutions

Great book, well written with thoughtful examples. I would recommend it to both seasoned programmers and newbies.

- Howard Lovatt

The book Programming in Scala is not only about ‘How?,’ but more importantly about ‘Why?’ to develop programs in this new programming language. The book’s pragmatic approach in introducing the power of combining object-oriented and functional programming leaves the reader without any doubts as to what Scala really is.

- Dr. Ervin Varga, CEO/founder, EXPRO I.T. Consulting

This is a great introduction to functional programming for OO programmers. Learning about FP was my main goal, but I also got acquainted with some nice Scala surprises like case classes and pattern matching. Scala is an intriguing language and this book covers it well.

There's always a fine line to walk in a language introduction book between giving too much or not enough information. I find Programming in Scala to achieve a perfect balance.

- Jeff Heon, Programmer Analyst

Lucidity and technical completeness are hallmarks of any well-written book, and I congratulate Martin Odersky, Lex Spoon, and Bill Venners on a job indeed very well done! The Programming in Scala book starts by setting a strong foundation with the basic concepts and ramps up the user to an intermediate level & beyond. This book is certainly a must buy for anyone aspiring to learn Scala.

- Jagan Nambi, Enterprise Architecture, GMAC Financial Services

The book Programming in Scala outright oozes the huge amount of hard work that has gone into it. I've never read a tutorial-style book before that accomplishes to be introductory yet comprehensive: in their (misguided) attempt to be approachable and not "confuse" the reader, most tutorials silently ignore aspects of a subject that are too advanced for the current discussion. This leaves a very bad taste, as one can never be sure as to the understanding one has achieved. There is always some residual "magic" that hasn't been explained and cannot be judged at all by the reader. This book never does that, it never takes anything for granted: every detail is either sufficiently explained or a reference to a later explanation is given. Indeed, the text is extensively cross-referenced and indexed, so that forming a complete picture of a complex topic is relatively easy.

- Gerald Loeffler, Enterprise Java Architect

Programming in Scala is a pleasure to read. This is one of those well-written technical books that provide deep and comprehensive coverage of the subject in exceptionally concise and elegant manner.

The book organized in a very natural and logical way. It is equally well suited for a curious technologist who just wants to stay on top of the current trends and a professional seeking deep understanding of the language core features and its design rationales. I highly recommend it to all interested in functional programming in general. For the Scala developers, this book is unconditionally a must-read.

- Igor Khlystov, Software Architect/Lead Programmer, Greystone Inc.

Programming in Scala is probably one of the best programming books I've ever read. I like the writing style, the brevity, and the thorough explanations. The book seems to be answer every question as it enters my mind&emdash;it's always one step ahead of me. The authors don't just give you some code and take things for granted. They give you the meat so you really understand what's going on. I really like that.

- Ken Egervari, Chief Software Architect

Programming in Scala by Martin Odersky, Lex Spoon, and Bill Venners: in times where good programming books are rare, this excellent introduction for intermediate programmers really stands out. You’ll find everything here you need to learn this promising language.

- Christian Neukirchen

Copyright © 2014 Artima, Inc. All rights reserved.