Most programming languages are created without any theory

The argument is made in this quote that most programming languages are created without any theory, and end up looking for it later, and rarely find it.

Here is the quote from Robin Milner:

Is there any lesson from the research field that you don’t see applied?

Robin: Most programming languages have been desgined without first thinking about the theory on which the meaning would be based. So, very often a language gets designed and implemented, and then what it means, what is supposed to happen when every program is run, is not necessarily predicted. Of course it was in some cases wonderfuly predicted, for example, in ALGOL60; the ALGOL60 report of 1960 was so accurate that one could follow it and find out what was going to happen. This isn’t always the case. Even in the good languages, the formal basis is not there before the language arrives, so what people do is later to retrofit a theory of meaning to the language, and maybe that means that the design could not take advantage of theoretical understanding.

What you do

We no longer care what you say.
We care a great deal about what you do.
If you charge for hand raking but use a leaf blower when the client isn’t home
If you sneak into an exercise class because you were on the wait list and it isn’t fair cause you never get a bike
If you snicker behind the boss’s back
If you don’t pay attention in meetings
If you argue with a customer instead of delighting them
If you copy work and pass it off as your own
If you shade the truth a little
If you lobby to preserve the unsustainable status quo
If you network to get, not to give
If you do as little as you can get away with
…then we already know who you are.

(via Seth)

People in Pain

Most would agree that it is probably impossible to “reason with” people who are in pain since they don’t often act in a manner that you would expect (read “normal”). The trouble, though, is that often times you can’t see their pain, and that a lot of people today seem to be in it. It is no wonder why you might have noticed that so many people seem to “act strangely” these days.

Why MIT switched from Scheme to Python

Costanza asked Sussman why MIT had switched away from Scheme for their introductory programming course, 6.001. This was a gem. He said that the reason that happened was because engineering in 1980 was not what it was in the mid-90s or in 2000. In 1980, good programmers spent a lot of time thinking, and then produced spare code that they thought should work. Code ran close to the metal, even Scheme — it was understandable all the way down. Like a resistor, where you could read the bands and know the power rating and the tolerance and the resistance and V=IR and that’s all there was to know. 6.001 had been conceived to teach engineers how to take small parts that they understood entirely and use simple techniques to compose them into larger things that do what you want.
But programming now isn’t so much like that, said Sussman. Nowadays you muck around with incomprehensible or nonexistent man pages for software you don’t know who wrote. You have to do basic science on your libraries to see how they work, trying out different inputs and seeing how the code reacts. This is a fundamentally different job, and it needed a different course.
So the good thing about the new 6.001 was that it was robot-centered — you had to program a little robot to move around. And robots are not like resistors, behaving according to ideal functions. Wheels slip, the environment changes, etc — you have to build in robustness to the system, in a different way than the one SICP discusses.
And why Python, then? Well, said Sussman, it probably just had a library already implemented for the robotics interface, that was all.

(via wingolog)