Wikipedia:Articles for deletion/Racket features
- The following discussion is an archived debate of the proposed deletion of the article below. Please do not modify it. Subsequent comments should be made on the appropriate discussion page (such as the article's talk page or in a deletion review). No further edits should be made to this page.
The result was keep. causa sui (talk) 17:06, 24 August 2011 (UTC)[reply]
![]() | If you came here because of the ongoing discussion on the Racket mailing list, please note that this is not a majority vote, but instead a discussion among Wikipedia contributors. Wikipedia has policies and guidelines regarding the encyclopedia's content, and consensus (agreement) is gauged based on the merits of the arguments, not by counting votes.
However, you are invited to participate and your opinion is welcome. Remember to assume good faith on the part of others and to sign your posts on this page by adding ~~~~ at the end. Note: Comments may be tagged as follows: suspected single-purpose accounts:{{subst:spa|username}} ; suspected canvassed users: {{subst:canvassed|username}} ; accounts blocked for sockpuppetry: {{subst:csm|username}} or {{subst:csp|username}} . |
- Racket features (edit | talk | history | protect | delete | links | watch | logs | views) – (View log)
- (Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL)
Overly-detailed description of features of a not very notable programming language. Wikipedia is not an how-to guide or programming manual. — RHaworth (talk · contribs) 12:49, 16 August 2011 (UTC) — RHaworth (talk · contribs) 12:49, 16 August 2011 (UTC)[reply]
- Note: This debate has been included in the list of Software-related deletion discussions. —Tom Morris (talk) 13:17, 16 August 2011 (UTC)[reply]
- Keep. I wonder how RHaworth reaches a conclusion that Racket is not notable compared to, for example, Haskell, where a similar page exists. — Preceding unsigned comment added by Elibarzilay (talk • contribs) 16:49, 16 August 2011 (UTC)[reply]
- Keep It's a split-off page from Racket (programming language). Racket is the new name of PLT Scheme, which is the absolute opposite of "a not very notable programming language", it's the main implementation of Scheme (programming language) which is a historically significant and extremely influential (especially in academic/programming language theory circles), not to mention widely documented, programming language. Wikipedia isn't a how-to guide/programming manual: and this isn't a how-to entry or programming manual, it's a syntax/features description that's been forked off the main Racket page (just like, say, Java syntax is). "PLT Scheme" comes back with 248 results from Google Books (a few are Books, LLC - i.e. Wikipedia - books, but the majority aren't) and loads more resources in academic and web sources. Scheme and PLT Scheme have heaps of notability. —Tom Morris (talk) 13:53, 16 August 2011 (UTC)[reply]
Keep: Racket is one of the two or three most prominent implementations of the indisputably notable Scheme language, and the one with probably the greatest current momentum; as well, this is a language with a strong pedagogical focus and community. This is not an obscure language. This page (if I recall correctly) was split off to avoid cluttering the main Racket page, in a pattern which closely parallels the similar Haskell_features page. This page isn't a 'how-to' (which I agree shouldn't be on Wikipedia), but intended to illustrate, with code, the notably broad range of uses that the language can be turned to. This flexibility and strength are important things to be aware of when consulting an encyclopaedia article about a programming language.
Quick list of some example publications:
- Typed Racket: Tobin-Hochstadt and Felleisen, The Design and Implementation of Typed Scheme ref ref
- Scribble: Flatt et al, Scribble: Closing the book on ad-hoc documentation tools ref
- The web server: Krishnamurthi, et al., Implementation and Use of the PLT Scheme Web Server ref
All of these papers (and citations for more things) are available here: http://www.ccs.neu.edu/scheme/pubs/ NormanGray (talk) 13:56, 16 August 2011 (UTC)[reply]
- Keep: To explain the list of publications above, all Lisp-based languages are known for their meta-programming and macros, which Racket has taken to a whole new level. The module system (http://www.cs.utah.edu/plt/publications/macromod.pdf) is a magnificent piece of design, and allows a piece of Racket source code to specify the language that it is written in (this is the `#lang' line that appears at the beginning of the examples). This facilitates the creation of arbitrary programming languages within the language itself, such as TypedRacket (http://www.ccs.neu.edu/scheme/pubs/popl08-thf.pdf), a statically typed version of the Racket language, Scribble (http://www.ccs.neu.edu/scheme/pubs/icfp09-fbf.pdf), a language designed for documentation, and even a language in which the implementation of a web-server is possible with minimal amounts of code (http://www.ccs.neu.edu/scheme/pubs/hosc07-sk-mf.pdf). These are all features of note, and distinguish Racket from other Lisps, and should be documented here as such. — William Turtle, Brown University '13 14:06, 16 August 2011 (UTC)
- Delete. Wikipedia is not for 'how to' articles, especially not for articles bristling with quotations in source code. This might be an appropriate candidate for transwiki to Wikibooks or another sister project, but most readers aren't going to get much out of text like:
#lang racket/gui ; A GUI guessing game
(define f (new frame% [label "Guess"]))
(define n (random 5))
(send f show #t)
(define ((check i) btn evt)
(message-box "." (if (= i n) "Yes" "No")))
(for ([i (in-range 5)])
(make-object button% (format "~a" i) f (check i)))
Also note that the title is mildly disconcerting; the article seems likelier to be about tennis, or maybe about racketeering, anything other than .... whatever this is. - Smerdis of Tlön - killing the human spirit since 2003! 14:16, 16 August 2011 (UTC)[reply]- So, new rule time? No code samples in programming language articles...? Time to AfD Java syntax, C syntax, PHP syntax and semantics, JavaScript syntax? Or should the "most readers aren't going to get much from this rule" also apply to most of our more advanced mathematics articles too? —Tom Morris (talk) 14:24, 16 August 2011 (UTC)[reply]
- There is no such a rule as "every reader should be able to understand every article". It is normal for a lawyer not to understand the previous example, while most readers interested in the Racket programming language will certainly consider it meaningful. Jarnaldich (talk) 15:25, 16 August 2011 (UTC)[reply]
- This is not a how-to article -- it's a technical illustration of features. And if you don't like the title, suggest a new one. Racket (programming language; features) perhaps? NormanGray (talk) 15:33, 16 August 2011 (UTC)[reply]
- I'd probably want to call this something like Sample Racket source code. That at least would clue readers in that what would be found here was a set of samples of computer language source code. That name also explains why I'm still not convinced that this page can thrive here. At wikibooks, an elaborate tutorial on this language could be created, and my sense is that the article wants to be just that. Here, WP:NOT dooms the page to be something far less valuable, too rudimentary for experts and too unintelligible for beginners. As computer language goes, this seems even more arcane than most. - Smerdis of Tlön - killing the human spirit since 2003! 16:19, 19 August 2011 (UTC)[reply]
- Keep: This is a notable programming language actively used in research at a number of universities with a significant presence at the leading conferences in the PL research. For those not familiar with the field, CS papers are conference-driven, with journals being significant but secondary.
Racket(PLT-Scheme) is also a siginificant player in secondary school CS, via 'teach scheme'. — Preceding unsigned comment added by Spdegabrielle (talk • contribs) 16:01, 16 August 2011 (UTC)[reply]
- Keep: First, the page is clearly not a how-to (how to what? how to run the examples?), but a page with examples for a programming language. Most readers interested in a language will actually want to see some code before deciding wether to learn more or not (that's the kind of reader I expect for this kind of article), and the code can easily clutter the main article. Again, it's not a pattern I invented, but something done in other programming language articles, as stated above. What bothers me is the statement that the language is not notable, since most references given above are already in the Main page for Racket (programming language). So either the editor didn't read the main article or is not using the concept of notability properly. In both cases, the least one should do before proposing for deletion. Furthermore, there is no such a rule saying that a "less notable" programming language is not allowed to have an examples page, and "Overly-detailed" is a subjective statement. The level of detail should not depend on notability in any case, but in structural complexity of the thing being described. And Racket is far more complex than many other computer languages. — Preceding unsigned comment added by Jarnaldich (talk • contribs) 16:10, 16 August 2011 (UTC)[reply]
delete this programming language is notable but this is not an encyclopedic article it's a collection of examples and the like. Not notable on their own, either merge in or delete.weak keep as changed. Language is notable, spinning out a list of notable/compelling/defining features to keep from bloating the main page is probably acceptable. HominidMachinae (talk) 00:06, 17 August 2011 (UTC)[reply]- The examples demonstrate features of the language -- this language has been in very active development since 1994, and as a language with academic research project it is loaded with many notable features. However, cramming such features into the main page makes it too verbose. In fact, that has already lead once to an "advert" tag. A separate page will make it possible to write about these features in a more appropriate context.
- Again, as already stated above, this "examples and the like" pattern is very common inside wikipedia for documenting programming languages, and is well motivated not to clutter the more descriptive, main article. The deletion proposal seems to be based in the fact that a "less notable" (according to the editor) programming language is not allowed to have a page with examples... and that is certainly not a Wikipedia rule. Jarnaldich (talk) 08:14, 17 August 2011 (UTC)[reply]
- Delete as much of this article appears to be a Copyright Violation of the Racket home page. Please take a look at the '<', '>', and '?' buttons under the "Start Quickly" section. There you will find that this article has reproduced, word for word, not just the examples, but the descriptions of these examples. i.e., you will find exact text like "Racket makes it easy to use TCP sockets and spawn threads to handle them. This program starts a server at TCP port 12345 that echos anything a client sends back to the client" and "The 2htdp/image library provides easy-to-use functions for constructing images, and DrRacket can display an image result as easily as it can display a number result. In this case, a sierpinski function is defined and called (at the same time) to generate a Sierpinski triangle of depth 6." Even text from within the example code, such as: "Time to go out an move your car" has been copied. There is no statement on the Racket home page that this material is properly licensed for use on Wikipedia. Steamroller Assault (talk) 00:35, 17 August 2011 (UTC)[reply]
- (1) The intention is to use these examples as seed that will be expanded, and many more added; (2) there is no copyright issue: the source for the web page in question can be found in the Racket repository, and as such, it is licensed as the rest of the code -- under the LGPL. — Preceding unsigned comment added by Elibarzilay (talk • contribs) 07:01, 17 August 2011 (UTC)[reply]
- The examples were copied here to make them more accessible to the interested Wikipedia readers, who will see them in one page inside Wikipedia, instead of having to get out of the page and then browse. The already existing examples and explanations at the home page are a very good starting point for such a page, and even if it wasn't strictly needed due to the LGPL license, I asked for permission to the authors through the mailing list before reproducing them here. Also note there's somewhat more in the article than the examples in the home page, and that not every example in the home page has been copied. The pages should diverge as more users contribute to this page... but of course that can only happen if it stays.Jarnaldich (talk) 07:54, 17 August 2011 (UTC)[reply]
- Can anyone here say with any certainty if LGPL is compatible with CC-BY-SA and GFDL (the required licenses for Wikipedia)? If it is, there should be a note in the References section describing that the majority of the content was taken from a site with a compatible license (I see there is a note at the top of the article, but it doesn't go into sufficient detail). If the creators have given permission, then they should follow the procedures set out at WP:DCP to avoid any perceived copyright problems. Additionally, if the instructional text written between the code is not subject to copyright, some of it still needs to be rewritten anyway so it is less spammy and more neutral. Language like "The 2htdp/image library provides easy-to-use functions" and "Pulling out a foreign function is easy" is not all that appropriate for an encyclopedia. Also, since the text has been lifted directly from the Racket home page, there is the issue of voice. The article needs some rewriting to fix passages like "Racket distribution comes with a range of different task-specific languages, which we will present here." 'We' made sense coming straight from the mouths of the creators, but is not appropriate for an encyclopedia article. Steamroller Assault (talk) 14:12, 18 August 2011 (UTC)[reply]
- I don't know about subtle issues with CC, but I know that covering documentation and prose by the LGPL is fine and is compatible to using the GFDL. When the issue of text copyright came up in the project, we chose to leave it all covered by the LGPL only to make things simpler. So I think that this is sufficient in addressing the copyright issue, but if it isn't, I'll be happy to do whatever's needed. (I'm one of the developers, and wrote some of these examples.) As for the language being inappropriate, you're absolutely right about that: I certainly noticed the "voice" problem and the overall spam-like text (since it comes from a context where such text is appropriate). I've started a complete overhaul of the page a few days ago, and will do the edit soon. There's little left from all of the original texts as a result, just the general explanations. I'll add a note here when I finally commit the change. Elibarzilay 16:51, 18 August 2011 (UTC) — Preceding unsigned comment added by Elibarzilay (talk • contribs)
- Without a definitive answer on CC-BY-SA (which is required), I think the best thing to do (as the developer) is to follow the instructions set out here so as to avoid any future issues. Steamroller Assault (talk) 20:16, 18 August 2011 (UTC)[reply]
- The language problem is entirely my fault, not the original authors'. I am not a native English language speaker and sometimes have problems with the register. Anyway, IMHO, this particular problem is probably orthogonal to the deletion process and could be discussed in the article's talk page...Jarnaldich (talk) 18:43, 18 August 2011 (UTC)[reply]
- I don't know about subtle issues with CC, but I know that covering documentation and prose by the LGPL is fine and is compatible to using the GFDL. When the issue of text copyright came up in the project, we chose to leave it all covered by the LGPL only to make things simpler. So I think that this is sufficient in addressing the copyright issue, but if it isn't, I'll be happy to do whatever's needed. (I'm one of the developers, and wrote some of these examples.) As for the language being inappropriate, you're absolutely right about that: I certainly noticed the "voice" problem and the overall spam-like text (since it comes from a context where such text is appropriate). I've started a complete overhaul of the page a few days ago, and will do the edit soon. There's little left from all of the original texts as a result, just the general explanations. I'll add a note here when I finally commit the change. Elibarzilay 16:51, 18 August 2011 (UTC) — Preceding unsigned comment added by Elibarzilay (talk • contribs)
- Keep: As has been mentioned already, other languages of similar notability (e.g. Haskell) have extra pages detailing features. Not only that, the WikiProject for Computing has assessed articles like Python (programming language) with "good article" status despite the existence of multiple spin-off pages that are mentioned in-line such as Python syntax and semantics. This is a double standard.
The copyright issue is orthogonal to the original AfD nomination and should be easy to address. The contributions made to both the main Racket page and this spin-off are known to the community–there is an ongoing discussion on the mailing list–and nobody is concerned about a copyright violation.Eli has clarified the copyright status in a comment above. --Takikawa (talk) 04:25, 17 August 2011 (UTC)[reply]
- I have finished a complete overhaul of the page.
- This addresses the language/spamminess issue.
- I've addressed the above copyright issue: I think that there's no problem, but I'll be happy to do whatever's needed (I'm a developer, and can contact all the relevant authors).
- Update: following Steamroller Assault's advice, I've added a copyleft notice to our website. (And now I'll type four tildes, and it will probably still add an "unsigned" note.) Elibarzilay 20:38, 18 August 2011 (UTC) — Preceding unsigned comment added by Elibarzilay (talk • contribs)
- AFAICT, the only issue that is left is RHaworth's original "not very notable" determination, which is yet to be explained. I can provide various numbers to support notability, for example: number of articles, textbooks, CS departments that use Racket, website traffic stats, downloads/day, people on the various mailing lists, people who commit to the racket repository, people on the core team, number of commits per day, code size, code age, contributed packages, etc etc. However, it seems pointless for me to post all of this without knowing what's relevant—and as noted earlier, I couldn't find any wikipedia rule on PL notability that would clarify RHaworth's judgment.
Elibarzilay 19:47, 18 August 2011 (UTC) — Preceding unsigned comment added by Elibarzilay (talk • contribs)
- I think the issue is not actually the "not very notable" determination at all, but rather the question "how is an indiscriminate collection of code examples, features, and snippets, many of which may be a copyvio, encyclopedic?" No one here is arguing that the language is non-notable, my concern is that this all-and-sundry collection of code examples not in the main article is unsuitable to an encyclopedia. HominidMachinae (talk) 07:28, 19 August 2011 (UTC)[reply]
- But this issue appears to have been addressed several times above, by referring to the various other wikipedia articles with this same pattern (and after which this page was explicitly patterned), and by noting that this is not a 'how to' article (the examples are too short/noddy for this), but an illustration of the range of functionality. Is there anything missing in these various rebuttals? Would it be better to just state 'Racket can do X' than actually illustrate Racket doing X (serious question)? This is not 'all and sundry' or 'indiscriminate', but a carefully chosen display of range. The copyvio issue has been very comprehensively addressed above. NormanGray (talk) 08:44, 19 August 2011 (UTC)[reply]
- I actually do think it would be better to simply state "Racket is notable for being able to do X" and listing unique features or selling points, with a link to a source that talks about it and provides code examples. The excessive use of code examples seems to be what makes the page unencyclopedic and overly detailed, as it's entirely primary-source material, usually unsuitable for Wikipedia purposes. I could see a valid page that has a listing of unique or compelling features and a brief discussion of their importance. The problem here almost reminds me of the problem you sometimes get with fiction articles where it's hard to see the forest for the trees because of the inclusion of overly abundant detail. For instance, the entire first section seems to be dedicated to proving that Racket can function as a fully-functional scripting language. I'd rather see the section talk about why that's important, or why it's unique, than on examples of how it's implemented in Racket. I would prefer those descriptions in the main article but if it becomes unwieldy there, then here's a good place for it. HominidMachinae (talk) 20:16, 19 August 2011 (UTC)[reply]
- The main page has already been slapped once with an advert, so it doesn't work there. As for this page, it is no longer a list of examples, I've added a lot of text that is explaining the features that are discussed, and added new discussion of features. Folding all of that into the main page is going to be inappropriate: this is a very mature language with a ton of stuff in, so no matter how it's presented on the main page, it will draw more advert complaints. As for your first section complaint -- I don't know what you're referring to. Section 1 is talking about runtime features of the racket vm, which is very distinct from linguistic features of the language. Or maybe you're talking about the top section, which could be improved since I didn't find a good way to introduce it (one thing that looks odd there is the "greatest strength" comment -- this is because it's a major Racket feature that can make reading the page weird if you don't know in advance that these languages are all implemented as part of Racket). Elibarzilay 20:33, 19 August 2011 (UTC) — Preceding unsigned comment added by Elibarzilay (talk • contribs)
- I was referring to the first section. And your edits have come a long way in addressing my concerns. There's a ways to go yet but now I at least can see the direction the page is going and what it's supposed to mean. As a result I'm striking my delete vote. HominidMachinae (talk) 21:03, 19 August 2011 (UTC)[reply]
- Yeah, I'm not really used to this kind of writing, but that's exactly what I meant when I said that there is enough material, and it should shape up in time, as usual. Thanks for the comments. (And now I'll see if it's "customizing" my signature that will avoid getting the automated thing to sign my unsigned comment even when it's signed.) Eli Barzilay 01:45, 20 August 2011 (UTC) — Preceding unsigned comment added by Elibarzilay (talk • contribs)
- I was referring to the first section. And your edits have come a long way in addressing my concerns. There's a ways to go yet but now I at least can see the direction the page is going and what it's supposed to mean. As a result I'm striking my delete vote. HominidMachinae (talk) 21:03, 19 August 2011 (UTC)[reply]
- The main page has already been slapped once with an advert, so it doesn't work there. As for this page, it is no longer a list of examples, I've added a lot of text that is explaining the features that are discussed, and added new discussion of features. Folding all of that into the main page is going to be inappropriate: this is a very mature language with a ton of stuff in, so no matter how it's presented on the main page, it will draw more advert complaints. As for your first section complaint -- I don't know what you're referring to. Section 1 is talking about runtime features of the racket vm, which is very distinct from linguistic features of the language. Or maybe you're talking about the top section, which could be improved since I didn't find a good way to introduce it (one thing that looks odd there is the "greatest strength" comment -- this is because it's a major Racket feature that can make reading the page weird if you don't know in advance that these languages are all implemented as part of Racket). Elibarzilay 20:33, 19 August 2011 (UTC) — Preceding unsigned comment added by Elibarzilay (talk • contribs)
- I actually do think it would be better to simply state "Racket is notable for being able to do X" and listing unique features or selling points, with a link to a source that talks about it and provides code examples. The excessive use of code examples seems to be what makes the page unencyclopedic and overly detailed, as it's entirely primary-source material, usually unsuitable for Wikipedia purposes. I could see a valid page that has a listing of unique or compelling features and a brief discussion of their importance. The problem here almost reminds me of the problem you sometimes get with fiction articles where it's hard to see the forest for the trees because of the inclusion of overly abundant detail. For instance, the entire first section seems to be dedicated to proving that Racket can function as a fully-functional scripting language. I'd rather see the section talk about why that's important, or why it's unique, than on examples of how it's implemented in Racket. I would prefer those descriptions in the main article but if it becomes unwieldy there, then here's a good place for it. HominidMachinae (talk) 20:16, 19 August 2011 (UTC)[reply]
- The above discussion is preserved as an archive of the debate. Please do not modify it. Subsequent comments should be made on the appropriate discussion page (such as the article's talk page or in a deletion review). No further edits should be made to this page.