• person rss_feed

    Michał "phoe" Herda’s feed

    Blog

    • chevron_right

      Answers from 2017 Common Lisp experts - Innovation

      Michał "phoe" Herda · Sunday, 23 December, 2018 - 11:38 · 3 minutes

    (This is a repost of an old blog post of mine from Teknik. This blog post was split into multiple parts to accomodate for Movim's size limitations; use hypelinks in the table of contents to navigate.)


    Are there any efforts to bring innovative libraries from the Clojure (or elsewhere) community into Common Lisp?

    Aidenn0

    There are many places where people have seen a library in another language and brought some of it over to Common Lisp. The community is much smaller than other language communities, so there is limited programmer time for working on these.

    dzecniv

    There are. What are you thinking of I saw cl-arrows for threading macros, fset for functional data structures (preceding Clojure though); what'd you like?

    phoe

    Let me ask an apparently more crazy question: are there any efforts to bring innovative language features from the Lisp community into Clojure (or elsewhere)? Like, the conditional (IF/THEN/ELSE) construct? Higher-order functions? Dynamic memory management? Garbage collection? Homoiconicity? </trolling>

    A few of the examples are Clojure's arrow macros, transactional memory, monadicparsers, single interface for parallel execution of functions.


    Is there software design innovation occurring in the Common Lisp community or is the community primarily focused on maintenance and tuning?

    Aidenn0

    See vslevod's talk I linked to earlier and find out if rutils is moving in the way you like.

    phoe

    It might not be obvious, but Lisp is constantly sprouting new leaves and branches. Two huge projects that I know that regard Lisp design innovation:

    • Clasp is a young implementation that compiles Common Lisp and C++ into one code for the sake of science, chemistry and general usage.
    • SICL is a growing implementation that effectively reimplements Common Lisp in a modular way and a completely new code style.

    Overall, the community is alive. New libraries are being created and uploaded, new projects are being written in Lisp, new bindings to foreign libraries are established.


    Is it worth the time and energy to develop new libraries to modernize Common Lisp – or perhaps a single extended implementation of it, like SBCL – or would that time and energy be more productively spent in a non-Common Lisp community?

    defaultxr

    This largely depends on what you need from a language. CL provides many features that other languages still lack, but there are of course areas where other languages are better suited for a specific task. Sometimes the gap is larger or smaller. I think the community is more than happy to give recommendations for libraries for specific tasks, but obviously it would depend on your situation whether those libraries do enough of what you need, or if it wouldn't be worth it trying to code the rest of it yourself.

    Baggers

    Again, you will need to define what you mean by 'modernize'. The reason I'm asking is that I'm writing GPU code in lisp, and that feels kind of modern. But I think the kind of modernization you are asking for might be the kind that would make me ditch CL entirely (more strictly OOP or more strictly functional... more strictly anything really).

    Aidenn0

    The problem isn't that nobody wants to modernize CL, it's that the effort is spread diffusely across a small number of people.

    The other problem is that the language is so malleable, that you can easily do an 80% solution that solves just the problem you have right now, so there is less of an impetus to standardize on a complete solution.

    dzecniv

    See again cl21. And maybe join the effort on Corvus (a "low-level lisp for LLVM")?

    phoe

    I have no idea how to answer that one in general - that's a question that you, or anyone else, must answer yourself. Do you like the language? Do you find it fun? Do you find it productive? Do you find it suiting your needs? Do you want to spend your time here or would you rather spend it elsewhere?

    There's no big bearded guy that's going to tell you "you're a good person/coder/programmer if you're using this or that language". All I can say is, the two years of my life that I've spent as a Lisper have been years very well spent programming-wise.

    • wifi_tethering open_in_new

      This post is public

      nl.movim.eu