Tomas Petricek, Charles University
tomas@tomasp.net
https://tomasp.net
@tomaspetricek
Implemented new code replacing the "Power Peg", deployed the change and enabled a flag to turn it on.
Deployment failed, running old untested code. Rollback only made it worse!
What should have been done to prevent this?
Planning the computation and wiring cables
No idea of a programming language!
(Nofre, Priestley, 2014)
Meeting of hacker, mathematical and managerial culture!
Birth of a single unified
way of thinking?
(Dijkstra, 1968)
Engineering
Code difficult to understand
Mathematical
Breaks compositional reasoning
Chief programmer teams methodology
Adapts the idea for management purposes
Organizing code vs. Organizing people
American "management philosophy aiming at making companies as independent as possible of the competence of their employees"
Anti-intellectualism characterized by "How to program if you cannot."
Good code as part of engineering dignity!
Adopted when big 1940s computers became useful
Pass your stack of cards to the operator, wait hours/days for the result...
Inefficient, but the
norm in the 1950s
Built for testing, loaned to MIT RLE in 1958
Used interactively through terminal
Available in time slots 24 hours per day
Innovative system
Graphical interface
Object-oriented
Humanistic vision
Programming for kids
Personal dynamic medium
Self-modifiable
Microprocessors make it possible to build computers cheap enough for everyone
They do not do much!
"Programming in the early 1950s
was a black art, a private arcane
matter involving a programmer, a
problem, a computer, and perhaps a small library of subroutines and a primitive assembly program."
John Backus (1976)
UT3, FLIT, DDT
Search memory, modify program in numeric, later symbolic, codes
"Far from completely described even in internal memoranda"
"With some care, it has been possible (..)
to find a bug while at a breakpoint in running a test case, call the editor to make a correction, run the program on a simpler test case to verify the correctness (...) resume execution of the original test case.."
"My worry is that the facility of quick response leads to sloppy working habits"
"Program testing can be used very
effectively to show the presence of
bugs but never to show their absence."
Similar to 1960s
Learned through practice
Hacker culture only
No inter-cultural artifact?
Cultures of Programming
Tomas Petricek, Charles University
tomas@tomasp.net
https://tomasp.net
@tomaspetricek