Beginning Scala
Author:David Pollak
Publisher:  Apress, 2009
Pages: 350
ISBN: 978-1430219897
Aimed at: Java programmer
Rating: 3
Pros: Condensed introduction to Scala
Cons: A confusing presentation that relies on prior knowledge
Reviewed by: Mike James

Scala is an interesting language but unfortunately this book doesn't give Scala a chance to stand on its own feet.


Author:David Pollak
Publisher:  Apress, 2009
Pages: 350
ISBN: 978-1430219897
Aimed at: Java programmer
Rating: 3
Pros: Condensed introduction to Scala
Cons: A confusing presentation that relies on prior knowledge
Reviewed by: Mike James

Scala is an interesting language with a tendency towards functional programming in an object oriented context. I wanted to learn something about it so Beginning Scala seemed like a good starting point - it probably wasn't.

 

Banner

 

It starts off slowly and steadily enough but even from the beginning it doesn't really give you any idea why Scala is special. Part of the problem is that it constantly refers to Java as a baseline and explains how Scala saves a few key presses or has better syntax. If you are a refugee Java programmer, which the author clearly is, then this might be useful however it doesn't give Scala a chance to stand on its  own feet.

The second and more major problem is that the author tends to write sentences that assumes what is about to be explained. So for example:

... thus there's an entire iteration of the inner variable, j, for each value of the outer variable i.

scala> for(i<-1 to 3 j<- 1 to 3) print(i*j)

The sentence talking about i and j occurs before the example that its talking about. In this case the problem is small and you can certainly follow what is happening but the effect builds up and adds, usually momentary, confusion where a simple reordering would remove the problem.

Most of the book has this sort of style that is typical of a writer who knows his subject but not his readers. The book also lack a logical order of presentation. There are also places where ideas are introduced and discussed but without the reader having any clue as to what is going on. You are left with the impression that you should understand and your only option is to backtrack to see if you have missed some explanation - you probably haven't.

Chapter 2 ends with a comparison of Scala, Java and Ruby - interesting but probably in the wrong place. Chapter 3 is about collections and immutability. This is where we mostly learn about functional programming. Chapter 4 is on functions and continues the comparison with Java. Chapter 5 is on pattern matching and contains some interesting observations on object and functional approaches. Chapter 6 deals with parallel programming - actors and concurrency. In this chapter some of the examples start to be overlong and difficult to follow.

Chapter 7 is called Traits and Types and Gnarly stuff for Architects. By this point the attempt at humorous titles is beginning to wear very thin. Something meaningful and not jokey would be welcome. Chapter 8 is on parsing from the angle that domain specific languages are now mainstream so parsing should be too.

The book rounds off with a look at Scala in a wider development context and considers testing and other methodologies. Only in this chapter do you get an exposition of why Scala is different. The book does get better as it goes on but it still has its problems.

Overall this book isn't much use unless you know Java and know Scala which sort of misses the point. It isn't a good beginners book because it just isn't well structured or well explained.


Banner


Python All-in-One, 3rd Ed (For Dummies)

Authors: John Shovic and Alan Simpson
Publisher: For Dummies
Date: April 2024
Pages: 720
ISBN: 978-1394236152
Print: 1394236158
Kindle: B0CW1C834N
Audience: People wanting to learn Python
Rating: 2
Reviewer: Mike James
All-in-one refers to the fact that this is seven books put together - why?



Bare Metal C

Author: Steve Oualline
Publisher: No Starch Press
Date: August 2022
Pages: 304
ISBN: 978-1718501621
Print: 1718501625
Kindle: B08YJB9BCF
Audience: C programmers
Rating: 3
Reviewer: Harry Fairhead
Bare metal C sounds exciting and very basic. Time to find out how the machine really works.


More Reviews

Last Updated ( Wednesday, 14 July 2010 )