A developer, though wise, should
never be ashamed of learning more,
and must unbend his mind.
A blast from the past
1972
1972 - Hardware
1972 - People
Applies today
Most programmers feel that there is such a thing as
a good programming.
Without humility, a programmer is foredoomed to
the classic pattern of Greek drama: success leading
to overconfidence (hubris) leading to blind
self-destruction
The best programmers are the most introspective. If
they do something wrong, they examine the
process that led to the error, then they change it.
Faced with a malfunctioning program a programmer
might say: “Those keypunch operators did it again”
1972 - Software
Which came first?
(defun quicksort (list)
(when list
(destructuring-bind (x . xs) list
(nconc (quicksort
(remove-if
(lambda (a) (> a x))
xs)
)
`(,x)
(quicksort
(remove-if
(lambda (a) (<= a x))
xs)
)
))))
void quicksort(int *A, int len) {
if (len < 2) return;
register int pivot = A[len / 2];
register int i, j;
for (i = 0, j = len - 1; ; i++, j--) {
while (A[i] < pivot) i++;
while (A[j] > pivot) j--;
if (i >= j) break;
int temp = A[i];
A[i] = A[j];
A[j] = temp;
}
quicksort(A, i);
quicksort(A + i, len - i);
}
Which came first?
(defun quicksort (list)
(when list
(destructuring-bind (x . xs) list
(nconc (quicksort
...
Lisp: 1958
Latest incarnation: December 2018 (Clojure)
TIOBE#31 (#29 is Scala)
void quicksort(int *A, int len) {
if (len < 2) return;
register int pivot = A[len / 2];
register int i, j;
...
C: 1972
Latest standard: June 2018
TIOBE#2 (#1 is Java)
fx f(x)
s(t)
s(t+1)
m
Spot the similarity
But what if
p yx
Prolog
- 1972/1973
- Alain Colmerauer/Marseille university
- Original Interpreter Written in Algol-W
- Originally written in PL360
Prolog
1. State what is true
2. Query!
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent,mia).
loves(marsellus,mia).
jealous(X,Y):-
loves(X,Z),loves(Y,Z).
?- jealous(marsellus,vincent).
True
?- jealous(marsellus,Y)
Y = vincent .
Demo Time
We’ve solved a murder/defined
natural arithmetic
A man, though wise, should never
be ashamed of learning more, and
must unbend his mind.
Sophocles, Antigone (441 BC)
Things learned
A bit of Prolog
Hardware becomes more powerful
Human psychology stays the same
So does intelligence
Language landscape moves very slowly
No strong correlation between hardware and
software sophistication
Higher abstraction doesn’t automatically attract
success
Language features are successful, through influence
Abstraction is not a function of time

A blast from the past

  • 1.
    A developer, thoughwise, should never be ashamed of learning more, and must unbend his mind.
  • 2.
    A blast fromthe past
  • 42.
  • 43.
  • 51.
  • 53.
    Applies today Most programmersfeel that there is such a thing as a good programming. Without humility, a programmer is foredoomed to the classic pattern of Greek drama: success leading to overconfidence (hubris) leading to blind self-destruction The best programmers are the most introspective. If they do something wrong, they examine the process that led to the error, then they change it. Faced with a malfunctioning program a programmer might say: “Those keypunch operators did it again”
  • 57.
  • 58.
    Which came first? (defunquicksort (list) (when list (destructuring-bind (x . xs) list (nconc (quicksort (remove-if (lambda (a) (> a x)) xs) ) `(,x) (quicksort (remove-if (lambda (a) (<= a x)) xs) ) )))) void quicksort(int *A, int len) { if (len < 2) return; register int pivot = A[len / 2]; register int i, j; for (i = 0, j = len - 1; ; i++, j--) { while (A[i] < pivot) i++; while (A[j] > pivot) j--; if (i >= j) break; int temp = A[i]; A[i] = A[j]; A[j] = temp; } quicksort(A, i); quicksort(A + i, len - i); }
  • 59.
    Which came first? (defunquicksort (list) (when list (destructuring-bind (x . xs) list (nconc (quicksort ... Lisp: 1958 Latest incarnation: December 2018 (Clojure) TIOBE#31 (#29 is Scala) void quicksort(int *A, int len) { if (len < 2) return; register int pivot = A[len / 2]; register int i, j; ... C: 1972 Latest standard: June 2018 TIOBE#2 (#1 is Java)
  • 60.
  • 61.
  • 62.
    Prolog - 1972/1973 - AlainColmerauer/Marseille university - Original Interpreter Written in Algol-W - Originally written in PL360
  • 64.
    Prolog 1. State whatis true 2. Query! woman(mia). woman(jody). woman(yolanda). loves(vincent,mia). loves(marsellus,mia). jealous(X,Y):- loves(X,Z),loves(Y,Z). ?- jealous(marsellus,vincent). True ?- jealous(marsellus,Y) Y = vincent .
  • 65.
  • 66.
    We’ve solved amurder/defined natural arithmetic
  • 67.
    A man, thoughwise, should never be ashamed of learning more, and must unbend his mind. Sophocles, Antigone (441 BC)
  • 68.
    Things learned A bitof Prolog Hardware becomes more powerful Human psychology stays the same So does intelligence Language landscape moves very slowly No strong correlation between hardware and software sophistication Higher abstraction doesn’t automatically attract success Language features are successful, through influence Abstraction is not a function of time