User:Matt.forestpath/Programming-language outline
The programming-language outline is an attempt to create a generic outline that can be used to organize any programming-language article (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.
Philosophy
One of the highest priorities for every Wikipedia article is that they be as accessible as possible to people who are not already familiar with the subject (in this case, non-programmers). Ideally, the content of the article as a whole, and of each section in the article, should progress from simple to advanced, from fundamental to in-depth (preferrably linking to sister articles for in-depth details).
If the table of contents is organized in a clear and logical way, the articles should be equally useful to experts and non-experts alike.
Goals
- 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.
Usage
An earlier version of the programming-language outline was applied to the following articles:
Guidelines
- If section A is a better starting point than section B for understanding the language, favor placing section A before section B.
Question marks
- 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)
Top level
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 References Notes External links
Rationale
- 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
History Philosophy Criticism Usage Syntax Sample code Hello world <sample name> Data structures Regular expressions Operators Control structures Functions Objects Exceptions Input/Output Memory management 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