Wikipedia:Miscellany for deletion/Portal:Haskell (programming language) (2nd nomination)

 __NOINDEX__
 * The following discussion is an archived debate of the proposed deletion of the miscellaneous page below. Please do not modify it. Subsequent comments should be made on the appropriate discussion page (such as the page's talk page or in a deletion review).  No further edits should be made to this page.

The result of the discussion was:  delete. —&thinsp;JJMC89&thinsp; (T·C) 02:02, 12 May 2019 (UTC)

Portal:Haskell (programming language)


Misconceived, fully automated pseudo-portal based on a single navbox, about a narrow topic. Propose outright deletion.

This portal was created in February 2019‎ as a fully-automated portal using. Throughout its existence it has drawn its "selected articles" list solely from the navbox, of which it is therefore a redundant fork.

For a full explanation of why this type of portal is redundant, see the two mass deletions of similar portals: one, and two, where there was overwhelming consensus of a very high turnout to delete a total of 2,555 such portals. This portal was not part of the mass output of @The Transhumanist, and I am sure that it was created in all good faith, but nonetheless it uses the same flawed structure which has been so clearly deprecated. There is no curated version to revert to.

In this case, there is a slight oddity, in that the Template:Functional programming basics was created by only an hour before they created this portal, and is used only in this portal. Even odder, the portal is all about computing concepts, rather than topics specifically relate to Haskell. I checked the first five links in the current version of the navbox, and two of them don't even mention the word "Haskell":
 * 1) Functional programming
 * 2) Abstract rewriting system — doesn't mention the word "Haskell"
 * 3) Ad hoc polymorphism — doesn't mention the word "Haskell"
 * 4) Algebraic data type
 * 5) Anonymous function

I don't know quite what was being attempted here, but the effect is akin to making a portal about the Ford Model T motor car based on a template which consisted of links to generalised automotive engineering concepts most of which don't even mention the Model T. Maybe somewhere in this there is a potential navbox for broader use once the formatting issues are resolved, but it's not my area ... and this is not a Haskell Portal.

So we are left with the question of whether there could be a portal on this topic. The head article Haskell (programming language) is a decent, B-class article, and there is an eponymous Category:Haskell programming language family. However, in total that category+subcats contains only 67 articles, of which only 16 are explicitly assessed as above start-class, i.e. as FA, GA, A, B, C or list-class:


 * Closure (computer programming)
 * Conditional (computer programming)
 * Corecursion
 * First-class function
 * Lazy evaluation
 * Monad (functional programming)
 * Pattern matching
 * Polymorphism (computer science)
 * Set-builder notation
 * Tree traversal
 * Trie
 * Type family
 * Glasgow Haskell Compiler
 * Xmonad
 * Haskell (programming language)
 * Haskell features

That is not enough to make viable portal, even if all of the topics were closely tied to Haskell (and I'm not sure that they are). It doesn't even meet the absurdly low minimum of 20 articles advocated by some portal editors.

So I say just delete it, without inviting re-creation.

Note that is portal was previously discussed in March–April 2019 at WP:Miscellany for deletion/Portal:Haskell (programming language). That discussion became a bit of a WP:TRAINWRECK due to the bundling of two other portals on very different languages. It was closed by @Amorymeltzer as "Keep (mostly procedural)", with an addendum "No prejudice against individual renomination" ... so here is that renomination. I will ping the participants in the previous discussion once I have made a list. Brown HairedGirl (talk) • (contribs) 01:20, 5 May 2019 (UTC)


 * Ping participants in WP:Miscellany for deletion/Portal:Haskell (programming language): . -- Brown HairedGirl  (talk) • (contribs) 01:50, 5 May 2019 (UTC)
 * In my reply, which is under construction, I intend to add portal-style snippets; you may wish to bear with me as I am composing them:
 * A Closure (computer programming) was first defined in the context of lambda expressions, which are denoted in Haskell by
 * Conditional (computer programming) using Haskell's      can be implemented as Haskell functions using pattern matching
 * In strongly typed languages such as Haskell, Corecursion can be separated from recursion by restricting recursions to data that remain orthogonal to codata.
 * First-class functions can be used to implement Higher order functions
 * Lazy evaluation is a defining feature of Haskell
 * Monad (functional programming) allowed IO in Haskell
 * Pattern matching in Haskell can be used to define function s
 * Polymorphism (computer science): Polymorphic types 'come for free' in Haskell; a list can be of any type, but must not mix dissimilar types. For example quicksort has a polymorphic implementation in Haskell.
 * Set-builder notation is built in to Haskell, and can be used to define functions
 * Tree traversal
 * Tries are a kind of tree (container). They can be used for memoizing.
 * A Type family is a GHC extension in Haskell
 * The Glasgow Haskell Compiler is the de facto standard for Haskell
 * Xmonad takes 500– 800 lines of code in Haskell to implement a tiling window manager for X
 * In the Haskell (programming language) Core, the implementation of Core is the Girard-Reynolds type system, which has proven to be quite stable over twenty-five years, while allowing expansion of the experimental features of Haskell.
 * Haskell features

In addition, I intend to add snippets (03:42, 5 May 2019 (UTC)) for:
 * 1) Abstract rewriting system: In the Haskell compiler, some expressions it encounters, say lambda expressions, can be rewritten to simplify them for the optimizer, which speeds up execution to near-C speeds.
 * 2) Ad hoc polymorphism ( the article covers only overloading so far),  contrasts with parametric polymorphism in Haskell, implemented by the Girard-Reynolds type system

@User:BrownHairedGirl, I bumped up the basis for the portal and intend to increase the slide numbers --Ancheta Wis   (talk  &#124; contribs) 13:25, 5 May 2019 (UTC) Do you have a question about Haskell (programming language) that you can't find the answer to?
 * Delete. I think the creator's justification for this portal was always a bit wonky. I do really think they slightly care about this portal, though. For example, I really do like the "Need help?" section:
 * Since Haskell has nonstrict semantics its behavior is very different from most languages; be patient with its error messages, which are quite precise. Try to understand the specific message. This process could take take time.
 * See the Associated Wikimedia links below (such as the Haskell Wikibooks, or Wikiversity, to get started)
 * Consider asking at the Wikipedia reference desk.

I also find the creation of a single-use template rather than just making an embedded list an odd choice. I did not notice that before. &#8211; MJL &thinsp;‐Talk‐☖ 02:03, 5 May 2019 (UTC)
 * That is a clear deviation from {{subst:Bpsp3}} which I find commendable (given most of the trash we have seen). However, I can't ignore the fact that this portal has numerous insurmountable problems. For example, its selected images section is deprived of all the context that would make those images educational/helpful as it just rips them per.


 * Just to clarify, my !vote is solely based as a response to the portal's creator "Please keep" !vote in the last MfD. I find the question to be: Does this portal successfully educate readers on the haskell programming language? I find the answer to be no after like an hour and a half of reviewing the portal and still being unsure what the difference is between Haskell and Java. } &#8211; MJL &thinsp;‐Talk‐☖ 02:08, 5 May 2019 (UTC)
 * @User:MJL,Haskell is very different from Java in its evaluation style for expressions, being non-strict; this is a major difference because I am not sure how the JVM could properly treat an item in weak head normal form, which is an allowed concept in Haskell. One result of this style is that an infinite list can be handled, allowing straightforward computation of expressions involving prime numbers, such as twin primes; this would crash a JVM, which assumes strict evaluation, whereas a Haskell twin-prime script will just keep running. --Ancheta Wis   (talk  &#124; contribs) 03:42, 5 May 2019 (UTC)
 * Delete The portal has nothing to say that is not at the article where it is properly explained, in context. Almost all the items in the eponymous category mentioned above are generic and are only related to the topic in the sense that Haskell (like many other languages) uses the item. Johnuniq (talk) 03:03, 5 May 2019 (UTC)
 * @Johnuniq, I am composing a reply which shows the relation between the article and the selected articles noted by BHG. I would appreciate a specific point to reply to you about -- 03:55, 5 May 2019 (UTC) One example, for the moment might be weak head normal form. It's not in the article, but it is in the Wikibook. 05:03, 5 May 2019 (UTC)
 * I personally find it useful to read the mathematical notation of the base topic, say Set builder notation, and note the similarity to the Haskell code.
 * I expanded on a specific point about function application here; it's not in the article. --Ancheta Wis   (talk  &#124; contribs) 04:43, 8 May 2019 (UTC)
 * @Ancheta Wis, the only response you are triggering from me is increasing doubt that any number of civil request will persuade you to cease and desist from disrupting this discussion with your flood of mini-tutorials on the nature of Haskell. They rea all irrelevant to the question of whether to keep the portal. Please stop bloating the discussion page with them. -- Brown HairedGirl  (talk) • (contribs) 17:25, 8 May 2019 (UTC)
 * Delete - I will state more bluntly what I did at the first MFD, which is that the arguments advanced in favor of the portal are nonsensical, and on the contrary are reasons why this particular language, being a rather strange and complex language, is inappropriate for a portal. They may be arguments why the language should be more widely used or more widely taught, but as arguments for a portal, they are nonsense.  I am not sure whether Fortran or Java or C is an appropriate topic for a portal; maybe Programming Languages are, although I think that Computer Programming is the area.  This is an automated portal created during a wave of reckless portal creation, and this particular language is another wrong portal topic.  Robert McClenon (talk) 03:15, 5 May 2019 (UTC)
 * Yes, Haskell is very different; that is a reason for another take on the topic. That makes a case for a portal. The previous MFD established quite clearly that a Programming Languages portal would be far too unfocused. My specific response to you will be under #8, above, in which Type comes into its own. I just realized that you might be receptive to other facts about the language, which include
 * Linux is the environment of choice for Haskell
 * You can install a Linux on Chromebooks (I'm running ghc in multiple terminals right now)
 * It's probably best to stick with GHC
 * There is quite a community of Haskellers out there, some with 32 years on the project.
 * Probably the most difficult aspect to grasp is the concept of partial function, which is quite foreign to non-curried languages. The theory is under Scott continuity. Portals inherently handle this as they embrace partiality. --Ancheta Wis   (talk  &#124; contribs) 07:00, 5 May 2019 (UTC)
 * Issues such as what OSes include Haskell compilers are of precisely zero relevance to the fate of the portal. -- Brown HairedGirl  (talk) • (contribs) 14:17, 7 May 2019 (UTC)
 * Delete - Automated portal,  1 subpages, created 2019-02-05 15:16:19 by User:Ancheta Wis, useless navigation tool, redundant to the existing articles and navboxes, and of lower quality: Portal:Haskell (programming language). Since User:Ancheta Wis seems to suggest that some of the delete !voters could have not done their homework, let us list what we have here:
 * {{Transclude lead excerpt|Haskell (programming language)|and nothing else
 * {{Transclude list item excerpts as random slideshow | Template:Functional programming basics |and nothing else
 * {{Transclude files as random slideshow| Haskell (programming language) |and nothing else
 * in other words, we are far from having a decent slideshow. And we don't have a navigation tool in any meaning of the word. This was to be expected from the narrowness of the topic. To be more explicit, anyone is allowed to contest this MfD by building, in their own userspace, a decent and centered portal, like Portal:University of Pittsburgh and then release it. Pldx1 (talk) 08:50, 5 May 2019 (UTC)
 * Yes, there is a need for more images for slides. The approach to getting more images using Haskell might be to exploit the Unified modeling language to depict the Haskell code. Haskell would lend itself to pictorial renderings of say Composition or  Application  .  --Ancheta Wis    (talk  &#124; contribs) 12:17, 5 May 2019 (UTC)
 * @User:Pldx1 I bumped up the basis for the portal and intend to increase the slide numbers. --Ancheta Wis    (talk  &#124; contribs) 13:25, 5 May 2019 (UTC)


 * Delete this portal is not really focused on Haskell specifically at all, but rather on general programming or functional programming topics. The idea seems to be to give the reader a general guide to Haskell, which isn't what portals are for. They are supposed to be broad overviews of some particular topic or area. I think that programming languages in general or functional programming languages in particular would be reasonable topics for portals, but the Haskell language in itself isn't. Including general programming topics in a Haskell portal is, as the nominator suggested, like including an article on internal combustion engines in a portal about a specific type of car just because that car has one. The available scope of a portal restricted to Haskell specifically is very narrow, considerably narrower than the nominator suggests, because Category:Haskell programming language family includes Category:Articles with example Haskell code, and many of the articles in there are very broad topics (e.g. Conditional (computer programming) is something which is essentially universal within programming languages).  Hut 8.5  09:48, 5 May 2019 (UTC)
 * But the specific syntax matters; that is the reason that pattern matching is a better choice for expressing conditionals in Haskell. I personally found it essential to address the topics from the bottom-up to even understand a single Haskell program. In fact, to make the attempt to understand, and then to start over again is invaluable for learning Haskell. One side benefit is learning how consistent the syntax is, and learning that mastery of a few constructs covers the language in a concise way.
 * Portals are what we make of them; to lift up from the Model T: in the vein of hypersonic flight, for example, Stagnation point flow would be apropos. It would be difficult to understand hypersonics without understanding the stagnation point. --Ancheta Wis   (talk  &#124; contribs) 12:17, 5 May 2019 (UTC)
 * Teaching someone Haskell isn't an appropriate use of a portal. They are intended to introduce people to articles on a certain topic. Pattern matching doesn't fall within the topic of Haskell, just as internal combustion engines don't fall within the topic of the Model T Ford. Pattern matching does mention Haskell but only as an example of functional programming languages which use the concept, as several others do.  Hut 8.5  11:05, 6 May 2019 (UTC)
 * Well, we're not communicating; I see that I might better have phrased this as "In a Haskell function definition, pattern matching is built-in to its syntax". Which means that the Haskell compiler accepts patterns, as an intrinsic feature of the language. That built-in pattern matching is the reason that Haskell can be used to implement higher-level languages. --Ancheta Wis   (talk  &#124; contribs) 12:01, 6 May 2019 (UTC)
 * Comment Why is this being rerun when it has already been run about a month ago and the consensus seemed to be for keep.  scope_creep {{sup| Talk }}  13:23, 5 May 2019 (UTC)
 * Dear User:scope creep. If you don't understand the meaning of {{tq|The result of the discussion was: Keep (mostly procedural). Closing this as a keep, although it's likely close to a no consensus if you wanna get technical. The main opposition to deletion was on largely procedural and scope grounds, with many people thinking the combined nomination inappropriate. Given the popularity of that view, it seems best to keep these. No prejudice against individual renominations, but any such nominations should be cognizant of the legitimate keep !votes expressed here}}, perhaps you could ask the closing admin for additional comment. Pldx1 (talk) 13:37, 5 May 2019 (UTC)
 * Hi {{ping|Pldx1}} I don't think we have spoke before. How are you? I guess it is a goner then as I'm not explaining myself twice. I was the one pushing for a real keep, specifically for a Haskell portal mostly as a navigation point at a lower level of abstraction making it easier for the reader to find all the articles within a specific subject. I don't think there is any drive on Wikipedia to make these kinds of articles discoverable for the average reader.  scope_creep {{sup| Talk }}  13:52, 5 May 2019 (UTC)


 * Delete I'm a Haskell user and I agree that haskell is a vastly different programming language from others. However, a majority of the articles and categories that are included in the Haskell portal are to concepts that apply to the functional programming paradigm in general, that are not specific or unique to Haskell. In other words, when I think of Haskell, I think, functional programming. But when I think functional programming, I don't necessarily think Haskell. Furthermore, as others have said, a majority - if not all - of the content that exists on the Haskell portal can instead be simply mentioned in the main article. -- HunterM267  {{sup|talk}} 17:07, 5 May 2019 (UTC)
 * Delete – Not enough subject matter to justify a portal. Navbox and category are enough. — JFG {{sup|talk}} 01:44, 6 May 2019 (UTC)
 * Comment - I'm not sure I understand what the problem with this specific portal actually is. Most of the votes here seem to focus on the current content of the portal, but I'd like to know if people here more generally think programming language-focused portal are a problem per-se. In other words, is this portal up for deletion because it's not good as it is or because it will never be considered any good? klɛz (talk) 12:38, 6 May 2019 (UTC)
 * I added a sub-page with curated content, including snippets showing the relationship of the associated topics to Haskell. The emphasis is on diving more deeply into Haskell and the topics. My hope is that a snippet triggers a question for each reader.
 * Technically, this changes the structure of the portal and hopefully addresses the objection to the structure, which was seen as automation. I have not heard back about this change and its impact on the case. --Ancheta Wis   (talk  &#124; contribs) 14:52, 6 May 2019 (UTC)
 * @Ancheta Wis, I just looked at your latest revision. It still uses the bizarre Template:Functional programming basics for its article list, but adds the very odd "Basis" section as an attempt to justify building a portal named "Haskell" whose content is most not about Haskell.  It loks like an attempt to write n article in portalspace. --  Brown HairedGirl  (talk) • (contribs) 21:46, 6 May 2019 (UTC)
 * This specific approach is called crosscutting. The idea behind 'Basis' is to examine each topic through a Haskell lens. If the change in perspective triggers a response in the reader, that was the point. Category theory takes the same kind of approach to mathematics. Mathematician A. Grothendieck's ideas, which use category theory, are the inspiration for Haskell lenses. --Ancheta Wis   (talk  &#124; contribs) 22:44, 6 May 2019 (UTC)
 * @Ancheta Wis, the "basis" section does not {{tq|examine each topic through a Haskell lens}}. It is just a series of links to general articles about their topics, rather Haskell-specific articles on each topic. --  Brown HairedGirl  (talk) • (contribs) 14:15, 7 May 2019 (UTC)
 * The sub-page has links, along with text snippets which invert the emphasis to turn each link+snippet into the significance for Haskell.
 * For example, in Haskell syntax, function Application is typically denoted by a blank space after a function's tag; this syntax turns functional programming into the depiction of a stream of data, and makes a function a completely ordinary citizen of the language, so that our eyes merely pass over Application, and our minds automatically go to what matters (we perform Closures as we read the stream of text), at a higher level of Abstraction than most computer programming languages.
 * But Application is a morpheme in Core, and there is a tag $ for it at the Haskell level, so Application is just data in the text stream.
 * Similarly, Abstraction can also have a tag \ at the Haskell level.
 * Note that this sub-page is curated (not automated) --Ancheta Wis    (talk  &#124; contribs) 15:17, 7 May 2019 (UTC)
 * @Ancheta Wis, these repeated mini-tutorials on the nature of Haskell are all irrelevant to the question of whether to keep the portal. Please stop bloating the discussion page with them. -- Brown HairedGirl  (talk) • (contribs) 15:43, 7 May 2019 (UTC)
 * My replies are countering your specific assertions, point by point; if I were to counter each of the 'delete' assertions, then what is left in the arguments for deletion, except a general position? If the arguments for deletion are shown to be inapplicable, then why nominate for deletion?.
 * Just so you know, I do not take umbrage at terms such as Model T or bizarre or very odd or bloated or nonsense (a term which is endearing praise in Category Theory), but recognize their rhetorical usage as attempts to gain some advantage. Fire away; my responses have been substantive. On the other hand, I appreciate courtesy; thank you for those practices.
 * An inheritance-oriented style of thinking (think object-oriented) is not the only style around. A usage-oriented style of thinking can be just as effective. Hence how something is used is the portal snippet.
 * Note that the 16 'link+snippet' portal-style notes above are in reply to the arguments advanced for deletion, as too few; and yet a reply detailing the Haskell reply gets characterized as 'bloated'. It's clear that any argument for keep is doomed here.
 * But blank spaces and whitespace are part of the language, and serve to keep it concise and low-ceremony, like Xmonad, and as fast as C, via rewriting.  I hope to trigger responses like curiosity about the language. --Ancheta Wis    (talk  &#124; contribs) 04:43, 8 May 2019 (UTC)
 * @Ancheta Wis, the only response you are triggering from me is increasing doubt that any number of civil requests will persuade you to cease and desist from disrupting this discussion with your flood of mini-tutorials on the nature of Haskell. They are all irrelevant to the question of whether to keep the portal. Please stop bloating the discussion page with them. -- Brown HairedGirl  (talk) • (contribs) 17:27, 8 May 2019 (UTC)
 * @klɛz, the problem with this portal is that there is not enough content specifically about Haskell, and this portal is basically about Functional programming.
 * Other programming language portals may be viable, which is why the previous discussion at WP:Miscellany for deletion/Portal:Haskell (programming language) was closed as procedural keep, with the option of renominating any of them separately to assess them separately. --  Brown HairedGirl  (talk) • (contribs) 21:51, 6 May 2019 (UTC)
 * But see my reply below --Ancheta Wis   (talk  &#124; contribs) 04:43, 8 May 2019 (UTC)
 * Delete. This is way too narrow a subject to meet the WP:POG guideline's breadth-of-subject-matter requirement. I encourage interested editors to contribute to Portal:Computer science. UnitedStatesian (talk) 13:16, 7 May 2019 (UTC)
 * I am illustrating that a deep dive in a specialized portal which respects Haskell syntax can be more illuminating. In military terms, it's called concentration of force, as opposed to repeating diffuse content with spread-out syntax for the same thing on some other portal. For example, the Map-reduce framework is one line of code in Haskell (you can ask me about it), and easily thousands, if not tens of thousands, of lines of code in other languages. I hope it illustrates for others a language with a future, using morphemes which we have a chance of understanding, rather than the million-line creations we encounter today, with their mathematically-certain unreliability and indecipherability due to sheer scale.
 * There is much more that could have been said in the portal; the role of proofs, to supersede code, for example, which is how the one-line map-reduce I referred to above was derived. --Ancheta Wis    (talk  &#124; contribs) 04:43, 8 May 2019 (UTC)
 * 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 page's talk page or in a deletion review). No further edits should be made to this page.

{{#ifeq:{{FULLPAGENAME}}|Wikipedia:Miscellany for deletion||}}