Earlier quoted context omitted.
> and the next phase of this would have been much closer as a "deep" extensible language. Are these ideas (and the 'address space of objects') elaborated on somewhere? > 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 g…
You need to have "things that can answer questions". I'd like to get the "right answer" when I ask a machine for someone's date of birth, and similarly I'd like to get the right answer when I ask for their age. It's quite reasonable that the syntax in English is the same. ? 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 talk…
Alan Kay is still waiting for his dream to come true
281–290 of 297 posts
Re: Alan Kay is still waiting for his dream to come true
#282Earlier quoted context omitted.
Yes, "collections" and other such things in Smalltalk are "the Christian Scientists with appendicitis". Our implementations were definitely compromises between seeing how to be non-imperative vs already having the "devil's knowledge" of imperative programming. One of the notions we had about objects is that if we had to do something ugly because we didn't have a better idea, then we could at least hide it behind the…
> Yes, "collections" and other such things in Smalltalk are "the Christian Scientists with appendicitis". Interesting to hear this perspective - drives home the point that we shouldn't just stop at generic late bound data structures. > Only some important dependencies were mitigated by the actual Smalltalks. Dependency management in today's systems is just mind numbing. If only we had a better way to name and locate…
Re: Alan Kay is still waiting for his dream to come true
#283Earlier quoted context omitted.
> Yes, "collections" and other such things in Smalltalk are "the Christian Scientists with appendicitis". Interesting to hear this perspective - drives home the point that we shouldn't just stop at generic late bound data structures. > Only some important dependencies were mitigated by the actual Smalltalks. Dependency management in today's systems is just mind numbing. If only we had a better way to name and locate…
One of the things I've realized is that using names for locating what's needed (I assume we're talking about the same idea) is part of the problem. At small scales it's fine. As systems get bigger, it becomes a problem. The internet went through this. When it started as the Arpanet, there was (if I remember correctly) one guy who kept the directory of names for each system on the network. The network started small, s…
I don't think naming itself a problem if you have a fully decentralized system. E.g., each agent (org or person) can manage their namespace any way they choose in a single global virtual namespace. I'm imagining something like ipfs/keybasefs/upspin, but for objects, not files, and with some immutability and availability guarantees.
But yes, there should probably be other ways to find these things, using some kind of semantic lookup/negotiation.
Re: Alan Kay is still waiting for his dream to come true
#284Earlier quoted context omitted.
You need to have "things that can answer questions". I'd like to get the "right answer" when I ask a machine for someone's date of birth, and similarly I'd like to get the right answer when I ask for their age. It's quite reasonable that the syntax in English is the same. ? 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 talk…
Thank you for the elaboration! (And for anyone else reading this thread I found an old message along the same topic: http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-... ) I'm thinking along these lines now: decompose systems along lines of 'meaning', not data structures (data structures add zero meaning and are a kind of 'premature materialization'), design messages first, late bind everything so you have…
I finally got the idea, after listening to Kay for a while, that even what we call operating systems should be objects (though, as Xerox PARC demonstrated many years ago, there is a good argument to be made that what we call operating systems need a lot of rethinking in this same regard, ie. "What we call X should be objects."). It occurred to me recently that we already have been doing that via. VMs (through packages such as VMWare and VirtualBox), though in pretty limited ways.
Incidentally, just yesterday, I answered a question from a teacher on Quora who wanted advice on how to teach classes and methods to a student in Python, basically saying that, "The student is having trouble with the concepts of classes and methods. How can I teach those ideas without the other OOP concepts?" (https://www.quora.com/Can-I-explain-classes-and-objects-with...) It prompted me to turn the question around, and really try to communicate, "You can teach OOP by talking about relationships between systems, and semantic messaging." If they want to get into classes and methods later, as a way of representing those concepts, they can. What came to mind as a way around the class/method construct was a visual environment in which the student could experience the idea of different systems communicating through common interfaces, and so I proposed EToys as an alternative to teaching these ideas in Python. I also put up one of Kay's presentations on Sketchpad, demonstrating the idea of masters and instances (which you could analogize to classes and object instances).
I felt an urge, though, to say something much more, to say, "You know what? Don't worry about classes and methods. That's such a tiny concept. Get the student studying different kinds of systems, and the ways they interact, and make larger things happen," but I could tell by the question that, dealing with the situation at hand, the class was nothing close to being about that. It was a programming class, and the task was to teach the student OOP as it's been conceived in Python (or perhaps so-called "OOP". I don't know how it conceives of the concept. I haven't worked in it), and to do it quickly (the teacher said they were running out of time).
The question has gotten me thinking for the first time that introducing people to abstract concepts first is not the right way to go, because by going that route, one's conceptions of what's possible with the idea become so small that it's no wonder it becomes a religion, and it's no wonder our systems don't scale. As Kay keeps saying, you can't scale with a small conception of things, because you end up assuming (locking down) so much, it's impossible for its morphology to expand as you realize new system needs and ways of interacting. The reason for this is that programming is really about, in its strongest conception, modeling what we know and understand about systems. If we know very little about systems that already exist, their strengths and weaknesses, our conception of how semantic connections are made between things is going to be very limited as well, because we don't know what we don't know about systems, if we haven't examined them (and most people haven't). The process of programming, and mastering it, makes it easy enough to tempt us to think we know it, because look, once we get good enough to make some interesting things happen (to us), we realize it offers us facilities for making semantic connections between things all day long. And look, we can impress people with that ability, and be rewarded for it, because look, I used it to solve a problem that someone had today. That's all one needs, right?...
Kay has said this a couple different ways. One was in "The Early History of Smalltalk". He asked the question, "Should we even teach programming?" Another is an argument he's made in a few of his presentations: Mathematics without science is dangerous.
Re: Alan Kay is still waiting for his dream to come true
#285Earlier quoted context omitted.
I can't remember if I've brought this up already in this thread, but if you want to "kick the tires" on ST-72, Dan Ingalls has an implementation of it up on the web. It's running off of a real ST-72 image. I wrote about it at https://tekkie.wordpress.com/2014/02/19/encountering-smallta... I include a link to it, and described how you can use it (to the best of my knowledge), though my description was only current to…
> I wrote about it at https://tekkie.wordpress.com/2014/02/19/encountering-smallta... . Sweet, thanks! There's also the ST-78 system at https://lively-web.org/users/bert/Smalltalk-78.html > existed in a nether world between functions and macros Macros are just functions that operate on functions at 'read-time', from my POV. So if you eliminate the distinction between read-time and run-time, they're the same. > It's j…
Right. What I meant was that the parsing would begin with "eyeball" (ST-72 was an iconic language, so you would get a character that looked like an eye viewed sideways), and then everything after that in the line was a message to "eyeball," talking about how you wanted to parse the stream--what patterns you were looking for--and if the patterns matched, what messages you wanted to pass to other objects. That was your "selector" and method. What felt weird about it, after working in Squeak for a while, is these two concepts were combined together into "blobs" of symbolic code. You would have a series of these "messages to eyeball" inside a class. Those were your methods.
The reason I said it was similar to COND was it had a similar format: A series of expressions saying, "Conditions I'm looking for," and "actions to take if conditions are met." It was also similar in the sense that often that's all that would be in a class, in the same way that in Lisp, a function is often just made up of a COND (unless you end up using a PROG instead, which I consider rather like an abomination in the language).
In ST-72, there's one form of conditional that uses a symbol like "implies" in math (can't represent it here, I don't think), and another where you can be verbose, saying in code, "if a = b then do some stuff." But what actually happens is "if" is a class, and everything else ("a = b then do some stuff") is a message to it. Of course, you could create a conditional in any form you want.
In ST-80, they got rid of the "if" keyword altogether (at least in a "standard" system), and just started with a boolean expression, sending it a message.
a = b ifTrue: [] ifFalse: [].
They introduced lambdas (the parts in []'s) as objects, which brought some of the semantics "outside of the class" (when viewed from an ST-72 perspective). It seems to me that presents some problems to its OOP concept, because the receiver is not able to have complete control over the meaning of the message. Some of that meaning is determined by partitioned "blocks" (lambdas) that the receiver can't parse (at least I don't think so). My understanding is all it can do with them is either pass parameter(s) to the blocks, executing them, or ignore them.
One of the big a-ha moments I had in Smalltalk was that you can create whatever control structures you want. The same goes for Lisp. This is something you don't get in most other languages. So, a temptation for me, working in Lisp, has been to spend time using that to work at trying to make code more expressive, rather than verbose. A positive aspect of that has been that it's gotten me to think about "meanings of meaning" in small doses. It creates the appearance to outsiders, though, that I seem to be progressing on a problem very slowly. Rather than just accepting what's there and using it to solve some end goal, which I could easily do, I try to build up from the base that's there to what I want, in terms of expression. What I have just barely scratched the surface of is I also need to do that in terms of structure--what you have been talking about here.
Re: Alan Kay is still waiting for his dream to come true
#286Earlier 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…
I have been working with the web since 1997, but almost only on the server-side (back in the the simpler web 1.0 days) and (during the past decade) on the browser UX/network side. I just recently started looking at actually creating some web content that uses the modern web stack. Holy moly. What a cluster f__k of insanely over/badly-engineered craziness.
Re: Alan Kay is still waiting for his dream to come true
#287Earlier quoted context omitted.
1. The definitions are the boundary -- these are what are used to make the interior. The analogy is to definitions (used to be called axioms) in math. Simple for math (because it is only about itself). Difficult for science because we can't just make up the definitions, we have to try to find ones that have some mappings to "out there". A boundary for chemistry is the physics standard model. Within physics the model…
A few years back, I wondered: Why is it I believe in things no else agrees with? I seemed to look at the different schools of thought, pick the best one that answers as many questions as possible, and believe in it until something better comes along (ie can it solve more problems than the previous school of thought). (But, I was at least somewhat aware it was not scientific or scholarly. A combination of logic, emoti…
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.
Re: Alan Kay is still waiting for his dream to come true
#288Earlier quoted context omitted.
> Yes, "collections" and other such things in Smalltalk are "the Christian Scientists with appendicitis". Interesting to hear this perspective - drives home the point that we shouldn't just stop at generic late bound data structures. > Only some important dependencies were mitigated by the actual Smalltalks. Dependency management in today's systems is just mind numbing. If only we had a better way to name and locate…
One of the things I've realized is that using names for locating what's needed (I assume we're talking about the same idea) is part of the problem. At small scales it's fine. As systems get bigger, it becomes a problem. The internet went through this. When it started as the Arpanet, there was (if I remember correctly) one guy who kept the directory of names for each system on the network. The network started small, s…
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").
Re: Alan Kay is still waiting for his dream to come true
#289Earlier quoted context omitted.
One of the things I've realized is that using names for locating what's needed (I assume we're talking about the same idea) is part of the problem. At small scales it's fine. As systems get bigger, it becomes a problem. The internet went through this. When it started as the Arpanet, there was (if I remember correctly) one guy who kept the directory of names for each system on the network. The network started small, s…
> One of the things I've realized is that using names for locating what's needed (I assume we're talking about the same idea) is part of the problem. I don't think naming itself a problem if you have a fully decentralized system. E.g., each agent (org or person) can manage their namespace any way they choose in a single global virtual namespace. I'm imagining something like ipfs/keybasefs/upspin, but for objects, not…
Re: Alan Kay is still waiting for his dream to come true
#290Earlier quoted context omitted.
> Yes, "collections" and other such things in Smalltalk are "the Christian Scientists with appendicitis". Interesting to hear this perspective - drives home the point that we shouldn't just stop at generic late bound data structures. > Only some important dependencies were mitigated by the actual Smalltalks. Dependency management in today's systems is just mind numbing. If only we had a better way to name and locate…
One of the things I've realized is that using names for locating what's needed (I assume we're talking about the same idea) is part of the problem. At small scales it's fine. As systems get bigger, it becomes a problem. The internet went through this. When it started as the Arpanet, there was (if I remember correctly) one guy who kept the directory of names for each system on the network. The network started small, s…
I wonder with the Internet now if anything effectively different is even possible, considering that it's no longer a small network but everywhere like the air we breathe.