On Thu, Sep 30, 2010 at 11:21 AM, Martin Pilkington <pilky / mcubedsw.com> wrote:
> Hi Ellie,
> I think you're misunderstanding the power of Objective-C. It is essentially
> C + Smalltalk.

Which makes it "neither fish nor fowl."

As usual, I've got a bit of personal history here.

Objective-C resulted from Brad Cox and Tom Love reading the Smalltalk
issue of Byte magazine, and seeing the value of the Smalltalk message
invocation semantics for achieving what they called "Software-ICs".
One of the big desires in the software community in the early 1980s
was achieving re-use and getting away from writing custom software.

At the same time, with the same inspiration, I led a small team at IBM
Research and developed a similar hybrid Smalltalk/C language called
ClassC (if I were to name it now, I'd come up with something which
de-emphasized the concept of class, but that's another issue).  Unlike
Objective-C, ClassC never got exposed outside of the IBM internal
development community.

Over the years, I established a friendship with both Brad and Tom,
though our common inspirations from Smaltalk, from business
relationships via IBM (Tom worked for IBM for a time), and through
conferences like OOPSLA.  I recall sitting next to Brad at an OOPSLA
workshop on reuse, where he drove the discussion away from technical
issues towards the problems of building a marketplace for reusable
software.  Subsequently he left the company producting Objective-C (I
can't recall if it was still called PPI or had become StepStone at
that time) and joined an interdisciplinary "Agorics" program at George
Mason University which look(s|ed) at the market dynamics for software.

Such hybrid languages turn out to be a net minus IMHO.  Smalltalk, and
Ruby get much power and clarity from being UNIFORMLY dynamically
'typed'.  A hybrid language inevitably needs to make compromises.
There are benefits and problems with both static and dynamic
languages, and a hybrid language tends to inherit the weaknesses of
both, diluting the benefits.

I'd been away from using a hybrid language for years, and recently
took another look at the evolved Objective-C in the context of OS X
Cocoa/IOS development.  While I definitely find it more palatable than
say C++, I still find the complexities and constraints imposed by the
hybrid nature of the language unpleasant.

If it hadn't have been for Cocoa as the evolution of NextStep, and
even more so as the until recently 'mandatory' language for IOS
development, I doubt it would be much more of a footnote than ClassC
is.

At least it now has GC (although not on IOS).  And I'm glad Apple is
using it rather than C++.  That almost happened
http://talklikeaduck.denhaven2.com/2009/10/10/oh-the-irony

And when I learned that MacRuby was being built on the Objective-C
runtime, I sent Brad an email.  He replied with a rather terse
reaction like "they still aren't doing Software-ICs".

-- 
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Github: http://github.com/rubyredrick
Twitter: @RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale