pert:
Those constants are very specific to that function and rarely used. The Arduino documentation focuses on being accessible to beginners which means not providing an overwhelming amount of information so I think it makes more sense to only mention the frequently used constants on that page. Maybe a note that it's not a complete list would make sense.
A note would probably help, something like: "These are only the most commonly used constants. Some functions have their own set of constants, which are listed in their respective pages."
pert:
Now those are frequently used constants and it's surprising they aren't mentioned on either page.
Right?
pert:
The whole point of constants is that you don't need to know the value. I can't think of how that would be useful other than for people to use the information to write bad code that relies on those constants having specific values. This is a bad idea because there are many different platforms and some might use those constants in different ways.
That I completely agree with, I don't remember why I even brought it up. There is one case where it would be useful - to use digitalRead (or another function like it) as-is inside an if condition, which you should only do if you are guaranteed that LOW is 0 and HIGH is non-0. But yeah, it's probably better to hide the values for the sake of better code.
pert:
The Arduino reference page is not intended to be a comprehensive C++ language reference. There are many of those already that do an excellent job of it. The Arduino reference page is mostly focused on documenting the API of the Arduino core libraries with a small amount of the most basic programming concepts thrown in. I do think it would make sense to add a note that many other C++ functions exist with a link to a full C++ reference. In fact it already does this for avr-libc but I don't think it's well explained and I don't think that's the best reference.
Yeah, I briefly saw that link but assumed it would be documentation for some library rather than the language. Worth noting, though, is that nowhere is it stated unambiguously that the Arduino language is C++. The bottom of the reference home page says: "The Arduino language is based on C/C++". "Based on" implies that it's not 1:1 - meaning that Arduino may not have all C/C++ features, and it may deviate from their established rules and conventions (e.g. using setup() and loop() instead of just main()). Also, C/C++ is ambiguous in itself - where there's a difference, is it C or is it C++? For the non-beginner programmer, this is an important line to define.
pert:
I'm somewhat in agreement but I also see that there are many people like you who don't fully understand the intention behind the reference page and would make it less beginner friendly.
I can't speak for anyone else, but I would never make a significant change before I've had a lot of experience in the wiki and completely understand its design, the reasons behind it, and so on. Also, all wikis have a style guide, with dos and don'ts, so you can preface the guide with e.g. "The primary goal of this reference is to be beginner-friendly. Always keep this goal in mind when making edits". Bad edits would be easily reverted or improved by the more experienced editors. I don't think this risk is too relevant, given that there are enough real-world examples of wikis done right.
pert:
A couple years ago they actually set up a system to make it very easy for anyone to submit proposals for changes to the pages but never made the final effort to actually use the thing, really sad.
pert:
However, You can submit corrections or suggestions for improvements here:
Issues · arduino/Arduino · GitHub
I've found that if you take the time to clearly explain the issue and provided complete text for the suggested edit (rather than just a vague recommendation) they usually will take action very quickly. The person in charge of these edits, agdl, is very easy to work with. I have successfully gotten many problems fixed with the reference pages via that approach.
All reference pages say this at the bottom:
Corrections, suggestions, and new documentation should be posted to the Forum.
If there's a better way, it should replace the forum link.
pert:
I should note that we do have a publicly editable wiki:
http://playground.arduino.cc/
and you are welcome to add any content you like there or make corrections or improvements to the existing content.
Thanks for the link, I'll take a look around there for sure. But I really was talking specifically about the Reference section.