Not really, there are many special situations with 1.7. We’ve had one RNG before and now a new one (and I fell responsible since I suggested it). That’s a change since 2012, and I do not expect we ever change (or at least hope, I can hardly see we can go faster, so only reason would be if it turns out to have a flaw).
Syntax additions are rare, we have e.g. (were judged technical breaking changes?):
- A backslash
(\) before a newline inside a string literal now removes the newline while also respecting indentation. This can be used to split up long strings without newlines into multiple lines of code (#40753).
- A backslash before a newline in command literals now always removes the newline, similar to standard string literals, whereas the result was not well-defined before (#40753).
julia> [1 ;; 2] # in Julia 1.6
2-element Vector{Int64}:
1
2
julia> [1 ;; 2] # in Julia 1.7
1×2 Matrix{Int64}:
1 2
When you use the new syntax, do you (@PetrKryslUCSD) want to debug your students code, who might have used the LTS or vice versa?
We are converging on the best syntax, Julia was already very good, but such rare edge cases could be maddening, since they are rare.
That’s not what I’m saying. There wouldn’t be two LTSes at the same time, I had in mind e.g. 1.6 LTS and 1.7 or LTS and 1.8 etc. Yes, RNG is documented to change, but surprising to some, and you shouldn’t use it in e.g. your tests (rather StableRNG), but plausible people may ignore the warning they didn’t read. This affects integer code too, so people will possibly ask why different random streams. For floating point, people shouldn’t rely on the same, but I only recall one surprising thread on discourse where results were obviously different (i.e. on a graph). We would plausibly see such more often across the 1.7/1.6 LTS boundary.
“Expecting new syntax in a LTS version” if you don’t use it you will not likely be exposed to possible parser bugs since added the new syntax. And I think such code has low possibility of breaking, so I’m not worried for 1.7 for hat reason, only because of the divide, a people issue.
I looked into what other software does for LTS, and it can be as low as 1 year for Firefox (i.e. its JavaScript is included, not sure if it’s handled differently), and their LTS versions come on a schedule (possibly they’re more careful for the prior release, as with Ubuntu). Julia 1.7 was at least supposed to be a time-based release, much smaller change than for Julia 1.6. Yes, it could have bugs, they will be fixed.
Node.js has 1 year of “Active LTS”, whatever that means, but yes, then an additional “Maintenance LTS” for 1.5 year, but yes, to-be-fair, 6 months until “Active LTS” starts for 2.5 years of LTS (in 3 years for each release until EOLed). https://nodejs.org/en/about/releases/
LTS release status is “long-term support”, which typically guarantees that critical bugs will be fixed for a total of 30 months