Wednesday, September 4, 2024

von Neumann, Hopper

TL:DR -- von Neumann influenceed us all over a long period of time. Hopper was there, in the beginning, contributing to what we have now. Times have changed. Lessons learned need to be re-evaluated. Options, in the future, will have greater potenttial to be wise or not. Our choice. 

----

Last year, I started to work with an associate at Sperry Univac on looking at the history of computing, from the perspective of the people involved. Of late, I have been working on a project with respect to the future of computing which took time away from that effort. 

Our notes are at the TGS site: https://tgsoc.org/papers/. Larry Walker was the Director of Sperry's Knowledge Systems Center where I worked prior to going to Boeing Computer Services, in Wichita KS. With the advent of GenAI in 2022, we both agreed that this untimely event was like referenced by Alan Kay after his intitial review: a train wreck waiting to happen. 

Larry was involved with the development of the early operating systems (Control Data, Sperry) and played a leadership role through several decades. He has written of his work at Sperry's KSC and later. 

Well, lots of topics can be discussed. This blog has many posts on the subject: machine learning; science of information; mathematics. For now, we'll be posting reading material. 

Today, we see more evidence of mature presentations coming to fore. ACM's Communications has had several articles, recently. Today, we look at the Myth of the Coder. The authors start during the time of von Neumann who was a prominent mathematican and who was influential in several fields. In computing, he left us with the model still being used. 

His thought was that there were four stages (levels) involved with computing. 1st - the mathematician was involved with the problem and solution being written in a format that emphasized the formality of the situation. In other words, the algorithm then was a real thing to behold. Heuristics and other formats were for the less formal presentation. 2nd - this level took the mathematical view and converted it into a flowchart. We all need to witness that and how it worked. 3rd - this is where the actual coding was done using the language of the computer. We'll skip over details until a later date, but every manufacture had their own notions ited to the underlying hardware (circuitry). Finally, 4th - worried about the specifics of computing (binary representation) and rescource allocations (memory, et al). 

Stopping for a moment, those who deal with C or C++ (of course, there are others at this level) is familiar with those types of choices. Coming forward to the realm of Python, lots of this type of considerations is not usually on the plate. In between, we find other approaches. And, today, a whole new realm exists at the HTML/CSS level. 

Reminder? We will emphasize domains which is where knowledge is accumulated and utilized. von Neumann was dealing a lot with Physics which has a close tie with numeric mathematics which is in vogue (way to much, as John will explain). Mathematics has many other limbs and roots, and we will look at these from one perspective to note for the future: category theory. 

----

Wait, the article steps forward. By the time John got his start, FORTRAN was the focus in the type of engineering computing that he did. But, COBOL was prime in business. It wasn't long, though, that various types of offshoots appeared. Lisp, for example, which we will use as the paragon modeling. There were methods to parametrically specify requirements. Some approaches were tabular which could handle fairly sophisticated situations. 

Think of the modern spreadsheet whose presence is everywhere, it seems. 

Grace Hoppe and COBOL saw 2 levels - analytst, programmer. Those lower steps which were specific to the machine (say, IBM or Sperry or ...) were handled by the compiler and its after proceesses (a huge one was the linkedit step that created the executable. 

Now, with Python or JavaScript, that happens almost automatically. But, reminder, Lisp was doing that type of interpretative approach way back. 

There are other varieties of roles over the years. One key fact is that this article does not consider the domain requirements which will be more importantly handled now with the fiasco of GenAI. 

Considering the historical distinction
between coder and programmer.

Remarks: Modified: 09/04/2024

09/04/2024 --  




No comments:

Post a Comment