APL Wiki:Content guidelines: Difference between revisions

Jump to navigation Jump to search
m
→‎Due weight: Reverse Compose is not as obscure as it used to be; switch to Case
(→‎What is APL?: Define an APL dialect, instead of refusing to define it)
m (→‎Due weight: Reverse Compose is not as obscure as it used to be; switch to Case)
 
(3 intermediate revisions by the same user not shown)
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. 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 APL Wiki is focused on APL (not exclusively! See [[#Notability]]), 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".


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:
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:
Line 38: Line 38:
== Due weight ==
== Due weight ==


Because the [[#What is APL?|definition]] of APL is not rigorous (a particular language may be more or less APL-like), the notability guidelines above can be interpreted more strictly or more loosely. To determine whether content belongs on the APL Wiki at all, a loose interpretation is better. For determining how content is presented, however, editors should consider not just whether a topic is related to APL but how closely related, or central to APL, it is. Even a recent and niche development like [[Reverse Compose]] has a place in the Wiki, but most information about the primitive should remain on its own page and mentions on more central pages should be qualified in order to make it clear the primitive is not available in most APLs. In contrast, a topic like [[Outer Product]] can be mentioned anywhere, and omitting it from related articles like [[Inner Product]] or [[Each]] would be a mistake in emphasis.
Because the [[#What is APL?|definition]] of APL is not rigorous (a particular language may be more or less APL-like), the notability guidelines above can be interpreted more strictly or more loosely. To determine whether content belongs on the APL Wiki at all, a loose interpretation is better. For determining how content is presented, however, editors should consider not just whether a topic is related to APL but how closely related, or central to APL, it is. Even a recent and niche development like [[Case]] has a place in the Wiki, but most information about the primitive should remain on its own page and mentions on more central pages should be qualified in order to make it clear the primitive is not available in most APLs. In contrast, a topic like [[Outer Product]] can be mentioned anywhere, and omitting it from related articles like [[Inner Product]] or [[Each]] would be a mistake in emphasis.


To be central to the concept of APL, a language needs '''adherence''' to APL principles and '''prominence''' in terms of its user base or in the APL community. This is a modification of Wikipedia's [[wikipedia:Wikipedia:Neutral point of view#Due and undue weight|due and undue weight]] policy, which relies on prominence alone. Adherence is measured roughly by the definitions in [[#What is APL?]]: languages that satisfy more of these definitions, and more closely, adhere better to the concept of APL. Prominence is determined by how many people use a language, how many of these are part of the APL community, and how strong an influence the language has had on the development of APL.
To be central to the concept of APL, a language needs '''adherence''' to APL principles and '''prominence''' in terms of its user base or in the APL community. This is a modification of Wikipedia's [[wikipedia:Wikipedia:Neutral point of view#Due and undue weight|due and undue weight]] policy, which relies on prominence alone. Adherence is measured roughly by the definitions in [[#What is APL?]]: languages that satisfy more of these definitions, and more closely, adhere better to the concept of APL. Prominence is determined by how many people use a language, how many of these are part of the APL community, and how strong an influence the language has had on the development of APL.
Line 44: Line 44:
Keep in mind that many APL users are not very visible to the outside world and don't publish anything about their usage (especially after the decline of the [[APL conference]]). For example, you are unlikely to see recent material about [[APL2]], but it is still widely used, and it's reasonable to think these users will look to the APL Wiki as a resource. As an editor you aren't expected to know every prominent language in order to contribute, but please think twice before removing material about a language you don't think is prominent. Evidence that the language is still in use might include major companies using it, active support forums, or significant development on the language indicating that it makes enough revenue to support this development. Significant historical use is also a sign, as usage of a particular APL rarely dies out quickly.
Keep in mind that many APL users are not very visible to the outside world and don't publish anything about their usage (especially after the decline of the [[APL conference]]). For example, you are unlikely to see recent material about [[APL2]], but it is still widely used, and it's reasonable to think these users will look to the APL Wiki as a resource. As an editor you aren't expected to know every prominent language in order to contribute, but please think twice before removing material about a language you don't think is prominent. Evidence that the language is still in use might include major companies using it, active support forums, or significant development on the language indicating that it makes enough revenue to support this development. Significant historical use is also a sign, as usage of a particular APL rarely dies out quickly.


A language can be prominent even if it is very rarely used, or in extreme cases never implemented. This is the case for research languages that are important in developing features later picked up by more prominent APLs. For example, [[A Dictionary of APL]], while only an incomplete description of how one APL might work, strongly influenced [[J]] and subsequently [[Dyalog APL]]. [[Extended Dyalog APL]], used infrequently in the [[code golf]] community, has also had a significant influence on [[Dyalog APL]]. The APL Wiki should include information about these languages because they will likely continue to influence APL's direction in the future. However, it's also important to make sure that this information, which is of theoretical interest, doesn't interfere with practical content. It should generally be placed lower in articles or sections of articles, and the text should make it clear that this material probably doesn't apply to the reader's APL of choice, usually by specifying which language or languages it is taken from.
A language can be prominent even if it is very rarely used, or in extreme cases never implemented. This is the case for research languages that are important in developing features later picked up by more prominent APLs. For example, [[Rationalized APL]], while only an incomplete description of how one APL might work, strongly influenced [[J]] and subsequently [[Dyalog APL]]. [[Extended Dyalog APL]], used infrequently in the [[code golf]] community, has also had a significant influence on [[Dyalog APL]]. The APL Wiki should include information about these languages because they will likely continue to influence APL's direction in the future. However, it's also important to make sure that this information, which is of theoretical interest, doesn't interfere with practical content. It should generally be placed lower in articles or sections of articles, and the text should make it clear that this material probably doesn't apply to the reader's APL of choice, usually by specifying which language or languages it is taken from.


== Dialect-specific pages ==
== Dialect-specific pages ==
Line 51: Line 51:
* For encyclopedic [[:Category:Articles|articles]], when a concept or feature is only present in one dialect.
* For encyclopedic [[:Category:Articles|articles]], when a concept or feature is only present in one dialect.
* For non-encyclopedic [[:Category:Essays|essays]], when using a particular APL makes examples and discussion clearer or more concrete.
* For non-encyclopedic [[:Category:Essays|essays]], when using a particular APL makes examples and discussion clearer or more concrete.
For articles, if a concept applies to multiple dialects, it would be inappropriate to write it from the perspective of a single dialect. However, there is no need to acquire an exhaustive knowledge of other APL dialects before writing an article. If you know another dialect has the feature you want to write about, but don't know how it might differ from the one you know about, simply indicate that any other dialects as part of a list of languages with the feature (probably in the introduction), and write the rest of the article about the dialect you know. Be sure to make it clear that you are writing only about a specific dialect, so that readers know the information might not apply to every APL. It is much more important to avoid incorrect information from making assumptions about an unfamiliar dialect than to make a particular article as general as possible. When writing an essay, such as a tutorial or example, the requirement to mention other dialects doesn't apply: simply make sure the reader knows which APL you are using.
For articles, if a concept applies to multiple dialects, it would be inappropriate to write it from the perspective of a single dialect. However, there is no need to acquire an exhaustive knowledge of other APL dialects before writing an article. If you know another dialect has the feature you want to write about, but don't know how it might differ from the one you know about, indicate any other dialects as part of a list of languages with the feature (probably in the introduction), and write the rest of the article about the dialect you know. Be sure to make it clear that you are writing only about a specific dialect, so that readers know the information might not apply to every APL. It is much more important to avoid incorrect information from making assumptions about an unfamiliar dialect than to make a particular article as general as possible. When writing an essay, such as a tutorial or example, the requirement to mention other dialects doesn't apply: simply make sure the reader knows which APL you are using.


In a dialect-specific article, you can assume (because you have told the reader) that the reader knows the page pertains to one APL only. This means it's acceptable to use terms like [[Disclose]] that are ambiguous in general but have only one meaning in the context of that APL, or terms like [[tradfn]] that many parts of the APL community don't use. Despite this, your primary aim should be to make the article useful for a general reader, who might never have heard of this APL. Use terminology which would be most readable for the wider APL community while remaining intelligible from the specific dialect's perspective. If there is no single term that fits, use a dialect-specific one but clarify by mentioning an identical or analogous term in parentheses.
In a dialect-specific article, you can assume (because you have told the reader) that the reader knows the page pertains to one APL only. This means it's acceptable to use terms like [[Disclose]] that are ambiguous in general but have only one meaning in the context of that APL, or terms like [[tradfn]] that many parts of the APL community don't use. Despite this, your primary aim should be to make the article useful for a general reader, who might never have heard of this APL. Use terminology which would be most readable for the wider APL community while remaining intelligible from the specific dialect's perspective. If there is no single term that fits, use a dialect-specific one but clarify by mentioning an identical or analogous term in parentheses.

Navigation menu