Srini K
08/05/2022, 8:25 PMIvan Lugo
08/06/2022, 12:12 AMTony Worm
08/06/2022, 4:10 AMJack Rusher
08/06/2022, 6:46 AMTony Worm
08/06/2022, 7:14 AMJack Rusher
08/06/2022, 9:00 AMKonrad Hinsen
08/06/2022, 1:10 PMJack Rusher
08/06/2022, 3:06 PMIvan Reese
Tony Worm
08/06/2022, 9:58 PMTony Worm
08/06/2022, 10:05 PMguitarvydas
08/07/2022, 2:37 AMJack Rusher
08/07/2022, 7:50 AMJan Ruzicka
08/07/2022, 11:56 AMJack Rusher
08/07/2022, 2:26 PMedit / compile / run / test / debug
should all be one thing, not different tools or modes. Most people have never used a good programming environment or they would not tolerate things working the way they do.Tony Worm
08/07/2022, 3:11 PMJan Ruzicka
08/07/2022, 5:36 PMKonrad Hinsen
08/08/2022, 8:26 AMnil
.Jack Rusher
08/08/2022, 11:23 AMJan Ruzicka
08/08/2022, 12:50 PMwtaysom
08/08/2022, 10:09 PMJason Morris
08/09/2022, 4:47 AMTony Worm
08/09/2022, 4:58 AMTony Worm
08/09/2022, 4:59 AMKonrad Hinsen
08/09/2022, 1:41 PMJan Ruzicka
08/09/2022, 1:47 PMKonrad Hinsen
08/09/2022, 2:39 PMIvan Lugo
08/09/2022, 4:20 PMwtaysom
08/10/2022, 2:04 AMJason Morris
08/10/2022, 2:09 AMJason Morris
08/10/2022, 2:10 AMwtaysom
08/10/2022, 2:38 AMJack Rusher
08/12/2022, 8:39 AMguitarvydas
08/15/2022, 3:08 PMJack Rusher
08/15/2022, 6:16 PMKonrad Hinsen
08/16/2022, 7:53 AMJan Ruzicka
08/16/2022, 10:50 AMJack Rusher
08/16/2022, 3:00 PMJan Ruzicka
08/16/2022, 5:07 PMwtaysom
08/17/2022, 1:18 AMIvan Lugo
08/17/2022, 1:28 AMmain()
to some unknown end()
call. There are tributaries and side branches and loops in the river, but it flows in one direction. People want to be able to stick a hypothetical dam and controls in any spot of the river, and watch the changes occur. The analogy fails because water is slow, and bits are fast. But it’s the immediacy that matters - the instantaneous physics of the interaction.
Note, you can actually break the river permanently if you dam up the right spots.. e.g.
, break the running state of the application, e.g. x 2
, @wtaysom;s comment above. And that’s where all the “live state saving” stuff kicks in. If you dam the wrong outlet and blow something on the other side of the lake, you can press and button and poof your back in time.
I see this best day to day, honestly, really well in SwiftUI. You write a line of code, it takes a second to recompile it, and displays the result in a virtual preview. Did you write a line that doesn’t compile and can’t produce a preview? No problem - the “magic state” is the IDE, and all you have to do is modify the code. That should evolve to the rest of the system, and it sort of does. If I tickle some part of the model in a layer elsewhere, the act of recompiling will produce the new preview. It’s implicit, but it happens.Jack Rusher
08/17/2022, 7:13 AMguitarvydas
08/17/2022, 10:02 AMI’m not sure I fully understand how you classified each of those languages, especially Scheme and Smalltalk,@jackrusher
The two lists of languages don’t make any sense to me. Can you expand on how you think Smalltalk is more of a compiler appeasement language relative to Self?observation: Classes are but optimizations of Prototypes. further... observation: Inheritance is backwards to what we want. A unit of code should be understandable in a stand-alone manner. A “child” should not affect a “parent’s” unit of code. Instancing a “child” from a “parent” class should - in no way - alter the behaviour of the parent class. A child must not override methods of a parent. theory: delegation, not overriding. observation: Inheritance (of any kind, prototype inheritance or class-based inheritance) is simply DRY (Don’t Repeat Yourself). A good editor should do inheritance automatically without putting the burden on Programmers (see, also, Lisp macros, Paul Bassett’s [Framing Software Reuse](https://www.amazon.ca/Framing-Software-Reuse-Lessons-World/dp/013327859X )) observation DRY is of 2 kinds: (1) semantic (Design) reuse, and, (2) code reuse observation Smalltalkers tell me that inheritance for (2) code reuse is bad. observation Harel StateCharts conquer the “state explosion problem” by using delegation and encapsulation. Harel StateCharts use delegation instead of inheritance. My take on the original StateChart paper observation Sector Lisp - I thought that I hated FP, but Sector Lisp convinced me that FP can be beautiful and small. Why is Sector Lisp many, many orders of magnitude smaller than other Programming Languages and Operating Systems? theory: Sector Lisp stays within the “sweet spot” of the FP paradigm and doesn’t try to be an all-in-one solution to every programming problem. observation Sector Lisp’s Garbage Collector (invented by Tunney) is 40 bytes. SIC: bytes, not K, not M, not G, not T. My take on Sector Lisp GC theory Sector Lisp’s smallness cannot be due only to Assembler Parlour Tricks. Something deeper must be involved. theory We need languages that plumb “build and forget” solutions. Plumbing ≣ composition. UNIX pipelines are an example of this. Surely, we can do better. observation Functions employ LIFOs, UNIX pipelines employ FIFOs. observation Functions calling functions cannot be pipelines (LIFO vs FIFO)
Riley Stewart
08/22/2022, 4:47 PMThe confusion of implementation and specification is particularly prominent in that most fashionable of object-oriented features: inheritance. As used in object-oriented language circles, inheritance is the Blanchard lathe of software -- a powerful and important tool for creating new classes from existing ones, but not nearly as useful for specifying static properties such as how they fit into their environment, and useless for describing dynamic properties such as what these classes do.
Rather than laboriously building each new class by hand, inheritance copies functionality from a network of existing classes to create a new class that is, until the programmer begins overriding or adding methods, correct by construction. Such hierarchies show how a class's internals were constructed. They say nothing, or worse, mislead, as to the class's specification -- the static and dynamic properties that the class offers to its consumers.Moreover, the difference was elaborated as theory in Inheritance is not subtyping and practically in the Strongtalk type system. It's quite a shame that the fate of Strongtalk was ultimately to improve JVM performance - though it did a great job at that! By these criteria, Java isn't a well formed type system given it allows and encourages the use of classes as types in method arguments and return types, a critical design flaw that makes its otherwise wild success all the more tragic for OOP.
Konrad Hinsen
08/23/2022, 9:41 AM