User:Matt.forestpath/Programming-language outline

The programming-language outline is an attempt to create a generic outline that can be used to organize a variety of programming-language articles (modified as needed to fit the particular language). The term "outline" refers to the name, grouping, and order of sections in the article, from which the table of contents is generated.

The outline should be applied only once for a given article, not on an ongoing basis. After applying the outline, no effort should be made to keep the article consistent with the outline. The article should be allowed to take whatever form the community of users finds to be useful.

Philosophy

edit

As long as the naming and grouping of the sections is somewhat coherent, the automatically-generated table of contents will do most of the heavy lifting of helping to make the articles adequately accessible to a wide range of people and for a wide variety of purposes. In other words, don't worry about the precise organization of the articles; just aim for something that's roughly coherent.

The value of Wikipedia is in the raw content, and in offering an environment that encourages the constant addition of raw content. Due to the collaborative nature of Wikis, the organization of the articles will be in constant flux no matter what; precise organization probably isn't a reasonable goal. If anything, precise organization may be counterproductive in Wikipedia, as it would encourage people to resist the addition of raw content, in the interest of not disrupting the existing, carefully-organized content. Some type of fuzzy organization will necessarily evolve over time, to offer a workable balance.

Goals

edit
  • Improve the consistency and intuitiveness of the table of contents for different programming-language articles.
  • Reduce the difficulty of using and working on multiple programming-language articles by providing a common frame of reference for their organization.
  • Aim for a fuzzy level of organization, one that won't discourage the addition of raw content.

Usage

edit

An earlier version of the programming-language outline was applied to the following articles:

Guidelines

edit
  • If section A is a better starting point than section B for understanding the language, favor placing section A before section B.

Question marks

edit
  • Theory vs Practice: Is it better to gear an article towards learning the theory and history of the language, or to gear it towards learning the hands-on usage of the language? Which approach is better suited for a non-programmer who's getting their first exposure to the language?
  • History vs philosophy: Which is a better starting point for understanding the language?

Current outline (tentative)

edit

Top level

edit
History             [How different aspects of the language came to be like they are]
Philosophy          [What the language is in theory]
Criticism           [Problems with different aspects of the language]
Usage               [How the language is used in practice]
Syntax              [What it is in detail]
Resources           [What options exist to help you use the language (tools, libraries)]
Availability        [How available are these options (platforms, licenses)]
Related languages   [Similar in nature to "See also"]
See also            [Related articles on Wikipedia]
References          [Bibliography]
Notes               [Footnotes]
External links      [For further reading]

Rationale

edit
  • History, philosophy, and criticism offer background info and establish a context for learning the language
  • Usage, syntax, resources, and availability offer help with learning the language
  • Related languages, see also, references, notes, and external links identify where to find additional info

Full outline

edit
History
Philosophy
Criticism
Usage
Syntax
    Sample code
        Hello world
        <sample name>
    Data structures
    Regular expressions
    Operators
        Arithmetic
        Assignment
        Comparison
        Conditional
        Boolean
        Bitwise
        String
    Control structures
        If ... else
        Switch statement
        For loop
        For ... in loop
        While loop
        Do ... while
        Jump statements
        Labels
    Functions
    Objects
    Exceptions
    Input/Output
        Standard I/O
        File I/O
    Memory management
    Miscellaneous
        Case sensitivity
        Whitespace
        Comments
Resources
    Compilers
    Libraries
Availability
    Supported platforms
    License
Related languages
See also
References
Notes
External links
    <Sponsor site>
    Language version
    Reference Material
    Authoring Guides
    Tutorials
    Security
    Books
    Journals
    Support
        Wikis
        Forums
        User groups
        Newsgroups
        IRC
        Mailing lists
    Resources
        Compilers
        Libraries
        Code repositories
    Non-English resources
    Standards
    Criticism
    History