54
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 05 Aug 2026
54 points (95.0% liked)
Programming
28274 readers
342 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 3 years ago
MODERATORS
So I haven’t worked with Lua myself, but is that right? There are forward-incompatibilities in minor versions…? Because that honestly seems pretty fucking stupid. Making basically every version include breaking changes and refusing to follow semantic versioning standards that are designed to essentially account for that is pants-on-head stupid.
Seems like it would be a bit hard to follow a versioning scheme that it predates by almost 20 years. Lua 5.2 even predates semver 1.0.0.
Before semver there was basically no standardization in versioning schemes and the meaning that semver applied to version numbers basically didn't exist (at least in my experience) before it came around. Everyone just kinda had their own meaning for what version numbers meant.
semantic versioning wasn't a new concept when semver 1.0.0 was released. Before that lot of projects already followed this scheme and this was just made official so that everyone should follow it as the standard. So its kind of like if all web browsers support non standard features, and then the committee decides to add it to the standard to make it official. My point is, that the release of semver 1.0.0 isn't the invention of it.
Ok that’s actually an excellent point that I hadn’t accounted for lol
Python does it, too. ¯\_(ツ)_/¯
Makes it real fun when one of your dependencies requires, say, Python 3.12 and another breaks on 3.9+.
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.
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.
from https://www.lua.org/versions.html:
I like how there's no description of what a "series" is.
There doesn't really need to be as they've stuck to the same series for decades now.