From the real time control of hardware, by means of code, with origins in algebraical, logical, and to some extent musical notations, resulted a bewildering variety of languages, but with many design concepts in common.
One of the biggest innovations came with structured programming, which forced coders to untangle their spaghetti-balls of GOTOs and do something more cleanly organized around a backbone or main call sequence -- a more team-centric approach, more debuggable.
Then came the Object Oriented Paradigm, wherein code and relevant data formed islands, in networks and confederations, all passing messages to one another.
The procedural paradigm was absorbed (the objects needed methods after all), and this whole new data structure, called a Class Hierarchy, started guiding collaboration at another level.
Of course the second you say Class Hierarchy, ears prick, sensitive to possible cultural metaphors. What will OO programmers think of their fellow humans, if they're so class conscious by trade.
But in OO, the meaning of class is a different one, closer to type, or species. These too come in hierarchies, but not with humans at the top so much as in a promising part of the fan. At the roots are more primitive organisms, complex in their own way, but very distant from human.
In OO, that's more the picture: the "higher" you go, the more "toward the root" you go, and the classes become less and less specific, more and more in need of descendents to get any real work done. The tip of the class hierarchy is buried somewhere in prehistory (to extend the metaphor fully).
SmallTalk really put the OO model out there, where people could work with it, study it. Other languages saw the advantages and changed. C morphed into C++, its struct syntax begetting a more polymorphous class syntax. My own language, Xbase (dbase II, III, IV, Clipper, Fox...), morphed into VFP (Visual FoxPro), under Microsoft management (which made sure Access wouldn't feel too threatened). Coders comfortable with C wanted to keep a lot of that syntax (unlike in the LISP or APL traditions), which is what Java and C# bring about.
.NET is in part a strategy to bring the huge army of Visual Basic programmers into a fully equipped Visual Studio, where other tools work harmoniously -- including Python (the one that works on the Nokia 60 series cell phones).
At our first meeting, yesterday at Powell's, when talk turned to sports, someone (not Derek) remarked about some vital college football quarterback getting mono, a non-fatal disease that leaves one bedridden or at least not able to play football. In a marketing sense, this dogged a new open source project: Mono. Except Mono means Monkey in its native namespace, and the monkey theme was already well-developed in Ximian, so the whole animal and jungle motif was making plenty of sense. So what if the connotations were more unfortunate in the English-speaking realm? Sometimes that couldn't be helped. Anyway, we pronounce Mono differently, with the "o" like in "owe." We don't say "mah-no" -- which sounds a lot like the word for "hand." Mono is an implementation of .NET for Linux.
So that pretty much brings the language picture up to date from the point of view of an OSCON attender. There's a lot more that could and should be said in an academic vein, e.g. about Haskell and lambda calculus. But the point here is more to trace "math notation" from its paper and pencil beginnings, into the device control and infrastructure support matrix. That's where it rejoins mathematical modeling, in the sense of needing to control pressures, sense rates of change, confirm safety thresholds and so on. To launch, or not to launch? The code helps you decide intelligently, but human judgment remains at the switch.