Once upon a time, long ago and far away (1993 in Austin, Texas), one of my grad students (I believe it was Bob Schrag) came to me and said, “You’ve got to see this amazing new thing on the Internet! It’s way better than Gopher, and it’s called the World Wide Web!”
He introduced me to the Mosaic web browser. There were only a few web pages in the world at that time, but one of the most interesting ones was at the Vatican Library. I could browse through the Vatican's amazing collection of illuminated manuscripts, and Mosaic would present me with formatted pages including both textual descriptions and high-resolution images! (You probably can't imagine how astonishing that was at the time.)
I realized that this was an entirely new medium for creation and publication, and I wanted to be able to use it. I asked Bob to create a web page for our lab, making our research, especially our papers, available to anyone on the Web anywhere in the world. Then he should teach me how to create those web pages.
He did, and shortly after that, I was writing my own web pages, programming them directly in HTML, and putting the .html files into the special folder where the computer treated them as descriptions for web pages.
This is the power of programming. I create a simple text file, obeying the conventions of the programming language, and as a result, a computational system follows my instructions and turns them into a manifestation of what it understands that I want.
Often it gets it wrong. Or more precisely, my instructions mis-stated what I intended. So the system creates a manifestation (in this case, the text and graphics of a web page) from how it understood my instructions, but the result doesn’t match my intent. This leads to debugging, another powerful idea. Looking carefully at what I got, compared with what I want, I find the specific part of my instructions that I need to change to get closer to my intention. Finding the problem is sometimes easy, and sometimes hard. Likewise, fixing it once I’ve found it is sometimes easy, sometimes hard. But debugging a program, including a web page, can be very satisfying, like solving a Sudoku puzzle.
So, since 1993, I have maintained and extended my web site by personally programming each page, by hand, in HTML. Every few years, I decide to learn and incorporate a new programming technology for web pages (like “cascading style sheets” (CSS)) just for the fun of it.
Vast numbers of tools for creating web pages have been developed since 1993, making it easier for non-programmers to create graphically sophisticated web pages. These tools are complex systems that create very complex HTML programs that I can’t even understand without far more effort than I am willing to put into it. (Those HTML programs are not intended for human consumption anyway.)
By programming in HTML, I control the medium, to the best of my ability. Using a complex tool, it controls the medium, and I am subject to the constraints and aesthetic imposed by the developer of the tool. I prefer to retain my own power over the medium.
So, this is why my web site looks so old-fashioned, without the graphical sophistication possible with the modern tools that would take away my personal, hands-on, access to the medium.
Long before, sometime in the late 1980s, laser printers came out that were driven by a new language called PostScript. This, too, was a programming language that was not intended to be read or written by human beings, but to be a language for communicating instructions to a printer from a word processor or a drawing program. By following the instructions in the program, the computer inside the printer would create an image of a page, which it would then print on paper!
What grabbed my attention was that a PostScript (.ps) file is just a text file. I could create one by hand, send it to the printer, and the printer would print a page according to my instructions! I spent a couple of weeks learning PostScript and writing a program (by hand) that would print a filled-in version of my dental insurance company’s reimbursement form. (I figured the time saved in filling out that annoying form would compensate me for my efforts after about ten years. Unfortunately, the University of Texas changed their dental insurance company two years later!) But really, I did it for the pleasure of learning to program in PostScript.
This did end up having practical research value. Using my new-found expertise in PostScript programming, I was able to build a “virtual display” system for creating graphical output from my qualitative simulation system, QSIM. It would draw an image on a screen, or create a PostScript (.ps) file to save or send to a printer, or even create a PostScript file to include as a figure in a manuscript. (See Figure 2 in here.) My initial version was just one page of code, but my students extended it and made it much larger and more sophisticated.
You won't be surprised to learn that my car has a manual transmission.