alankay1
Not understanding Hypercard was one of Apple's largest mistakes in the world of end-users. It was a real breakthrough in something that end-users could really handle and be usefully programmable by them. Besides not understanding its significance on the Mac, we (old Parc hands) pleaded until we were blue in the face to make HC the basis of a really good web browser (it was a great model of a symmetric author-consumer media tool). Missing the latter was a tragedy.
In the light of the first comment, we could then contemplate an end-user system that combined what was great about Hypercard, Smalltalk, and some other experience from the 80s (e.g. the use-cases from Ashton-Tate "Framework", etc.).
So it is just as true as I intended. We live in a world of unsupported opinion. I'm 77 and from a world in which one was supposed to have considerable support for an opinion before voicing it. I realize that this is out of step these days, and especially with web fora.
Smalltalk started working in 1972, the Alto in 1973, and Smalltalk on it a month or so after the Alto came alive. The GUI came more from other parts of ARPA than NLS, but there were a few NLS elements. Cheers.
The problem here is partly that no one is quite sure "which" TX-2 has to be emulated, and, worse, where to find the specs. The machine was a research computer and constantly tinkered with, including changing instructions and formats. Also, Sketchpad was written in a macro-assembler (Coral) which was idiosyncratic to say the least.
But I would advise contacting Brian to chat about this...
i.e. "math wins"! ... when coupled into the design of the entire system.
And ... we would have loved to have had more microcode!
Note that you could do a little of this in Linda, and quite a bit more in a "2nd order Linda".
I've also explained the idea of "processes as 'ambassadors'" in various talks (including a recent one to the "Starship Congress").
A very important first step in this is to put a lot of work into "learning to see the present" and then where it came from (this is a lot of work, and it's not what human minds generally want to do). This will free up most thinking, will open up many other parts of the useful past, and especially about much better futures.
A boundary for chemistry is the physics standard model. Within physics the model is pretty accurate but unsatisfying as far as knowledge. They would like to have a better boundary, and get the standard model (and the key constants) from it. But it makes a good boundary for chemistry to make excellent chemical models.
Similarly (oversimplifying here) chemistry makes a good boundary of definitions for molecular biology.
Note that in this scheme of thinking, the "knowledge and meanings" exist inside the boundary, but don't include the boundary.
One of the issues addressed in this approach is how to make progress in "knowing" without infinite regresses. Philosophically, it is a kind of pragmatism.
As I mentioned elsewhere, science is a negotiation between two different kinds of things not a set of truths. It has many things in common with mapping (and making good maps is a branch of science, and one of the real starts of real science).
2. We are predisposed to believe things. Bacon's notion of why we needed to invent a "new science" is to create a set of processes and heuristics that would help us deal with and get around to some extent "what's wrong with our brains".
As a young scientist, I got the warning that is given to most young scientists "Beware, you always find what you are looking for!"
Some of the interesting examples of good science turning into belief revolve around Newton and both Maxwell's Equations and the orbit of Mercury (neither are "Newtonian"). And if you look at the history you'll see that Newton was a lot less Newtonian than many of his followers.
And yes, we also seem to have some things that are easier to imagine than others -- gods, demons, witches, etc seem easy, but future floods etc seem hard.
3. Sure. E.g. if you think things have to be circles, then this will be part of your implicit context for thinking about orbits. Geocentric used circular orbits and then epicycles to correct them and save the theory (and some great metaphors there for lots of human thinking). But it's important to realize that Copernicus also used circular orbits, and they also used epicycles to save that theory. Kepler worked with Brahe and admired him, so decided to trust his measurements. This led to a different model. The planets themselves didn't care about any of the models.
The definitions are still not -true- and the neighborhood is still not the phenomena. It's just better. You only get Newton from Kepler, not Maxwell or the orbit of Mercury and then Einstein for both.
This is an old idea (e.g. Euclid). The "modern" part of it is that the definitions are not assumed to be true outside the neighborhood. This is simple and powerful because the results are larger worlds that can be compared to others and to phenomena and experiment (and without setting up dogmas and religions).
Because of the way human minds work, there will be tendencies to think the definitions are "actually true" (and so the logic inside the boundaries) if they and the conclusions are appealing. But the form of this knowledge helps keep us saner if we are diligent about drawing the maps and boundaries correctly.
Much of science has this character, and the model helps to understand what it means to "know" something scientifically. Science is a negotiation between "what's out there?" and what we can represent inside our heads via phenomena on the one hand and the "boundaries and neighborhoods" on the other. Einstein's nice line about "math vs. reality" hits it perfectly ("As far as the laws of mathematics refer to reality, they are not certain, and as far as they are certain, they do not refer to reality.").
Newton's Principia was a huge step along these (and many other lines). He completely separates out the math part in the first large parts of the work. And only then does he start looking to see how the math models map onto observed phenomena.
To say it again, Science is partly about being very careful about how the definitions map to "out there".
In terms of context, if you are aware that you are in contexts -- the first step! -- and aware and careful about the ones you are using -- the next steps! -- there is a chance that "reasonable thinking" might happen.
I've never been able to pull this off, but McLuhan had a real point. Socrates had the idea (via Plato) that there "was truth" and careful thinking would get everyone to the same place. (Much of science has this assumption (if you throw in a lot of experimentation and debugging as part of the careful thinking). In any case, a reasonable explanation in science is not in the form of sentences.
One of the key ideas here is that modern understanding is a lot more than changing from one set of sentences to another. (This is a huge problem for humans because for tens of thousands of years and more there were no significant differences between our models and our sentences.) Now some of our models can't be reasonably represented in sentences, but for many cases we still have to use sentences to point at the models (or don't even use the models at all).
To me, the consequence of all this is that most of the work needed to be done on thinking about important difficult problems is not primarily "logic" (in the sense of dealing with premises, operations, and inferences) but "extra-logical" (trying to understand contexts and boundaries and models and tests before trying to do anything like classical thinking).
I often try to point out in talks that modern thinking is "not primarily logical" and this is what I'm driving at.
One key question for "civilization" has usually centered around the extent to which enough children can learn to reach beyond their genes to embrace ideas and behaviors that have been invented for the better.
Another key question revolves around the trade-offs between individual choices vs "smartest choices". This reflects the distribution of talents, outlooks, skills, knowledge, etc in any population. And also the distribution of what various people need to "feel whole". (These are often at odds with larger organizations of societies.)
? Alan's DOB
? Alan's age
Here "?" is a whole computer. We don't know what it will do to answer these questions. One thing is for sure: we are talking to a -process- not a data structure! And we can also be sure that to answer the second it will have to do the first, it will have to ask another process for the current date and time, and it will have to do a computation to provide the correct answer.
The form of the result could be something static, but possibly something more useful would to have the result also be a process that will always tell me "Alan's age" (in other words more like a spreadsheet cell (which is also not "data" but a process)).
If you work through a variety of examples, you will (a) discover that questions are quite independent of the idea of data, and (b) that processes are the big idea -- its just that some of them change faster or slower than others.
Add in a tidy mind, and you start wanting languages and computing to deal with processes, consistency, inter-relations, and a whole host of things that are far beyond data (yet can trivially simulate the idea in the few cases its useful).
On the flip side, you don't want to let just anybody change my date of birth willy nilly with the equivalent of a stroke of a pen. And that goes for most answers to most questions. Changes need to be surrounded by processes that protect them, allow them to be rolled back, prevent them from being ambiguous, etc.
This is quite easy stuff, but you have to start with the larger ideas, not with weak religious holdovers from the 50s (or even from the way extensional way math thinks via set theory).
This is very much in the spirit of the thinking that led to the American Constitution, and Tom Paine's "Instead of having the King be the Law, we can have the Law be the King".
We need solutions that allow further thinking and design to be done.
One way to look at this is to ask questions about "human nature" and to what extent does it need to be followed and to what extent should we try to teach (even train) the children to act in "designed ways" -- for example, not trying to take revenge.
The interesting and difficult parts of goals like these are that we have humans in the mix while trying to come up with better societal designs. For example, even the best forms of socialism have been "gamed" incessantly, and often fatally, by humans only interested in "harvesting" for themselves.
This is one of many reasons why well thought out versions of social reform have often been destroyed when the implementation phase is started "Every one loves Change, except for the Change part!"
Another way of looking at this is if an "object" has a "setter" that directly affects a variable inside then you don't have a real object! You've got a data structure however much in disguise.
Another place where the "sweet theory" was not carried into reality was in dependencies of various kinds. Only some important dependencies were mitigated by the actual Smalltalks.
Two things that helped us were that we did many on the fly changes to the system over 8-10 years -- about 80 system releases -- and including a new language every two years. This allowed to avoid getting completely gobbed up.
The best and largest practical attempt at an ontology is in Doug Lenat's CYC. The history of this is interesting and required a number of quite different designs and implementations to gather understanding.
I don't think Smalltalk is well suited to represent any algebra (the earliest version (-72) was closer, and the next phase of this would have been much closer as a "deep" extensible language.
A data structure is something that allows fields to be "set" from the outside. This is not a good idea. My original approach was to try to tame this, but I then realized that you could replace "commands" with "requests" and imperatives with setting goals.
What's fun is that every Smalltalk contained the tools to make their successors while still running themselves. In other words, we can modify pretty much anything in Smalltalk on the fly if we choose to dip into the "meta" parts of it, which are also running. In Smalltalk-72, a message send was just a "notify" to the receiver that there was a message, plus a reference to the whole message. The receiver did the actual work of looking at it, interpreting it, etc.
This is quite possible to make happen in the more modern Smalltalks, and would even be an interesting exercise for deep Smalltalkers.
So from the outside, there are no imperatives, only requests and questions. Another way to look at this is that an object/computer is a kind of "server" (I worry to use this term because it also has "pop" meanings, but it's a good term.)
This is sometimes called "total encapsulation".
From this standpoint, we don't know what's inside. Could be just hardware. Could be variables and methods. Could be some form of ontology. Or mix and match.
This is the meaning of computers on a network, especially large worldwide ones.
The basic idea of "objects" is that what is absolutely needed for doing things at large scale, can be supplied in non-complex terms for also doing the small scale things that used to be done with data structures and procedures. Secondarily, some of the problems of data structures and procedures at any scale can be done away with by going to the "universal servers in systems" ideas.
Similarly, what we have to do for critical "data structures" -- such as large scalings, "atomic transactions", versions, redundancy, distribution, backup, and "procedural fields" (such as the attribute "age") are all more easily and cleanly dealt with using the idea of "objects".
One of the ways of looking at what happened in programming is that many if not most of the naive ways to deal with things when computers were really small did not scale up, but most programmers wanted to stay with the original methods, and they taught next gen programmers the original methods, and created large fragile bodies of legacy code that requires experts in the old methods to maintain, fix, extend ...
“As democracy is perfected, the office of president represents, more and more closely, the inner soul of the people. On some great and glorious day the plain folks of the land will reach their heart's desire at last and the White House will be adorned by a downright moron.” H.L. Mencken, 1919
Most of the old hands and historians of the moon shot point to the public in the 70s no longer being afraid of the Russians in the way they had been in the 50s, and the successful moon landings helped assuage their fears. The public in general was not interested in space travel, science, etc. and did not understand it or choose to understand it. I think this is still the case today.
Your comments and criticism of the NSF are dead-on (and is the reason I gave up on NSF a few years ago -- and I was on several of the Advisory Committees and could not convince the Foundation to be tougher about its funding autonomy -- very trick for them admittedly because of the way it is organized and threaded through both Congress and OMB).
One way to look at it is there is a sense of desperation that has grown larger and larger, and which manifests both in the powerless and the powered.
Good answers to this are out of the scope of HN, but we should be able to imagine -processes- moving forward in both our time and in simulated time that can answer our questions in a consistent way, and can be set to accomplish goals in a reasonable way.
The Notetaker Smalltalk (-78) was a kind of sweet spot in that it was completely in Smalltalk except for 6K bytes of machine code. This was the one we brought to life for the Ted Nelson tribute.