Some good comments from Alan Kay on goals for improvement in programming systems

This came out of a question about what prompted him to invent object-oriented programming, but he gets into some goals that have not been implemented yet, which sound like good ideas.

 

The earliest programming was in the forms of the earliest computers: to find resources in memory — usually numbers, or numbers standing for something (like a text character) — and doing something with them: often changing them or making something and putting the results in memory. Control was done by simple instructions that could test and compare, and branch to one part of code or another: often to a part of code that had already been done to create a loop. An instruction not in the hardware could be simulated if there was a way to branch and capture where the branch originated, thus producing the idea of “subroutine” (first used in full glory with a “library” on arguably the first working programmable computer, the EDSAC by Maurice Wilkes at Cambridge, late 40s).

Beginning programming was and is most often taught in this style, and it has been noted that the first programming language and style one learns tends to manifest most deeply throughout the rest of a career. Not a lot has changed 70 years later, partly because many languages started off with this style in mind, and thus the new languages were attempts to make this style more convenient to use (Lisp and APL were different early interesting exceptions).

Another way to look at this is to note that (1) the degrees of freedom of a computer, and of the possible problems to be solved, coupled with the limitations of the human mind, means that anticipating all the tools needed will be essentially impossible. This means that *how to define new things* becomes more and more important, and can start to dominate the “do this, do that” style.

Along with this (2) soon came *systems* — dynamic relationships “larger” than simple programs. Programs are simple systems, but the idea doesn’t scale up very well to deal with qualitatively new properties that arise. Historically, this never quite subsumed “programming” (and the teaching of “programming”). It gave rise to a different group of computerists and did not affect “ordinary programming” very much.

I think it is fair to say today that the majority of programmers reflect this history: most do not regard *definition* as a central part of their job, and most do not exhibit “systems consciousness” in their designs and results.

I think quite a bit of this has to do with the ways programming is taught today (more about this gets even more off topic).

Looking at this, the earliest real “computer scientists” could see that e.g. subroutines were an extension mechanism, but they were weak — for example, to make a new kind of “data structure” was fragile and could not be made a real extension to the language. This led to a search for “extensible languages”.

Other computer scientists could see that “data structures” were not a great idea e.g. sending a data structure somewhere required the receiving programmer to know many details, and the structure itself might not fit well on a different kind of computer. A vanilla data structure was vulnerable to having a field changed by an assignment statement “somewhere” in the code by “somebody”. And so forth.

Most of the programmers were used to the idea of commanding changes to “data”, and so some of the fixes were mechanisms that allowed data structures to be invented and defined: one of the major styles today is “abstract data structures”.

Along with all this were several ideas for dealing with simple smashing of variables (and the essential “variable” that is a data field). This was scattershot and reinvented in different ways. The most prominent way in strong use today is for very large structures: “data bases” that are controlled by the intermediaries of “atomic transactions” and “versioning”, which effective wrap the state with many procedures to ensure that a valid history is kept and relationships between parts of the data base are not violated. Eventually, it was realized that “data” didn’t capture all the important questions that could be asked — for example: “date of birth” could be “data”, but “age of” had to be computed on the fly. This was originally done externally, for some data bases, procedures could be included. (This required a “data base” to eventually be able to do what a whole computer could do — maybe “data” is not the operative idea here, but instead “dynamic relationships relative to time” works better. If so, then the current implementations of “data bases” are poor.

In computer terms, modern data bases” are subsets of the idea of a “server”.

Another line of thought — which goes back before there were workable computers — is that (3) certain easy enough to make computers can simulate any kind of mechanism/computer that can be thought of. This partly led to several landmark early systems such as Sketchpad, and the language SImula.

If you take in the above, and carry to the extreme, its worth noting that only one abstract idea is needed to make anything and everything else: the notion of “computer” itself. Every other kind of thing can — by definition — be represented in terms of a virtual computer. These entities (I’m sorry I used the term “objects” for them) are used like servers, and mimic the behaviors of (literally) any kind) that are desired.

A key point here is that just having practical means for creating objects doesn’t indicate what should be simulated with them. And here is where the actual history has been and continues to be unfortunate. The most use of the idea — still today — has been to simulate old familiar ideas such as procedures and data structures complete with imperative destructive commands to bash state. This again goes back partly to the way programming is still taught, and to the rather high percentage of programmers today who are uncomfortable with design and “meta”.

For example, since “an object” is a completely encapsulated virtual computer, it could be set up to act like a transactional versioned date-base. Or something much better and more useful than that.

Note that most interesting representations of things do “change over time” so something has to be done to deal with this problem. So-called “Functional Programming” has to add features — e.g. “monads” — to allow state to advance “in a more functional way”. This might not be the nicest way to deal with this problem, but something does have to be done.

And note that if you have gotten religious about “FP”, then it is really easy to make a pure FP system and language by using the universal definitional properties of “real objects” (being able to define what you want is the deep main idea!) But before you do, it will be good to ponder in larger terms.

As Bob Barton once remarked “Good ideas don’t often scale” — and neither do most simple programming paradigms. This means that another of the new things that can be built with “objects” — but have to be invented first — are less fragile ways to organize systems.

Along the Barton “qualitative changes” line of hints, one could start contemplating a kind of “request for goals” kind of organization where the semantics of the worlds being dealt with are more richly human and the main center of discourse is about the “whats that are needed” rather than the “hows” that the system ultimately uses.

This was one of the impulses behind some of the HLLs in the 50s and 60s, but the field gave up too early. The original idea behind a “compiler” was to take a “what” and do the work necessary to find and synthesize the “hows” to accomplish the “what”. 60 years ago the “whats” were limited enough to allow compilers to find the “hows”. But the field decided to sit on these and not uplift the “whats” that would require the compilers to do much more work and use more knowledge to synthesize the “hows”. This is another way to miss out on the changes of scaling.

In a “real object language” — with “universal objects” — it should be possible to define new ways to program and define and design any new ideas in computing — I think this is necessary, and that it has to be done “as a language” in order to be graceful enough to be learnable and usable.

Historically and psychologically, *tools* have had a somewhat separate status from what is made with tools (and the people who make tools, and make tools to help make tools, etc. are also somewhat separate from the average maker). But a computer is always also a tool making shop and factory, you don’t have to go to the hardware story to buy a hammer etc. This requires a change in mindset in order to really do computing.

At Xerox Parc in the 70s, we made a “real object language” to walk both sides of the street (a) we wanted to invent and make a whole graphical personal computing system, and (b) we wanted to be able to easily remake the tools we used for this as we learned more. I.e. we wanted to “co-evolve” our ignorance in both areas to reflect our increased understanding. We were motivated both by “beauty” and that we had to go super high level in order to fit our big ideas into the tiny Alto.

This process resulted in five languages, one every two years (thanks to the amazing Dan Ingalls and his colleagues), with one deep qualitative change between the 2nd and 3rd languages. That these languages could be useful “right away” was due to the way they were made (and partly because the languages contained considerable facilities for improving and changing themselves). To make progress on the personal computing parts, the constructs made in the languages had to be extremely high level so that the system could be rewritten and reformulated every few years.

The 5th version of this process was released to the public in the 80s, and to our enormous surprised was not qualitatively improved again, despite that it included the tools and the reflective capabilities to do this. The general programmers used the language as though it came “tight” from a vendor and chose not to delve into even higher level semantics that could help the new problems with the new scalings brought by Moore’s Law. (This was critical because there were somethings we didn’t do at Parc because of the scalings that needed to be done to deal with “10 years later” scalings, etc.)

To answer the current question after the “long wind” here: there are usually enough things “not right enough” in computing to need new inventions to help. Most people try to patch their favorite ways of doing things. A few will try to raise the outlook and come up with new ways to look at things. The deep “object” idea, being one of “universal definition” can be used for both purposes. Using it for the former tends to just put off real trouble a little bit. I think programming is in real trouble, and needs another round of deep rethinking and reinventing. Good results from this will be relatively easy to model using “real objects”.

The sociology of our science

Philosopher Matthew Crawford talked in the interview below about the nature of what science in its technical practice has become, at least in certain fields, which takes it away from its telos. He blames what I’ve heard termed “big science,” because it’s made scientific research big and bureaucratic, requiring the raising of lots of money to build equipment, and to maintain it, so that scientists can push the boundaries of what we know. The problem is the nature of the organization that’s necessary to build this apparatus is political. And so politics is going to be a part of what’s happening with it, while scientists are trying to work within these organizations to carry out their research. It inevitably comes into their research, as part of these organizations, because the power dynamic within them favors the political actors over the search for truth.

What this suggests to me is that “big science” has a point of diminishing returns, where once you reach a tipping point, the endeavor becomes more political than scientific, and so there really isn’t a point in going further in the growth of these particular, ostensibly scientific institutions, because the political focus of the organization just increases as it grows, crowding out the science that it was originally intended to foster.  He also discussed some dynamics that have occurred with the climate issue, specifically, as illustrations of this social effect he was talking about.

Related posts:

The dangerous brew of politics, religion, technology, and the good name of science

Psychic elephants and evolutionary psychology

Reconsidering Darwinian evolution

I liked reading Giving Up Darwin: A fond farewell to a brilliant and beautiful theory, by David Gelertner, because it’s the most thought-provoking article I’ve read in a long time. As I read it, I really wondered if he was going to come out as a believer in Intelligent Design, because he says that theory makes some important points about Darwinian evolution, but that’s not where he goes. He doesn’t reveal this until the end, where he pokes holes in ID, as well. Really what he says is we need a new theory. Some aspects of Darwin’s theory of evolution still hold, but some need reconsideration, because accumulating evidence falsifies them.

I’d think to a scientist, this is an exciting prospect, because it means there’s something significant to discover about the morphogenesis of the species we see in the fossil record.

Why the computer revolution hasn’t happened yet

I consider this a follow-up to another post I wrote called Reviving programming as literacy. I wrote the following answer in 2020 to a question on Quora, asking What happened in the past 80 years that produced a much cruder world than the rich one that science, engineering, math, tinkering, and systems-thinking experts in the ARPA-IPTO/PARC community predicted? I got my first upvote from Alan Kay for it, which I take as a “seal of approval” that it must’ve been a pretty good account of what’s happened, or that it at least has a good insight or two. I thought I’d share it here.

I think the short answer is the world proceeded with its own momentum, despite what ARPA/PARC offered. Nothing “happened,” which is to say that nothing in society was fundamentally changed by it. Many would ask how one could say that, since the claim would be made that the computer, and some of what was invented at PARC, was “transformative” to our society, but what this is really talking about is optimization of existing processes and goals, not changing fundamental assumptions about what’s possible, given what computing represents, as a promising opportunity to explore ideas about system processes. It’s true that optimization opens up possibilities that would be difficult to achieve otherwise, but my point is that what ARPA/PARC anticipated was that computing would help us to think as no humans have thought before, not just do as no humans have done before. These are not by any means the same transformations. The former was what ARPA/PARC was after, and my understanding is this is what many of the researchers experienced. That experience, though, didn’t get much outside of “the lab,” and while this experience has expanded into the sciences, becoming a fundamentally important tool for scientists to do their work, it still is “in the lab.”

What Alan Kay, one of the ARPA/PARC researchers, realized was that there was more work to be done to lay the groundwork for it. He, Seymour Papert, Jerome Bruner, and others, tried to bootstrap some processes in society, which Kay thought would do that. Their efforts failed, though. They either didn’t last long, or the intent was “lost in translation,” lasted for many years, doing something that ended up being unproductive, and ended in failure later.

The buzzsaw they ran into was the expectations and understandings of parents and educators re. what education was about. A complaint I’ve heard from Kay is that educators tend to not have a good grasp of what math and science are, even if they teach those subjects. So, with the approach that was being used by Kay and others, it was impossible to get the fundamental point across in a way that would scale.

I remember listening to a small presentation Kay gave 11 years ago, where he talked about a study on education reform that was done in the UK years earlier. It was found that in order for any order-of-magnitude improvement in the curriculum to take hold successfully in the study groups, a change in the curriculum must also involve the parents, as well as the children and teachers, because parents fundamentally want to be able to help their kids with their homework. If parents can’t understand what the curriculum is going after, why the change is being made, understand the material being given to their kids, and buy into the benefits of it, they resist it intensely, and the reform effort fails. So, any improvement in education really requires educating the community in and around schools. Just treating the school system as the authority, and the teachers as transmitters of knowledge to children, without involving the parents, did not work.

A natural tendency among parents and educators is to transmit the culture in which they were raised to the children, thus providing continuity. This includes what and how they were taught in school. This is not to say that any change from that is good, but there is resistance to anything but that. To “live in the future,” and help students get there, requires acquiring some mental tools to realize that you are in a context, and that other contexts, some of them more powerful, are possible.

A warning about our current state

I have been paying a lot of attention to a growing ideology in our country for the past couple years, almost to the exclusion of my CS study. It’s not something I enjoy, but I cannot avoid a train that’s coming down the track at me.

It’s an ideology that masquerades as a truth teller, revealing the “true nature” of our country; revealing it as an oppressor of anyone who lacks “whiteness,” as a clear and present threat to such people. It’s been setting up an alienating war focus against the society we all inhabit. Looking at history, it’s a trend that should really worry us. The cultural markers described here have led to societal suicide in countries around the world, when they are allowed to metastasize. There’s growing awareness of it in my country, but I’m not sure if it’s enough yet.

One perspective on it, in its immediate form, is described in a segment on Tucker Carlson Tonight, from January 19, 2021.

James Lindsay, Peter Boghossian, and Helen Pluckrose have done a lot to analyze the history of this ideology, which uses postmodernism as a basis. It’s commonly called by various names, intersectionality, critical race theory, etc. It has gained power in our society, and these three researchers have tried to expose the shortcomings of this belief system, which had its genesis inside our academic institutions.

Lindsay founded New Discourses to talk about his findings, and to help educate about them.

The first video I’ve put here from New Discourses gives a heads-up about what will be a driving force in government policy, and in many quarters, corporate policy, and why it’s happening. It dovetails with what Carlson described above.

Another video by Lindsay, below, gives background on all this, and why a knowledge of history should cause alarm about the rise of this trend: It’s the kind of thing that’s led to oppression of out groups, and mass death. In this case, the out group that is being set up for recriminations is anyone who displays “whiteness,” or “white supremacy,” and the interesting thing is it’s not really about race at all. It’s about an outlook on life. What’s being targeted is other belief systems than the one I’m talking about here.

In this ideology, the very idea of discrimination has been so twisted out of shape that it doesn’t mean what it used to, which is judging someone solely based on things they can’t change (as if you could tell all about them just from looking at them). That was the sin that our society used to know. Now, “whiteness” or “white supremacy” just means something like doing well in school, or on the job. Though, white people in particular are suspect by default, in this ideology. However, it doesn’t even matter if your skin color is white. If you’re not, and you display qualities like diligence, a work ethic, etc., you’re charged with “internalizing whiteness.” This actually has a long history. I can remember twenty years ago hearing about certain blacks being characterized as “acting white,” just because they did well in school, for example. It was used as a smear then, too.

As described in the videos above, there are people in power now who want to weaponize this ideology. If you’ve been paying attention, you’ve seen this for years, with people losing work over this stuff.

I’m not posting this to be a voice of doom. I’m putting this here to spread the message, so that people of good will can do their part to stop this early, and peacefully. Perhaps there is still time.

This ideology is not going to solve discrimination, though it markets itself as the solution. It is only going to enhance racial divides; the dehumanizing of certain people, which if allowed to reach its logical conclusion, will lead to the worst horror.

The problem with trying to address problems like this is it may not be evident to you. It may seem like a small problem now, if you’ve even heard of it, or seen someone negatively affected by it. All too often, if I hear people talk about it, they say they choose to keep quiet. They’re hoping to avoid the negative consequences of stepping out of line, like running away from a grizzly bear, thinking it will eat the slower ones first. A problem with that strategy is this ideology is not static. It changes who and what it targets, always looking to take someone else down.

What should be clear by now is that this is not going to just blow over. The more we stay out of its way, the more it grows. The time to confront it is now, however you think best to do it, if it is in your midst.

I want to be clear. This is not a call for people to separate from the rest of society and “find friends” in racial identity groups of their own. I think that would be one of the worst things. Though, that could very well happen, as a result of this ideology putting people of certain races down at every turn. What I’m calling for is for people to assert America’s civic virtues of tolerance, and equal rights. Both are anathema to this ideology, which sees them through a cynical eye, saying it’s all a cover for oppression, using disparity stats to make the point. Equal outcomes are what’s demanded by this ideology. Its promoters believe that lowering standards will accomplish the desired goal, since lower standards are easier for more people to meet. They don’t say that directly, but they have various ways of accomplishing this goal, calling it by various names, such as “diversity,” “equity,” “positive discrimination,” “anti-racism,” etc. Any deviation from this strategy is seen as discriminatory, and therefor wrong. The problem is this lowering of standards for the sake of equal outcomes squashes all other priorities that make an advanced society like ours function.

Edit 2/1/2021: Bari Weiss wrote a great article with some more suggestions for reversing this trend, in 10 ways to fight back against woke culture.

One could chalk up what I’m describing as the malaise of a self-loathing society, but every time I’ve looked at it, what’s really at root is laziness; the unwillingness to do the hard work of improving ourselves, and the society around us. This results in us “pressing the ‘easy’ button” on hard problems, which results in lots of misperceptions about each other, and our world. It makes for a worse future.

Here’s a description of that from Benjamin Boyce.

Another “culprit,” if you will, is a fundamental belief that all people are owed all good things that society has to offer, because we all are equal, and we should all have a say. This is conflating things that don’t go together well, but democratic societies throughout history have shown a proclivity to believe this. Such societies need institutions that work against this tendency, so that they can continue to function. Right now, the only one that really does is private enterprise.

This next video is about Lindsay’s article Psychopathy and the Origins of Totalitarianism. The important take-away from this is to understand the distinction between reality and pseudo-reality, and the social dynamics that enforce pseudo-realities, and enable them to spread far and wide. Being conscious of this enables us to be aware of when a pseudo-reality is being put into effect, and opens opportunities to stop it. This relates intimately to Lindsay’s first video here.

Edit 3/22/2021: Re, Lindsay’s point that Very Smart People are the useful idiots, I thought I’d illustrate. 🙂 The following is the battle of wits from the movie, “The Princess Bride.”

Edit 8/2/2021: This segment with Tucker Carlson from 2/2/21 seemed like a good follow-up to what was covered here:

Related articles:

The result of capitalizing on peak envy

Our political pathology and its consequences

Trying to arrive at clarity on the state of higher education

Explaining the landscape of the internet

After having some conversations about what’s transpired with social media, I’ve been prompted to write this, because it seems like there’s confusion about who has access to what, and where.

There’s much gnashing of teeth (and celebrating) over social media banning people, and technology companies banning access to certain apps. I have less worry about that, because I’ve been on the internet since 1989. I have some understanding of how these things work. Though, perhaps I should worry about the negative social effects of these bans, as many keep warning. What I hope to do with this post is educate people about what’s really going on, from a technical perspective, and to reassure people who want to continue getting the content they want, regardless of what the lords and ladies of social media and technology think and do.

First of all, social media and (specific) technology companies are not the internet.

This has been obvious to me, since I knew the internet way before these companies had anything to do with it. So, when I started hearing complaints about bans on social media and app stores, it didn’t seem like a big deal to me. I could just find the people I followed, and services I connected to through social media, through the web, if I wanted. If they are big enough personalities, they often have their own websites.

However, after talking to some tech-connected, but less tech-savvy people, I’ve come to the uncomfortable conclusion that a lot of people don’t know this. They think that people are being banned off the internet, so that nobody can hear them. These bans are disruptive, in the sense that it takes work to move what people have shared to another platform. The move is disruptive to our social networks (the people with whom we feel connected emotionally), and takes time for people to catch on to where others went. It’s a setback, but in reality, it’s not a death blow.

Each social media platform is in fact a closed, proprietary network that uses the internet as the way for people to reach them. To some extent, these social media networks allow pathways out of their network to the internet, or to other social networks. What the most popular social media platforms have been doing is controlling those entry and exit points, and also exercising control over the relative visibility of what remains on their platform. The complaints really boil down to the fact that these services don’t operate by any discernable rules. Their decisions and punishments are arbitrary and capricious.

The app. stores also exercise some control, if you use apps. from them, because, as we’ve seen, those stores will say they don’t want to carry certain ones. Some of the apps. that have “gotten into trouble” access social media, and exclusively allow access to those platforms.

My sense has been that when people think they’re being denied access to someone online, or some service, because social media has suspended or banned them, it’s because the complainers are using phone/tablet apps., which access specific services on the internet. It seems like people have preferred these apps. to using a web browser (maybe because they think that’s old hat). They feel like the apps. make accessing these services easier. The downside (if you consider it a downside) is if that’s all you use, that strengthens the control those services exercise over what you can see, because those apps. don’t allow you to see anything outside of their services. (You have to switch apps. to switch to another service.)

If you want pretty much free sharing with potentially large numbers of others, you should consider using services like Parler, MeWe, and if you’re into video, something like BitChute. My understanding is they’re committed to free expression, free speech, with minimal restrictions. Facebook, Twitter, and to some extent, YouTube, are not what they used to be. They’re increasingly curated, using minders to watch what is posted, so that nobody “gets any ideas” (like they’d know what those are).

To get out of the limitations I’ve described, I’d really recommend going somewhat “old school”; using a web browser, using a search engine to find the content you want (probably something like duckduckgo, rather than Google, since Google uses many of the same tactics as Facebook, Twitter, etc.). I’d also recommend using e-mail to stay in contact with people, at least as a backup, rather than relying so much on social media groups, and private/direct messaging. A problem with this, though, is a lot of people may have e-mail addresses, but don’t use them. So, staying in touch with individuals or groups via. e-mail can be a challenge.

I’m writing this primarily for an American audience. Though, what I’m saying applies to some other parts of the world, as well.

The internet is still a free place (while it lasts). If you want free access to information and people, spend some time on the web, as well as on social media. Get used to both. Get outside the closed networks.

Update: News arrived shortly after I posted this that Parler may go offline for a while, if not permanently. Amazon’s cloud service pulled the plug on them today. Unfortunately, Parler put all its eggs in one basket. This is something I was worried about with cloud services many years ago, when they were starting to become popular. Not that I expected service would be pulled over politics, but rather for any reason.

Edit 2/1/2021: I thought this interview with Jeff Brown of Brownstone Research would be interesting to readers. Part of what I think is good here is that he gets into some reasons that this censorship is happening. It ties into something I’ve suspected: There’s a large cultural component to this. These tech companies have in a sense been overrun with people with a monolithic ideology, both inside and outside them. From what he describes, these people are pushing their weight around, to force these companies into taking these actions.

What he describes is reminiscent of what happened with Brendan Eich at Mozilla several years ago, except it’s happening on a much larger scale. In that case, Eich, the CEO of Mozilla, was forced out by the illegal disclosure (doxxing) of a campaign contribution he made, something like 6 years earlier, and the development community around Mozilla, which threatened retributive actions against the company if he didn’t leave. That was it, as far as I know. (Though, that was bad enough.) In this case, people by the tens of thousands are being kicked out of these platforms for similar reasons. And, of course, as we know, Parler was taken down, seemingly because President Trump announced he was moving over to that platform, after being forcefully taken off Twitter.

Brown talked about part of what could be done about this culture of internet censorship, anticipating what might be down the road: Censorship of websites at the level of the internet service provider (commonly called ISP–your connection to the internet), and/or the Domain Name Service (commonly called DNS). Though, I don’t see that on the immediate horizon, partly because the courts would frown on it, in many cases, since many ISPs are already regulated as utilities, common carriers. They can’t just go around blocking content without exposing themselves to lawsuits; not yet, anyway.

For those not familiar with DNS, it acts as a “phone directory” for the internet. When you use a web browser, for example, and you give it the name of a website–any URL, your browser contacts the domain name service at your internet service provider. DNS returns what’s called the Internet Protocol address (commonly referred to as an “IP address”) for that URL, to your computer or device. This address is analogous to a phone number for a person or business, which your browser then uses to connect with, and talk to that service.

Brown talked about a solution that uses blockchain technology, called Handshake, which acts as a peer-to-peer replacement for DNS, and acts akin to a Virtual Private Network (commonly called a VPN). This a) makes your URL lookups independent of your ISP, and b) hides your internet connections from it, thus making ISP/DNS censorship more difficult to pull off.

The “bad news,” Brown said, is that it takes technical know-how to set Handshake up, right now. It hasn’t been fashioned into an easy-to-use package. He also said you use a special browser with it, which I guess makes sense, because your existing browser is set up only to use a domain name service that’s set up by your ISP.

This is not to say that if you went this route you’d need to use a different ISP. He’s saying you’d keep your existing internet connection, but a lot of your internet activity would be carried out independently of your ISP’s domain name service, and your connections to internet sites would be kept hidden. As an added benefit, this setup would also increase your online privacy.

It was encouraging to hear about this, since I’ve been anticipating for a few years that our presence online would move to a peer-to-peer model, rather than client-server, which we’ve been using for ages. More to the point, what I’ve been anticipating is that we’d get away from social media services altogether, by going to a peer-to-peer model for making social connections. This would allow us to share content independently of needing accounts on all sorts of platforms, which are controlled by people with agendas that might be different from what we want, individually.

We really should have that, because that’s more like real life! Think about it: When you meet people, or go to a community festival, or patronize a business, or do any of the innumerable things that people in a society do, do you have to sign up with a company to do each one of those activities? Why should we be doing that online? We should be able to make our own personal connections, form our own groups, make payments, without needing intermediaries. Sure, to do some things, you’d need to sign up with a service to go to conferences, make appointments, go to exclusive events, as a few examples, but so much of our digital presence should model what we’re able to do without it.

Perspective on disease and public policy

It has become apparent to me that just as Darwin’s theory of natural selection was once controversial in society, particularly as it applied to human origins, modern science continues to upset people. We also have this confusing thing going on where our society claims to own scientific knowledge, when science disagrees with what it’s doing, and so society fails to reach its stated goals, and we blame non-factors for the failure. We are acting quite superstitious. What doesn’t help is that we have people with the title of scientist who are espousing knowledge not based in science, but which is accepted as “official science” that everyone is expected to believe and follow. It’s not unusual, though. Thomas Sowell wrote about it in his book, “Intellectuals and Society,” saying that some politicians reverse the process of discovery. Rather than following the evidence, they hire experts who will massage the evidence to fit the politicians’ desired agenda, and basically rubber stamp it (without appearing publicly to do so). That doesn’t always happen, but it happens enough that it negatively affects our society. I’d like to share Dr. Morrissey’s contrasting account about his knowledge and experience on disease, and what is actually being enforced in government policy in various places around the world. It’s a tragic story, and I think it deserves to be highlighted, because it’s really a choice between knowledge and ignorance, and the joy and suffering that each brings.

The second topic that is not being addressed in our public discussions, because it seems verboten, is risk. What I see frequently is that too many in advanced societies are not mature enough to discuss it. It seems many are not experienced in taking risks, and what that means. They may only be experienced in the notion of tragedy, and any notion of taking a risk is disgusting to them. Though, in fact, they take risks all the time. I’ve seen an increasing trend since the 1990s of people who say that all risk must be eliminated. They are saying the equivalent that they demand the defeat of gravity. It can’t be done. What are we willing to sacrifice on the altar of this impossibility?

Alan Kay on goals in education

I wanted to repost Alan Kay’s answer from Quora to the question What needs to be done in order to improve Anki to reach the promise of the Dynabook’s “teacher for every learner”?, because I think it sums up so well his thinking on education, broadly, which dovetails with some thoughts I’ve had on it.

He responded to a question about an online learning site, called Anki, that’s designed to improve memorization techniques, asking if there was a way to improve it that would bring it in line with goals of Kay’s original conception of the Dynabook. For people who are not familiar with the Dynabook concept, I’ll point you to a post I wrote, part of which was on Xerox PARC’s research on networked personal computing, A history lesson on government R&D, Part 3 (If you go there, scroll down to the section on “Personal computing”).

There’s definitely a way to think of learning as ultimately being able to remember — and every culture has found a lot of things that need to be remembered, are able to get children to eventually remember them, and have some of their behaviors be in accordance with their memories.

But if we look at history, we find large changes in context of both what kinds of things to learn, and what it means to learn them. For example, the invention of writing brought not just a huge extension of oral knowledge, but an even more critical change of context: getting literate is a qualitative change, not just a quantitative one. A large goal of “learning to read and write” is to cross that qualitative threshold.

A change so large that it is hard to think of as an extension of the prevailing thinking patterns in the era of its birth, was the invention of “modern science” less than 500 years ago. It started with the return of accurate map making of all kinds and was catalyzed by the gradual realization that much of “the world was not as it seems” and by being able to make generalizations that could generate some of the maps. One of the most important larger perspectives on this has its 400th anniversary this year: Francis Bacon’s “A new organization for knowledge” (Novum Organum Scientia), in which he points out that we humans have “bad brain/minds” stemming from a number of sources, including our genetics, cultures, languages, and poor teaching. He proposed a “new science” that would be a set of approaches, methods and tools, that would act as heuristics to try to get around the biases and self generated noise from our “bad brains”.

His proposed “new science” is what today we call “science”. Before this, “science” meant “a gathering of knowledge” and “to gather it”. After this, it meant to move from knowledge to context and method and tools — and to new behaviors. This has led to not just a lot of new knowledge, but very different knowledge: qualitatively different knowledge in qualitatively different contexts.

A trap here is that the use of ordinary language for discussing these three contexts — oral, literate, scientific — is that things can be said and heard whether or not the discussants also have these contexts (this was one of Bacon’s four main “bad brain” traits).

E.g. people who can read but have not taken on the scientific world-view can think they understand what science is, and can learn and memorize many sentences “about” science, without actually touching what they actually mean.

Just as interesting, is the difficulty — for those who have gotten literate — of touching what is really going on — especially the feelings — in oral traditional societies. Music and poetry are bridges, but important parts of the innocence and id-ness are hard to get to. “Ecstatic music” can sometimes dominate one’s literate thought — especially when performing it.

To make an analogy here: in our society, there are courses in “music appreciation” that mostly use “sentences” about “sounds”, “relationships, “composers”, etc., in which most testing can be (and is) done via checking “the memory” of these “sentences”.

By contrast in “real deal music”, real music teachers treat their students as “growing musicians” and play with them as a large part of the guidance to help them “get larger”, to “make Technique be the servant of Art, not the master”, etc. It’s primarily an emotive art form …

A nice quote — which has many web pages — is:

“Talking about Music is like Dancing about Architecture”

(attributed to many people from Stravinsky to Frank Zappa). If you *do* music, you can barely talk about it just a little. The further away from inhabiting music, the less the words can map. (And: note that the quote brilliantly achieves a meta way to do a bit of what it says is difficult …)

The Dynabook idea — “a personal computer for children of all ages” — was primarily about aiding “growth in contexts”* and my initial ideas about it were partly about asking questions such as:

“If we make an analogy to writing/reading/printing-press, what are the qualitatively new kinds of thinking that a personal computer could help to grow?”

I got started along these lines via Seymour Papert’s ideas regarding children, mathematics and computing (my mind was blown forever). I added in ideas from McLuhan, Bruner, Montessori, etc., and … Bacon … to start thinking about how a personal computer for children could help them take on the large world-view of science as “real science learning” (not “science appreciation).

(Via Papert), the dynamic math part of quite a bit of science can be nicely handled by inventing special programming languages for children. But science is not math — math is a way to map ideas about phenomena — so an additional and important part of learning science requires actually touching the world around us in ways that are more elemental than “sentences” — even the “consistent sentences” of maths.

In an ideal world, this would be aided by adults and older children. In the world we live in, most children never get this kind of help from older children, parents, or teachers (this is crazy, but humanity is basically “crazy”).

Another way to look at this is that — as far as science goes — it almost doesn’t matter what part of the world you are born into and grow up in: the chances of getting to touch the real thing are low everywhere.

Several of Montessori’s many deep ideas were key for me.

One is that children learn their world-view not in class but by living in that world. She said the problem was that the calendar said 20th century but their homes were 10th century. So she decided to have her school *be* the 20th century, to embody it in all the ways she could think of in the environment itself.

Another deep idea is that what is actually important is for children to do their learning by actively thinking and doing — and with verve and deep interests. She cared much more about children concentrating like crazy on something that interested them than about what that thing was. She invented “toys” that were “interesting” and let the children choose those that appealed to them (she wanted them to learn what deep concentration without interruptions was like, and that teachers were there to help and not hinder).

In other words, she wanted to help as many children as possible become much more autodidactic.

(Note that this has much in common with getting to be a deep reader or musician — it doesn’t much matter in the beginning what the titles are, what matters is learning how to stay with something difficult because you want to learn it — if the environment has been well seeded, then all will work out well. More directed choices can and will be done later. And note this is even the case with learning to speak!)

After doing many systems and interfaces over quite a few years (~25) we finally got a system that was like the Montessori toys part of her school (Etoys), and then, in a Montessori/Bruner type of school (the Open Magnet School in LA), we got to see what could be done with children, the right kinds of teachers, and a great environment to play in and with.

What never got done, was to handle the needs of children who don’t have the needed kind of peers, teachers or parents around to help them. This help is not just to answer questions but to provide a kind of “community of motivation” and “culture” that is what human beings need to be human. (The by-chance forms of this tend to be very much reverted to oral society practices because of our genetics — and much of this will be anti-modern, and even anti-civilization. This is a very difficult set of designs to pull off, especially ca. where we are now.)


To answer your question: the spirit of Anki is not close to what the Dynabook was all about. It could possibly be a technical aid for some kinds of patterning, but it seems to miss what “contexts” are all about.


Here’s another way to think of some of this stuff, and in a “crazier” fashion.

There have been a number of excellent books over the years about the idea that the “invention of prose via writing killed off ‘the gods’ ”. These are worth finding and pondering.*

The two main problems are (a) we need “the gods”; and (b) “the gods” can be very good or bad for us (“they” don’t care).

It’s worth pondering that from the perspective of science, a metaphor is a lie, but from the perspective of “the gods”, a metaphor is true.

The dilemma of our species — and ourselves — is that we have both of these processes in our brain/minds, we need them both, and we need to learn how to allow both to work**.

Learning something really deeply and fluently goes way beyond (and *before*) conscious thought — important parts of the learning are taken to where “the gods” still lurk.

And, just as you don’t make up reasons for breathing (which “the gods” also handle for you), the reasons for doing these deep things move from “reasoning” to “seasoning” — for life itself.

“Artists are people who can’t not do their Art”.

It doesn’t have to do with talent or opinion … This is a critical perspective for thinking about we humans, and what one of the facets of “identity” could mean … Consider the relationship between the quote above and children …

When you are fluent in music, much of the real-time action is being done “by ‘the gods’ “, whether playing, improvising, composing etc. You are not the same person you were when you were just getting started. Music can get pedantic and over-analyzed, but this can be banished by experiencing some of it that is so overwhelming that it can’t really be analyzed in the midst of the experience (this is not just certain “classical” pieces, but some of “pop” music can really get there as well). This produces the “oceanic feeling” that Romain Rolland asked Freud about.

“Goosebumps are a kind of ‘basic ground’ for ‘humanity’ ”

It’s interesting and important that “the gods” can be found at the grounding of very new contexts such as modern science, and that the two can be made to go together.***

To use this weirder way to look at things:

“Education has to lift us from our genetic prisons, while keeping ‘the gods’ alive and reachable”.


* For example: Eric Havelock’s “Preface To Plato”, and especially Julian Jaynes’ “The Origin of Consciousness in the Breakdown of the Bicameral Mind” (my vote for the most thought provoking book that is perhaps a bit off).

** See Daniel Kahneman’s “Thinking: Fast and Slow”, and ponder his “System 1”

*** See Hadamard’s “The Psychology of Invention in the Mathematical Field”, and Koestler’s “Act of Creation”.

What are examples of “good” and “better” in regards to Alan Kay’s “Sweet Spot”?

I’m re-posting a couple answers, mine and Alan Kay’s, to the question What are examples of “good” and “better” in regards to Alan Kay’s “Sweet Spot”?, since I think it’s relevant to readers of this blog.

I’m repeating the use of a video I posted here a while back (Alan Kay: Rethinking CS education), but I’ve cued it up to the relevant spot.

A line of dialogue from “Star Trek IV” ran through my head as I read this question, and reflected on the fact that I was asked to answer it: Spock said he had to make a guess. Kirk was astonished. Spock expresses doubts about their prospects with him guessing, and McCoy tells him, “He [Kirk] means that he feels safer with your guesses than most other people’s facts,” to which Spock replies, “Ah. Then, I will make the best guess I can.”

I’ve seen Alan Kay talk about this a few times. You can as well, watching his recent presentations on internet video. I mean, you can watch him talk about it right here (it’s worth watching the rest of it).

The “sweet spot” you’re referring to is what Kay calls, “The MacCready sweet spot,” after Paul MacCready, who created human-powered flight, and flew across the English Channel in the Gossamer Albatross.

In Kay’s conception, “Better” seems to be a colloquialism for what most people consider “progress,” which he uses as an illustration for how people miss the boat on qualitative improvement. They’re delighted in seeing upticks in whatever they’re pursuing, but the reality is they’re not really improving anything. They’re meandering through the same ditch—up and down, up and down… Sometimes they go through herculean reform efforts to try to reach an improvement goal, but since it’s just using, or optimizing old ideas, it doesn’t reach the “sweet spot.” This ends up, at some point, in a failure, or a “deflation” of the goal, discrediting research efforts in the same area, because returns on investment were expected in the below-threshold effort, which directed capital and energy toward unproductive efforts for long periods of time. People get tired of the subject area, as a result. That’s why he calls “Better” a disaster. It dispirits the community toward looking at the area into which so much money and energy was directed.

It’s not a matter of quantity of effort. It’s a matter of where you’re directing your efforts, consciously coming to realize what you’re doing, and how you’re thinking, and criticizing it with the aim of finding new ideas that when tested are qualitative improvements.

An example for “better” that he used was reading scores in our school system. And to illustrate how futile the efforts have been, he talked about NAEP reading scores for four-year college graduates (and he said NAEP isn’t even a very good literacy standard), using the fact that those scores have been declining for decades. To give an idea of the deterioration, he said in 1992, 42% of four-year college graduates were proficient to the standard, or better. In 2003, 31% of graduates were proficient or better. These scores have continued to decline since.

What people miss is the ditch (or as Kay calls it, the “erosion gully”) represents part of the problem that needs to be overcome. There can be instances where the gully is so big, so cavernous, that it can be difficult to see anything outside of it. It can be difficult to notice that that’s what you’re in. It can seem like your whole world. It can seem like reality. People can be strongly focused in it, and committed to it without examination, and so find it impossible to see outside of it (he speaks of this tendency to intensely focus on a goal in one direction as “the monkey trap”). He talks about “problem finding,” and my sense of this is, “finding out that you’re in a gully,” what its boundaries and contours are, and how it’s directing your thinking, and consciously trying to step outside of it for a while, to try to find some new ideas.

What people tend to miss is that the real “silver” that is in “them thar hills” is in the thresholds (the truly new, not just “new and improved” in the common everyday sense of the term, but “new” in terms of what’s been discovered (or rather, not been discovered) by researchers). This represents the “sweet spot,” a truly new idea, something heretofore undiscovered, unthought.

I don’t remember Kay explaining his metaphor for “Perfect” much. He almost gets to explaining it in the above video, but then diverts onto another topic.

This may be totally off, but what’s coming to mind is that he’s used “Perfect” as a reference point to talk about the risk-aversion of funders of research, that they want researchers to define the end results they expect before they even start looking. This seems to match, because one can imagine that if what was expected is found, one would regard that as “perfect.”

However, it’s more like looking for the car keys under a streetlight. You may not find the keys, but you can say, “We think we’ll find some mortar in the sidewalk, and since we can see that the style of construction is from the 1990s, we think we will find these components in it, since we know that’s what was typically used.”

To understand this point, I think having an understanding of what “perfection” really means is important. Due to our human limitations and frailties, perfection requires a criteria. It requires a narrowing of scope to something that’s pretty small, in relative terms. I’ll also add that it’s a very brittle path to take, because any error, any deviation destroys it. The goal is so narrow and strict that it takes all the fun out of pursuing it. (Maybe the “fun” is in the end-goal, not the “journey,” when it comes to this.)

As you’ll notice, if you look at the video, the “sweet spot” is between “better” and “perfect.” This is to say that the “sweet spot” is an order of magnitude better than “better,” but it’s not “perfection,” because when you’re venturing into the unknown, trying to find “the problem you’re inside of,” or trying to explore, once you’ve found a problem, is that you “wander,” with some practices for finding new and interesting problems and goals. You start by going in a particular direction, but you may end up getting off that, and going into things that are totally different for a while, and then returning to what you you did earlier. Along the way, you’ll most likely find that the path you thought you were going to take to find the “new” is not that great a goal, and instead another goal presents itself that shows a truly new way to solve the problem. And the reason you found it was you were “looking and learning” along the way, eliminating weaker ideas that weren’t going to solve your problem in a felicitous way.

In short, you weren’t looking for what you ultimately found. This doesn’t fit with perfection, but then perfection isn’t the goal. You didn’t even know what you found was there when you started out. That’s the whole point of research. You don’t research to find what you’re looking for! You research to venture beyond what you know, to find what you didn’t know earlier.

Here was Alan Kay’s answer:

Mark Miller’s answer nicely captures much of what I was trying to communicate in the aphorism “Better and Perfect are the enemies of ‘What is Actually Needed’”.

The one thing I might add is that one of several useful ways to think about the “MacCready” sweet spot — what is actually needed — is as the lowest thing that is *qualitatively beyond* “better”.

As Paul said when he started thinking about man-powered flight, which the best people in the world had failed at for more than 50 years despite several large prizes: “The problem is that we don’t understand the problem”.

This got him to drastically change goals (I tell this story in a number of talks which have found their way to YouTube).

He essentially told his crew to forget about man-powered flight but to create an air-frame that could withstand “10 crashes a day” — by being fixable with tape and wire.

With this, in a few weeks they were able to make more test flights (and crashes) than everyone else in history over many decades, and got a much stronger sense of the problem. Once understood, this turned out to be relatively easy to solve, and in about 6 months from the time Paul started thinking about doing man-powerful flight, they won the first of the prizes, and shortly thereafter, the big prize for a man-powered flight across the English Channel.

When asked by British journalists why this was possible compared to everyone else, he said “They were trying to make an airplane, we were trying to do man-powered flight”.

Another way to understand this idea is to notice that the learning process frequently really requires going away from what was thought to be the goal. This is hard for us primates! But if it is really new, it can’t be characterized in the existing context, and a new context has to be created to hold the new idea.

I’ve told this story many times to try to help people understand why Parc and the ARPA-IPTO before it were so effective compared to most other efforts at hardware and software design. The key was that ARPA was very happy to fund “problem finding” — not just the “problem solving” that wrongly-named “rational organizations” wanted. By the time Parc started, ARPA had done 8 years of “finding the good problems” and also creating the researchers who would go to Parc and complete the finding process with deep solutions.

Almost all the projects we chose at Parc were at that special sweet spot where they were just barely doable, but also above the qualitative threshold, so that just barely doing them opened whole new worlds.

I should say something about “Perfect”. Picasso said “A work of art is never finished, just abandoned”, and this captures some of the snares of “Perfect”. Human beings tend to be a lot more pragmatic than idealistic, so “Better” is a bigger problem for most. But there are those — I will include myself here — who hear the siren’s song of perfection.

For these, Picasso’s “abandoning” is good to learn. One way to do it on large projects is to associate with colleagues whose strongest urges are to “complete”, and to just let them do this as they see fit, as one gets entranced by beautiful new unreachables.

— Mark Miller, https://tekkie.wordpress.com

What are some techniques for problem-finding?

I’m re-posting an answer I wrote on Quora re.What are some techniques for problem finding?, since I thought it would be relevant to readers of my blog re. a process of research in computer science.

I’m reusing a video that I referred to a while back (in Alan Kay: Rethinking CS education), though I’ve cued it up to the relevant part.

I don’t have enough experience with this to give a really good answer, but I think it’s embedded in what Alan Kay illustrated at the end of this presentation.

I also wrote some about it in a “snapshot” of what I was doing, in a blog post, On improving a computing model. In my case, I have the goal of redesigning an operating system, using a modeling mindset for exploring the design.

Basically, you start out with an exploratory goal, looking at a process. It could be anything. As Kay said in the above presentation (earlier than where I have it cued up), you could look at how information is presented in a gathering of people. Maybe the way it’s done is not as good as it could be. Next, try to find a way to model the dynamics of the process. Keep the limitations of your own cognition in mind as you do this. If the model is getting too complex, look for developed expression and semantics that will intrinsically deal with some of the complexity for you, and try using it to see if it helps make the model easier to understand. You may have to “back up” from your goal several times to arrive at this, but the idea is to keep the goal in mind.

Once you have it modeled, you can start trying out some changes, see how the model reacts, make some predictions from it, and then do some trials to see how the actual process reacts. The differences will suggest that you need to change your model, and then the problem becomes understanding how to do that to make it more accurate.

Going off of what Kay said, at some point in the process, you may realize how to “fly,” (find a much more efficient way to get to the goal) by using a completely different strategy structure than what you started out using. I can only assume at this point that this is discovered in the process of doing the above.

The “backing up” I’ve described above is what I’ve identified as “problem finding,” but I’m still early in the process.

— Mark Miller https://tekkie.wordpress.com