<html><head><style id="css_styles" type="text/css"><!--blockquote.cite { margin-left: 5px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: 1px solid #cccccc }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; padding-top: 0px; }
a img { border: 0px; }
table { border-collapse: collapse; }
li[style='text-align: center;'], li[style='text-align: center; '], li[style='text-align: right;'], li[style='text-align: right; '] {  list-style-position: inside;}
body { font-family: 'Segoe UI'; font-size: 12pt; }
.quote { margin-left: 1em; margin-right: 1em; border-left: 5px #ebebeb solid; padding-left: 0.3em; }
--></style></head><body><div>Hi Ezequiel,</div><div><br /></div><div>> <span>I'd also urge everyone to read </span><a href="https://archive.org/details/computinghumanac0000naur/page/36/mode/2up" style="background-color: rgba(0, 0, 0, 0); font-size: 12pt; margin: 0px;">Programming as Theory Building</a><span> by Peter Naur</span></div><div><span><br /></span></div><div><span>Fascinating.</span></div><div><span><br /></span></div><div><span>It states a programmer has an understanding (or insight) of a program that is _not_ describable in any documentation. Naur calls this understanding a theory of a program. </span></div><div><span><br /></span></div><div><span>And hence advises to give up writing the traditional "documentation" because the m</span><span>ost you can do - and should do - is help others to build the same theory </span><span>of the program in their minds. This is what the documentation is about.</span></div><div><span><br /></span></div><div><span>I personally call this understanding a mental model. I write my comments to refresh my mental model when it fades in time, and hopefully help others to build theirs. </span></div><div><span><br /></span></div><div><span>I'm glad someone like Peter Naur said that. </span><span>Thanks very much for sharing the article.</span></div>
<div style="clear:both"><br /></div>
<div><br /></div>
<div>
<div>On 27-Jun-24 7:32:39 PM, "Ezequiel Birman via Cuis-dev" <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> wrote:</div></div><div><br /></div>
<div id="xc248ffdcb23c4d4"><blockquote cite="CAOo=t4e0jbZ1_Jt0rO=ZSY-Zc618YACuspFzEJNQe8=vu=EZnA@mail.gmail.com" type="cite" class="cite2">
<div dir="ltr"><div><div>Sorry in advance for the scattered replies<br /></div><div><br />Joseph Turco wrote:<br /></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">When Alan Kay and Adele Goldberg were testing smalltalk-80, they were using kids in school to play with it (...)<br /></blockquote><div>Children didn't use Smalltalk-80. For all that I know, children used Smalltalk-72 through Smalltalk-76. A good summary is provided in the article by Perry and Wallich, <a href="https://spectrum.ieee.org/xerox-parc/smalltalk-history">Inside the PARC: the `information architects'</a> from which I quote:<br /><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The first compiled version of Smalltalk, written in 1976, marked the end of the emphasis on a language that children could use. The language was now “a mature programming environment,” Ingalls said. “We got interested in exporting it and making it widely available.”<br /><br />The next major revision of Smalltalk was Smalltalk-80. Kay was no longer on the scene to argue that any language should be simple enough for a child to use. Smalltalk-80, says Tesler, went too far in the opposite direction from the earliest versions of Smalltalk: “It went to such an extreme to make it compilable, uniform, and readable, that it actually became hard to read, and you definitely wouldn’t want to teach it to children.”<br /><br />Kay, looking at Smalltalk-80, said, “It’s terrible that it can’t be used by children, since that’s who Smalltalk was intended for. It fell back into data-structure-type programming instead of simulation-type programming.”<br /></blockquote>I think that both Tesler and Kay are exaggerating here, but the push by Xerox to create “the office of the future” was real.<br /></div> <br /></div><div>Jaromir Matas wrote:<br /></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Your Youtube talk and especially your answers allowed me to read the articles with a whole new level of understanding. Especially Alan Kay's "A Personal Computer for Children of All Ages" has so much to say [...]<br /></blockquote><div>I wonder what percentage of people understand “children of all ages” the same way I do. Cyril Connolly said that Imprisoned in every fat man, a thin one is wildly signalling to be let out. I want to believe that I don't have much difficulty in letting my inner-child out. For good or ill, this view of children as unprejudiced, unspoiled, playful, curious little people (childlike) can coexist with the reality of their capricious and demanding nature (childish). One of the things we like about computers is the almost instant gratification they can provide.<br /></div></div></blockquote><div id="xc248ffdcb23c4d4">Great point!</div><br /><blockquote cite="CAOo=t4e0jbZ1_Jt0rO=ZSY-Zc618YACuspFzEJNQe8=vu=EZnA@mail.gmail.com" type="cite" class="cite2"><div dir="ltr"><div><br /></div><div><br /><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">[...]
 I have a problem with documenting though. You know I've tried to write 
as thorough comments as possible documenting intentions, explaining 
sticking points etc. (even if just to help myself understand it again a 
few months/weeks later) but IMHO it's still woefully insufficient - in 
addition to the more or less terse in-method comments I'd like to be 
able to add somewhere really close (even in-image Help files are too far
 away) more detailed descriptions, reasons for tradoffs, motivations, 
future plans, examples, etc. - but in a way that wouldn't clutter the 
environment. 
</blockquote></div><div>and<br /></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I'm not sure I understand the part about "knowledge" though: "Write, describe, communicate knowledge" - what does it mean exactly? Is it about Smalltalk as a language? The language itself is not that different from other (high-level) languages. A good language certainly is a great help to formulate things but it's still a "programming language".  I guess there more to it I didn't get :)<br /><br />Or is it about the whole concept including the live "OS-like" environment? But where the "writing knowledge" fits in?  <br /></blockquote><div>Maybe the misunderstanding is due to the fact that you are taking “documentation” at face value. In my mind, <i>every</i> program, at least every program written in something higher level than assembly language, can be regarded as “documentation”. And in a way, it is the best sort of documentation because it must execute. </div></div></div></blockquote><div id="xc248ffdcb23c4d4">Eze, I think I understand what you're getting at. However, I strongly disagree a program, even if nicely written, can be regarded as a documentation on its own. Gleaning author's idea from the code is, IMO, the<span> reverse engineering :) But I agree it's much better to follow Naur's approach and provide e.g. appropriate metaphors to help build reader's own "theory" (mental model) rather than the traditional documentation. </span></div><br /><blockquote cite="CAOo=t4e0jbZ1_Jt0rO=ZSY-Zc618YACuspFzEJNQe8=vu=EZnA@mail.gmail.com" type="cite" class="cite2"><div dir="ltr"><div><div>This is also different from Knuth's idea and realization of literate programming. I like his point of view only because I like reading for reading's sake, and I like books, and I like how <i>he</i> writes; but <a href="https://gigamonkeys.com/code-reading/" style="">code is not literature</a>. What I am talking about is more like a deliberate confusion between the map and the territory.</div></div></div></blockquote><div id="xc248ffdcb23c4d4">Interesting point, I'll think about it, thanks... Ok, but the idea of <span>literate programming still seems very nice for writing a tutorial, an active "book" where you both read stuff _and_ run stuff. No window switching. I should check Erudite as Mariano suggested.</span></div><br /><blockquote cite="CAOo=t4e0jbZ1_Jt0rO=ZSY-Zc618YACuspFzEJNQe8=vu=EZnA@mail.gmail.com" type="cite" class="cite2"><div dir="ltr"><div><div><br /><br /></div><div>“For the people that want a system that is fully malleable, even if limited, Smalltalk is still the best thing that has been built” said Juan in the interview, because all of the things you mentioned combined together with thoughtful design evolved during decades (if you also take into account Self, Morphic and other developments). If this is not a qualitative jump, I don't know what it is. </div></div></div></blockquote><div id="xc248ffdcb23c4d4">Indeed!</div><br /><blockquote cite="CAOo=t4e0jbZ1_Jt0rO=ZSY-Zc618YACuspFzEJNQe8=vu=EZnA@mail.gmail.com" type="cite" class="cite2"><div dir="ltr"><div><div>I cannot avoid thinking about the <a href="https://wiki.squeak.org/squeak/3459">balloon</a>; it conveys such an adequate picture.<br /></div><div><br /></div><div>Jaromir Matas wrote:<br /><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I've played a bit with Javascript and Python recently and my impression is they try to follow basically the same goal [...]<br /></blockquote><div>I disagree. Their original goal was to be “scripting” languages and thus, they favored scripting over robustness, comprehensibility, design, clarity, simplicity, and consistency. </div></div></div></div></blockquote><div id="xc248ffdcb23c4d4">ok, I get it :) Smalltalk started with much grander vision than most newer languages and it's still palpable.</div><br /><blockquote cite="CAOo=t4e0jbZ1_Jt0rO=ZSY-Zc618YACuspFzEJNQe8=vu=EZnA@mail.gmail.com" type="cite" class="cite2"><div dir="ltr"><div><div><div>Of course you can still write beautiful Python or JavaScript as you can write ugly Smalltalk. Kay has used the Ford-T metaphor; Ingalls compared Smalltalk to a musical instrument. I don't know about you but I prefer to play or learn to play a keyboard instrument in a beautifully crafted Steinway rather than in a cheap electronic Casio keyboard.<br /></div></div><div><br />Ken Dickey wrote:<br /><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> The Squeak folks noted Scheme48, which is/was a Scheme written in Scheme<br />which compiled to C and had decent performance on computers of the day<br />-- so they knew it could be done.<br /></blockquote><div>Thanks for reminding us! <a href="https://s48.org/">Scheme 48</a> was my scheme of choice back in the day.<br /><br /></div><div>Juan Vuletich wrote:<br /><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">There are several links at <a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/AboutCuis.md#the-philosophy-behind-cuis">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/AboutCuis.md#the-philosophy-behind-cuis</a> . Have you read them? Please do.</blockquote><div>I'd also urge everyone to read <a href="https://archive.org/details/computinghumanac0000naur/page/36/mode/2up">Programming as Theory Building</a> by Peter Naur</div></div></div></div></div></blockquote><div id="xc248ffdcb23c4d4"><br /></div>Thanks again for your comments,</div><div id="xc248ffdcb23c4d4">best,</div><div id="xc248ffdcb23c4d4">Jaromir</div><div id="xc248ffdcb23c4d4"><br /><blockquote cite="CAOo=t4e0jbZ1_Jt0rO=ZSY-Zc618YACuspFzEJNQe8=vu=EZnA@mail.gmail.com" type="cite" class="cite2"><div dir="ltr"><div><div><div><div><br /><br />-- <br /></div><div>Eze<br /></div></div></div></div></div><div dir="auto"><blockquote cite="http://6678A008.8000504@cuis.st/"><blockquote><font face="Verdana, Geneva,&#xD;&#xA;          sans-serif&#xD;&#xA;"><span style="font-size:13.3333px"><br /></span></font></blockquote></blockquote><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">A quarta, 26/06/2024, 23:47, Jaromir Matas via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> escreveu:<br /></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
    
  
  <div><div>Hi Juan,</div>
<div style="clear:both"><br /></div>
<div><br /></div>
<div>
<div>On 24-Jun-24 12:22:00 AM, "Juan Vuletich via Cuis-dev" <<a href="mailto:cuis-dev@lists.cuis.st" rel="noreferrer">cuis-dev@lists.cuis.st</a>> wrote:</div></div><div><br /></div>
<div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><blockquote cite="http://6678A008.8000504@cuis.st" type="cite" class="cite">

    On 6/23/2024 5:19 AM, Jaromir Matas via Cuis-dev wrote:<br />
    <blockquote type="cite" class="cite">
      <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc"><font face="Verdana, Geneva,&#xD;&#xA;          sans-serif&#xD;&#xA;"><span style="font-size:13.3333px">
            <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc"><span>I'm not sure I
                understand the part about "knowledge" though: "Write,
                describe, communicate knowledge" - what does it mean
                exactly? Is it about Smalltalk as a language? The
                language itself is not that different from other
                (high-level) languages. A good language certainly is a
                great help to formulate things but it's still a
                "programming language". 
</span><span>I guess there more
                to it I didn't get :) 
</span></div>
          </span></font><font face="Verdana, Geneva, sans-serif"><span style="font-size:13.3333px">
            <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc"><span><br />
              </span></div>
            <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc"><span>Or is it about the
                whole concept including the live "OS-like" environment?
                But where the "writing knowledge" fits in?
</span></div>
            <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc"><span><br />
              </span></div>
          </span></font></div>
    </blockquote>
    <br />
    There are only some many things that can be said in an hour.<br />
    <br />
    There are several links at
    <a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/AboutCuis.md#the-philosophy-behind-cuis" rel="noreferrer">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/AboutCuis.md#the-philosophy-behind-cuis</a>
    . Have you read them? Please do.</blockquote><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">I'm so glad you nudged me to read them. Your Youtube talk and especially your answers allowed me to read the articles with a whole new level of understanding. Especially Alan Kay's "A Personal Computer for Children of 
 All Ages" has so much to say; here's what caught my attention (re objects vs. processes):
</div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">quote</div></div><blockquote style="margin:0px 0px 0px 40px;border:medium;padding:0px"><div style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x80081d2c76e44e08a66fc84e6babadb5" style="overflow-wrap: break-word;"><p class="MsoNormal">The following principles should be used in the design of the
Dynabook language.
</p></div></div></div><div style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x80081d2c76e44e08a66fc84e6babadb5" style="overflow-wrap: break-word;"><p class="MsoNormal">1. We need a uniform notion as to what objects are, how they
may be referred to, and how they can manipulate other objects. 
</p></div></div></div><div style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x80081d2c76e44e08a66fc84e6babadb5" style="overflow-wrap: break-word;"><p class="MsoNormal">2. If each object can have its own control path, then there
must be a concise way to coordinate and "control" these paths when
more than one is active. 
</p></div></div></div><div style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x80081d2c76e44e08a66fc84e6babadb5" style="overflow-wrap: break-word;"><p class="MsoNormal">3. The evaluation of a control path should follow simple
rules which show how objects are passed messages and return results. 
</p></div></div></div><div style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x80081d2c76e44e08a66fc84e6babadb5" style="overflow-wrap: break-word;"><p class="MsoNormal">4. Every object in a system should be redefinable in terms
of other objects. 
</p></div></div></div><div style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x80081d2c76e44e08a66fc84e6babadb5" style="overflow-wrap: break-word;"><p class="MsoNormal">The basic idea is to exploit the duality between 'functions
and tables (or processes and memory). English has nouns which refer to
"objects", and verbs which refer to "actors" and
"relators". This is a Newtonian epistemology. Modern physics and
philosophy tend towards the idea that both "objects" and
"actors" are just different aspects of the notion of 
<u>process</u>.
A process has 
<u>state</u> (a set of relations having only to do with it) which
changes as time (defined as interactions with other objects) passes. Using this
view "data" is a process which changes "slowly",
"function" is a process which changes more rapidly. Each process has
the logical attributes of a complete "micro" computer: they can have
inputs, give back outputs, act as a memory on file system, perform
computations, be interrupted, etc. […] Since multiple control paths are
allowed, many processes can be in various stages of evaluation and debugging. 
</p></div></div></div></blockquote><div style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><div id="m_6909433296862530731m_-6636895616652457427x80081d2c76e44e08a66fc84e6babadb5" style="overflow-wrap: break-word;">

<p class="MsoNormal"><u></u><u></u></p>

<p class="MsoNormal"><u></u><u></u></p>

<p class="MsoNormal"><u></u><u></u></p>

<p class="MsoNormal"><u></u><u></u></p>

<p class="MsoNormal"><u></u><u></u></p>

<p class="MsoNormal"><u></u><u></u></p></div></div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">unquote</div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><br /></div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">Do I understand correctly that Alan Kay suggests in (2) that each object should have its own control path (i.e. a thread, aka a process in Smalltalk vocabulary)? Is he somehow placing an equal sign between objects and actors (like e.g. Squeak Actors by Tony Garnock-Jones, <a href="https://tonyg.github.io/squeak-actors/" style="font-size:12pt" rel="noreferrer">https://tonyg.github.io/squeak-actors/</a>) where actors are implemented as processes. Would that implicate that the idea was that objects should do their jobs in parallel, each in its own process (control path), i.e. asynchronously, rather than synchronously and on a single control path unless explicitely forked? </div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><br /></div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">This part really confused me; it's quite a difference whether you do:</div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">    car driveTo: aPlace</div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">and assume the car just does it (asynchronously) until it arrives there while the current control path continues or:</div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">    [car driveTo: aPlace] fork</div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">where you explicitly give the car it's own control path.</div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><br /></div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">Or have I misunderstood it completely? :)))</div><br /><blockquote cite="http://6678A008.8000504@cuis.st" type="cite" class="cite"><br />
    <br />
    And, as I said at the start of the podcast, Smalltalk is an
    attitude. If you are a programmer, wanting to solve some problem
    with code, then Smalltalk is a good programming language. But if you
    want to explore a field, understand, and document your journey of
    discovery and invention, you could use pencil and paper. Or perhaps
    Jupyter Notebooks. Or Smalltalk. If you use Smalltalk this way, it
    is way more than a programming system. 
</blockquote><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">Yup, that's what I use Smalltalk for - exploring, seeking active understanding. I have a problem with documenting though. You know I've tried to write as thorough comments as possible documenting intentions, explaining sticking points etc. (even if just to help myself understand it again a few months/weeks later) but IMHO it's still woefully insufficient - in addition to the more or less terse in-method comments I'd like to be able to add somewhere really close (even in-image Help files are too far away) more detailed descriptions, reasons for tradoffs, motivations, future plans, <span>examples, etc. - but in a way that wouldn't clutter the environment.</span></div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><span><br /></span></div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><span>Now that you mentioned Jupyter Notebooks - I was wondering why Cuis Text Editor won't allow running code fragments - like the Workspace; whether it could serve as a richer documentation medium and "active" - able to run the examples just like Jupyter Notebooks. Or maybe I just missed something that already works that way... </span></div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);"><span><br /></span></div><div id="m_6909433296862530731m_-6636895616652457427x4bdaca16726449a" style="color: rgb(0, 0, 0);">A note about exploration: I like to use Smalltalk to explore exceptions and e.g. tried to use them just as another workflow control mechanism. Recently, however, I've attended an OOP lecture where this type of use of exceptions was strongly discouraged. But this has nothing to do with OOP - maybe in Python or Java is doesn't make much sense due to their particular implementation but in Smalltalk - why not? :) And besides that Smalltalk is the only language I'm aware of that implements exceptions that can resume the computation - all other mainstream ones can only make return.</div><br /><blockquote cite="http://6678A008.8000504@cuis.st" type="cite" class="cite"><br />
    <br />
    <blockquote type="cite" class="cite">
      <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc"><font face="Verdana, Geneva,&#xD;&#xA;          sans-serif&#xD;&#xA;"><span style="font-size:13.3333px">
            <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc">Other question -
              Smalltalk was originally supposed to be the universal
              environment above the hardware level. Everything below the
              VM is the hardware (a machine language), everything above
              the VM is Smalltalk (the UI, apps...). Even the VM is
              written in a simplified Smalltalk (Slang); what was
              supposed to be the role of C - to stay as an intermediary
              between the Smalltalk level and the hardware or was (is?)
              it supposed to be eliminated somehow eventually?
</div>
          </span></font></div>
    </blockquote>
    <br />
    In my opinion, "Design Principles Behind Smalltalk" is the canon
    here. C had no role originally, only much later. And its only role
    is to be a useful implementation language for VMs. Nothing special.
<br />
    <br />
    <blockquote type="cite" class="cite">
      <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc"><font face="Verdana, Geneva,&#xD;&#xA;          sans-serif&#xD;&#xA;"><span style="font-size:13.3333px">
            <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc"><br />
            </div>
            <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc">And one more note about
              "easy to use, intuitive, for children" - this refers to
              the DynaBook concept, right? Smalltalk as a language is a
              lot of things but certainly not those things :) Simple
              syntax doesn't mean simplicity but it thank god it saves
              me from remembering tons of syntactic rules :) Anyway,
              many thanks for explaining the DynaBook concept!
</div>
            <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc"><br />
            </div>
            <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc">Thanks again for the
              great talk!
</div>
            <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc">best,</div>
            <div id="m_6909433296862530731m_-6636895616652457427x405daaafacbd4dc">Jaromir</div>
          </span></font></div>
    </blockquote>
    <br />
    Yes. Smalltalk was started as the "software half" of a Dynabook.
    You'd read about the history, starting from Smalltalk-72, its
    objectives and the experiences done by the Parc Learning Research
    Group. And what happened after that, how they did Smalltalk-80, and
    to what extent focus was changed. Same with the developments
    described in the Green Book, and later commercial Smalltalks. How /
    why focus changed? What happened with "for children"? Out of where
    did Etoys, Scratch, and the whole world of tile programming came to
    be?
<br />
    <br />
    I think it is best to read what the people who did all this wrote.
    For instance, start with
    
<a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/Philosophical/OnMakingDynabooksReal.md" rel="noreferrer">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/Philosophical/OnMakingDynabooksReal.md</a>
    . Yes, the stuff in the Cuis repo is there for a reason.</blockquote><div style="color: rgb(0, 0, 0);">Alan Kay writes: </div><div style="color: rgb(0, 0, 0);">"<span>we'll know if we have the first Dynabook if we can make the end-user experience one of "reading and writing" about "powerful ideas" in a dynamic form, and to do this in such a way that large percentages of the bell-curve can learn how to do this."</span></div><div style="color: rgb(0, 0, 0);"><span><br /></span></div><div style="color: rgb(0, 0, 0);"><span>Q: Would an AI count as a UI? I'm thinking supplying an AI intermediary between the user and the system (replacing or rather complementing a keyboard) would make the system accessible to a wider range of users. It would help using the system, facilitate the user's learning, you name it. I hope this fantasy doesn't contradict somehow the Dynabook's idea :)</span></div><div style="color: rgb(0, 0, 0);"><br /></div>Thanks again,</div><div style="color: rgb(0, 0, 0);">Jaromir</div><div style="color: rgb(0, 0, 0);"><br /><blockquote cite="http://6678A008.8000504@cuis.st" type="cite" class="cite"><br />
    <br />
    Cheers,<br />
    <pre cols="72">-- 
Juan Vuletich
<a href="http://cuis.st" rel="noreferrer">cuis.st</a>
<a href="http://github.com/jvuletich" rel="noreferrer">github.com/jvuletich</a>
<a href="http://researchgate.net/profile/Juan-Vuletich" rel="noreferrer">researchgate.net/profile/Juan-Vuletich</a>
<a href="http://independent.academia.edu/JuanVuletich" rel="noreferrer">independent.academia.edu/JuanVuletich</a>
<a href="http://patents.justia.com/inventor/juan-manuel-vuletich" rel="noreferrer">patents.justia.com/inventor/juan-manuel-vuletich</a>
<a href="http://linkedin.com/in/juan-vuletich-75611b3" rel="noreferrer">linkedin.com/in/juan-vuletich-75611b3</a>
<a href="http://twitter.com/JuanVuletich" rel="noreferrer">twitter.com/JuanVuletich</a>
</pre>
  </blockquote></div>


</div>-- <br />
Cuis-dev mailing list<br />
<a href="mailto:Cuis-dev@lists.cuis.st" rel="noreferrer">Cuis-dev@lists.cuis.st</a><br />
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer noreferrer">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br />
</blockquote></div></div>
</blockquote></div>
</body></html>