The A to Z of programming languages: Objective-C
- 17 June, 2010 10:34
- Comments 1
Computerworld Australia is undertaking a series of investigations into the most widely-used programming languages. We most recently spoke to MATLAB creator, Cleve Moler, on the 25th anniversary of The MathWorks. Check out The A to Z of programming languages index to find them all.
In this interview, we take a look at one of the most in vogue programming languages at the moment: Objective-C. Acquired by Steve Jobs' company NeXT in 1995, the language now underpins both Apple's Mac OS X and the iOS platform. Thanks to the popularity of the iPhone, iPad and the App Store, the language has become an essential part of creating and delivering mobile apps to the masses.
Here, we talk to the language's co-creator, Brad Cox, on object-oriented programming, the difference with C++ and why the programming language ultimately doesn't matter.
Can you give us a brief rundown of your history, and programming experience, both pre- and post-Objective-C?
After graduate school (mathematical biology), I realised I wasn’t cut out for academia and took two starter jobs building gold-plated newsroom automation systems (Toronto Star and Chicago Tribune). That got me into C and Unix. Then I joined the ITT advanced programming labs with Tom Love.
Can you provide a brief timeline of how and when Objective-C came about?
I started Objective-C’s ancestor when at the ITT Research Laboratory just after the Byte Magazine Smalltalk-80 article came out [August 1981]. That was called OOPC: Object-oriented Preprocessor because it was originally a quick lash-up of ordinary Unix tools like sed, awk, C compilers, etc.
Soon afterwards Tom and I left to join Schlumberger Research Labs but left after about two years to found Productivity Products International; Stepstone’s ancestor. I started work immediately on a proper pre-compiler based on yacc/lex tools and got that working about six months later; as I recall around 1982.
About that time Bjarne [Stroustrup] heard about our work and invited me to speak at Bell Labs, which was when I learned he was working on C++. Entirely different notions of what object-oriented meant. He wanted a better C (silicon fab line). I wanted a better way of soldering together components originally fabricated in C to build larger-scale assemblies.
Objective-C has obviously become a major language thanks to popular Apple platforms and a thriving third-party developer community. Did you ever think it would become a widely known language in the sense that it has?
Not really. I was never particularly focused on Objective-C as a language, just as circuit engineers aren’t particularly interested in soldering irons. My interest has always been in software components, not the tools for building them.
What caused you and your partner in crime, Tom Love, to invent the language in the first place? Was it a reaction to C++ or C?
C++ didn’t exist when we started. It was a reaction to C not C++, and to limitations of C for building reusable components.
The only encapsulation tools C provides are macros and functions as building blocks for applications. Objective-C added objects originally and packages followed thereafter. I added lightweight threads (mini-applications) as a support library called Taskmaster.
It never occurred to us to add something comparable to SOA objects because networking was so new in those days. And we never thought of something comparable to OSGI since we tried (too hard I think now) to stay away from the C linker.
- Bookmark this page
- Share this article
- Got more on this story? Email Computerworld
- Follow Computerworld on twitter
- Justifying Business Intelligence Applications
- Disciplined Agile Delivery: An Introduction
- SOA and Business Processes: Making the Connection
- The Pathways ICT Leadership Development Program Brochure and Curriculum 2012
- Pathways Advanced ICT Leadership Development Program Brochure and Course Outline 2012
-
Analysis: Microsoft - Too old and too big to survive?
-
A comparison of Telstra's 4G phones
-
Drupal gains ground down under
-
NBN build gaining momentum daily: Quigley
-
Chambers: Networking's changing competitive landscape
-
Windows 7 for Dummies® Dvd+book Bundle
-
MYOB Software for Dummies 6E Australian Edition
-
Microsoft Office
-
Computers for Seniors for Dummies, 2nd Edition
-
Teach Yourself Visually Windows 7
-
Windows 7 for Seniors for Dummies®
-
Excel 2007 All-In-One Desk Reference for Dummies
-
Office 2007 All-In-One Desk Reference for Dummies
-
Windows 7 for Dummies®









Comments
Daniel
While I agree that at some point we need "tested, certified, trusted components" for building higher-order and well-engineered systems, there are many reasons to continue developing programming languages.
Under certain architectures and for certain purposes (your Apple example), we probably already have best-of-breed components, and they're being improved continually by folks who are experts with the tools. But for other programming tasks and general programming needs, there are very good reasons to remain skeptical about languages and to continue to learn. Better algorithms; different approaches to performance and state; data persistence and distributed systems. None of these have been mastered at the hammer-and-chisel level, let alone at a component level.
We haven't reached the apex of programming languages by any means, as far as I'm concerned. But then again, I'm a Lisper :)
Post new comment