Sos un grande Juan!!!!! Que locura verte en una entrevista con Kris! Saludos Translation (Just in case): You are a genius Juan!!! It's so cool to see you in an interview with Kris!
Hearing "Dynamic Typing", "Metaprogramming", "self" and more reminded me a lot of Ruby. Given the history I assume Ruby took these things from Smalltalk. Great talk!
Alan Kay used to be active on Quora a few years ago (not that that’s all he did) and wrote quite a bit about Smalltalk, messaging, and systems thinking and design. I wonder if he’s available? Or perhaps you’ve already tried?
I finally worked out what a term was that I must have misheard (and so must the subtitles translator) - sheeted code. For those that don't understand the wonderful accent, Juan is meaning JIT/JITted code, not sheeted code. And Smalltalk IoT is Smalltalk-80, of course. "Shamp" is jump. I hope these help. Aside from that misunderstanding, this is an excellent low-level interview about the guts of Smalltalk.
@@DeveloperVoices Thank you! YT should allow users to suggest subtitle editions instead of making you work on that. There are other errata as expected from the automatic captioning; some are very minor, some are more important, like when the Xerox Alto and the Vax are mentioned around 7:22
The irony of your comments about so much looking like C is that C, itself, looks SO MUCH like BCPL. ;) It's funny, at school in the early 1980s, we learned BASIC and had a few lessons on "other languages exist" and Smalltalk was very briefly covered as "just a teaching language not really useful for real programming". Never has such an important language been sold so short. But listening to some of Alan Kay's aims it's finally easier to see where this misconception came from.
5 місяців тому+1
I'd suggest you interview Junio C Hamano - Git maintainer
LISP is the father of all programming language and every programing language try to emulate its features. Since SICP I have only been dreaming in lisp.
I don't write as much Lisp as I used to, but it remains one of my favourite languages. ❤️ You might like this episode we did on Lisp a while back: ua-cam.com/video/fytGL8vzGeQ/v-deo.html
Writing this comment having not actually watched the video yet .. but no doubt it will be excellent .. they all have been :) But it just struck me that I really like your intros. I've watched quite a few lately and from seeing the title I always come to them with a bunch of things I'd like to find out about 'X' (and it will be an interesting chat if nothing else). By the time I've finished the intro I realise I didn't think hard enough about the questions. Sets the tone so well. Now where the pause button :)
I worked for a few years for a company using smalltalk for their desktop UI (because reasons). Getting bug reports that *contained the whole app in the error state* was pretty amazing, I am slightly disappointed that Cuis has "true", false" and "nil" as keywords; the dialect I was using let a sufficiently bored developer undelete the constructors and release entirely new boolean and undefined values into the program.
What do you mean by undelete the constructors? The classes True, False, and UndefinedObject are still there; and you can say for example, `myTrue := True basicNew. myTrue become: true`, at your peril. Or create your own boolean algebra from scratch.
This has already been done in a meaningful way. Distributed Smalltalks, based on Smalltalk’s messageNotUnderstood: mechanism and Smalltalk’s reflection mechanisms that make it straightforward to serialize an object to a byte stream and deserialise it, have evolved since the 80’s. Two notable ones are ControlWORKS, which is the control software for the wafer processing machines built by Lam Research. Another is Croquet, a replicated 3D world. Both of these systems federate live Smalltalk images in a network, in Croquet’s case anywhere on earth.
It would be nice if the ui lives outside the vm being debugged / mutated. Restarting images might deal well with objects having wrong content because they were generated by out of date initialization code. In typed languages interfaces serve as a way to document contracts. Clojure introduced spec. Is there a similar practice in the smalltalk community?
And another quick question if I still have your attention Elliott. Where do you stand now on smalltalk vs self from a vm implementers perspective. Is there even a practical division?
Remote debugging has been implemented as part of distributed programming. But no one has yet finished a project to modularize the ui/system interface so that one can debug from different images. I worked on one such project at ParcPlace-Digitalk but corporate instability cancelled the project, an all too common occurrence. As far as contracts and interfaces, one can get a long way with using abstract classes, where by defining a class whose method implementation ls are all ^self subclassResponsibility one has defined the interface without constraining the implementation in any way. But what most people want in Smalltalk is not more constraints, but more static analysis, and for that, the best solution is advisory type systems, Gilad Bracha’s Strongtalk being the best. Alas Strongtalk the type system (as opposed to Strongtalk the vm and ancestor of Java HotSpot) has never been productized. A reimplementation of Strongtalk the type system would be a great PhD or a super ambitious masters project. Gilad isn’t proud of the Strongtalk the type system code, and won’t release if, and we have to respect that. These ideas resurfaced in the Dart type system.
@@richcole157 I am no expert but I think it would be considered incomplete to not include subclassResponsibility method definitions in abstract classes; and if there is no abstract class, there are the protocols themselves, which are fully inspectable. You are free to break a contract and that will rise a MNU exception at runtime instead of compile time. You are free to send a “private” message, at your peril. You are free to break encapsulation, also at your peril. Newspeak has a more contemporary distopyan attitude inspired by the experience with Java. There is ongoing work in Cuis with the goal to provide fully bootstrapable images specified in code, from scratch.
C check, lisp check, prolog check. SmallTalk ups... but lots of Java, and 20 others. I no expert but cant see much relation between prolog and SQL, boolean logic? Prolog you right first order statements forming a knowledge base then you ask... sql manipulates data in logic statements. Ok. Maybe thats it. Props for the prolog ;) nobody talks about it.
I was thinking about the declarative vs. imperative programming style, and the unification of sets of facts based purely on programmer-specified relationships.
@@DeveloperVoiceshi there, got it! My keywords are logic, functional, imperative and oo. But declarative as logic makes perfect scence. You declare in deed. Do some video(visual display unit) about prolog aplications. That is ai too. Its suited for all tnagers ;) Just say true or false. Its super cool. The tnager can say: roses are red, violets are blue, i am in love, so are you. Then you ask: am i red? Prolog says no. Very powerfull.
I don't enjoy these talks about "history" of programming languages too much. I loved the database internals series, like the duckdb for example. I would sure like to hear some more technical aspect of writing a compiler, but this mathematical pondering about what the right ways to program are is not for me. But obviously, the production quality and the host are both phenomenal! Again.
Thank you very much Kris. I has been a real pleasure!
Sos un grande Juan!!!!! Que locura verte en una entrevista con Kris!
Saludos
Translation (Just in case): You are a genius Juan!!! It's so cool to see you in an interview with Kris!
Thank you! I'm really glad you joined me. 👍
Great interview! Always a pleasure listening to Juan
Nice presentation of Cuis and Smalltalk
Hearing "Dynamic Typing", "Metaprogramming", "self" and more reminded me a lot of Ruby. Given the history I assume Ruby took these things from Smalltalk.
Great talk!
Another great episode. Really love these interviews with language designers, compiler constructors and *real* developers in general
The focus on children is the right path forward, timeless
Alan Kay used to be active on Quora a few years ago (not that that’s all he did) and wrote quite a bit about Smalltalk, messaging, and systems thinking and design. I wonder if he’s available? Or perhaps you’ve already tried?
He is still active on Quora!
I've heard a strong rumor that he will not be around much longer however.
@@LawsonEnglish You mean his health is failing?
Argentine detected ❤ ⭐⭐⭐
Jaja totalmente 😊
Kris you are a special kind of guy, love your show and pacing and insights brother 🐐
Thanks! 🤘
Great interview! Always a pleasure listening to Juan
Thanks for the reminder. Can't believe I wasn't subscribed with the amount of videos I've been watching recently
I finally worked out what a term was that I must have misheard (and so must the subtitles translator) - sheeted code. For those that don't understand the wonderful accent, Juan is meaning JIT/JITted code, not sheeted code. And Smalltalk IoT is Smalltalk-80, of course. "Shamp" is jump. I hope these help. Aside from that misunderstanding, this is an excellent low-level interview about the guts of Smalltalk.
Heck, I should have caught that. Thanks very much - I've updated the subtitles with your fixes. 🙏
@@DeveloperVoices Thank you! YT should allow users to suggest subtitle editions instead of making you work on that. There are other errata as expected from the automatic captioning; some are very minor, some are more important, like when the Xerox Alto and the Vax are mentioned around 7:22
12:05 LNK -> Alan Kay XD
1:07:24 Hilaire Fernandes
1:12:25 Hernán Wilkinson, Máximo Prieto
It would be good if you could interview Gilhad Bracha.
Woah! Someone I actually know in person!
Thaks for this to you and Juan!
the term for smalltalk is "programming system" which is the same for Emacs and Common Lisp, not for Clojure.
The irony of your comments about so much looking like C is that C, itself, looks SO MUCH like BCPL. ;)
It's funny, at school in the early 1980s, we learned BASIC and had a few lessons on "other languages exist" and Smalltalk was very briefly covered as "just a teaching language not really useful for real programming". Never has such an important language been sold so short. But listening to some of Alan Kay's aims it's finally easier to see where this misconception came from.
I'd suggest you interview Junio C Hamano - Git maintainer
Nice suggestion. Thanks, I'll get in touch. 👍
LISP is the father of all programming language and every programing language try to emulate its features.
Since SICP I have only been dreaming in lisp.
I don't write as much Lisp as I used to, but it remains one of my favourite languages. ❤️
You might like this episode we did on Lisp a while back: ua-cam.com/video/fytGL8vzGeQ/v-deo.html
Writing this comment having not actually watched the video yet .. but no doubt it will be excellent .. they all have been :)
But it just struck me that I really like your intros. I've watched quite a few lately and from seeing the title I always come to them with a bunch of things I'd like to find out about 'X' (and it will be an interesting chat if nothing else). By the time I've finished the intro I realise I didn't think hard enough about the questions. Sets the tone so well.
Now where the pause button :)
I worked for a few years for a company using smalltalk for their desktop UI (because reasons).
Getting bug reports that *contained the whole app in the error state* was pretty amazing,
I am slightly disappointed that Cuis has "true", false" and "nil" as keywords; the dialect I was using let a sufficiently bored developer undelete the constructors and release entirely new boolean and undefined values into the program.
What do you mean by undelete the constructors? The classes True, False, and UndefinedObject are still there; and you can say for example, `myTrue := True basicNew. myTrue become: true`, at your peril. Or create your own boolean algebra from scratch.
Alan Kay 🌿🌿🌿🌿
Resr Admiral Grace Harper invented Cobol.
I hope I got her title right.
I write quite a bit of Prolog 😡
D'you know, I soooo nearly said, "If you actually write Prolog please get in touch." 😅
I'd love to hear what it's being used for...
we all have our kinks
would love to learn something about Picat.
Smalltalk needs processes, a world of vms instead of one vm.
This has already been done in a meaningful way. Distributed Smalltalks, based on Smalltalk’s messageNotUnderstood: mechanism and Smalltalk’s reflection mechanisms that make it straightforward to serialize an object to a byte stream and deserialise it, have evolved since the 80’s. Two notable ones are ControlWORKS, which is the control software for the wafer processing machines built by Lam Research. Another is Croquet, a replicated 3D world. Both of these systems federate live Smalltalk images in a network, in Croquet’s case anywhere on earth.
It would be nice if the ui lives outside the vm being debugged / mutated. Restarting images might deal well with objects having wrong content because they were generated by out of date initialization code.
In typed languages interfaces serve as a way to document contracts. Clojure introduced spec. Is there a similar practice in the smalltalk community?
And another quick question if I still have your attention Elliott. Where do you stand now on smalltalk vs self from a vm implementers perspective. Is there even a practical division?
Remote debugging has been implemented as part of distributed programming. But no one has yet finished a project to modularize the ui/system interface so that one can debug from different images. I worked on one such project at ParcPlace-Digitalk but corporate instability cancelled the project, an all too common occurrence.
As far as contracts and interfaces, one can get a long way with using abstract classes, where by defining a class whose method implementation ls are all ^self subclassResponsibility one has defined the interface without constraining the implementation in any way. But what most people want in Smalltalk is not more constraints, but more static analysis, and for that, the best solution is advisory type systems, Gilad Bracha’s Strongtalk being the best. Alas Strongtalk the type system (as opposed to Strongtalk the vm and ancestor of Java HotSpot) has never been productized. A reimplementation of Strongtalk the type system would be a great PhD or a super ambitious masters project. Gilad isn’t proud of the Strongtalk the type system code, and won’t release if, and we have to respect that. These ideas resurfaced in the Dart type system.
@@richcole157 I am no expert but I think it would be considered incomplete to not include subclassResponsibility method definitions in abstract classes; and if there is no abstract class, there are the protocols themselves, which are fully inspectable. You are free to break a contract and that will rise a MNU exception at runtime instead of compile time. You are free to send a “private” message, at your peril. You are free to break encapsulation, also at your peril. Newspeak has a more contemporary distopyan attitude inspired by the experience with Java.
There is ongoing work in Cuis with the goal to provide fully bootstrapable images specified in code, from scratch.
C check, lisp check, prolog check. SmallTalk ups... but lots of Java, and 20 others. I no expert but cant see much relation between prolog and SQL, boolean logic? Prolog you right first order statements forming a knowledge base then you ask... sql manipulates data in logic statements. Ok. Maybe thats it. Props for the prolog ;) nobody talks about it.
I was thinking about the declarative vs. imperative programming style, and the unification of sets of facts based purely on programmer-specified relationships.
@@DeveloperVoiceshi there, got it! My keywords are logic, functional, imperative and oo. But declarative as logic makes perfect scence. You declare in deed. Do some video(visual display unit) about prolog aplications. That is ai too. Its suited for all tnagers ;) Just say true or false. Its super cool. The tnager can say: roses are red, violets are blue, i am in love, so are you. Then you ask: am i red? Prolog says no. Very powerfull.
I don't enjoy these talks about "history" of programming languages too much. I loved the database internals series, like the duckdb for example. I would sure like to hear some more technical aspect of writing a compiler, but this mathematical pondering about what the right ways to program are is not for me.
But obviously, the production quality and the host are both phenomenal! Again.