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