4 ms·
Ask HN: Which CS publication used term “object-oriented” for the first time?
I'm curious which computer science publication explicitly used the term "object-oriented" for the first time.
So far I didn't find an earlier one than Dan Ingalls' "The Smalltalk-76 Programming System" (https://dl.acm.org/doi/10.1145/512760.512762) published in January 1978, what surprised me.
Remarkably the term is also used in developmental psychology, especially for child development; I found publications about "object-oriented behaviour" from the sixties, e.g. http://www.jstor.org/stable/1126427 from 1966.
Does anyone have earlier CS literature references than 1978?
- dleeftink 3y agoSeven more, one from the illusive Management Information Systems Handbook (1968): "The consideration of object oriented grouping, i.e. product or customer oriented, will lead to a consolidated file in which practically any element is stored only once" (p. 24)[1]. One near hit in a report from RAND Corp (1969), mentioning the "block-structure/procedure orientation of SIMULA" (p. 13)[2]. A really old one, comparing programming language characteristics (1961, p. 337)[3]: "The group also decided that the following language classification methods are relevant: - Object, descriptive, command, and mixed languages; - Languages with stratified and unstratified control; - Sequential and simultaneous communication languages; - Problem oriented (behavioral) and machine oriented (structural) languages" Ref [3] also contains a nice comparison table. Another compares simulation languages of the time, and from eyeing the tables it seems 'object simulation' may have been the ancestral term (1966): "The basic use of a record is to describe an object in the simulated world. The data in the fields of a record describe the 'properties' of the object. The record and its fields are usually given names or identifications; it is conventional to use names which are mnemonics for the object being represented." (p. 729)[4] Ref [4]'s language comparison tables are also useful here (p. 730-733). The next talks about objects in a now familiar way (1967): "We do this by defining the objects that 'live' in the system and assigning attributes to them." (p. 32)[5] The 'object simulation' ancestry is further supported by the following quote from (1963): "Dynamic representation of an object system. A simulation model of an object system is itself a system whose behavior may be interpreted according to a rule which renders a description appropriate to the behavior of the object system." (p. 2)[6] More evidence for this from (1964): "The system to be simulated may be regarded as a set of actions which manipulate a set of objects." (p. 328)[7] [1]: The Archive.org entry says 1969 but the book preface dates 1968. *Hartman, W., Matthes, H., & Proeme, A. (1968). Management Information Systems Handbook: Analysis, Requirements Determination, Design and Development, Implementation and Evaluation (MIS: ARDI). McGraw Hill Text.* https://archive.org/details/managementinform00hart/page/n565/mode/2up?view=theater&wrapper=false&q=%22object+oriented%22 https://archive.org/details/managementinform00hart/page/n565... [2]: *Kiviat, P. J., & Rand Corporation. (1969). Digital computer simulation: Computer programming languages (p. 0109). Santa Monica, CA: Rand Corporation.* https://apps.dtic.mil/sti/tr/pdf/AD0684124.pdf https://apps.dtic.mil/sti/tr/pdf/AD0684124.pdf [3]: *Gorn, S. (1961). Some basic terminology connected with mechanical languages and their processors: a tentative base terminology presented to asa x3. 4 as a proposal for subsequent inclusion in a glossary. Communications of the ACM, 4(8), 336-339.* https://dl.acm.org/doi/pdf/10.1145/366678.366682 https://dl.acm.org/doi/pdf/10.1145/366678.366682 [4]: *Teichroew, D., & Lubin, J. F. (1966). Computer simulation—discussion of the technique and comparison of languages. Communications of the ACM, 9(10), 723-741.* https://dl.acm.org/doi/pdf/10.1145/365844.365851 https://dl.acm.org/doi/pdf/10.1145/365844.365851 [5] *Kiviat, P. J. (1967). Digital computer simulation: Modeling concepts. Santa Monica, Califorinia: Rand Corporation.* https://apps.dtic.mil/sti/pdfs/AD0658429.pdf https://apps.dtic.mil/sti/pdfs/AD0658429.pdf [6]: *Lackner, M. R. (1963). The dependency of a simulation language on a theory of systems. System Development Corporation.* https://apps.dtic.mil/sti/pdfs/AD0296590.pdf https://apps.dtic.mil/sti/pdfs/AD0296590.pdf [7]: *Williams, J. W. J. (1964). ESP The Elliott Simulator Package. Comput. J., 6(4), 328-331.* https://academic.oup.com/comjnl/article/6/4/328/375742 https://academic.oup.com/comjnl/article/6/4/328/375742
- Rochus 3y agoThanks again for your effort. I had a look at all references, but still consider Robert J. Bobrow's 1971 text the first use of the term "object-oriented" in a CS publication. Ref [1] looks like yet an earlier hit, but the book is about systems engineering and management, not computer science; though I did only have access to a few pages of the book, so it could be a borderline case; the PREFACE says, that "Volume 6 comprises a collection of authoritative papers on techniques and standards specific to systems engineering, or on [...] organization therory, psychology, operations research and mathematics". Your hit apparently is in Volume 6. Ref [2] is not a hit from my point of view; it uses the terms "object" and "class", which was the official terminology of Simula 67 at that time. The use of "block-structure/procedure orientation" looks like an early attemtpt for a term to differentiate Simula from the other contenders, but it's definitely not related with the term "object-oriented". Refs [3] to [7] document the early use of the term "object" in computer sciences, but not "object-oriented". So I think we can conclude the search in the sixties, and in any case you deserve credit for finding the earliest use of the term in 1971. I will next focus on the earliest use of the term for a programming language, which so far seems to be - as already mentioned - the 1976 MIT CSG Memo 137 by Jones and Liskov; I will check other publications by Liskov from that time.
- Rochus 3y ago***** FINAL CONCLUSION ***** First of all, I would like to thank everyone here and on Reddit who researched and provided references for their efforts and contributions. Here is the summary of the findings as they stand today: 1) The term "object-oriented" was known and used throughout the sixties and seventies in various domains, such as developmental psychology, library and information science, and systems engineering. 2) The term was also used in computer science, at least since 1971, e.g. applied to database systems, operating systems, structured exception handling and structured analysis; see e.g. https://archive.org/details/databasesystems0000cour https://archive.org/details/databasesystems0000cour. 3) The term "object-oriented" was applied to a programming language for the first time in the MIT CSG Memo 137 (April 1976) by Anita K. Jones and Barbara H. Liskov; a similar text was published in the IEEE Transactions on Software Engineering later in the year (see see https://ieeexplore.ieee.org/document/1702384 https://ieeexplore.ieee.org/document/1702384). This is an amazing result and sheds new light on the history of object-oriented programming terminology. If you want to have a look at the references and discussions yourself, see the comments here and on Reddit: https://old.reddit.com/r/ProgrammingLanguages/comments/156ng13/which_cs_publication_used_term_objectoriented_for https://old.reddit.com/r/ProgrammingLanguages/comments/156ng....
- dleeftink 3y agoNot necessarily CS object-oriented, but Aristotle's 'mathematical objects' discussed in Metaphysics demonstrates that the idea has been around for some time. As for CS, a discussion recorded by Randell & Russell in 1961 with Edsger Dijkstra[1] mentions the 'Object Program'. [1]: http://homepages.cs.ncl.ac.uk/brian.randell/Papers-Articles/34.pdf http://homepages.cs.ncl.ac.uk/brian.randell/Papers-Articles/....
- Rochus 3y agoThanks. But I really mean "object-oriented", which has a (quite) specific meaning in CS; there are a lot of uses of the term "object" even in CS, with different meanings. The referenced report [1] from 1961, as far as I understand, uses the term "object program" for the output of the Algol compiler, something we call "object file" today; this use of the term seems to have been common in the sixties; e.g. in the book "ALGOL 60 IMPLEMENTATION" (https://dl.acm.org/doi/10.5555/1095699 https://dl.acm.org/doi/10.5555/1095699) from 1964 we can read on page 8 "An ALGOL translator is a program which takes as its input the coded representation of an ALGOL source program and produces as its output an object program (which may or may not be in machine code)". Only Simula 67, which is an extension of Algol 60, was object-oriented, but its authors didn't use the term back then.
- dleeftink 3y agoI'll keep digging, but it seems to have taken off sometime early 60's and further popularised by Kay. Although with 'structured programming' and 'object programs' already in use at the time (different concepts I know, but preceding OOP), the first journal mention may postdate the phrase by some years during this transition.
- dleeftink 3y agoBoth Dahl et al.'s Simula as you mentioned (1968)[1] and J.H. Morris (1968; 9-10)[2] allude to it without explicitly mentioning OO by name, following earlier mentions of atomics by Fox et al. (1960)[3]. If you need something more explicit, I'll try to do some more digging tomorrow in architecture diagrams and lecture notes. 1: https://repository.lib.ncsu.edu/bitstream/handle/1840.4/5681/1968_0007.pdf https://repository.lib.ncsu.edu/bitstream/handle/1840.4/5681... 2: https://dspace.mit.edu/bitstream/handle/1721.1/149376/MIT-LCS-TR-057.pdf https://dspace.mit.edu/bitstream/handle/1721.1/149376/MIT-LC... 3: http://history.siam.org/sup/Fox_1960_LISP.pdf http://history.siam.org/sup/Fox_1960_LISP.pdf
- dleeftink 3y agoTracing the etymology of the first journal-published use of object-oriented in the context of CS and adjacent fields: [1]: Page 67 in *Edwards, T. (1970). Library & Information Science Abstracts* mentions: "There are 2 retrieval systems: the first is ALBUM, an object-oriented retrieval system for the print-out of indices, names and subjects and their thematic relations." https://archive.org/details/sim_library-information-science-abstracts_march-april-1970_2/mode/2up?view=theater&wrapper=false https://archive.org/details/sim_library-information-science-... [2]: Page 140 in *Rustin, R. (1971). Computer Science Symposium Courant 6: Data base systems* mentions: "I feel that there is no inherent antagonism between the relational point of view and the object-oriented network viewpoint in database management." https://archive.org/details/databasesystems0000cour/mode/2up?view=theater&wrapper=false https://archive.org/details/databasesystems0000cour/mode/2up... [3]: Series 2 (1963-2001) and Series 3 (1972-2001) of the *Jon L. White collection on Common Lisp at the Computer History museum* contain records of early Lisp developments and object-oriented programming. https://archive.computerhistory.org/resources/access/text/finding-aids/102733968-White/102733968-White.pdf https://archive.computerhistory.org/resources/access/text/fi... [4]: Series 1 (1973-2010) of the *Adele Goldberg papers at the Computer History Museum* contains records related to early SmallTalk development and object-oriented programming. https://archive.computerhistory.org/resources/access/text/finding-aids/102733960-Goldberg/102733960-Goldberg.pdf https://archive.computerhistory.org/resources/access/text/fi... [5]: Page 4 of *Redell, D. (1974). Naming and Protection in Extended Operating Systems* mentions: "... we can regard the function of the operating system as being the transformation of the basic hardware resources of the computer into a universe of abstract resources or objects, and a set of operations for manipulating those objects. This point of view is often referred to as the object-oriented approach." https://apps.dtic.mil/sti/tr/pdf/ADA001721.pdf https://apps.dtic.mil/sti/tr/pdf/ADA001721.pdf [6]: A project report by *Eisner, T. (1975). SmallTalk-AT: An Object-Oriented Program development* contains ample mentions of OO. https://archive.computerhistory.org/resources/access/text/2023/03/102739344-05-02-acc.pdf https://archive.computerhistory.org/resources/access/text/20... [7]: Table 1 of *Goodenough, J. B. (1975). Structured Exception Handling* contains two mentions of OO. https://dl.acm.org/doi/pdf/10.1145/512976.512997 https://dl.acm.org/doi/pdf/10.1145/512976.512997 [8]: Lastly, page 2 of *Capretz, L. F. (2003). A Brief History of the Object-Oriented Approach* mentions how the object-oriented paradigm amalgamated from some of the earlier references we discussed: "Despite the early innovation of Simula, the term object-oriented became prominent from Smalltalk." https://ir.lib.uwo.ca/cgi/viewcontent.cgi?article=1047&context=electricalpub https://ir.lib.uwo.ca/cgi/viewcontent.cgi?article=1047&conte... I would say the term floated around for a while before some of the explicit mentions above, especially if we include fields as philosophy, psychology and linguistics. I will report back if I come across earlier mentions.