Evolution of Computer Programming Terminology and Concepts

If it ain’t broke, don’t fix it applies. Object-oriented programming has been implemented since the 1960s, so that’s 50 years of efficient practice. But could it be even more advanced?

http://en.wikipedia.org/wiki/Sketchpad

Ivan Sutherland’s Sketchpad really got me thinking. I even read some of the pdf of his thesis on the Wikipedia page. It’s amazing how he established of the the basics of programming right there.

He based drawing lines on stretching a rubberband pinned at two points.

He created memory structures to store multiple values.

He demonstrated inheritance, where the values of a structure can be copied over into a new structure, then changed.

He demonstrated abstraction, quite possibly for the first time, where the user didn’t have to type in commands. He referred to the act as writing love letters to the computer up until that point.

I’m also intrigued that he used “hen and chicken” as his terms for what are currently known as class and members. What I deduce from this is that at the time, these “programmers” were from agricultural backgrounds. Pretty much, the abstract thinking that is required in programming and problem solving is always based on the designer’s personal experiences. I’m also surprised that Sutherland’s thesis was for philosophy, especially because this was such a technical project.

Most modern widgets are just virtual representations of the analog devices used by these ancient programs to run. The user had to push a physical button to store data, then turn a dial to execute a command, then interact with the output, then hit another button, etc. Nowadays, a lot happens almost seamlessly because so much work has gone into giving users a good computer/human interface experience. The average user doesn’t need to know that pressing a button widget actually triggers hundreds of commands just so you can see the words “Hello, World!”

Sutherland was already predicting digital photo manipulation, mentioning fixing a person’s smile in a photograph. With Photoshop, that can be done so easily. Strange thing is, imagine the day Photoshop becomes our era’s Sketchpad. It’s eerie, isn’t it?

The program uses the metaphor of drawing on paper. The program was able to simulate 2 miles worth of paper. But it could also zoom in and out, which gave it limitless planes. It could even do 3D wireframe drawings. It’s amazing that 3D modeling programs still have 4-panel views of 3D models.

So now in 2012, after the initial abstraction work is already established, why is it that programmers still refer to outdated concepts like “rubberband” or “buttons”? Granted, we still interact with such physical objects when we’re away from a computer, but for the most part, we’ll be interacting with some glowing computer screen most of the time. Shouldn’t programmers go back to the real original terms? Rubberbands should be called “lines”. Buttons should be called “rectangles”. Because it has evolved to the point where programmers can literally treat their development environment as drawing surfaces. That level of abstraction is already established. It’s kinda like returning the meaning back to itself. When you play with a rubberband, you form it into a shape like a triangle or ellipse. You didn’t intend to call it a rubberband. You were intending on making a triangle or ellipse. So just call it a triangle now. Of course, that doesn’t mean we should forget how it came to be. There will always be a need for computer science history. Lest the future generations want to repeat the Y2K bug because they won’t have the foresight.

Maybe, one day, programming computers would be like virtually assembling 3d models representing system memory and connecting cables and stuff (have you seen the convoluted Unreal SDK and Blender’s compositor?). Kinda like Johnny Mnemonic. I don’t doubt computer hardware will advance to that point. But at the same time, maybe even the computer itself will evolve to a point it isn’t represented by a screen, keyboard, or mouse anymore. Again, going back to basics, and seeing how touchscreen tablets are obviously the future, the computer will just be represented by a rectangle. Iconography at it’s most simple and efficient.

A window into examining our own existence because the technology we build cannot prevent us from death, so we make it easier for ourselves while we live.

Tags: , , , , , , , , , , , , , , ,

Comments are closed.