Open pjljvandelaar opened 4 years ago
Thanks a lot for opening this issue. First, I agree that this is an under specified aspect in the Ada world. Thanks for participating your requirements.
We'll study that in more detail and give some feedback here.
A quick look over AdaDoc and GNATdoc and the returned format for AdaDoc (HTML, Latex, StrongHelp) and GNATdoc (HTML) seem a bit limiting. As markdown is becoming more and more a standard for online platforms, I would recommend markdown like documentation in code that is then generated into markdown files.
For the most feature rich markdown syntax I suggest pandoc markdown. With the help of pandoc you can then very easily convert your documentation to a lot of different formats.
ARG recently created a repo and a website for proposing new AIs. As this suggestion is related to the Ada standard, it might be worth also adding it to that repo.
I also think that documentation could be worth including in the standard, specially for documenting mathematical models used in the program (equations can be difficult to read in comments and code, so markdown can be quite useful to help the reader understand the program behavior, like Jupyter notebooks do)
Recently, we noticed another advance of treating documentation like aspects: making clear to which element documentation applies. Currently, it is up to the reader to determine whether documentation in a comment belongs to either the statement before or after that comment. Unfortunately, this is not always straightforward!
During a meeting with AdaCore, Nexperia and ESI, we were asked by AdaCore to submit this issue to trigger a discussion to determine whether a RFC is justified.
Documentation as part of the Ada Language Standard
Understandability is key
Standardization
Not only standardize the programming language Ada but also
Furthermore, enable checking by tools, e.g. warning when function is NOT documented.
Current Situation
Now de facto standards exist, such as AdaDoc and GNATdoc. However,
Features
The documentation should support the following features