Hi guys,

I've just been reading into the 2nd chapter where there are code samples, and I'm finding some of the terminology very grating to my sensibilities.

Fields marked final in java, or which are members of a scala case class constructor, are being referred to as "variables". But since their values cannot vary, they cannot be "variables". How about calling them "fields", "members" or "attributes" instead, so that mutability is not implied?

It gets worse, because in the java example they are actually called "Class variables". Many java developers I know would reserve this term for fields marked "static", i.e. Variables defined at the Class level rather than at the class instance, or object, level.

Another small point - I'm not sure it makes sense to recommend it as "good practice" to prefix the names of immutable classes in Java with the word "Immutable", if, as I assume, you're also going to be recommending that 99%+ of the classes in your application ought to be immutable! Good sense would suggest that you rather make an exception when naming the handful of "mutable" classes you might end up with.