Live data from Hacker News

Alan Kay is still waiting for his dream to come true

fastcompany.com

201–210 of 297 posts

Re: Alan Kay is still waiting for his dream to come true

#201

Earlier quoted context omitted.

Wow, this article is a pretty egregious misinterpretation of those points. I didn't come away with anything even vaguely resembling what you just said, even if we disregard the factual errors. Candidly, your comments here make a lot more sense than some "We haven't yet built the DynaBook the way we should" piece.

People often ask me "Is this a Dynabook, is that a Dynabook?". Only about 5% of the idea was in packaging (and there were 2 other different packages contemplated in 1968 besides the tablet idea -- the HMD idea from Ivan, and the ubiquitous idea from Nicholas). Almost all the thought I did was based on what had already been done in the ARPA community -- rendered as "services" -- and resculpted for the world of the chi…

"There aren't any parents around to take care of childish adults. We are it. So we need to grow up and take responsibility for our world, and the first actions should be to try to understand our actual situations."

I am seeing the expectation that there will be parents around to take care of childish adults, though this has really come into prominence in the last 10 years, the last 3 years, in particular. For me, it's evoked notions of H. G. Wells's "Eloi." If that sentiment moves forward unchanged, we won't get "parents" in reality, of course, but some perverted in loco parentis in society. I've heard hope expressed in some quarters that reality will provide some needed blows from some 2x4's across the head, once the young venture out into the world, but I wonder whether sheer numbers will decide this; whether the young will choose to reorient our society, in an attempt to please themselves, rather than being influenced by its experience.

Re. "most people are not interested in this"

From what I've seen, this excuse came out of a combination of the technical side of the "two cultures," and the distraction of a lot of people becoming excited by some perceived new possibilities. More recently, my perspective has shifted to it coming out of a perverted notion of "self-esteem," that challenge is "harmful," because being contradicted creates a sense of limits, isolation or shame, or more materialistically, the fear of economic isolation, thereby reducing career prospects for something original.

What's emerged is a desire to affirm one's self-image as "good," regardless of notions of good works. This is where the "legal drugs" come in, reinforcing this. Neil Postman was right to fear this dynamic.

Diverting off of what I'm saying here (though staying on your topic), have you looked at William Easterly's critique of how foreign aid is conducted? I think it dovetails nicely with what you're talking about, here. The short of it is that most aid efforts to the undeveloped world offer some form of short-term relief, but they don't address at all the political and economic issues that cause the problems the aid is trying to address in the first place. Secondly, when he's tried to confront the aid organizations about this, there is no interest in pursuing these matters, a version of "most people aren't interested in stuff like this." Whether there's a sincere desire to solve problems, or just go through the motions to "help," to make it appear like something is happening (ie. putting on a kind of show of compassion for public relations, and satisfying certain political goals), I don't know. It seems like the latter.

Do you have any insight on what's causing the reticence to get into these matters? Easterly didn't seem to have answers for that, as I recall.

Re: Alan Kay is still waiting for his dream to come true

#202

Earlier quoted context omitted.

My reason for drawing your attention to this section of the talk is to show some of the ideas (now 40-50 year old) were about "dynamic media" - of course live computing should be part of the combined media experience on a personal computer -- and of course you should be able to do what are now called "mash ups", but to be able to combine useful things easily and at will (it's crazy that this e.g. isn't even provided…

Thank you for taking the time to respond, and I'd really appreciate if you can clarify my follow up below too! > every thing in the system is a dynamic object -- there are no "date structures" I'm still programming in data structures :/. I've seen many of your talks over the years and it took me quite a while to realize what you mean by objects (I think) is not just the textual specification (i.e. 'source code' in to…

I think your analogy is going in a better direction. I had the same idea after taking a look at Squeak for a while. What would need to be added to your analogy is a notion of design. You see, in Smalltalk, for example, your programming takes place in the messages. So, even the daemons (which, for the sake of argument, we could think of as analogies to objects), which would be the senders and receivers of messages would be made out of the same stuff, not C/C++. So, this is a pretty dramatic departure from the way Unix operates. What this should suggest is that the semantic connection between objects is late-bound. Think of them as servers.

Secondly, in the typical Smalltalk implementation, there is still compilation, but it's incremental. You compile expressions and methods, not the whole body of source code for the whole system. What's really different about it is since the semantic actions are late-bound, you can even compile something while a thread is executing through the code you're compiling. So, you get nearly instant feedback on changes for free. Bret Victor's notion of programming environments blurs the axes you're talking about even more, so that you don't have to do two steps to see your change, while a thread is running (edit, then compile). You can see the effect of the change the moment you change an element, such as the upper bound of an iterative loop. To make it even more dynamic, he tied GUI elements (sliders) to such things as the loop parameters, so that you don't have to laboriously type the values to try them out. You can just change the slider, and see the effects of the change in a loop's range very quickly, such that it almost feels like you're using a tool-based design space, rather than programming.

I don't know how this was done in ST-78, but in ST-80, at least in accounts I've heard from people who've used versions of it, and in the version of Squeak I've used from time to time, the source code is not technically stored with the class object, though the system keeps references to the appropriate pieces of source code, and their revisions, mapping them to the classes in the system, so that when you tell the system you want to look at the source code for a class, it pulls up the appropriate version of the code in an editor.

Source code is stored in a separate file, and Smalltalk has a version control system that allows reviewing of source code edits, and reversion of changes (undo). The class object typically exists in the Smalltalk image as compiled code.

There are many things that are different about this vs. what you typically practice in CS, but addressing your point about data, in OOP, objects are supposed to take the place of data. In OOP, data contains its own semantics. It inverts the typical notion of procedures acting on data. Instead, data contains procedures. It's an active "live" part of the programming that you do. So, yes, data is persisted, along with its procedures.

A simple example in Smalltalk is: 2 + 2. If we analyze what's going on, the "2"'s are the pieces of data, the objects/servers, and "+" is used to reference a method in one of the data instances, but it doesn't stop there. The "2" objects communicate with each other to do the addition, getting the result: 4. As you can tell implicitly, "2 + 2" is also source code, to generate the semantic actions that generate the result.

Re: Alan Kay is still waiting for his dream to come true

#203

Earlier quoted context omitted.

People often ask me "Is this a Dynabook, is that a Dynabook?". Only about 5% of the idea was in packaging (and there were 2 other different packages contemplated in 1968 besides the tablet idea -- the HMD idea from Ivan, and the ubiquitous idea from Nicholas). Almost all the thought I did was based on what had already been done in the ARPA community -- rendered as "services" -- and resculpted for the world of the chi…

"There aren't any parents around to take care of childish adults. We are it. So we need to grow up and take responsibility for our world, and the first actions should be to try to understand our actual situations." I am seeing the expectation that there will be parents around to take care of childish adults, though this has really come into prominence in the last 10 years, the last 3 years, in particular. For me, it'…

Closer to home -- for example in the US public educational system -- we have prime examples of your (and Easterly's) point about "band-aids" vs. "health". After acknowledging how politics works, I think we can see other factors at work in those more genuinely interested in dealing with problems. Some of these are almost certainly (a) the idea that "doing something" is better than doing nothing (b) that "large things are harder than small things" (c) the lack of "systems consciousness" amongst most adults (d) pick a few more.

The "it's a start" reply, which is often heard when criticizing actions in education which will get nowhere (or worse, dig the hole deeper) is part of several fallacies about "making progress": the idea that "if we just iterate enough" we will get to the levels of improvement needed. Any biologist will point out that "Darwinian processes" don't optimize, they just find fits to the environment. So if the environment is weak you will get good fits that are weak.

A "being more tough" way to think about this is what I've called in talks "the MacCready Sweet Spot" -- it's the threshold above the "merely better" where something important is different. For example, consider reading scores. They can go up or down, but unless a kid gets over the threshold of "reading for meaning" rather than deciphering codes, none of the ups and downs below count. For a whole population, the US is generally under the needed threshold for reading, and that is the systemic problem that needs to be worked on (not raising the scores a few points).

To stay on this example, we find studies that show it is very hard to learn to read fluently after we've learned oral language fluently. Montessori homed in on this earlier than most, and it has since been confirmed more rigorously. And this is the case for many new things that we need to get fluent at and above threshold.

So at the systems level of thinking we should be putting enormous resources into reforming the elementary grades rather than trying to "fix" high schools.

And so forth. This is the logic behind building dams and levees and installing pumps and runoff paths before flooding. One recent study indicated that the costs of prevention are 20% of the costs of disaster.

We could add to (d) above the real difficulties humans have of imagining certain kinds of things: we have no trouble with imagining gods, demons, witches, etc. but can't get ourselves beforehand into the "go all out" state of mind we have during an actual disaster (where heroes show up from everywhere). The very same people mostly can't take action when there isn't a disaster right in front of them.

This is very human. But, as I've pointed out elsewhere, part of "civilization" is to learn how to "do better than human" for hard to learn things.

Re: Alan Kay is still waiting for his dream to come true

#204

Earlier quoted context omitted.

One perspective on this is to think about your definition of "civilization" and compare it with both "human universals" and what we know about the general lives of hunter-gatherers and the extent that we can use this to guess about the several hundred thousand years before agriculture. Many of the things on my list for "civilization" are not directly in our genes or traditional cultures: reading and writing, deductiv…

Thank you for the reply. I think you hit the nail on the head -- even though making the distinction between what people "want" and "deserve" is not very popular in the US (or where I live and anywhere else for that matter) at the moment (or even since the 70s or so). Despite all the self-improvement books and seminars and everything, the norm is that people should just be given what they want, and not anything harder…

"In fact a person would be labelled "elitist" to dare suggest anything else -- e.g. that universities are not just vocational schools for getting the skills for one's future job, or that technology should not just be about what Joe Public is capable of mastering, but about advancing Joe and Jane public."

I've run into this very thing. The ironic thing about it is advocating for literacy, and understanding the abstract inventions of our civilization is the antithesis of elitism, because think about what would take place in a society where nobody who has the ability to influence events knows these things; where people do not know how to create their own analysis of events, to argue well, or to invent new social structures that benefit communities; to be active agents in negotiating their society's political destiny, keeping in mind the invented conceptual "guardrails" that maintain things like rule through law, and equal rights. In a society like that, elitism is all you have! Where the thought-inventions of our modern civilization are maintained, there is more possibility for creating an egalitarian society, in certain contexts, more power-sharing, and I think the evidence suggests more social progress.

This doesn't get enough credit these days, but I think the historical evidence suggests certain forms of religion have helped promote some of these civilizational inventions as virtues, on a widespread basis, supporting the secular education that spread them.

My experience has been that the reason people may put the label "elitist" on it is that learning these ideas is hard, and everybody knows that. So, there's been an understood implication that only a small number of people will be able to know most of them, and if most of the attention is devoted to inculcating these inventions in a relatively small number of people, then that will create an elite who will use their skills to the disadvantage of everyone else, who did not receive this education. What these people prefer to use instead is a lowest-common-denominator notion of egalitarianism, which doesn't promote egalitarian virtues in the long run, because it attenuates the possibility of maintaining a society where people can enact them. If we forget the hard stuff, because it's hard, we won't get the benefits they offer, over time. We will revert to a pre-modern state, because all the power to maintain our civilization is in these ideas. Keeping them as conventions/traditions is not good enough, because as we see, conventions get challenged via. a pragmatic, anti-tradition impulse with each new generation.

Re: Alan Kay is still waiting for his dream to come true

#205

Earlier quoted context omitted.

I think that currently the best example of modular code is Haskell. Functions and Functors/Monads can be used to express the most elegant abstraction over data that I am aware of. In Haskell, you can write a program that uses maps/folds/etc, your program is suddenly able to use any kind of Monad-derived data type. Everything is discrete, since everything that isn't purely functional is wrapped in a Monad.

> most elegant abstraction over data This may be. We should also step back consider if building functional abstractions over data is a good way for modelling all of computation itself? Or something like 'smaller virtual computers all the way down' (i.e. smalltalk) is a better model? Decomposing a thing into the smaller things of the same kind seems cleaner from a certain perspective, at least. In Haskell, higher leve…

The other neat thing about modular and functional programming is that since modules/functions are discrete, you can drop in any replacement you want to, without the rest of the codebase even noticing (except during the build process).

As a real example, you can use Haskell's Foreign Function Interface (FFI) to call C functions, and wrap C structs. The rest of your Haskell code doesn't even need to know about it. You can use the same interface with a variety of languages in place of C. Rust even has a specific compiler option for generating C-compatible shared object/dll files.

Re: Alan Kay is still waiting for his dream to come true

#206

Earlier quoted context omitted.

I think that currently the best example of modular code is Haskell. Functions and Functors/Monads can be used to express the most elegant abstraction over data that I am aware of. In Haskell, you can write a program that uses maps/folds/etc, your program is suddenly able to use any kind of Monad-derived data type. Everything is discrete, since everything that isn't purely functional is wrapped in a Monad.

> most elegant abstraction over data This may be. We should also step back consider if building functional abstractions over data is a good way for modelling all of computation itself? Or something like 'smaller virtual computers all the way down' (i.e. smalltalk) is a better model? Decomposing a thing into the smaller things of the same kind seems cleaner from a certain perspective, at least. In Haskell, higher leve…

> In Haskell, higher level functions can be composed from other functions, which is very clean. But the state isn't inside the function

> ... Another perspective is thinking about building large scale systems and coupling of modules

Both models have been proven formally equivalent, so it doesn't matter which one you use as the base computation model "all the way down"; you can always transform one into the other.

So in practice you end using the one which best represents the problem domain that you're solving. State-based object-orientation works best to represent simulations of the world where previous states are not needed. Functional is best when you need to reason about the properties of the system, since it allows you to access any present or past state of the computation.

Re: Alan Kay is still waiting for his dream to come true

#207

Earlier quoted context omitted.

Thank you for the reply. I think you hit the nail on the head -- even though making the distinction between what people "want" and "deserve" is not very popular in the US (or where I live and anywhere else for that matter) at the moment (or even since the 70s or so). Despite all the self-improvement books and seminars and everything, the norm is that people should just be given what they want, and not anything harder…

"In fact a person would be labelled "elitist" to dare suggest anything else -- e.g. that universities are not just vocational schools for getting the skills for one's future job, or that technology should not just be about what Joe Public is capable of mastering, but about advancing Joe and Jane public." I've run into this very thing. The ironic thing about it is advocating for literacy, and understanding the abstrac…

I think more needs to be done to understand why some really hard things to do -- like hitting a baseball, shooting 3 pointers, etc. -- are not considered elitist, and have literally millions of children spending many hours practicing them. (And note that it is hard to find complaints about the "unfairness" of sports teams trying to find and hire the very best players.)

And, in the end, very few get really good (I think I saw somewhere that there are only about 70,000 professional athletes in the US -- vs e.g. about 900,000 PhDs in the sciences, math, engineering and medicine.)

Two ideas about this are that (a) these are activities in which the basic act can be seen clearly from the first, and (b) are already part of the larger culture. There are levels that can be seen to be inclusive starting with modest skills (cooking is another such).

Music is interesting to look at. If the music is simple, we find the singing of songs with lyrics vastly more popular than instrumentals on the pop charts. But we also find "guitar gods" at the next and still high level of popularity. As the music gets more complex and requires more learning to be able to hear what is going on, the popularity drops off (and this has happened in many pop genres over the last 100 years or so). A lot of pop culture (I think) comes from teenagers wanting their place in the sun, and quickly. Finding a genre that's doable and can be a proclamation of identity -- akin to trying to be distinctive with clothing or hair cuts -- can be much easier than tackling a developed skill.

I think a very large problem for the learning of both science and math is just how invisible are their processes, especially in schools. The wonderful PSSC physics curriculum from the 50s (https://en.wikipedia.org/wiki/Physical_Science_Study_Committ...) bridged that gap with many short films showing scientists doing their thing on topics and using methods that were completely understandable right from the first minutes. This made quite a difference to many high school students.

I think I said somewhere in the blather of the interview that the easiest way to deal with the problems of teaching reading is to revert back to an oral society, especially if schools increasingly give in to what students expect from their weak uses of media. A talk I gave some years ago showed an alternating title line: between "The best way to predict the future is to invent it" and "The easiest way to predict the future is to prevent it". The latter is more and more popular these days.

Re: Alan Kay is still waiting for his dream to come true

#208

Earlier quoted context omitted.

My reason for drawing your attention to this section of the talk is to show some of the ideas (now 40-50 year old) were about "dynamic media" - of course live computing should be part of the combined media experience on a personal computer -- and of course you should be able to do what are now called "mash ups", but to be able to combine useful things easily and at will (it's crazy that this e.g. isn't even provided…

Thank you for taking the time to respond, and I'd really appreciate if you can clarify my follow up below too! > every thing in the system is a dynamic object -- there are no "date structures" I'm still programming in data structures :/. I've seen many of your talks over the years and it took me quite a while to realize what you mean by objects (I think) is not just the textual specification (i.e. 'source code' in to…

Yes, you have the gist of our approach in the 60s and especially at Parc in the 70s. And the Doug McIlroy parts of Unix also got this (the "pipes" programming and other ideas).

What I called "objects" ca 1966 was a takeoff from Simula and Sketchpad that was highly influenced by both biology, by the "processes" (a kind of virtual computer) that were starting to be manifested by time-sharing systems, and by my research community's discussions and goals for doing an "ARPAnet" of distributed computers. If you took the basic elements to be "computers in communication" you could easily get the semantics of everything else (even to simulate data structures if you still thought you needed them).

So, yes, everything could be thought of as "servers". Smalltalk at Parc was entirely structured this way (and the demo I made from one of the Parc Smalltalks for the Ted Nelson tribute shows examples of this).

It's worth noting that you then have made a "software Internet", and this can be mapped in many ways over a physical Internet.

And so forth. This got quite missed. In a later interview Steve said that he missed a bunch of things from his visit to Parc in 1979. What was ironic was that the context of the interview was partly that the SW of the NEXT computer now did have these (in fact, not really).

To be a bit more fair, big culprits in the miss in the 80s were Motorola and Intel for not making IC CPUs with Chuck Thacker's emulation architectures that we used at Parc to be able run ultra high level languages efficiently enough. The other big culprit was that you could do -something- and sell it for a few thousand dollars, whereas what was needed was something whose price tag in the early 80s would have been more like $10K.

Note that a final culprit here is that the personal computer could not be seen for all it really was, and especially in the upcoming lives of most people. The average price of a car when the Mac came out was about $9K (that according to the web is about $20K today -- the average price of a car today is about $28K). To me a really good personal computer is worth every penny of $28K -- I'd love to be able to buy $28K of personal computer! One way to evaluate "the computer revolution" is to note not just what most people do with their computers in all forms, but what they are willing to pay. I think it will be a while before most people can see enough to put at least the value of a car on their "information and thinking amplifier vehicle"

Re: Alan Kay is still waiting for his dream to come true

#209

Earlier quoted context omitted.

Thank you for taking the time to respond, and I'd really appreciate if you can clarify my follow up below too! > every thing in the system is a dynamic object -- there are no "date structures" I'm still programming in data structures :/. I've seen many of your talks over the years and it took me quite a while to realize what you mean by objects (I think) is not just the textual specification (i.e. 'source code' in to…

I think your analogy is going in a better direction. I had the same idea after taking a look at Squeak for a while. What would need to be added to your analogy is a notion of design. You see, in Smalltalk, for example, your programming takes place in the messages. So, even the daemons (which, for the sake of argument, we could think of as analogies to objects), which would be the senders and receivers of messages wou…

"More or less" ... I can see that it's hard after decades of "data-centric" perspectives to think in terms of "computers" rather than "data", and about semantics rather than pragmatics. It's not "data contains procedures" but that objects are (a) semantically computers, and are impervious to attack from the outside (a computer has to let an attack happen via its own internal programming), and (b) what's inside can be anything that is able to deal with messages in a reasonable way. In Smalltalk, these are more objects (there are only objects in Smalltalk). The way the internals of typical Smalltalk objects are organized could be done better (we used several schemes, but all of them had variables and methods (which were also objects).

So "2" is not "data" in Smalltalk (unfortunately, it is in Java, etc.)

We had planned that the interior of objects should be an "address space of objects" because this is a better and more recursive way to do modularization, and to allow a different inter-viewing scheme (we eventually did some of this for the Etoys system for children about 20 years ago). But the physical computers at Parc were tiny, and the code we could run was tiny (the whole system in the Ted Nelson demo video was a little over 10,000 lines of code for everything). So we stayed with our top priority: to make a real and highly interactive system that was very comprehensive about what it and the user could do together.

Re: Alan Kay is still waiting for his dream to come true

#210
post #62

Earlier quoted context omitted.

That's the problem here, actually, but not in the way you think. There are alternatives (Canvas, SVG, etc.) but they're not as good for the standard use case of coming up with something quick that fulfills the business requirement. And then we need to recognize that that stack is a fucking abomination that should be burned with fire. It should so deeply embarrass us, that we wouldn't want to admit that we use it in p…

What should embarrass us so deeply and why? HTML and CSS are some of the most generative, enduring, and transformative technologies ever. I wouldn't fund anyone who doesn't recognize how great they are!

Innovation is, by definition, not very respectful of the past or the status-quo. Innovation is, by definition, mutiny.
Post reply on HN