Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. @screwlisp is having some site connectivity problems so asked me to remind everyone that we'll be on the anonradio forum at the top of the hour (a bit less than ten minutes hence) for those who like that kind of thing:

@screwlisp is having some site connectivity problems so asked me to remind everyone that we'll be on the anonradio forum at the top of the hour (a bit less than ten minutes hence) for those who like that kind of thing:

Scheduled Pinned Locked Moved Uncategorized
lispygophergopherlispcommonlisp
120 Posts 14 Posters 163 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • dougmerritt@mathstodon.xyzD dougmerritt@mathstodon.xyz

    @kentpitman
    On the one hand, that is all well said.

    On the other hand, I always have some nitpicky reply. πŸ™‚

    (On the gripping hand -- no, I'll stop there)

    You're talking about what is common and what is rare, and I can see why such was your overriding concern.

    But I feel like I'm always the guy who ends up needing to fix the rare cases that then happen in real life.

    For instance, when implementing a language that is wildly different than the implementation language -- "rare" seems to come up a lot there.

    And also many times when I am bending heaven and earth to serve my will despite the obstinacy of the existing software infrastructure. "Just don't do that", people say.

    It is indeed a lot like the needs of the formal verification by proof community, that is looking for actual math proofs, versus mundane everyday user needs.

    Humpty Dumpty said "The question is, which is to be the master -- that's all" ("Through The Looking Glass", by Lewis Carroll).

    Here, perhaps the master is which community you aim to serve.

    @screwlisp @cdegroot @ramin_hal9001

    kentpitman@climatejustice.socialK This user is from outside of this forum
    kentpitman@climatejustice.socialK This user is from outside of this forum
    kentpitman@climatejustice.social
    wrote last edited by
    #37

    @dougmerritt @screwlisp @cdegroot @ramin_hal9001

    Well, I'm just trying to explain why hygiene seems more like a crisis to the Scheme community than it did to the CL community, who mostly asked "why is this a big deal?". It is a big deal in Scheme. And it's not because of the mindset, it's because different designs favor different outcomes.

    The CL community would have been outraged if we overcomplicated macros, while the Scheme community was grateful for safety they actually perceived a need for, in other words.

    So yes, "the master is which community you aim to serve". We agree on that. πŸ™‚

    ramin_hal9001@fe.disroot.orgR 1 Reply Last reply
    0
    • dougmerritt@mathstodon.xyzD dougmerritt@mathstodon.xyz

      @kentpitman
      > Ultimately, I prefer to design languages around how people want to express things, and I like occasionally doing mutation even if it's not common, so I like languages that allow it and don't mind if there's a bit of a penalty for it or if one says "don't do this a lot because it's not aesthetic or not efficient or whatever".

      Me too -- although I remain open to possibilities. Usually such want me to switch paradigms, though, not just add to my toolbox.

      @ramin_hal9001 @screwlisp @wrog @cdegroot

      ramin_hal9001@fe.disroot.orgR This user is from outside of this forum
      ramin_hal9001@fe.disroot.orgR This user is from outside of this forum
      ramin_hal9001@fe.disroot.org
      wrote last edited by
      #38

      "the abolishing of mutable variables has other intangible expressional costs, so it's not a simple no-brainer."

      @kentpitman@climatejustice.social I prefer the term "constraint" to "expressional cost," because constraints are the difference between a haiku and a long-form essay. For example, I am very curious what the code for the machine learning algorithm that trains an LLM would look like expressed as an APL program. I don't know, but I get the sense it would be a very beautiful two or three lines of code, as opposed to the same algorithm expressed in C++ which would probably be a hundred or a thousand lines of code.

      Not that I disagree with you, on the contrary, that is why I was convinced to switch to Scheme as a more expressive language than Haskell. I like the idea of starting with Scheme as the untyped lambda calculus, and then using it to define more rigorous forms of expression, working your way up to languages like ML or Haskell, as macro systems of Scheme.

      @dougmerritt@mathstodon.xyz @screwlisp@gamerplus.org @wrog@mastodon.murkworks.net @cdegroot@mstdn.ca

      dougmerritt@mathstodon.xyzD kentpitman@climatejustice.socialK 2 Replies Last reply
      0
      • ramin_hal9001@fe.disroot.orgR ramin_hal9001@fe.disroot.org

        "the abolishing of mutable variables has other intangible expressional costs, so it's not a simple no-brainer."

        @kentpitman@climatejustice.social I prefer the term "constraint" to "expressional cost," because constraints are the difference between a haiku and a long-form essay. For example, I am very curious what the code for the machine learning algorithm that trains an LLM would look like expressed as an APL program. I don't know, but I get the sense it would be a very beautiful two or three lines of code, as opposed to the same algorithm expressed in C++ which would probably be a hundred or a thousand lines of code.

        Not that I disagree with you, on the contrary, that is why I was convinced to switch to Scheme as a more expressive language than Haskell. I like the idea of starting with Scheme as the untyped lambda calculus, and then using it to define more rigorous forms of expression, working your way up to languages like ML or Haskell, as macro systems of Scheme.

        @dougmerritt@mathstodon.xyz @screwlisp@gamerplus.org @wrog@mastodon.murkworks.net @cdegroot@mstdn.ca

        dougmerritt@mathstodon.xyzD This user is from outside of this forum
        dougmerritt@mathstodon.xyzD This user is from outside of this forum
        dougmerritt@mathstodon.xyz
        wrote last edited by
        #39

        @ramin_hal9001
        Just as a BTW, LLMs have layers of necessary algorithms, rather than just one single algorithm.

        That said, someone no doubt *has* reduced that core to one line of APL. πŸ™„

        P.S. arguments about whether "expressiveness" is the right description may end up being about differences without distinctions.

        @kentpitman @screwlisp @wrog @cdegroot

        1 Reply Last reply
        0
        • ramin_hal9001@fe.disroot.orgR ramin_hal9001@fe.disroot.org

          "the abolishing of mutable variables has other intangible expressional costs, so it's not a simple no-brainer."

          @kentpitman@climatejustice.social I prefer the term "constraint" to "expressional cost," because constraints are the difference between a haiku and a long-form essay. For example, I am very curious what the code for the machine learning algorithm that trains an LLM would look like expressed as an APL program. I don't know, but I get the sense it would be a very beautiful two or three lines of code, as opposed to the same algorithm expressed in C++ which would probably be a hundred or a thousand lines of code.

          Not that I disagree with you, on the contrary, that is why I was convinced to switch to Scheme as a more expressive language than Haskell. I like the idea of starting with Scheme as the untyped lambda calculus, and then using it to define more rigorous forms of expression, working your way up to languages like ML or Haskell, as macro systems of Scheme.

          @dougmerritt@mathstodon.xyz @screwlisp@gamerplus.org @wrog@mastodon.murkworks.net @cdegroot@mstdn.ca

          kentpitman@climatejustice.socialK This user is from outside of this forum
          kentpitman@climatejustice.socialK This user is from outside of this forum
          kentpitman@climatejustice.social
          wrote last edited by
          #40

          @ramin_hal9001

          I'm not 100% positive I understand your use of constraint here, but I think it is more substantive than that. If you want to use the metaphor you've chosen, a haiku reaches close to theoretical minimum of what can be compressed into a statement, while a long-form essay does not. This metaphor is not perfect, though, and will lead astray if looked at too closely, causing an excess focus on differential size, which is not actually the key issue to me.
          I won't do it here, but as I've alluded to more than once I think on the LispyGopher show, I believe that it is possible to rigorously assign cost to the loss of expression between languages.

          That is, that a transformation of expressional form is not, claims of Turing equivalence notwithstanding, cost-free both in terms of efficiency and in terms of expressional equivalence of the language. It has implications (positive or negative) any time you make such changes.

          Put another way, I no longer believe in Turing Equivalence as a practical truth, even if it has theoretical basis.

          And I am pretty sure the substantive loss can be expressed rigorously, if someone cared to do it, but because I'm not a formalist, I'm lazy about sketching how to do that in writing, though I think I did so verbally in one of those episodes.

          It's in my queue to write about. For now I'll just rest on bold claims. πŸ™‚ Hey, it got Fermat quite a ways, right?

          But also, I had a conversation with ChatGPT recently where I convinced it of my position and it says I should write it up... for whatever that's worth. πŸ™‚

          cc @screwlisp @wrog @dougmerritt @cdegroot

          dougmerritt@mathstodon.xyzD 1 Reply Last reply
          0
          • kentpitman@climatejustice.socialK kentpitman@climatejustice.social

            @dougmerritt @screwlisp @cdegroot @ramin_hal9001

            Well, I'm just trying to explain why hygiene seems more like a crisis to the Scheme community than it did to the CL community, who mostly asked "why is this a big deal?". It is a big deal in Scheme. And it's not because of the mindset, it's because different designs favor different outcomes.

            The CL community would have been outraged if we overcomplicated macros, while the Scheme community was grateful for safety they actually perceived a need for, in other words.

            So yes, "the master is which community you aim to serve". We agree on that. πŸ™‚

            ramin_hal9001@fe.disroot.orgR This user is from outside of this forum
            ramin_hal9001@fe.disroot.orgR This user is from outside of this forum
            ramin_hal9001@fe.disroot.org
            wrote last edited by
            #41

            @kentpitman@climatejustice.social I just want to say, I never had much of an opinion on hygienic macros, other than they seemed like a very good idea. But your explanation of why it isn't a big deal in Common Lisp, because namespaces and libraries prevent nearly all name collisions, was very convincing. And when you consider how complicated the Racket macro expander is, you start to wonder whether it is really worth all of that complexity to ensure a very particular coding problem never happens.

            @dougmerritt@mathstodon.xyz @screwlisp@gamerplus.org @cdegroot@mstdn.ca

            dougmerritt@mathstodon.xyzD 1 Reply Last reply
            0
            • dougmerritt@mathstodon.xyzD dougmerritt@mathstodon.xyz

              @wrog
              > but I can't see how more than 2 would ever be necessary for a copying GC

              It's not "necessary", it's "to make GC performance a negligeable percentage of overall CPU".

              It was about a theoretical worst case as I recall, certainly not about one particular algorithm.

              And IIRC it was actually a factor of 7 -- 5 is merely a good mnemonic which may be close enough. (e.g. perhaps 5-fold keeps overhead down to 10-20% rather than 7's 1%, although I'm making it up to give the flavor -- I haven't read the book for 10-20 years)

              But see the book (may as well use the second edition) if and when you care; it's excellent. Mandatory I would say, for anyone who wants to really really understand all aspects of garbage collection, including performance issues.

              @screwlisp @kentpitman @cdegroot @ramin_hal9001

              wrog@mastodon.murkworks.netW This user is from outside of this forum
              wrog@mastodon.murkworks.netW This user is from outside of this forum
              wrog@mastodon.murkworks.net
              wrote last edited by
              #42

              @dougmerritt @screwlisp @kentpitman @cdegroot @ramin_hal9001

              Is this the book you're talking about?
              (sorry this was after my time in Scheme Land, hadn't heard of it before)

              Amazon.com

              favicon

              (www.amazon.com)

              dougmerritt@mathstodon.xyzD 1 Reply Last reply
              0
              • wrog@mastodon.murkworks.netW wrog@mastodon.murkworks.net

                @dougmerritt @screwlisp @kentpitman @cdegroot @ramin_hal9001

                Is this the book you're talking about?
                (sorry this was after my time in Scheme Land, hadn't heard of it before)

                Amazon.com

                favicon

                (www.amazon.com)

                dougmerritt@mathstodon.xyzD This user is from outside of this forum
                dougmerritt@mathstodon.xyzD This user is from outside of this forum
                dougmerritt@mathstodon.xyz
                wrote last edited by
                #43

                @wrog
                Yes, that's it. (And every time I've checked, it [in 1st & 2nd edition] is the only book ever dedicated to purely Garbage Collection)

                @screwlisp @kentpitman @cdegroot @ramin_hal9001

                1 Reply Last reply
                0
                • ramin_hal9001@fe.disroot.orgR ramin_hal9001@fe.disroot.org

                  @kentpitman@climatejustice.social I just want to say, I never had much of an opinion on hygienic macros, other than they seemed like a very good idea. But your explanation of why it isn't a big deal in Common Lisp, because namespaces and libraries prevent nearly all name collisions, was very convincing. And when you consider how complicated the Racket macro expander is, you start to wonder whether it is really worth all of that complexity to ensure a very particular coding problem never happens.

                  @dougmerritt@mathstodon.xyz @screwlisp@gamerplus.org @cdegroot@mstdn.ca

                  dougmerritt@mathstodon.xyzD This user is from outside of this forum
                  dougmerritt@mathstodon.xyzD This user is from outside of this forum
                  dougmerritt@mathstodon.xyz
                  wrote last edited by
                  #44

                  @ramin_hal9001
                  Well, people used to take advantage of the freedom of the original unhygenic lisp macros to do all manner of unholy coding.

                  @kentpitman @screwlisp @cdegroot

                  1 Reply Last reply
                  0
                  • kentpitman@climatejustice.socialK kentpitman@climatejustice.social

                    @ramin_hal9001

                    I'm not 100% positive I understand your use of constraint here, but I think it is more substantive than that. If you want to use the metaphor you've chosen, a haiku reaches close to theoretical minimum of what can be compressed into a statement, while a long-form essay does not. This metaphor is not perfect, though, and will lead astray if looked at too closely, causing an excess focus on differential size, which is not actually the key issue to me.
                    I won't do it here, but as I've alluded to more than once I think on the LispyGopher show, I believe that it is possible to rigorously assign cost to the loss of expression between languages.

                    That is, that a transformation of expressional form is not, claims of Turing equivalence notwithstanding, cost-free both in terms of efficiency and in terms of expressional equivalence of the language. It has implications (positive or negative) any time you make such changes.

                    Put another way, I no longer believe in Turing Equivalence as a practical truth, even if it has theoretical basis.

                    And I am pretty sure the substantive loss can be expressed rigorously, if someone cared to do it, but because I'm not a formalist, I'm lazy about sketching how to do that in writing, though I think I did so verbally in one of those episodes.

                    It's in my queue to write about. For now I'll just rest on bold claims. πŸ™‚ Hey, it got Fermat quite a ways, right?

                    But also, I had a conversation with ChatGPT recently where I convinced it of my position and it says I should write it up... for whatever that's worth. πŸ™‚

                    cc @screwlisp @wrog @dougmerritt @cdegroot

                    dougmerritt@mathstodon.xyzD This user is from outside of this forum
                    dougmerritt@mathstodon.xyzD This user is from outside of this forum
                    dougmerritt@mathstodon.xyz
                    wrote last edited by
                    #45

                    @kentpitman
                    > That is, that a transformation of expressional form is not, claims of Turing equivalence notwithstanding, cost-free both in terms of efficiency and in terms of expressional equivalence of the language. It has implications (positive or negative) any time you make such changes.

                    I hope everyone here is already clear that "expressiveness" is something that comes along on *top* of a language's Turing equivalence.

                    Indeed Turing Machines (and pure typed and untyped lambda calculus and SKI combinatory calculus and so on) are all *dreadful* in terms of expressiveness.

                    And for that matter, expressiveness can be on top of Turing incomplete languages. Like chess notation; people argue that the algebraic notation is more expressive than the old descriptive notation. (People used to argue in the other direction)

                    @ramin_hal9001 @screwlisp @wrog @cdegroot

                    ramin_hal9001@fe.disroot.orgR wrog@mastodon.murkworks.netW 2 Replies Last reply
                    0
                    • dougmerritt@mathstodon.xyzD dougmerritt@mathstodon.xyz

                      @kentpitman
                      > That is, that a transformation of expressional form is not, claims of Turing equivalence notwithstanding, cost-free both in terms of efficiency and in terms of expressional equivalence of the language. It has implications (positive or negative) any time you make such changes.

                      I hope everyone here is already clear that "expressiveness" is something that comes along on *top* of a language's Turing equivalence.

                      Indeed Turing Machines (and pure typed and untyped lambda calculus and SKI combinatory calculus and so on) are all *dreadful* in terms of expressiveness.

                      And for that matter, expressiveness can be on top of Turing incomplete languages. Like chess notation; people argue that the algebraic notation is more expressive than the old descriptive notation. (People used to argue in the other direction)

                      @ramin_hal9001 @screwlisp @wrog @cdegroot

                      ramin_hal9001@fe.disroot.orgR This user is from outside of this forum
                      ramin_hal9001@fe.disroot.orgR This user is from outside of this forum
                      ramin_hal9001@fe.disroot.org
                      wrote last edited by
                      #46

                      @dougmerritt@mathstodon.xyz yes, I am maybe a little unclear in what I wrote. I tend to take shortcuts when I write about Scheme that make it seem I am equating it to the untyped lambda calculus.

                      I have heard of the Turing Tarpit. And I have inspected the intermediate representation of Haskell before (the Haskell Core), so I have seen first-hand that expressing things in lambda calculus makes the code almost impossible to understand.

                      @kentpitman@climatejustice.social @screwlisp@gamerplus.org @wrog@mastodon.murkworks.net @cdegroot@mstdn.ca

                      1 Reply Last reply
                      0
                      • dougmerritt@mathstodon.xyzD dougmerritt@mathstodon.xyz

                        @kentpitman
                        > That is, that a transformation of expressional form is not, claims of Turing equivalence notwithstanding, cost-free both in terms of efficiency and in terms of expressional equivalence of the language. It has implications (positive or negative) any time you make such changes.

                        I hope everyone here is already clear that "expressiveness" is something that comes along on *top* of a language's Turing equivalence.

                        Indeed Turing Machines (and pure typed and untyped lambda calculus and SKI combinatory calculus and so on) are all *dreadful* in terms of expressiveness.

                        And for that matter, expressiveness can be on top of Turing incomplete languages. Like chess notation; people argue that the algebraic notation is more expressive than the old descriptive notation. (People used to argue in the other direction)

                        @ramin_hal9001 @screwlisp @wrog @cdegroot

                        wrog@mastodon.murkworks.netW This user is from outside of this forum
                        wrog@mastodon.murkworks.netW This user is from outside of this forum
                        wrog@mastodon.murkworks.net
                        wrote last edited by
                        #47

                        @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                        [..it's possible I'm missing the point, but I'm going to launch anyway...]

                        I believe trying to define/formalize "expressiveness" is roughly as doomed as trying to define/formalize "intelligence". w.r.t. the latter, there's been nearly a century of bashing on this since Church and Turing and we're still no further along than "we know it when we see it"

                        (and I STILL think that was Turing's intended point in proposing his Test, i.e., if you can fool a human into thinking it's intelligent, you're done; that this is the only real test we've ever had is a testament to how ill-defined the concept is...)

                        1/11

                        wrog@mastodon.murkworks.netW 1 Reply Last reply
                        0
                        • wrog@mastodon.murkworks.netW wrog@mastodon.murkworks.net

                          @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                          [..it's possible I'm missing the point, but I'm going to launch anyway...]

                          I believe trying to define/formalize "expressiveness" is roughly as doomed as trying to define/formalize "intelligence". w.r.t. the latter, there's been nearly a century of bashing on this since Church and Turing and we're still no further along than "we know it when we see it"

                          (and I STILL think that was Turing's intended point in proposing his Test, i.e., if you can fool a human into thinking it's intelligent, you're done; that this is the only real test we've ever had is a testament to how ill-defined the concept is...)

                          1/11

                          wrog@mastodon.murkworks.netW This user is from outside of this forum
                          wrog@mastodon.murkworks.netW This user is from outside of this forum
                          wrog@mastodon.murkworks.net
                          wrote last edited by
                          #48

                          @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                          The point of Turing equivalence is that even though we have different forms for expressing algorithms and there are apparently vast differences in comprehensibility, they all inter-translate, so any differences in what can utltimately be achieved by the various forms of expression is an illusion. We have, thus far, only one notion of computability.

                          (which is not to say there can't be others out there, but nobody's found them yet)

                          2/11

                          wrog@mastodon.murkworks.netW screwlisp@gamerplus.orgS 2 Replies Last reply
                          0
                          • wrog@mastodon.murkworks.netW wrog@mastodon.murkworks.net

                            @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                            The point of Turing equivalence is that even though we have different forms for expressing algorithms and there are apparently vast differences in comprehensibility, they all inter-translate, so any differences in what can utltimately be achieved by the various forms of expression is an illusion. We have, thus far, only one notion of computability.

                            (which is not to say there can't be others out there, but nobody's found them yet)

                            2/11

                            wrog@mastodon.murkworks.netW This user is from outside of this forum
                            wrog@mastodon.murkworks.netW This user is from outside of this forum
                            wrog@mastodon.murkworks.net
                            wrote last edited by
                            #49

                            @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                            I believe expressiveness is a cognition issue, i.e., having to do with how the human brian works and how we learn. If you train yourself to recognize certain kinds of patterns, then certain kinds of problems become easier to solve.
                            ... and right there I've just summarized every mathematics, science, and programming curriiculum on the planet.

                            What's "easy" depends on the patterns you've learned. The more patterns you know, the more problems you can solve. Every time you can express a set of patterns as sub-patterns of one big super-pattern small enough to keep in your head, that's a win.

                            I'm not actually sure there's anything more to "intelligence" than this.

                            3/11

                            wrog@mastodon.murkworks.netW 1 Reply Last reply
                            0
                            • wrog@mastodon.murkworks.netW wrog@mastodon.murkworks.net

                              @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                              The point of Turing equivalence is that even though we have different forms for expressing algorithms and there are apparently vast differences in comprehensibility, they all inter-translate, so any differences in what can utltimately be achieved by the various forms of expression is an illusion. We have, thus far, only one notion of computability.

                              (which is not to say there can't be others out there, but nobody's found them yet)

                              2/11

                              screwlisp@gamerplus.orgS This user is from outside of this forum
                              screwlisp@gamerplus.orgS This user is from outside of this forum
                              screwlisp@gamerplus.org
                              wrote last edited by
                              #50

                              @wrog

                              A New Kind Of Science

                              @dougmerritt @kentpitman @ramin_hal9001 @cdegroot

                              1 Reply Last reply
                              0
                              • wrog@mastodon.murkworks.netW wrog@mastodon.murkworks.net

                                @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                I believe expressiveness is a cognition issue, i.e., having to do with how the human brian works and how we learn. If you train yourself to recognize certain kinds of patterns, then certain kinds of problems become easier to solve.
                                ... and right there I've just summarized every mathematics, science, and programming curriiculum on the planet.

                                What's "easy" depends on the patterns you've learned. The more patterns you know, the more problems you can solve. Every time you can express a set of patterns as sub-patterns of one big super-pattern small enough to keep in your head, that's a win.

                                I'm not actually sure there's anything more to "intelligence" than this.

                                3/11

                                wrog@mastodon.murkworks.netW This user is from outside of this forum
                                wrog@mastodon.murkworks.netW This user is from outside of this forum
                                wrog@mastodon.murkworks.net
                                wrote last edited by
                                #51

                                @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                I still remember trying to teach my dad about recursion.

                                He was a research chemist. At some point he needed to do some hairy statistical computations that were a bit too much for the programmable calculators he had in his lab. Warner-Lambert research had just gotten some IBM mainframe -- this was early 1970s, and so he decided to learn FORTRAN -- and he became one of their local power-users.

                                Roughly in the same time-frame, 11-year-old me found a DEC-10 manual one of my brothers had brought home from college. It did languages.

                                Part 1 was FORTRAN.
                                Part 2 was Basic.

                                But it was last section of the book that was the acid trip.

                                Part 3 was about Algol.

                                4/11

                                wrog@mastodon.murkworks.netW 1 Reply Last reply
                                0
                                • wrog@mastodon.murkworks.netW wrog@mastodon.murkworks.net

                                  @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                  I still remember trying to teach my dad about recursion.

                                  He was a research chemist. At some point he needed to do some hairy statistical computations that were a bit too much for the programmable calculators he had in his lab. Warner-Lambert research had just gotten some IBM mainframe -- this was early 1970s, and so he decided to learn FORTRAN -- and he became one of their local power-users.

                                  Roughly in the same time-frame, 11-year-old me found a DEC-10 manual one of my brothers had brought home from college. It did languages.

                                  Part 1 was FORTRAN.
                                  Part 2 was Basic.

                                  But it was last section of the book that was the acid trip.

                                  Part 3 was about Algol.

                                  4/11

                                  wrog@mastodon.murkworks.netW This user is from outside of this forum
                                  wrog@mastodon.murkworks.netW This user is from outside of this forum
                                  wrog@mastodon.murkworks.net
                                  wrote last edited by
                                  #52

                                  @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                  This was post-Algol-68, but evidently the DEC folks were not happy with Algol-68 (I found out later *nobody* was happy with Algol-68), so ... various footnotes about where they deviated from the spec; not that I had any reason to care at that point.

                                  I encountered the recursive definition of factorial and I was like,

                                  "That can't possibly work."

                                  (the FORTRAN and Basic manuals were super clear about how each subprogram has its dedicated storage; calling one while it was still active is every bit an error like dividing by zero. You're just doing it wrong...)

                                  5/11

                                  wrog@mastodon.murkworks.netW 1 Reply Last reply
                                  0
                                  • wrog@mastodon.murkworks.netW wrog@mastodon.murkworks.net

                                    @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                    This was post-Algol-68, but evidently the DEC folks were not happy with Algol-68 (I found out later *nobody* was happy with Algol-68), so ... various footnotes about where they deviated from the spec; not that I had any reason to care at that point.

                                    I encountered the recursive definition of factorial and I was like,

                                    "That can't possibly work."

                                    (the FORTRAN and Basic manuals were super clear about how each subprogram has its dedicated storage; calling one while it was still active is every bit an error like dividing by zero. You're just doing it wrong...)

                                    5/11

                                    wrog@mastodon.murkworks.netW This user is from outside of this forum
                                    wrog@mastodon.murkworks.netW This user is from outside of this forum
                                    wrog@mastodon.murkworks.net
                                    wrote last edited by
                                    #53

                                    @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                    Then there was the section on call-by-name (the default parameter passing convention for Algol)

                                    ... including a half page on Jenson's Device, that, I should note, was presented COMPLETELY UN-IRONICALLY because this was still 1972,

                                    as in, "Here's this neat trick that you'll want to know about."

                                    And my reaction was, "WTFF, why???"

                                    and also, "That can't possibly work, either."

                                    Not having any actual computers to play with yet, that was that for a while.

                                    Some years later, I got to college and had my first actual programming course...

                                    6/11

                                    wrog@mastodon.murkworks.netW 1 Reply Last reply
                                    0
                                    • wrog@mastodon.murkworks.netW wrog@mastodon.murkworks.net

                                      @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                      Then there was the section on call-by-name (the default parameter passing convention for Algol)

                                      ... including a half page on Jenson's Device, that, I should note, was presented COMPLETELY UN-IRONICALLY because this was still 1972,

                                      as in, "Here's this neat trick that you'll want to know about."

                                      And my reaction was, "WTFF, why???"

                                      and also, "That can't possibly work, either."

                                      Not having any actual computers to play with yet, that was that for a while.

                                      Some years later, I got to college and had my first actual programming course...

                                      6/11

                                      wrog@mastodon.murkworks.netW This user is from outside of this forum
                                      wrog@mastodon.murkworks.netW This user is from outside of this forum
                                      wrog@mastodon.murkworks.net
                                      wrote last edited by
                                      #54

                                      @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                      ... in Pascal.. And there I finally learned about and was able to get used to using recursion.

                                      Although I'd say I didn't *really* get it until the following semester taking the assembler course and learning about *stacks*.

                                      It was like recursion was sufficiently weird that I didn't really want to trust it until/unless I had a sense of what was actually happening under the hood,

                                      And THEN it was cool.

                                      7/11

                                      wrog@mastodon.murkworks.netW 1 Reply Last reply
                                      0
                                      • wrog@mastodon.murkworks.netW wrog@mastodon.murkworks.net

                                        @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                        ... in Pascal.. And there I finally learned about and was able to get used to using recursion.

                                        Although I'd say I didn't *really* get it until the following semester taking the assembler course and learning about *stacks*.

                                        It was like recursion was sufficiently weird that I didn't really want to trust it until/unless I had a sense of what was actually happening under the hood,

                                        And THEN it was cool.

                                        7/11

                                        wrog@mastodon.murkworks.netW This user is from outside of this forum
                                        wrog@mastodon.murkworks.netW This user is from outside of this forum
                                        wrog@mastodon.murkworks.net
                                        wrote last edited by
                                        #55

                                        @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                        To the point where, the following summer as an intern, I was needing to write a tree walk, and I wrote it in FORTRAN β€” because that's what was available at AT&T Basking Ridge (long story) β€” using fake recursion (local vars get dimensions as arrays, every call/return becomes a computed goto, you get the idea…) because I wanted to see if this *could* actually be done in FORTRAN, and it could, and it worked, and there was much rejoicing; I think my supervisor (who, to be fair, was not really a programmer) blue-screened on that one.

                                        And *then* I tried to explain it all to my dad...

                                        8/11

                                        wrog@mastodon.murkworks.netW 2 Replies Last reply
                                        0
                                        • wrog@mastodon.murkworks.netW wrog@mastodon.murkworks.net

                                          @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                          To the point where, the following summer as an intern, I was needing to write a tree walk, and I wrote it in FORTRAN β€” because that's what was available at AT&T Basking Ridge (long story) β€” using fake recursion (local vars get dimensions as arrays, every call/return becomes a computed goto, you get the idea…) because I wanted to see if this *could* actually be done in FORTRAN, and it could, and it worked, and there was much rejoicing; I think my supervisor (who, to be fair, was not really a programmer) blue-screened on that one.

                                          And *then* I tried to explain it all to my dad...

                                          8/11

                                          wrog@mastodon.murkworks.netW This user is from outside of this forum
                                          wrog@mastodon.murkworks.netW This user is from outside of this forum
                                          wrog@mastodon.murkworks.net
                                          wrote last edited by
                                          #56

                                          @dougmerritt @kentpitman @ramin_hal9001 @screwlisp @cdegroot

                                          And, to be fair, by then, he had changed jobs/companies, moved up to the bottom tier of management, wasn't using The Computer anymore, so maybe the interest had waned.

                                          But it struck me that I was never able to get past showing him the factorial function and,

                                          "That can't possibly work."

                                          He had basically accepted the FORTRAN model of things and that was that.

                                          Later, when he retired he got one of the early PC clones and then spent vast amounts of time messing with spreadsheets.

                                          9/11

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups