Notes for Friedrich Kittler “Evolution of Programming Languages”
Broad historical statement regarding digitization than any analog signal can be so treated.
During Roman and middle ages numbers and musical notation not written like phonetic alphabet.
Back to Greeks in computer age. The question arises how come?
Three part scheme of CPU, buses, and RAM. Repeats in CPU with registers, buses, and control and replicates at macro size of bodies interacting with computer.
Intel sticks with 8 registers for downward compatibility, 16 with some tricks, although they have 128. Billions spent on corresponding hardware and software. All programming languages translated into Intel assembler, which directly addresses these registers.
Downward compatibility problem of our technical times.
Good old computer keyboard. Can still control computer by striking keys on Linux/Unix, which is more flexible in most respects than using mouse and GUI.
Since lyric poetry of Sappho there has been desire to do what the words say: addresses Aphrodite, who appears and gives consolation, promises to execute special magic to bring back her girlfriend.
Switch from text editor to keyboard command level, the kill command does something. Does nothing on a typewriter keyboard.
Programming languages different from mother tongues and foreign languages we speak. In difference to assembler all on a higher level simpler ones make possible to write meaningful statements under very formal conditions. More general and higher developed make it possible to represent structures of everyday world or structures of higher mathematical order.
Standardization controlled by IEEE in US and ISO rest of world introduces innovations in programming languages very slowly.
Plain C is my favorite language. Make dramatic distinction between colon and double colon (semicolon). Not accustomed to drawing sharp distinction in natural language. Often made this mistake writing C. Can have disastrous effects like the program does not stop. Higher responsibility when writing programs.
Programming languages distinguish data variables, control commands, functions/procedures.
Decided not to give example for sake of time.
Two structures of programming languages that are difficult to express in mother tongue: iteration and recursion. Recursive functions only 180 years old in mathematics, e.g. Towers of Hanoi.
Example of pushing and popping stack is called recursion. May be recognized in armies or storehouses, but not everyday life, and has not mathematical strictness.
Five small examples. C is generalized assembler that takes years to learn. Pascal honorable language done at technical high school, didactic and more elegant than Basic. C++ a Danish product represents data, functions, variables and also classes of things, for example Leibniz and Boole addition, first and last names. Like real world, classes like parents can generate subclasses recursively. Children inherit special properties of parents or not. Lisp translates Church's work into functioning but quite difficult programming language. Java developed by James Gossling of Sun Microsystems, which now belongs to Oracle. A student wrote masters thesis for Kittler describing Java as containing beans and things to make good coffee versus percolator coffee. Now Starbucks has destroyed all his happiness. Plain C as defined by Kernighan and Ritchie.
My sad impression these input output devices biased to the user and not in direction of the computer. The computer does not do much but receive commands from fingers. No wide power to express itself, make its own experiences. Will come back to the monitor.
Important to know compression can be done in reversible and irreversible manner, losing some precision. CD and mpeg examples. A state financed German organization was responsible for mpeg, which plays tricks to our physiological hearing, not our listening, to reduce the mass of data making up musical files.
Etymology of algorithm: Arabic origin badly rendered in medieval Latin. Persian Mohammad Al Khwarizmi called to Baghdad to import Indian numbers. Europeans discovered and translated treatise centuries later, begins Incipit Algorismus. In 1684 Leibniz published introduction to differential calculus in pure mathematical formula free of all Newtonian nonsense. Tried to explain materiality of calculus only by manipulating symbols. This must be decisive point where algorithm entered European vocabulary.
From algorithms no big step to operating systems. Won't do archeology, just start with Unix which is oldest operating system to survive. Developed by K and R because they wanted to play a computer game together while working at DEC. Recursive, C-based because all operations treated as C variables and functions, reflecting micro structure I presented. Capacity to accept many users and tasks at the same time. Bill Gates wanted to develop much smaller OS on same basis with almost the same command names for the personal computer, which did not need or have multiuser or multitasking capacity. Hackers who knew DOS better than Gates could cheat DOS and have traffic programs running.
Gates examined GUI of Macintosh by Steve Wozniak and Steve Jobs; from his envy he brought out Windows. During ensuing lawsuit, Xerox PARC told judges they had developed the GUI, ending it.
Under commercial conditions there are closed and open source operating systems. Stallman copyleft freedom not free beer. Remember Bill Gates internal memo.
Another problem of operating systems in difference to well defined programs contradict Turing's sense of algorithms is they do not stop. They are like other elements of infrastructures, ready to be addressed or not. Turing was otherworldly in their behavior.
The monitor is not just a GUI for the OS; it can be animated by many other things, war games, television. First pixel on a black screen appearing for me as a beginning programmer was a big thing for me, after some time it could show four colors, now color possibilities means red and green and blue can be defined in any nuance. For higher art and commercial advertising the standardized binary solution differentiating RGB still not regarded as efficient, so they switch from 2 power 8 to 2 power 10 differentiations for each, and it makes photorealism possible on the screen.
From Alan Watts book Principles of Computer Graphics, the idea that otherworldly color can be produced by just three elements is a mistake, idiotization of the word. There are certain shades of brown that cannot be done by CRT or LED monitors. We would need nine color components instead of only three to see all of them.
For me it was great pleasure to write program of wave tracer and radio city program and try to explain the programming aspects for these two opposite possibilities render the wonder done by the sun. Wave tracing produces brilliant local reflections, and it is fast. Imitates one sun ray wondering recursively through virtual three dimensional world represented by three dimensional vector algebra. (video ends).