Many have drawn similarities between Objective-C and later languages like Java and Flash's ActionScript. Have you seen any direct link between these languages, or can you attribute the similarities to something else?
As I understand, Java history and interfaces were motivated by Objective-C protocols. But I didn’t invent those either, that was Steve Naroff’s contribution. And I didn’t invent the rest of it either; I took everything I could get from Smalltalk.
You say that you aim to make software a true engineering discipline. Some in the industry would say that it is already the case; what do you see as the reason why it might not be, and what would rectify this?
Software is engineering in exactly the sense that primitive mud huts are. When everything is fabricated from whatever mud is around that particular construction site, there is nothing repeatable to build an engineering science around since everything is unique and nothing can be trusted.
Making software an engineering discipline involves adopting real brick construction, building by assembling trusted components. That’s precisely why I’ve been chasing components of various granularities; first objects with Objective-C, then SOA services, and most recently OSGI.
The divide between technical knowledge, one's programming work and the way they think about the society around the probably isn't one many programmers cross regularly. Would you attribute this to the granularity of inventing a programming language, or a general interest in these concepts to begin with?
Programming is social and organisational work (apart from solitary hacking). Programmers produce components (of various granularities) for other people to use. My interests have never been in the tools for doing that (languages), but in incentive structures for encouraging that for a new kind of goods made of bits instead of atoms.
What do you see as the future of programming languages and the developer community? Are there any big holes to fill like object-oriented programming in modern languages, including Objective-C?
Using programming languages is like mud brick architecture. The future of mud brick architecture isn’t better mud mixers (programming language). It is moving to real bricks, i.e. tested, certified, trusted components. That’s starting to happen, particularly at Apple, which is possibly why they were drawn to Objective-C in the first place. For example, iPhone development involves very little construction of new components, just assembling Apple components off-the-shelf. Similar trends are underway in DoD in connection with SOA components.