Wikipedia:Miscellany for deletion/Portal:Haskell (programming language) (2nd nomination)
Misconceived, fully automated pseudo-portal based on a single navbox, about a narrow topic. Propose outright deletion.
This portal was created[1] in February 2019 as a fully-automated portal using {{subst:bpsp3}}
. Throughout its existence it has drawn its "selected articles" list solely from the navbox {{Functional programming basics}}, 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[2] by Ancheta Wis (talk · contribs) only an hour before they created[3] 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[4] version of the navbox, and two of them don't even mention the word "Haskell":
- Functional programming
- Abstract rewriting system — doesn't mention the word "Haskell"
- Ad hoc polymorphism — doesn't mention the word "Haskell"
- Algebraic data type
- 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 portals on two very different languages. It was closed[5] 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. BrownHairedGirl (talk) • (contribs) 01:20, 5 May 2019 (UTC)
- Ping participants in WP:Miscellany for deletion/Portal:Haskell (programming language): @Legacypac, Pldx1, Meszzy2, Pythoncoder, Ancheta Wis, TJRC, Levivich, Scope creep, Northamerica1000, Hunterm267, Robert McClenon, Klez, Johnuniq, Thryduulf, and Hut 8.5. --BrownHairedGirl (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
if
then
else
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
case
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:
- 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.
- 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 | contribs) 13:25, 5 May 2019 (UTC)
- 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:
"Need help?"
|
---|
{{Box-header colour | Need help?}} Do you have a question about Haskell (programming language) that you can't find the answer to? *Since Haskell has [[Evaluation_strategy#Non-strict_evaluation|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|Wikipedia reference desk]]. {{Box-footer}} |
- 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
{{Transclude files as random slideshow| Haskell (programming language)||}}
.
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. (edit conflict) –MJL ‐Talk‐☖ 02:03, 5 May 2019 (UTC)
- 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.
–MJL ‐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 | contribs) 03:42, 5 May 2019 (UTC)
- 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.
- 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. --Ancheta Wis (talk | contribs) 12:17, 5 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 | contribs) 07:00, 5 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 | 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 | contribs) 13:25, 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 (
- 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 | contribs) 12:17, 5 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_creepTalk 13:23, 5 May 2019 (UTC)
- Dear User:scope creep. If you don't understand the meaning of
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 @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_creepTalk 13:52, 5 May 2019 (UTC)
- Dear User:scope creep. If you don't understand the meaning of