• trem@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    14
    ·
    1 day ago

    Python does it, too. ¯\_(ツ)_/¯

    Makes it real fun when one of your dependencies requires, say, Python 3.12 and another breaks on 3.9+.

    • FizzyOrange@programming.dev
      link
      fedilink
      arrow-up
      5
      ·
      1 day ago

      Python is one of the worst offenders here. I don’t think Python’s poor behaviour should excuse Lua’s.

      But I can also see why Python is making breaking changes - a lot of Python is so bad it really makes sense to clean it up. I dunno if Lua is in that situation.

      Anyway I think I would look to other languages like Go, Rust, Java, C++ which do a much better job. I don’t think Go or Rust have any backwards incompatibilities (at least very very few) and C++ has a small number but they’re for stuff that is truly ancient or almost completely unused. It’s totally possible if you care about it.

    • gravitas_deficiency@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      1 day ago

      Oh, most definitely.

      Several months back I was kinda pulling my hair out over the frustrating state that Apache Airflow was in, because (due to my company’s infosec, SQA, and regulatory policies) I found some delightful mutually-exclusive transitive dependencies when I tried to diverge (with version upgrades to get past CVE-marked releases) the constraints from the officially-packaged constraints.txt. Though, that’s packages, not actual lang level.

      Were you around for the 2 -> 3 migration? Now THAT was a categorical shitshow.