Abstract
The roots of Objective-C began at ITT in the early 1980s in a research group led by Tom Love investigating improving programmer productivity by an order of magnitude, a concern motivated by the perceived "software crisis" articulated in the late 1960s. In 1981, Brad Cox, a member of this group, began to investigate Smalltalk and object-oriented programming for this purpose, but needed a language compatible with the Unix and C environments used by ITT. That year, Cox quickly wrote up the Object-Oriented Pre-Compiler (OOPC) that would translate a Smalltalk-like syntax into C.
Love felt there was a market for object-oriented solutions that could coexist with legacy languages and platforms, and after a brief stint at Schlumberger-Doll, co-founded with Cox Productivity Products International (PPI), later renamed as Stepstone, to pursue this. At PPI, Cox developed OOPC into Objective-C. Cox saw Objective-C as a crucial link in his larger vision of creating a market for "pre-fabricated" software components ("software-ICs"), which could be bought off the shelf and which, Cox believed, would unleash a "software industrial revolution."
Steve Naroff joined Stepstone in 1986 as Steve Jobs' NeXT Computer became an important customer for Objective-C, as it was being used in its NeXTSTEP operating system. Naroff became the primary Stepstone developer addressing NeXT's issues with Objective-C, solving a key fragility problem preventing NeXT from deploying forwards-compatible object libraries. Impressed with NeXT, Naroff left Stepstone for NeXT in 1988, and once there, added Objective-C support to Richard Stallman's GNU GCC compiler, which NeXT was using as its C compiler, removing the need to use Stepstone's ObjC to C translator. Over the next several years, Naroff and others would add significant new features to Objective-C, such as "categories," "protocols," and the ability to mix in C++ code. When Stepstone folded in 1994, all rights to Objective-C were acquired by NeXT. This eventually transferred to Apple when NeXT was acquired by Apple in 1997. Objective-C became the basis for Apple's Mac OS X and then iOS platforms, and Naroff and others at Apple added additional features to the language in the late 2000s as the iPhone App Store greatly expanded Objective-C's user base.
- Janet Abbate. 2012. Software crisis or identity crisis? Gender, labor, and programming methods. In Recoding Gender: Women’s Changing Participation in Computing. MIT Press, Cambridge, MA, 73–111.Google Scholar
- Federico Biancuzzi and Shane Warden. 2009. Objective-C. In Masterminds of Programming (1st ed.). O’Reilly Media, Sebastopol, CA, 241–275. OCLC: 434042370.Google Scholar
- Barry W. Boehm. 1973. Software and its impact: A quantitative assessment. Datamation 19, 5 (May), 48–59.Google Scholar
- Frederick P. Brooks. 1975. The Mythical Man-Month: Essays on Software Engineering (1st ed.). Addison-Wesley, Reading, MA. Copy used: Jim Warren Book Collection, Lot X2595.2004, Box B14, Catalog 102676578, Computer History Museum, Mountain View, CA.Google Scholar
- Frederick P. Brooks. 1987. No silver bullet: Essence and accidents of software engineering. Computer 20, 4, 10–19. Google ScholarDigital Library
- Brad J. Cox. 1983a. The message/object programming model: A small change, at a deep conceptual level. In Proceedings of Softfair: A conference on software development tools, techniques, and alternatives. IEEE Computer Society Press, Arlington, VA (25–28 July), 51–60.Google Scholar
- Brad J. Cox. 1983b. The object oriented pre-compiler: Programming Smalltalk 80 methods in C language. SIGPLAN Not. 18, 1 (Jan.), 15–22. Google ScholarDigital Library
- Brad J. Cox. 1984. Message/object programming: An evolutionary change in programming technology. IEEE Software 1, 1 (Jan.), 50–61. Google ScholarDigital Library
- Brad J. Cox. 1986. Object-Oriented Programming: An Evolutionary Approach (1st ed.). Addison-Wesley, Reading, MA.Google Scholar
- Brad J. Cox. 1988. The Objective-C environment: past, present, and future. In Digest of Papers. COMPCON Spring 88 Thirty-Third IEEE Computer Society International Conference. IEEE, San Francisco, CA, USA (Feb.), 166–169. Google ScholarCross Ref
- Brad J. Cox. 1989. Planning for software manufacturing. In Proceedings of the Thirteenth Annual International Computer Software Applications Conference. IEEE, Orlando, FL, USA (Sept.), 331–332. Google ScholarCross Ref
- Brad J. Cox. 1990a. Planning the software industrial revolution. IEEE Software 7, 6 (Nov.), 25–33. Google ScholarDigital Library
- Brad J. Cox. 1990b. There is a silver bullet: A software industrial revolution based on reusable and interchangeable parts will alter the software universe. Byte 15, 10 (Oct.), 209.Google Scholar
- Brad J. Cox. 2016. Oral history. 2 Aug. 2016. https://www.computerhistory.org/collections/catalog/102717175 (retrieved 3 March 2020). CHM Oral History Collection, Lot X7863.2017, Catalog 102717175, Computer History Museum, Mountain View, CA.Google Scholar
- Brad J. Cox and Bill Hunt. 1986. Objects, icons, and software-ICs. Byte 11, 8 (Aug.), 161–176.Google Scholar
- Brad J. Cox and Andrew J. Novobilski. 1991. Object-Oriented Programming: An Evolutionary Approach (2nd ed.). AddisonWesley, Reading, MA.Google Scholar
- Brad J. Cox and Kurt J. Schmucker. 1987. Producer: A tool for translating Smalltalk-80 to Objective-C. SIGPLAN Not. 22, 12, 423–429.Google ScholarDigital Library
- Edsger W. Dijkstra. 1968. Letters to the editor: go to statement considered harmful. Commun. ACM 11, 3 (March), 147–148. Google ScholarDigital Library
- Nathan L. Ensmenger. 2010. The “Computer Boys” Take Over: Computers, Programmers, and the Politics of Technical Expertise. MIT Press, Cambridge, MA.Google Scholar
- Nathan L. Ensmenger and William Aspray. 2002. Software as labor process. In History of Computing: Software Issues, Ulf Hashagen, Reinhard Keil-Slawik, and Arthur L Norberg (Eds.). Springer, Berlin, 139–165.Google Scholar
- Blaine Garst. 2016. Oral history part 1. 25 July 2016. https://www.computerhistory.org/collections/catalog/102717171 (retrieved 3 March 2020). CHM Oral History Collection, Lot X7853.2017, Catalog 102717171, Computer History Museum, Mountain View, CA.Google Scholar
- Adele Goldberg and David Robson. 1983. Smalltalk-80 : The Language and its Implementation. Addison-Wesley, Reading, MA.Google ScholarDigital Library
- James Gosling. 2019. Oral history part 2 of 2. 22 April 2019. https://www.computerhistory.org/collections/catalog/102781105 (retrieved 3 March 2020). CHM Oral History Collection, Lot X8971.2019, Catalog 102781105, Computer History Museum, Mountain View, CA.Google Scholar
- Michael A. Hiltzik. 1999. Dealers of Lightning : Xerox PARC and the Dawn of the Computer Age (1st ed.). HarperBusiness, New York.Google Scholar
- Ted Kaehler and Dave Patterson. 1986. A small taste of Smalltalk. Byte 11, 8 (Aug.), 145–158.Google Scholar
- Alan C. Kay. 1993. The early history of Smalltalk. In The second ACM SIGPLAN conference on History of programming languages ( HOPL-II ). Association for Computing Machinery, Cambridge, MA (March), 69–95. Google ScholarDigital Library
- Glenn Krasner. 1984. Smalltalk-80: Bits of History, Words of Advice. Addison-Wesley, Reading, MA. OCLC: 266966827.Google Scholar
- Lamar Ledbetter and Brad J. Cox. 1985. Software-ICs: A plan for building reusable software components. Byte 10, 6 (June), 307–316.Google Scholar
- Tom Love. 1983. Experiences with Smalltalk-80 for application development. In Proceedings of Softfair: A conference on software development tools, techniques, and alternatives. IEEE Computer Society Press, Arlington, VA (25–28 July), 61–65.Google Scholar
- Tom Love. 1988. The economics of reuse (of software). In Digest of Papers. COMPCON Spring 88 Thirty-Third IEEE Computer Society International Conference. IEEE, San Francisco, CA, USA (Feb.), 238–241. Google ScholarCross Ref
- Tom Love. 1993. Object Lessons: Lessons Learned in Object-Oriented Development Projects. SIGS Books, New York, NY. OCLC: 612808297.Google Scholar
- Tom Love. 2019. Skype interview. 17 April 2019. https://www.computerhistory.org/collections/catalog/102781110 (retrieved 12 March 2020). CHM Oral History Collection, Lot X9026.2019, Catalog 102781110, Computer History Museum, Mountain View, CA.Google Scholar
- Donald MacKenzie. 2001. Mechanizing Proof: Computing, Risk, and Trust. MIT Press, Cambridge, MA.Google ScholarCross Ref
- Michael S. Mahoney. 1990. The roots of software engineering. CWI Quarterly 3, 4, 325–334. http://www.princeton.edu/ ~hos/Mahoney/articles/sweroots/sweroots.htm (retrieved 3 March 2020). PDF version available at: http://thecorememory. com/TROSE.pdf (retrieved 3 March 2020). Extracts also available in Michael S. Mahoney. 2011. Histories of Computing. Harvard University Press, Cambridge, MA; London, England, 86–89.Google Scholar
- Michael S. Mahoney. 2002. Software: The self-programming machine. In From 0 to 1: An Authoritative History of Modern Computing, Atsushi Akera and Frederik Nebeker (Eds.). Oxford University Press, New York, 91–100. Also available in Michael S. Mahoney. 2011. Histories of Computing. Harvard University Press, Cambridge, MA; London, England, 77–85.Google Scholar
- Michael S. Mahoney. 2004. Finding a history for software engineering. Annals of the History of Computing, IEEE 26, 1, 8–19. Google ScholarDigital Library
- Steve Naroff. 2018. Oral history, part 1 of 2. 8 Oct. 2018. https://www.computerhistory.org/collections/catalog/102717385 (retrieved 3 March 2020). CHM Oral History Collection, Lot X8800.2019, Catalog 102717385, Computer History Museum, Mountain View, CA.Google Scholar
- Steve Naroff and Alan Watt. 1987. Design issues for Objective-C v.?.? DRAFT. 3 July 1987. Google ScholarCross Ref
- Kurt J. Schmucker. 1986a. MacApp: An application framework. Byte 11, 8 (Aug.), 189–193.Google Scholar
- Kurt J. Schmucker. 1986b. Object-oriented languages for the Macintosh. Byte 11, 8 (Aug.), 177–185.Google Scholar
- Rebecca Slayton. 2013. Arguments that Count: Physics, Computing, and Missile Defense, 1949-2012. The MIT Press, Cambridge, MA.Google ScholarDigital Library
- Bjarne Stroustrup. 1993. A history of C++: 1979–1991. In The second ACM SIGPLAN conference on History of programming languages (HOPL-II ). Association for Computing Machinery, Cambridge, MA, USA (March), 271–297. Google ScholarDigital Library
- Larry Tesler. 1981. The Smalltalk Environment. Byte 6, 8 (Aug.), 90–147.Google Scholar
- Larry Tesler. 1986. Programming experiences. Byte 11, 8 (Aug.), 195–206.Google Scholar
- Larry Tesler. 2013. Oral history. 13 Feb. 2013. https://www.computerhistory.org/collections/catalog/102746675 (retrieved 26 Feb. 2020). CHM Oral History Collection, Lot X6762.2013, Catalog 102746675, Computer History Museum, Mountain View, CA.Google Scholar
- Larry Tesler. 2016. Oral history, part 2 of 3. 16 Dec. 2016. https://www.computerhistory.org/collections/catalog/102717269 (retrieved 3 March 2020). CHM Oral History Collection, Lot X8020.2017, Catalog 102717269, Computer History Museum, Mountain View, CA.Google Scholar
- James E. Tomayko. 2002. Software as engineering. In History of Computing: Software Issues, Ulf Hashagen, Reinhard Keil-Slawik, and Arthur L Norberg (Eds.). Springer, Berlin, 139–165.Google Scholar
- John W. Verity. 1987. The OOPS revolution. Datamation 33 (May), 72–78. Copy used: Smalltalk press and clippings, 1983–2002, Adele Goldberg papers, Lot X5774.2010, Box 2, Folder 14, Catalog 102739382, Computer History Museum, Mountain View, CA.Google Scholar
- John W. Verity and Evan I. Schwartz. 1991. Software made simple. BusinessWeek (30 Sept.), 92–100. Copy used: Smalltalk press and clippings, 1983–2002, Adele Goldberg papers, Lot X5774.2010, Box 2, Folder 14, Catalog 102739382, Computer History Museum, Mountain View, CA.Google Scholar
- Eva White and Rich Malloy. 1986. Object-oriented programming. Byte 11, 8 (Aug.), 137.Google Scholar
- Xerox Learning Research Group. 1981. The Smalltalk-80 system. Byte 6, 8 (Aug.), 36–48.Google Scholar
- Apple Inc. 2020a. Extensions. https://docs.swift.org/swift- book/LanguageGuide/Extensions.html (retrieved 26 Feb. 2020) This website describes the Extensions feature in Swift, which allows the addition of new functionality to types for which the programmer does not have access to the source code, similar to categories in Objective-C. We refer to it to illustrate how important categories in Objective-C became to Apple’s language idioms and have continued in Swift, albeit under a new name.Google Scholar
- Mark Dalrymple. 2012. Objective-C Literals, Part 1. March 2012. https://www.bignerdranch.com/blog/objective- c- literalspart- 1/ (retrieved 12 March 2020) This blog post describes three new features available in Apple’s open source Clang compiler front end: more concise NSNumber, NSArray, and NSDictionary creation syntax via literals, and more concise NSArray and NSDictionary access syntax via subscripting.Google Scholar
- Microsoft. 2015. Extension Methods — C# Programming Guide (July). https://docs.microsoft.com/en- us/dotnet/csharp/ programming- guide/classes- and- structs/extension- methods (retrieved 2 Aug. 2019) This website describes Extension methods in C#, which enable the addition of methods to a class without subclassing, recompiling, or otherwise modifying the original type. We refer to this website to document that C# has a feature similar to categories in Objective-C.Google Scholar
Index Terms
- The origins of Objective-C at PPI/Stepstone and its evolution at NeXT
Recommendations
iPhone application development
OOPSLA '10: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companionApple's mobile handheld devices have been a huge success; beginning with the launching of the iPhone in 2007 and that has been maintained until present days with the launching of the iPad in 2010. There are now more than 85,000 apps available for the ...
Bringing Scheme programming to the iPhone—Experience
The iPhone SDK provides a powerful platform for the development of applications that make use of iPhone capabilities, such as sensors, GPS, Wi-Fi, or Bluetooth connectivity. We observe that so far the development of iPhone applications has mostly been ...
A Swift Introduction to Swift App Development (Abstract Only)
SIGCSE '15: Proceedings of the 46th ACM Technical Symposium on Computer Science EducationSwift is a new programming language recently introduced by Apple as a replacement for Objective-C. Considering that Objective-C ranks third on the Tiobe Index and is the progenitor of virtually all the 1.2 million apps in the App Store, Swift is likely ...
Comments