Live data from Hacker News

Alan Kay has agreed to do an AMA today

news.ycombinator.com

651–660 of 931 posts

Re: Alan Kay has agreed to do an AMA today

#651
post #474

Earlier quoted context omitted.

What kinds of changes to your thought processes did you make?

First of all, I now enjoy talking about myself :) I stopped assuming I knew everything, and a childlike sense of wonder returned to my life. I began looking beyond what was directly in front of me and sought out more comprehensive generalizations. What do atoms have in common with humans? What does it mean to communicate? Do we communicate with ecosystems? Do individuals communicate with society? What is consciousnes…

Thanks, this is very interesting!

Re: Alan Kay has agreed to do an AMA today

#652
post #2

Hi Alan, how do you think that object-oriented programming and distributed computing will intertwine in the not-so-far future?

I've been constantly surprised about how what I called "object-oriented" and "system-oriented" got neutered into Abstract Data Types, etc., (I think because people wanted to retain the old ways of programming with procedures, assignment statements, and data structures. These don't scale well, but enormous amounts of effort have been expended to retain the old paradigms ...

Indeed.

I think another part of it was people wanted to go on using systems the way they had been, with the operating system being a base layer on which things happen, which does not exist as a foundation for building a different system. To create code, you put it in files, files go in directories, you compile it into a static executable, which becomes temporarily dynamic when executed, and then goes back to being static when it exits, because it was based on a static image. The OS makes it difficult for the executable to update the state of its own image, assuming that trying to do so is a mistake. You run it on top of the OS, not in the OS, not part of it. It's the recapitulation of the application metaphor, where the app. only exists while someone is using it, and then all its state goes away when they're done with it, unless a small piece of it is serialized (unpacked into raw bytes, with no meta-code) for later retrieval. With that kind of setup, the thinking is there's no need for inter-entity relationships that become part of the larger whole, though eventually people wanted applications systems with capabilities, and so more cruft got added onto the pile, trying to create versioned late-binding in the midst of a system designed for abstract data types.

When I talk to people about OOP, I explicitly try to distinguish it from ADTs and systems like I've described above, though I'm at a bit of a loss to come up with a phrase for what to call languages that people commonly call "OO." I've sometimes called them procedural languages, with an extra layer of scoping, or that work with ADTs, but that's a mouthful.

Re: Alan Kay has agreed to do an AMA today

#653

Hi Alan, My understanding was that you were there at the keynote where Steve Jobs launched the iPad. From what we've heard Steve came up to you after the event and asked you what you thought (implicitly acknowledging your work on the Dynabook). Subsequent interviews suggested you thought that the iOS range of products "were the first computers good enough to criticise". My question is: what has to happen next for the…

I won't presume to speak for Alan, but my understanding of what he's said is very different historically. As I recall, he said that the first Macintosh was "the first computer worth criticizing" (something like that). When Jobs introduced the iPhone, he asked Alan whether it was "worth criticizing," and he said no, but if Jobs were to make it a certain size (I forget the dimensions he mentioned, but one of them was 8"), he would "own the world." This suggested the iPad, which did become very popular, though arguably the iPhone became even more so.

I remember one thing Alan said (this was a couple years after the introduction of the iPhone, but I think it was before the iPad), which relates to your question is, "I wish they'd allow people to program the darn thing," which I took to mean, "program on the darn thing!"

Tablet computers existed long before the iPad, though they were bulky and expensive. I used to write software that ran on Telxon tablet units back in the mid-1990s, which used WiFi. A bit later they got enough memory and processing power that we were able to run Microsoft Windows on them, though they cost several thousand dollars each (not a consumer price point). I remember in video of a reunion of former Xerox PARC employees (around the year 2000. It's on the internet), Chuck Thacker held up a Tablet PC running Squeak, and he said, "This is a Dynabook right here." That sort of thing is more of a Dynabook than the iPad, because the software development licensing restrictions for iOS don't even allow people to share code from one unit to the next, because it's considered a security hazard. Apple let up on the restrictions such that people could write code on them, in an environment such as Scratch, but they're not allowed to share code from unit to unit. Instead, they have to jump through hoops, posting code on a web server for others to download.

Part of what the Dynabook was supposed to do was allow people to share code without the thought that it was a security hazard, because it would be designed to be a safe environment for that sort of thing. The iPad has the hardware form factor of a Dynabook (if I may say so), but its system ideas are far from it. It's designed as a consumer product where people are supposed to use it for personal interaction, gaming, consumption of digital content, and little else.

Re: Alan Kay has agreed to do an AMA today

#654

Earlier quoted context omitted.

Other points of consideration: My coworkers might not already know some library, but they definitely won't know my library. My coworker's code is just about as "3rd party" as any library - as is code I wrote as little as 6 months ago. Also my job owns that code, so rolling my own means I need to write another clone every time I switch employers - assuming there's no patents or overly litigious lawyers to worry about.…

It's all trade-offs. If there happens to be a well-tested third party library that does what you want, doesn't increase your attack surface more than necessary, is supported by the community, is easy to get up and running with, and has a compatible license with what you are using it in, then by all means go for it. For me and my work, I tend to find that something from the above list is lacking enough that it makes m…

You're not wrong. The fundamental issue wasn't in-house vs third party libraries.

The developers around me tend to be inept at time estimation. They completely lack that aptitude. To be fair, so do I. I slap a 5x multiplier onto my worst case estimates for feature work... and I'm proud to end up with a good average estimate, because I'm still doing better than many of my coworkers at that point. Thank goodness we're employed for our programming skills, not our time estimation ones, or we'd all be unemployable.

They think "this will only take a day". If I'm lucky, they're wrong, and they'll spend a week on it. If I'm unlucky, they're right, and they'll spend a day on it - unlucky because that comes with at least a week's worth of technical debt, bugs, and other QC issues to fix at some point. In a high time pressure environment - too many things to do, too little time to do it all in even when you're optimistic - and it's understandable that the latter is frequently chosen. It may even be the right choice in the short term. But this only reinforces poor time estimation skills.

The end result? They vastly underestimate the cost of supporting the extra code they'll write. They make the "right" choice based on their understanding of the tradeoffs, and roll their own library instead of using a 3rd party solution. But as we've just established their understanding was vastly off basis. Something must give as a result, no matter how good a programmer they are otherwise: schedule, or quality. Or both.

Re: Alan Kay has agreed to do an AMA today

#655
post #457

Earlier quoted context omitted.

AS someone that read at least one book per day if not more since the age of 6, yes it is possible. I can read between 100 to 200 page per hour, depending of the book. You reach a storage and money problem fast (Ebook are a savior nowadays). And you tend to have multiple books open at the same time. How does it work? There are several strategy. First i read fast. Experience and training make you read really fast. Seco…

> In a fiction book, it is not unusual for me to not read a chapter or two because i know what will happen inside. This is ridiculous. It doesn't count as reading if you skip whole chapters.

Hell, I 'read' whole books by just reading the back cover! This way, I get through hundreds of books every time I visit the library!

Re: Alan Kay has agreed to do an AMA today

#656

Earlier quoted context omitted.

This is why "the objects of the future" have to be ambassadors that can negotiate with other objects they've never seen. Think about this as one of the consequences of massive scaling ...

Along this line of logic, perhaps the future of AI is not "machine learning from big data" (a lot of buzz words) but computers that generate runtime interpreters for new contexts.

When high bandwidth communication is omnipresent, is "portability" of the interpreter really something to optimize for?

Re: Alan Kay has agreed to do an AMA today

#657

Earlier quoted context omitted.

Have you looked into the various Haskell/OCaml to hardware translators people have been coming up with the past few years? It seems like it's been growing and several FPGA's are near that PnP status. In particular the notion of developing compile time proved RTS using continuation passing would be sweet. Even with newer hardware it seems we're still stuck in either dynamic mutable languages or functional static ones.…

Without commenting on Haskell, et al., I think it's important to start with "good models of processes" and let these interact with the best we can do with regard to languages and hardware in the light of these good models. I don't think the "stuckness" in languages is other than like other kinds of human "stuckness" that come from being so close that it's hard to think of any other kinds of things.

Thanks! That helps reaffirm my thinking that "good models of processes" are important, even though implementations will always have limitations. Good to know I'm not completely off base...

A good example for me has been virtual memory pattern, where from a processes point-of-view you model memory as an ideal unlimited virtual space. Then you let the kernel implementation (and hardware) deal with the practical (and difficult details). Microsoft's Orleans implementation of the actor model has a similar approach that they call "virtual actors" that is interesting as well.

My own stuckness has been an idea of implementing processes using hierarchical state machines, especially for programming systems of IoT type devices. But I haven't been able to figure out how to incorporate type check theorems into it.

Re: Alan Kay has agreed to do an AMA today

#658
Since you care about education so deeply, but also seem to be critical of a lot of recent technological developments that appear to be more accessible than some of the systems / approaches we had in the past: Do you think that it is a reasonable path to embrace technologies with shortcomings, and perhaps even to utilize a reduction in expressiveness of UIs, such as hiding the ability to multitask, or to employ the power of games to "draw us in [and keep us spellbound]" (where [this] part may be a danger), if this can form points of entry for young people who may otherwise not have found their way into technology (think smartphones in rural areas without reliable other means to guarantee access to information to large numbers of people; e.g. lack of mentors and role models), or would it be more promising to rather focus on developing alternative means for "on-boarding"?

Re: Alan Kay has agreed to do an AMA today

#659
post #656

Earlier quoted context omitted.

Along this line of logic, perhaps the future of AI is not "machine learning from big data" (a lot of buzz words) but computers that generate runtime interpreters for new contexts.

When high bandwidth communication is omnipresent, is "portability" of the interpreter really something to optimize for?

How can you find it?

The association between "patterns" and interpretation becomes an "object" when this is part of the larger scheme. When you've just got bits and you send them somewhere, you don't even have "data" anymore.

Even with something like EDI or XML, think about what kinds of knowledge and process are actually needed to even do the simplest things.

Re: Alan Kay has agreed to do an AMA today

#660

Earlier quoted context omitted.

This is why "the objects of the future" have to be ambassadors that can negotiate with other objects they've never seen. Think about this as one of the consequences of massive scaling ...

Along this line of logic, perhaps the future of AI is not "machine learning from big data" (a lot of buzz words) but computers that generate runtime interpreters for new contexts.

It's not "Big Data" but "Big Meaning"
Post reply on HN