Closed filipw closed 3 months ago
Hey @filipw! Thanks for the feedback.
You're right in that we don't maintain that formal spec anymore. While we are making a lot of changes right now, we are ensuring that they are all backwards compatible so that you won't feel the pressure to stay on the bleeding edge. This also gives us a bit of time to follow up with documentation etc. after we merge the updates in on Github. So, you can expect updated documentation and tutorials soon.
Your feedback is heard, though, and we had a discussion -- we'll be more diligent about using the language-approved
tag to denote that an issue is going to be worked on. That should serve as a roadmap of sorts, as it'll show pending/upcoming changes. Next week we'll go through our issues and ensure that tag is used in the correct places.
Additionally, qe do try to update issues with designs as they're created. For example, I recently reworked namespaces, and kept the issue updated here: https://github.com/microsoft/qsharp/issues/493.
Does this address your concerns?
Thanks - that will certainly help! The more structure, and the more transparency, the better if you ask me 🙂
Even without a formal specification, it might be good to have a some sort of a public roadmap so that it's a bit more clear what is the end goal and where we are heading mid- and long-term. This could even be as simple as a collection of links to issues labeled as "language" with some overarching commentary.
Hey @filipw!
In response to this issue, we've cleaned up our issue labels and have been going through all of our needs triage
issues. We aren't quite done yet, but we will be soon.
Here's how you can interpret our priorities, given the labels:
design needed
: In order to make any progress on this issue, we need a formal design.language
: something being considered as a change to Q#language-approved
: a change that should be made to Q#.language-rejected
: these issues are going to be closed, but they're features we have considered for Q# and explicitly decided against.If somebody is assigned to something in this list, it means they're actively working on it. Here's the current list of language
issues.
I'm going to close this issue for now, but feel free to continue commenting here if you have any questions or feedback. And also feel free to participate in any of the language issues if you have any thoughts on their design. Thanks!
Is your feature request related to a problem? Please describe. In the past there existed a Q# Language design repository at https://github.com/microsoft/qsharp-language. It provided a proper language specification, a transparent process of handling proposed changes to the language, as well as their implementation status. A good example is here
The specification was updated at the end of 2023 to capture some of the changes introduced in Q# for QDK 1.x, but after that the repository was archived and is no longer maintained.
At the same time Q# keeps getting changed and it is difficult to keep track of those changes - what is the motivation behind the changes, their justification, impact and formal description.
Describe the solution you'd like A formal, up-to-date, Q# language specification, as well as a documented process of introducing syntactic and semantic changes to the language.
Hope this makes sense!