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


Learning Java, 4th Ed

Author: Patrick Niemeyer & Dan Leuck
Publisher: O'Reilly
Pages: 1010
ISBN: 978-1449319243
Audience: Programmers already familiar with Java
Rating: 3.5
Reviewer: Alex Armstrong

Learning Java - obviously a book for someone who wants to learn Java. Don't be too quick to leap to that conclusion!



Distributed Programming with Ruby

Author: Mark Bates
Publisher: Addison-Wesley Professional
Pages: 272
ISBN: 978-0321638366
Aimed at: Intermediate Ruby developers
Rating: 4.5
Pros: Logical and well-written
Cons: Niche topic
Reviewed by: Ian Elliot

Do you want to create distributed applications using either DRb or Rinda? If so read on ...


More Reviews

Last Updated ( Wednesday, 14 July 2010 )
 
 

   
RSS feed of book reviews only
I Programmer Book Reviews
RSS feed of all content
I Programmer Book Reviews
Copyright © 2014 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.