Top critical review
3 of 3 people found this helpful
Difficult and not enjoyable
on 12 November 2012
I am a very experienced application developer having worked with IBM and Microsoft languages for the last 20+ years. The last language I learned was c# and it was a doddle, a beautiful, intuitive and simple tool that works really well with the cumbersome .net event model. I had assumed that learning Objective-C would a doddle too. After all it is a C based language, like c#. I haven't found that to be the case, at least while trying to learn it using this book. Maybe the mistake I made was going for a book that says it is for programming novices, but I have never found that to be an issue in the past.
IMO, Chapter 13, which is [mysteriously] stated by the author to be optional, should be Chapter 1 as it explains the C structures upon which Objective-C is based. After reading Chapter 13, I found that I understood what I had read in Chapters 1 - 12 much better, because it answered all the "why has it been written like this" questions that cropped up in my mind about Objective-C.
Throughout the book, new concepts are introduced without sufficient explanation. And when questions are asked on the support website (classroomm.com/objective-c/), there is no longer any response from the author. Luckily the stupendously brilliant people at stackoverflow.com are much more responsive and provide explanations at whatever depth the questioner requires.
Chapter 17, about memory management is a new chapter because changes to the compiler now mean that manual memory management is optional. I found it ambiguous. I am not sure whether any manual memory management issues that were mentioned apply where ARC is in practice or not.
I have just finished reading Chapter 18 about Copying Objects. Once again, nothing is explained clearly, unambiguously or in sufficient depth. Things are stated as facts, and you have to accept them. What I do understand is that slight variations in coding object copy can lead to wildly different results depending on apparently arbritary circumstances. I will be heading back to stackoverflow.com to try and get my head around what I just read.
Overall to be fair, I can give it no lower than 3 stars, because I have managed to learn Objective-C with this book, with a lot of help from other resources, but rather than the days it took me to learn c#, it has taken me weeks to plough through this dry and difficult book, despite total motivation to learn from start to finish. Maybe if I hadn't been so motivated, I would have given up.