The Abstract Wikipedia team is working toward a rewrite of our backend services in a different programming language, likely Rust. Node/JS has served us well, but we have run up against some [WebAssembly System Interface] limits that would be best dealt with by switching to a different ecosystem.

  • setVeryLoud(true);@lemmy.ca
    link
    fedilink
    arrow-up
    12
    arrow-down
    1
    ·
    edit-2
    2 days ago

    Node.js is really not a bad backend language, since it’s JIT, it’s actually faster than Python and Java in most cases.

    Rust will definitely have the advantage of being a compiled language though.

    Source: I write both Java and TS backend code, have done benchmarks.

    • 4z01235@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      2 days ago

      since it’s JIT, it’s actually faster than Python and Java in most cases.

      Java is JIT’d too, and Python can be depending on which runtime you deploy.

      • setVeryLoud(true);@lemmy.ca
        link
        fedilink
        arrow-up
        2
        ·
        2 days ago

        True, I didn’t structure my sentence correctly.

        It gets to compete with Java and Python because it’s also JIT is what I meant to say.

    • Aatube@kbin.melroy.orgOP
      link
      fedilink
      arrow-up
      7
      ·
      2 days ago

      Somehow, it feels horrifying to use something that high-level for the backend, especially when MediaWiki has so much PHP and the WMF has so many PHP programmers. Maybe my adolescent arse is getting old…

        • elrik@lemmy.world
          link
          fedilink
          English
          arrow-up
          9
          ·
          edit-2
          2 days ago

          Calculating the digits of pi seems like a poor benchmark for comparing various languages in the context of backend web application performance. Even the GitHub readme points out the benchmark is entirely focused on floating point performance.

          • setVeryLoud(true);@lemmy.ca
            link
            fedilink
            arrow-up
            3
            ·
            edit-2
            2 days ago

            Absolutely, it’s just one aspect of it, benchmarking is always narrow in scope. Some languages may be good at some things and worse at others.

    • ☆ Yσɠƚԋσʂ ☆@lemmy.ml
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      1 day ago

      Node.js is a runtime, you can compile a number of languages to it. It’s useful because it can have relatively low resource usage and there are a lot of libraries available for it.

    • Aatube@kbin.melroy.orgOP
      link
      fedilink
      arrow-up
      4
      ·
      2 days ago

      Wikifunctions finally exposed running functions via API in March, though yeah, it’s still a long, long way from being integrated in wikis, not to mention the arcane parameter that is passing a JSON via URL. (and hopefully you meant Wikifunctions and not Wikidata lol)

      • IrritableOcelot@beehaw.org
        link
        fedilink
        arrow-up
        2
        ·
        1 day ago

        Oh I understood wikifunctions primarily as a way to operate on wikidata data, I don’t know if that’s right. And you’re right it is publically available, I guess I meant more that few few folks know about it.