Beginning Scala, 2nd Edition

E-Book Overview

Beginning Scala, 2nd Edition takes a down-to-earth approach to teaching Scala that leads you through simple examples that can be combined to build complex, scalable systems and applications. This book introduces you to the Scala programming language, its object-oriented and functional programming characteristics, and then guides you through Scala constructs and libraries that allow you to assemble small components into high-performance, scalable systems. You will learn why Scala is judiciously used for critical business applications by leading companies such as Twitter, LinkedIn, Foursquare, the Guardian, Morgan Stanley, Credit Suisse, UBS, and HSBC. Scala is a multi-paradigm programming language that combines both functional and object-oriented features. Moreover, this highly scalable language lends itself well to building cloud-based/deliverable Software as a Service (SaaS) online applications.

E-Book Content

www.it-ebooks.info For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. www.it-ebooks.info Contents at a Glance About the Authors�������������������������������������������������������������������������������������������������� xiii About the Technical Reviewer���������������������������������������������������������������������������������xv Introduction�����������������������������������������������������������������������������������������������������������xvii ■■Chapter 1: Getting Started with Scala ������������������������������������������������������������������ 1 ■■Chapter 2: Basics of Scala ���������������������������������������������������������������������������������� 13 ■■Chapter 3: Object Orientation in Scala���������������������������������������������������������������� 33 ■■Chapter 4: Functional Programming in Scala������������������������������������������������������ 57 ■■Chapter 5: Pattern Matching������������������������������������������������������������������������������� 73 ■■Chapter 6: Scala Collections�������������������������������������������������������������������������������� 91 ■■Chapter 7: Traits������������������������������������������������������������������������������������������������ 121 ■■Chapter 8: Scala Type System��������������������������������������������������������������������������� 133 ■■Chapter 9: Scala and Java Interoperability������������������������������������������������������� 153 ■■Chapter 10: DSL and Parser Combinator����������������������������������������������������������� 165 ■■Chapter 11: Simple Build Tool - SBT������������������������������������������������������������������ 179 ■■Chapter 12: Scala for Web Application�������������������������������������������������������������� 191 ■■Chapter 13: Scala Best Practices ��������������������������������������������������������������������� 219 Index��������������������������������������������������������������������������������������������������������������������� 235 iii www.it-ebooks.info Introduction Ouch! That hurts my brain! Stop making me think differently. Oh, wait . . . it hurts less now. I get it. This different way of solving the problem has some benefits. I felt that way after my first year of law school. I felt that way for a while when I began coding Scala. What’s this Option thingy? Give me back my null! How do you get the fifth element from a Seq? On and on it went. Day after day of head-splitting paradigm changing and breaking 30 years of coding habits, I am somewhat at peace with the Scala way of coding. Yes, my coding habits were borne out of 6800 machine code coding. Talk about imperative coding. That’s all you’ve got when you’ve got an accumulator, a program counter, and an index register. I grew up through BASIC,
You might also like

Network Analysis: Methodological Foundations
Authors: Ulrik Brandes , Thomas Erlebach (auth.) , Ulrik Brandes , Thomas Erlebach (eds.)    170    0



Introduction To Parallel Computing: [a Practical Guide With Examples In C]
Authors: W. P. Petersen , P. Arbenz    112    0


Spatial Data Modeling For 3d Gis
Authors: Alias Abdul-Rahman , Morakot Pilouk    134    0


Shape Analysis And Structuring
Authors: Leila de Floriani , Michela Spagnuolo    131    0


Advances In Discrete Tomography And Its Applications
Authors: Gabor T. Herman , Attila Kuba    113    0


A Practical Theory Of Programming
Authors: Eric C.R. Hehner    148    0


Introduction To Programming With Fortran 77, 90, 95, 2003
Authors: Chivers , Sleightholme.    161    0


Functional Programming And Parallel Graph Rewriting(free Web Version)
Authors: M. R. Sleep , M. J. Plasmeijer    146    0


Tex For The Impatient
Authors: Abrahams P.W. , Hargreaves K.A. , Berry K.    154    0