3 ms·
> We expect the design of encoding/json/v2 to continue to evolve. We encourage developers to try out the new API and provide feedback on the proposal issue. Do
by tete 1y ago
> We expect the design of encoding/json/v2 to continue to evolve. We encourage developers to try out the new API and provide feedback on the proposal issue.
Does anyone have more knowledge on what this refers to? I thought v2 being in as an experiment means they are happy with it, but "we expect it to evolve" sounds like "we know it's not good yet". Maybe I am understanding it the wrong way though. Just because other experiments were more like "this is new code, please test" and not "this will change".
- LambdaComplex 1y agoJust because the Go maintainers think it's in an okay state doesn't mean the wider community won't have good ideas on how to improve it.
- arccy 1y agoOther experiments did change though: arena got dropped, synctest Run -> Test
- MadcapJake 1y agoWhere is it mentioned that the arena experiment has been dropped?
- typical182 1y agoThe arena experiment was essentially placed on indefinite hold: > The proposal to add arenas to the standard library is on indefinite hold due to concerns about API pollution. I think the parent comment was using arenas as an example that GOEXPERIMENTs don't always move forward (like arenas), or can change while still GOEXPERIMENTs in a way that would normally not be allowed due to backward compatibility (like synctest). The arena GOEXPERIMENT has not yet been dropped as of Go 1.25, but as I understand it, the plan is to remove arenas from the runtime when 'regions' are introduced, which have similar performance benefits but a much lower API impact: https://github.com/golang/go/discussions/70257 https://github.com/golang/go/discussions/70257 As discussed there, seeing how people actually used the arena GOEXPERIMENT influenced the 'regions' design.
- neild 1y agoIt means we're not confident the API is stable yet. There might be further changes before the final, non-experimental version, depending on user feedback and further experience with the current proposal. In the case of encoding/json/v2, enabling GOEXPERIMENT=jsonv2 has two major effects: 1. It flips encoding/json (the original, not /v2) to use the new implementation. This is supposed to be a fully backwards-compatible change, modulo some changes to the text of some errors. We're very interested to hear of any cases of existing programs breaking when the experiment is turned on, because (aside from the aforementioned error text, which you shouldn't be depending on) it likely indicates a bug that needs fixing. This is the "new code, please test" half of the change. 2. It enables the new API (encoding/json/v2, encoding/json/jsontext, some new options in encoding/json). This is the "unstable API, might change in response to feedback" half of the change.