I constantly hear about research into functional programming, and even real things coming out of them, like certain programming languages (idris).

Is there anything like this for frontend UI dev? It doesn’t have to be FP related.

  • demesisx@infosec.pub
    link
    fedilink
    English
    arrow-up
    7
    ·
    9 months ago

    AFAIK, Halogen for Purescript is about as FP as it gets in the front-end world. It’s pretty complicated but Halogen takes advantage of “free monads”. Perhaps you are looking for something even more rigorous since you mentioned Idris but I figured I’d mention that one.

    I’m learning it now and it has not been easy. I tried to port a simple vanilla JavaScript dynamic draggable table over to Halogen and it has not been fun at all. I got 80% of the way there then started to have to reach for FFI, unsafeCoerce, or build my own Purescript module to capture mousevents.

  • TCB13@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    arrow-down
    1
    ·
    9 months ago

    At the rate frontend spits frameworks and languages it’s pointless to write papers for it. Innovation on that field happens by bruteforce.

  • Turun@feddit.de
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    9 months ago

    Have you looked at Elm?

    It’s very much not JavaScript, but I think that comes with the territory of wanting something significantly different.

    For what it’s worth, with wasm you could use any language that compiles to it as a frontend language. Rust has a few frameworks that can compile to standalone wasm web pages.

    • demesisx@infosec.pub
      link
      fedilink
      English
      arrow-up
      6
      ·
      9 months ago

      I’m confused why everyone sleeps on Purescript. I mean, it is currently QUITE obscure… I could be wrong but I feel like Purescript has all of the same goals as Elm but better.

      • monomon
        link
        fedilink
        arrow-up
        3
        ·
        9 months ago

        It does look pretty damn cool. One thing that bothers me is it is in the npm ecoystem :)

        • demesisx@infosec.pub
          link
          fedilink
          English
          arrow-up
          6
          ·
          edit-2
          9 months ago

          Thanks for that explanation. That makes sense.

          I guess I should also mention IHP.


          As far as npm and Purescript goes: I don’t interact with npm when I use it. I use nix and nixpkgs to build it which pulls packages from a predefined, fixed package set inside of Pursuit (Purescript’s package manager that feels a whole lot like Stackage). I suppose if I wanted to use it in the real world, I’d probably have to expose myself to some npm. But, from my cursory understanding and experience, it is probably less tainted by the safety issues in the npm than straight up JavaScript. Packages in Pursuit (particularly the ones exposed in the standard package set I use) tend to be super high quality code like the modules you’d find in GHC.

      • Turun@feddit.de
        link
        fedilink
        arrow-up
        2
        ·
        9 months ago

        I also sleep on elm, JavaScript and typescript. (i.e. don’t use then)

        It’s simply that I never heard of purescript.

  • adr1an
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    9 months ago

    htmx.org has tons of assays posted online. But I don’t recall seeing any ‘white paper’ for frontend frameworks… maybe it’s also related to “ux research” (if there’s such thing) being more of a marketing discipline, and by its profit-seeking nature that’s mostly secretive.

  • monomon
    link
    fedilink
    arrow-up
    4
    ·
    9 months ago

    Concepts like Reactive programming are widely used in web/UI contexts. The problem of connecting a UI to an underlying data set is not trivial. Several frameworks deal with this.

    As was already said, concerns like Accessibility are studied academically. They have more to do with user experience than the technology, so not sure if they match your question.