‹ BackHN Continuity

Thread

Alan Kay: Shannon gave us a way of dealing with noisy channels [video]

151 points · 36 comments · behoove

  1. shevy-java · · focus · HN ↗
    It would have been kind of great to see an OOP language with Alan's design, but with a better syntax. I dislike smalltalk syntax. Barely anyone uses smalltalk today.

    Even then, we'd also have an OOP language to be really really fast. Otherwise people will just use C.

    Java itself is too verbose and has a rather boring OOP model.

    1. Rochus · · focus · HN ↗
      How about Elixir and Erlang? They do pretty much exactly what Kay preaches.

      Interestingly, the OO model that Wirth and Gutknecht implemented in the Oberon system corresponds better to Kay's message-based vision than Smalltalk-80. Wirth arrived here not by trying to emulate biology, but by trying to avoid the V-Table.

      Java implemented the Simula 67 object model, confirmed e.g. by a 2017 Gosling lecture (as did early C++ and Smalltalk-80 to a significant degree).

      1. DonHopkins · · focus · HN ↗
        Speaking of vtables, at Kristen Nygaard's 100-year birthday celebration Bjarne Stroustrup also gave a fascinating talk after Alan Kay's, and they had some spicy back-and-forth discussion afterwards! Both call themselves Nygaard's heirs, anbd it was a delightful and respectful interplay between very different world views.

        Kay came to Simula as a reader, turned it into Smalltalk, and later knew Nygaard and Dahl as colleagues. Stroustrup was taught by Nygaard in person, as a student at Aarhus, and then used Simula for his PhD.

        Roughly: Stroustrup said he never took much from Smalltalk. What he took from Simula was the static part, compile-time guarantees and a direct map to hardware with zero-overhead abstraction, and C++ was never meant to be just an object-oriented language, since not everything is a class hierarchy or a virtual function. Kay argued that late binding pays for itself because the human is the slow part of an interactive system, and that static typing is a good idea applied prematurely. They agreed that the real job of an operating system or the internet is never to crash and never lose anything, and came at it from opposite ends: Stroustrup is working on guarantees against dangling pointers, out of range access, and uninitialized memory in C++, while Kay pointed out that Smalltalk protected every object dynamically.

        Alan Kay's talk:

        <a href="https:&#x2F;&#x2F;au.cloud.panopto.eu&#x2F;Panopto&#x2F;Pages&#x2F;Viewer.aspx?id=fe0c3b34-90d9-4853-94db-b4b3009fd277&amp;start=12581" rel="nofollow">https:&#x2F;&#x2F;au.cloud.panopto.eu&#x2F;Panopto&#x2F;Pages&#x2F;Viewer.aspx?id=fe0...

        Bjarne Stroustrup&#x27;s talk:

        <a href="https:&#x2F;&#x2F;au.cloud.panopto.eu&#x2F;Panopto&#x2F;Pages&#x2F;Viewer.aspx?id=fe0c3b34-90d9-4853-94db-b4b3009fd277&amp;start=14791" rel="nofollow">https:&#x2F;&#x2F;au.cloud.panopto.eu&#x2F;Panopto&#x2F;Pages&#x2F;Viewer.aspx?id=fe0...

        The discussion afterwards:

        <a href="https:&#x2F;&#x2F;au.cloud.panopto.eu&#x2F;Panopto&#x2F;Pages&#x2F;Viewer.aspx?id=fe0c3b34-90d9-4853-94db-b4b3009fd277&amp;start=17774" rel="nofollow">https:&#x2F;&#x2F;au.cloud.panopto.eu&#x2F;Panopto&#x2F;Pages&#x2F;Viewer.aspx?id=fe0...

        If you hate llm generated summaries then you can stop here and go watch the entire video yourself, but here are timestamps and summaries for people who don&#x27;t have five hours to spare (although I highly recommend it -- I was watching it in real time when I witnessed the feedback performance between talks):

        4:56:49: Stroustrup says he was never much inspired by Smalltalk. What he took from Simula was the static part: compile-time guarantees. &quot;It would be nice to say yes, but to be honest, not much.&quot;

        4:58:25: Stroustrup on garbage collection versus scope-based resource management (RAII): nobody has managed to combine them. Java&#x27;s finalizers are his example, and somene mentions Lars Bak, &quot;also from here&quot; (Aarhus), says never use finalizers, they&#x27;re evil.

        5:00:24: Banter. Someone asks whether there&#x27;s anything he likes about Smalltalk, and the reply is &quot;Anything you like about me?&quot;

        5:00:47: Kay agrees reuse isn&#x27;t a good reason for much, asks why people cling to old languages, and brings up the CrowdStrike crash taking down hospitals.

        5:02:05: Stroustrup says CrowdStrike was a violated configuration rule, not a language problem. Programmers and managers are conservative and &quot;confuse familiar with simplicity.&quot; He&#x27;s not saying C++ is right for everything, and Python&#x27;s all-dynamic approach is successful.

        5:04 to 5:06: Kay says late-bound slowness pays for itself because humans are the slow part of interactive computing. Computing is held back by corporate legacy, and PARC was lucky to build all its own hardware and software.

        5:07: An audience question about the next ten years. Kay says operating systems and the internet put you in a different seat of responsibility: the goal is never to crash and never to lose anything.

        5:08:59: Stroustrup agrees, but says he doesn&#x27;t control any operating system. He&#x27;s working on guarantees in C++: no dangling pointers, no out-of-range access, no uninitialized memory.

        5:09:55: Kay says typing is a really good idea, just premature in its static form. Smalltalk&#x27;s dynamic typing protected every object.

        5:10:34: Stroustrup says it&#x27;s very hard to get hardcore developers to stop believing they can crash a system.

        5:11:59 to 5:13:40: Kay says the Smalltalk image was a complete operating system, and that he made a living writing microcode. The field is guilty of not keeping up with the hardware. Stroustrup says he tried to talk hardware makers into adding support features, in his PhD, and failed.

        1. andrekandre · · focus · HN ↗

            &gt; Computing is held back by corporate legacy, and PARC was lucky to build all its own hardware and software.
          
          this really resonates... apple makes both the hardware and software, is massively profitable and yet swift is basically a much much better c++ in a lot of ways. and xcode is just totally absurd excuse of a development environment...

          is it better than before and welcome improvement? yes, but fundamentally conservative compared to what parc was doing with much much less...

          1. DonHopkins · · focus · HN ↗
            Alan&#x27;s lament about MVC applies to many things in computing:

            <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=8841428">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=8841428

            &gt;I asked Alan Kay about his thoughts on MVC:

            [...]

            &gt;From: Alan Kay

            &gt;Things seem to hang on in computing just because they work a little bit.

            &gt;MVC was originally done at PARC almost 40 years ago. The good part was philosophical -- the idea to adapt the notion of &quot;cameras&quot; and &quot;worlds&quot; in the original 3D graphics stuff I participated in at Utah 45 years ago. The bad part of MVC was how we implemented it -- much too much machinery, etc.

            &gt;We (my various groups since then, including Viewpoints Research) have not thought about MVC since, but have used and devised various viewing methods over the last 20+ years. I like to do views as &quot;watchers&quot; which do not affect what they are viewing. There are lots of ways to do this. Similarly, I like to also use &quot;watchers&quot; (context sensitive to the views) to catch needed inputs. We have never done a really satisfactory automatic inverter for dealing with the loss of &quot;dimensions&quot; that happen when a view is made (but we have done some experimental ones).

            &gt;One important criterion is for end-users of all kinds to be able to easily make their own views in a very powerful ad hoc way via construction. We have done a number of adaptations and generalizations of how this can be done in Hypercard -- and this seems to work well (enough).

            &gt;Since we always roll our own languages and development systems, we don&#x27;t care about problems that other systems might have. For example, we have very little knowledge about C#, etc. We do try to learn from the few good systems that are out there.

            [...]

            1. andrekandre · · focus · HN ↗
              that also rings true, as someone who has had to deal with mvc in various forms; its all so complicated, and views as watchers is exactly what i&#x27;d want

              slight digression, but i feel like alot of the want for using llms for coding is because people are tired of dealing with all the complexity of implementing things that should be simple and easy; like llms are a crutch for complexity we are drowning in and people just want to &quot;throw it at the llm&quot; and be done with it...

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.