1. 14

  2. 3

    I’d be interested in:

    • coroutines
    • pipes (shell)
    • interfaces
    • scoped init and destroy (C++, Python with, shell redirects have this flavor)
    1. 3

      Some corrections:

      • AbDTs are from CLU, not simula 67.
      • While simula 67 introduced objects, certain qualities of OOP first appeared with Smalltalk-72.
      • PL/I had overloading before Algol 68.

      And a few I’m less sure of:

      • References first appeared in CPL, not Algol 68.
      • PL/I had user defined datatypes before Algol 68.
      1. 2

        COMTRAN (1960, see e.g. page 103) pretty much had user-defined datatypes which were adopted into COBOL and then PL/I picked up things from there. There’s probably still a predecessor to that, though!

        FLOW-MATIC maybe sorta did but the DDL is pretty obtuse (but the FLOW-MATIC manual is really nice).

        1. 1

          While simula 67 introduced objects, certain qualities of OOP first appeared with Smalltalk-72

          Which qualities?

          1. 1

            Treating primitives as objects is the big one. In Simula, the number 26 is a primitive, not an object.

            1. 3

              I contend that “everything is an object” is not a “quality” of OOP. Are Java, C# or C++ limited in terms of object-oriented programming by not doing so?

              1. 2

                You’re right and I’m wrong.

                1. 2

                  They certainly are, since the distinction between an “object” and a “primitive” is an artificial one, made for the compiler implementer’s sake rather than the user’s.

                  1. 0


              2. 1

                Deleted (replied to the incorrect comment)

              3. 2

                Recursion should be on this list. Lisp is considered the first language to have supported it, according to McCarthy’s History of Lisp: http://www-formal.stanford.edu/jmc/history/lisp/lisp.html

                1. 1

                  I think that’s true. Recursion was a contentious subject in the ALGOL conference, and I think it was McCarthy and some of the European committee members who insisted on it, whereas Backus thought it superfluous.

                2. 2

                  Some links don’t work: