Skip to content

Please consider refining (reorganizing/documenting) core headers to aid in their explicit inclusion ... #121

@paschlie

Description

@paschlie

(I don't know if this is the correct place to begin this discussion, but if wrong please move it.)

Specifically I believe the current Arduino development environment is hurting beginners by hiding the inclusion of critical header files, which actually define the API's which programming relies upon, and who's inspection should be encouraged to aid beginners more easily understand why ideally well documented functions must be called with certain argument orders and types for example. Please consider reorganizing and refining Arduino's core library/environment header / implementation specification to allow it to more easily serve as a coherent reference to aid in its use; as also further supported by the following proposed changes:

  • change default new project stationary to include "#include <arduino.h>", which need not be equivalent to "Arduino.h", although will likely include it among other base library headers, defining the base Arduinio API.

  • initially continuing to support their magical inclusion behind the scenes, and thereby not breaking anything for existing projects, but beginning the transition to a requirement for its explicit top-level inclusion.

  • add a feature to the IDE to make it easy to open and view included baseline headers, and those from optionally supported libraries (but possibly kept read-only by default, so beginners don't mistakenly modify them).

  • in turn the source code can then be parsed to determine the code's corresponding library dependency required for compilation and linking, etc.

All visible to the user, as hiding such critical information typically hurts more than helps even, if not especially, beginners understand what's going on and why, in practice.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @paschlie

        Issue actions

          Please consider refining (reorganizing/documenting) core headers to aid in their explicit inclusion ... · Issue #121 · arduino/ArduinoCore-API