One of the languages that I managed to completely ignore for almost 20 years was Objective-C. I always saw it as less developed, dead-end version of C++ that has little perspective – despite that GCC supported it since early days. I guess I was wrong on two of three counts – that of little perspective still holds as long as you want to stay outside of OS-X platform.
One of the issues I had was strange syntax and that from not too many books on subject, they were
a) too hard to read because they attempted to explain Cocoa / Carbon frameworks AND the language at the same time and
b) that they were focused on beginner audience and basically went too basic into the OOP principles and fairly obvious (for experienced programmer) stuff.
What I always really wanted was detailed comparison how are things different to Java or C++. And I managed to finally find it. The good guy named Pierre Chatelier wrote exactly that. The document is over 50 pages long, has just right mixture of details and is available in English and French from here. The target audience is experienced C++ programmer, but to my pleasant surprise – even if my C++ is a bit rusty (did not do any serious coding in C++ for over 8 years) – it was perfectly understandable. I guess C/C++ is like riding a bike – once you learn it, you have it forever :-).
The point of actually looking at Objective-C is simple: you should not learn a new programming language that does not change the way how you look at programming or program design. And Objective-C seems to be very good candidate to deliver that. The strange syntax (borrowed from Smalltalk) is actually quite simple after you overcome mental blocks inherited from UML (that + and – do indicate public/protected) and Java/C++/C# (that <Something> is related to generics/templates). The language is surprisingly powerful and I am quite enjoying reading about it. I think you will be seeing more of it on this blog …