Live data from Hacker News

Alan Kay has agreed to do an AMA today

news.ycombinator.com

271–280 of 931 posts

Re: Alan Kay has agreed to do an AMA today

#271

1. What do you wish someone would ask you so that you could finally share your thoughts, but nobody has broached as a subject? 2. (This question is about interactive coding, as a dialogue). Human dialogs (conversations) are interactive. I think in the past computers were limited, and computer languages had to be very small (as compared with any human language + culture) so that a programmer could learn what the compu…

1. I actually don't think this way -- my actual interior is a kind of "hair-ball" and so questions are very helpful. 2. Let's do a dialog about this. Note that taking the process far enough starts resembling prayer to a deity and gives rise to many kinds of hedging. Math is completely expressible in ordinary language, but instead, the attempt to make it less ambiguous leads to conventions that have to be learned. Tha…

>Let's do a dialog about this.

Okay! I'm up for a dialog with Alan Kay if Alan Kay is up for a dialog with me :)

>gives rise to many kinds of hedging.

100% agreed. I have a great example of hedging. Human languages are usually quite ambiguous. But there's an exception: when there is a legal document, then if it gets to court the other party can take any ambiguity and turn it around. (For example argue that an "it" refers to other than the closest possible referent.) As a result, legal documents are very unambiguous. This makes them very, very explicit. Implicit contexts, and human culture, are difficult - they get lost with time. If you've ever read Shakespeare's dialogues, they're hard to understand without heavy glossing just 400 years later. But we actually have a copy of Shakespeare's will. Here it is: http://www.cummingsstudyguides.net/xWill.html

Without a single gloss or footnote and without modernizing the spelling (as we do for plays) you can understand nearly 100.00% of it 400 years later. Without even modernized spelling, you could likely turn it into "code" (it's very similar to code) with complete unambiguity.

But the actual "conversation" that led to that, in the room where Shakespeare was talking with the lawyer, if we had a transcript, would be likely impenetrable to us without careful reading and maybe footnotes -- just like the dialogue of Shakespeare's plays. Imagine calling up your lawyer and leaving a voicemail describing what you want in some document. That might lead to a brief dialog and then a draft for your approval. That dialog would be hard to understand, possibly even for an outsider today.

So the question is: is there room for an 'agent' (service) that builds up a shared context with someone interacting with it, then produces something for outside consumption? That might mean that the user can say "it" or "unless" but the service turns "it" into a referent (and makes sure it got the right want) and turns unless into "; if ( not ) { }" for outsiders. I say this because this is only one interpretation of "unless". Another interpretation is that an exception might happen that you want to address and then not continue...

>Math is completely expressible in ordinary language, but instead, the attempt to make it less ambiguous leads to conventions that have to be learned.

This is very true and extremely interesting. When people rearrange an equation in symbolic form (crossing out common factors, etc), they do so doing complex symbol processing that isn't linguistic in nature. I think it's a different tangent from the one I'm asking about - after all, would it be common for anyone to write "The limit of the function f of x, as x tends to 0" instead of the common lim notation?

So the line of thinking with symbolism is extremely powerful, and after all isn't that why we have whiteboards that don't have neat lines on them for you to write sentences into? Diagrams / symbols / pictures are all very powerful and aspects of thinking. This part is tangential to what I was thinking of.

It would be interesting, though, if the interactive process could produce a diagram for you to rearrange if you wanted. I don't know if you know electrical engineering (probably!) but magine being able to ask an interactive service "I'd like a simple circuit that lights a led from a battery", and you get one -- as well as some questions about whether you really didn't need any fuses in it? what sized batteries you were talking about? that it's a DC circuit right? And so forth. It's a separate question whether you could rearrange the results.

Of course, if you are allowed to say something like "I'd like a circuit around an ARM processor where all the components cost under $30 in quantity under 1000 including pcb setup costs". That's like praying to a diety!

Is there room for some level of interaction between "double x" and praying?

Wolfram Alpha certainly suggests there is. Although it doesn't ask you anything back / isn't interactive, I've certainly been shocked at some of the things it was able to interpret.

For example, I could ask it how far sound travels in 10 ms, so that I could judge what large of a perceived physical offset effect introducing 10 ms of latency would cause. Well, I just tried it again so I could link to you, and it didn't get "how far does sound travel in 10 ms", it didn't get "distance sound travels in 10 ms", but on my third try "speed of sound in air * 10 ms" it got me the answer - its interpretation was:[1]

>speed of sound in dry air at 20 °C and 1 atmosphere pressure×10 ms (milliseconds)

and it gave me 3.432 meters.

What is interesting is that there was nothing interactive in this process, just me guessing until it got what I meant. It didn't ask me anything back. For me, the three phrases I just quoted are equal. For Wolfram Alpha, it misinterpreted the first two quite badly, and got the third one easily.

So the question is - could such a process be applied to programming? Could the user try to write "lowest common factor of a and b" have the compiler completely miss, try "least common factor of a and b", have the compiler completely miss, try "least common multiple of a and b" and finally have the compiler get it? Because that's not how programming works today. At all. (Well, in actual practice it kind of is thanks to Google - but it's not what goes on in the IDE.)

So it would be interesting to know if some progress could be made along these lines.

>have you thought about (say) objects needing to negotiate meaning with each other?

No, it's a tough one. For simplicity, I thought of the current output being boilerplate code (like existing C/C++ code), so that the headache you just mentioned doesn't need to be thought about :-D

[1] http://www.wolframalpha.com/input/?i=speed+of+sound+in+air+*...

Re: Alan Kay has agreed to do an AMA today

#272

Earlier quoted context omitted.

Smalltalk in the 70s was "just a great thing" for its time. The pragmatic fact of also wanting to run in it real-time fast enough for dynamic media and interactions and to have it fit within the 64Kbyte (maybe a smidge more) Alto rendered it not nearly as scalable into the future in many dimensions as the original ideas intended. We have to think about why this language is even worth mentioning today (partly I think…

I think it is the only language that enables a single individual to understand a big and complex system like the development environment itself.

LISP machines, Solo, Edison, Oberon... quite a few systems and languages had that capability if the users and/or developers so desired. In the write-up he gave me, Kay seemed to suggest it had a unique combination of OOP support, conceptual brevity, and especially the late binding. I mean, good performance and stuff too. Those other things were considered key advantages over other systems I named.

Maybe also easier to match to hardware than LISP or FP DSL's along lines of Haskell. I'm a little out of my depth there, though. I just remember LISP machine and OS crowd having to innovate hard to fight performance issues. PreScheme & T being exceptions where low-level was easy.

Re: Alan Kay has agreed to do an AMA today

#273

I admire the compactness and power of Smalltalk. What advice would you give language designers looking to keep the cognitive load of a new language low? What was your design process like, and would you do it that way again?

What kinds of learning do you want your prospective programmers to go through? It's what you know fluently that determines cognitive load. In music you are asking for an answer in a range from kazoos to violins.

The main thing a language shouldn't have is "gratuitous difficulties" (or stupidities).

That said, it's worth thinking about the problems of introducing things in our culture today that even have the learning curves of bicycles, let alone airplanes ...

Or ... what is the place of tensor calculus in a real physical science?

Re: Alan Kay has agreed to do an AMA today

#274

I recall reading an article about 10 years ago describing a PARC research project in which networked computers with antennae were placed throughout a set of rooms, and the subject carried a small transmitter with them from room to room. As the computer in each room detected the transmitter, it triggered actions in each room. I think it was called "ambient computing." Does this ring a bell for you? I have searched for…

Now that's geofencing, smart homes, etc... Apps like Tasker on Android can do some of it.

You are thinking of something else ...

Re: Alan Kay has agreed to do an AMA today

#275
post #167

Looking at your 1972 Dynabook paper [1], would you make any changes to the Dynabook vision now? Also, what do you see as the biggest missing pieces (software or hardware) today? What current software gets closest to the vision? [1] Everyone should really take a look at the Dynabook paper: http://history-computer.com/Library/Kay72.pdf

There's a lot online and the Viewpoints "writings" page

Re: Alan Kay has agreed to do an AMA today

#277

Earlier quoted context omitted.

There's coming up with ideas: learn to dream while you are awake, the ideas are there. There's coming up with a good idea: learn how to not get buried in your ideas (most are mediocre down to bad even for people who have "good idea skills"!) I write down ideas in notebooks to get rid of them. Every once in a while one will capture a different point of view. And, there's the Princeton Tea joke of scientists comparing…

> There's coming up with ideas: learn to dream while you are awake, the ideas are there. Any advice on how to do that, especially for those of us who are completely non-visual thinkers (aphantasia)?

Dreaming can work without images. What are your sleeping dreams like?

Re: Alan Kay has agreed to do an AMA today

#278
When will we get better at saying what we mean? I don't think this just important when speaking with computers, but also human-to-human interaction.

What is the best interface for computer programming? I have settled on the keyboard with an emacs interpreter for now, but I'm curious if you believe voice, gestures, mouse or touch are or will be better ways of conveying information?

Re: Alan Kay has agreed to do an AMA today

#279
What is your take on the future of our general relationship with technology in the light of the new optimistic view of AI with recent advances in machine learning? I can't help but think we are over-estimating the upside, and under-estimating the problems (social, economic, etc.) much like the massive centralization of the net has had downsides hi-lighted by Snowden and others.

Re: Alan Kay has agreed to do an AMA today

#280
Hi Alan,

I have read a lot about you and your work at Xerox.

Do you enjoy travel? What continents have you been to? What's your favorite country outside the US?

How many hours a day did you sleep per day during your most productive research years? Cos i usually wonder how very productive people seem to achieve much more than others within the same 24 hours we all have.

Greetings form Lagos Nigeria.

Post reply on HN