Programming has come a long way. I am still relatively young (first Computer: C64), hence I take many things in programming for granted that were obviously introduced at some point and facilitated ways of programming that are now commonplace.
What follows is a (by no means complete) list of features, where I would love to know in which language and when they were introduced:
If you can, try to back up your statement with some reference. If you feel I have missed an important programming language feature whose introduction should also be appreciated, please comment on this question such that it can be added to the list.
UPDATE: I suppose that a programming language cannot introduce anything that wouldn't be possible in assembler, I'm rather looking for languages that made a certain feature available to "mere mortals".
Lisp. 1958.
Alternatively,
introduction of functions - Alonzo Church's lambda calculus, 1930
compiled language - Grace Hopper, 1952
interpreted language - Lisp, 1958, maybe something before.
conditional & loop structures - Bletchley Park Bombe 1940s ( ran in a loop ). Jacquard, 1801
the array - as a contiguous chunk of memory with an index, Bletchley Park or Manchester Baby, 1940s
the dictionary (Hashtable) - ?
allowance of multi-threading - Jacquard, 1801; Multix 1965
functional programming (functions as data) - Godel, 1930s
object orientation
interface
sgenerics - generic methods ( Lisp again ) or parametric types ( modula??? )?
aspect-oriented programming - common lisp meta-object protocol, late 1980s
meta-programming - lisp macros, sometime in the 50s or 60s