• solrize@lemmy.ml
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 month ago

    My understanding is that the CADR software was/is free. I never used Allegro and had only slight exposure to the CADR and Symbolics machines but where the article says

    there is no reason at all why a development environent that cool could not be built on stock hardware

    that papers over a big gap between “could be” and “is”. The Lisp machine debugging environment was way superior to the mainstream stuff I see today. We get by anyway of course.

    I do believe there was once an on and off effort to emulate the CADR hardware and run the original CADR software. IDK if that ever got anywhere. I mostly lost interest in Lisp much earlier. And running every program on the machine in a single shared address space these days would be silly, I agree.

    • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOPM
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 month ago

      I do think a lot of the ideas from Lisp Machines could be adopted in modern environments though. For example, it blows my mind that REPL driven development is still a niche thing today. The sad part is that Js is ubiquitous nowadays, and Js VMs technically support a lot of the features. You can inspect running apps, make changes, see results immediately. All that’s really missing is having a network API that would let you connect an editor to the running app, and reload functions.

      • solrize@lemmy.ml
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 month ago

        All that’s really missing is having a network API that would let you connect an editor to the running app, and reload functions.

        Erlang has that :).

        • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOPM
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 month ago

          Erlang OTP is great in particular since it can run a huge number of green processes, and orchestrate them as needed.

          I stil find Lisps have the best tooling for REPL driven development though. I’ve worked with Clojure for many years, and it’s still by far my favorite language because of the interactive workflow, I just couldn’t go back now.

          • solrize@lemmy.ml
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 month ago

            Pretty much everything has a REPL now. The Lisp machine was way ahead in terms of interactive debugging. I still can’t believe that after all these years, stock Python doesn’t have a way to trap to a debugger when your program throws an uncaught exception. I’ve never used Clojure though. I do think the language itself has some cool ideas.

            • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOPM
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 month ago

              Pretty much everything absolutely does not have a REPL you can connect an editor to and develop your application interactively. This workflow is still pretty much exclusive to Lisps today. There’s a huge difference between having REPL as a standalone toy, and actually having it as an integral part of the workflow.

              The way I develop applications in Clojure is by first running the whole app, then connecting my editor to it. I have access to the entire application state, any resources such as database connections, I can change any part of the application at runtime and see the results immediately. I can even connect to remote apps and debug an app in prod. When I write new code, I do it interactively step by step. I write a function, see that it works correctly, then write the next, and so on. At each step I know exactly what’s going on because I’m running my code live. The only context I need to keep is the function I’m currently working on and the last one I wrote. Trying things, and making changes becomes a much tighter loop with this approach.

              • solrize@lemmy.ml
                link
                fedilink
                English
                arrow-up
                1
                ·
                1 month ago

                Python, Ruby, and even Forth have REPLs that I use all the time. Haskell sort of has one. Not C++ etc though.

                • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOPM
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  1 month ago

                  I’ve just explained the difference between these REPLs and what Lisp REPL workflow is like. It’s not comparable even in the slightest. Actually read what I wrote above and then try doing that in Python or Ruby.

  • davel [he/him]@lemmy.ml
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 month ago

    I didn’t realize anyone was even considering it.

    There’s practically no barrier to noodling around with proofs of concept using emulators and FPGAs.

    • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOPM
      link
      fedilink
      English
      arrow-up
      5
      ·
      1 month ago

      I don’t think having hardware level support is even that big of a deal to be honest. The real appeal is in the whole architecture where your application is has a REPL you can hook into, and you can inspect its state, modify the code, change things up, while it’s running. In my opinion, the design of the software stack on Lisp Machines is strictly superior to the garbage we have today. And we’re basically trapped in this ecosystem because it would be a herculean effort to reimplement all the apps people use on top of a different architecture. So, there’s no way to make a clean break.

  • iByteABit@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 month ago

    It would be very interesting to imagine what software would look like today if written fully functionally from the bottom up, but it’s both too hard to implement at this point only to be written off as a proof of concept, and also redoing all cybersecurity would take miracles to happen

    • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOPM
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 month ago

      Indeed, rebuilding the entire software stack from ground up would take decades of effort. It’s kind of interesting to think about how active experimentation is only possible in the early stages of a new technology. Once you end up with an ecosystem forming, it becomes incredibly difficult for something completely new to break in. It would take a complete paradigm shift where the existing ecosystem becomes obsolete for new ideas to have a chance again.

      • iByteABit@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 month ago

        similar to javascript and its derivatives having become the de facto language of web development, love it or hate it there’s no going back now

        • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOPM
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 month ago

          Although, you can treat Js as a compile target. For example, I’ve used ClojureScript for most of web dev I’ve done. It has its own semantics different from Js, such as sane equality, immutability, and so on. And it compiles to optimized and minified Js when you ship it for production. It also has Js interop, so you can use stuff like React libraries, and whatever else you need. I’ve found it to be a far more pleasant experience than writing Js directly.