The current JPEG XL decoder in #Firefox apparently consists more than 100,000 lines of multi-threaded C++

For just decoding an image format.

Not sure what it says about the format, the implementation and the Internet at large.

https://github.com/mozilla/standards-positions/pull/1064

    • Thomas Depierre@hachyderm.io
      link
      fedilink
      arrow-up
      2
      ·
      2 months ago

      @bagder (i will keep banging the drums that most of the FOSS “supply chain” fear could be handled by investing more in programming language tooling, as Rust demonstrate, and that it would be a small overall cost for massive pay off…)

      • daniel:// stenberg://@mastodon.socialOP
        link
        fedilink
        arrow-up
        1
        ·
        2 months ago

        @Di4na possibly: I believe Rust is generally a good thing for most things, but I believe the Rust ecosystem with cargo and bazillions of always-updatiing tiny dependencies risk adding friction and at least complicates the equation quite a lot

        • @[email protected] @[email protected]
          I’m not sure it is a tooling issue. I find cargo to be a great tool, and it have a lock file to let you update deps in a controlled fashion.
          I think this comes down to a cultural issue, where the rust community, much like the JS community, put every little utility function in it’s own library. Hence, you tend to get a gazillion small dependencies that is hard to keep track of.

        • mort@fosstodon.org
          link
          fedilink
          arrow-up
          1
          ·
          2 months ago

          @[email protected] This is my biggest worry too: they essentially copied the NPM package management model and practices. Good for short term productivity, but I worry that it causes significant long-term maintainability problems.

          And everything is version 0.x, in part due to technical limitations of Cargo: moving out of 0.x is a breaking change, so if you have users on 0.x (which Cargo encourages by treating 0.x specially) moving out of 0.x breaks them.