APL Wiki:Content guidelines: Difference between revisions

Jump to navigation Jump to search
→‎What is APL?: Define an APL dialect, instead of refusing to define it
(→‎Dialect-specific pages: Pages about multiple dialects)
(→‎What is APL?: Define an APL dialect, instead of refusing to define it)
Line 5: Line 5:
== What is APL? ==
== What is APL? ==


The APL Wiki is focused on APL, which is somewhat problematic because APL has no agreed-upon definition. We might say in a strict sense that APL, or "an APL", is a programming language that encodes [[Iverson notation]] in a text-based and machine-executable form, using the conventions established by the first such language to be broadly available, [[APL\360]]. However, because the APL Wiki should serve even remote corners of the APL world, we would like to take a broader definition of APL that also includes later developments that some people consider part of APL and some don't. Other definitions of APL or APL features might include:
The APL Wiki is focused on APL, which is somewhat problematic because APL has no agreed-upon definition. On the APL Wiki we define an [[:Category:APL dialects|APL dialect]], or "an APL", to be a programming language that encodes [[Iverson notation]] in a text-based and machine-executable form, using the syntax and symbols established by the first such language to be publically available, [[APL\360]]. This includes [[A+]], but not similar languages with different symbols like [[ELI]], [[J]], or [[BQN]]: these should be called "languages" rather than "dialects".
* The original [[IBM]] implementation of APL, [[APL\360]]
 
However, the APL Wiki does not merely document facts about APL dialects, but rather concepts that are important to users of APL. For this purpose it's important to discern not just whether a language is or isn't an APL dialect, but to what extent it can be considered a member of the APL family. Features that make a language APL-like might include:
* Features from the original [[IBM]] implementation of APL, [[APL\360]]
* [[Ken Iverson]]'s ideas of what APL should look like, realised in [[APL\360]], [[SHARP APL]], [[Rationalized APL]], [[A Dictionary of APL]], and [[J]]
* [[Ken Iverson]]'s ideas of what APL should look like, realised in [[APL\360]], [[SHARP APL]], [[Rationalized APL]], [[A Dictionary of APL]], and [[J]]
* A language which is typically called "APL" by the APL community
* Typically called "APL" by the APL community
* A language that uses the central concepts of Iverson's APL, like [[array]]s as the fundamental datatype, [[glyph]]s to represent [[primitive function|primitive functions]] and [[primitive operator|operators]], infix notation, and [[Evaluation order|right-to-left]] evaluation
* The central concepts of Iverson's APL, like [[array]]s as the fundamental datatype, [[glyph]]s to represent [[primitive function|primitive functions]] and [[primitive operator|operators]], infix notation, and [[Evaluation order|right-to-left]] evaluation
* Developments adopted by substantial portions of the community of APLers, such as the [[nested array model]].
* Developments adopted by substantial portions of the community of APLers, such as the [[nested array model]].
The APL Wiki takes no position on what can be called "APL", and this question is not important to its content (when in doubt, a controversial APL such as [[J]] may be called a "language" rather than an "APL" or "dialect"). Instead, an editor should consider the task of balancing how central a concept is to APL against its prominence and placement in the APL Wiki. See [[#Due weight]] below.
 
Other than the term "APL dialect", the APL Wiki doesn't assign any "APL score" or make any other direct statement of how APL-like a language is. Instead, an editor should consider the task of balancing how central a concept is to APL against its prominence and placement in the APL Wiki. See [[#Due weight]] below.


== Notability ==
== Notability ==

Navigation menu