Content deleted Content added
Remove topic that ended up just being a conversation with myself... |
Assessment: banner shell, Computing, −Computer science (Rater) |
||
(29 intermediate revisions by 5 users not shown) | |||
Line 1:
{{WikiProject banner shell|class=B|vital=yes|1=
{{WikiProject Computing|importance=
}}
{{archives}}
Line 84 ⟶ 83:
: Yes, I thought I had edited this article to make this plain, but looking again I think the edit I made was on [[Scheme (programming language)]], where I wrote:
::
:: ''The introduction of lexical scope resolved the problem by making an equivalence between some forms of lambda notation and their practical expression in a working programming language. Sussman and Steele showed that the new language could be used to elegantly derive all the imperative and declarative semantics of other programming languages including ALGOL and [[Fortran]], and the dynamic scope of other Lisps, by using lambda expressions not as simple procedure instantiations but as "control structures and environment modifiers." They introduced [[continuation-passing style]] along with their first description of Scheme in the first of the Lambda Papers, and in subsequent papers they proceeded to demonstrate the raw power of this practical use of lambda calculus.''
Line 242 ⟶ 241:
* T, is a Scheme '''implementation'''.
[[User:Rursus|Rursus]] dixit. ([[User talk:Rursus|<span style="color: red; background: #FFFF80"><sup>m</sup><u>bork<sup>3</sup></u></span>]]!) 11:19, 10 January 2014 (UTC)
:I added some clarification about this in the "Genealogy and variants" section. I left the infobox alone because it's not clear I could add clarity here. The problem is that there isn't always a distinction between a dialect and an implementation (for example, both Clojure and Emacs Lisp are just implementations without a corresponding standard). I think it would increase confusion to try to arbitrarily decide whether these ones should go in a "dialect" or "implementation" section. [[User:Skyvine|skyvine ]] ([[User talk:Skyvine|talk]]) 19:57, 14 January 2025 (UTC)
== If Then Else ==
Line 253 ⟶ 254:
:Algol 60 had the first if-then-else conditional *statement*. There were many different syntax proposals for conditional statements during the Algol 58 design process, and most of them are very odd from a modern perspective: see <https://github.com/e-n-f/if-then-else/blob/master/if-then-else.md>. The `else` keyword came from the German members of the Algol 58 committee. The keyword `then` first appeared in an Algol 60 draft. McCarthy was involved with Algol. His name appears (with coauthors) on a proposal that includes a multi-branch conditional with no special syntax for an 'else' or for a default fallback clause.
:McCarthy invented the conditional *expression*, which returns a value. His preferred syntax was (cond1 -> expr1, cond2 -> expr2, ...). There was no distinguished `else` clause: instead you used `T -> expr` as the final clause to specify a fallback. [[Special:Contributions/209.183.136.7|209.183.136.7]] ([[User talk:209.183.136.7|talk]]) 20:05, 19 April 2023 (UTC)
::I thought the main distinction was that it took in statements instead of line numbers. The quote above form Zz mentions that "the IF statement provided in FORTRAN 1 and FORTRAN 2 was very awkward to use". FORTRAN 2 accepts statement numbers to jump to, rather than expressions to be conditionally executed, as seen in the FORTRAN 2 manual (pdf page 10 from https://archive.org/details/bitsavers_ibm1620C26_4090774/page/n9/mode/2up).
::Although, now that I'm looking at it again I'm also noticing it's a 3-way if: less than, equal to, or greater than 0, which is another difference from lisp's if. [[User:Skyvine|skyvine ]] ([[User talk:Skyvine|talk]]) 20:13, 14 January 2025 (UTC)
== Second Oldest Programming Language ==
Line 522 ⟶ 525:
:Also, the fact that both of the references provided on the page state that only Fortran is older than Lisp should be taken into account. These are references from people who were around at the time, and it isn't as if COBOL is something they would have been unaware of.
:[[User:Unsuitably Silly Name|Unsuitably Silly Name]] ([[User talk:Unsuitably Silly Name|talk]]) 07:40, 21 January 2024 (UTC)
== LISP "Logo" ==
[[File:Cons-Cell.svg|thumb|Cons-cell as an omnipresent iconographic depiction in LISP literature.]]
Just added the iconograpic cons-cell as a historically more correct "logo" for this article with the following text:
:Proposed restoration of an iconic early Lisp visual element as the language's primary emblem. This cons-cell depiction, featuring its distinctive list structure with 'cdr' branches at the same level, historically stood out among scarce graphical representations in printed materials before digital typesetting became widespread or available at all.
:While Guy L. Steele Jr.'s artistic cover designs for 'The Little LISPer' (featuring a yin-yang symbol) and 'The Little Schemer' (with an elephant constructing a house from scaffolding parts) introduced memorable visual elements, the cons-cell illustration has emerged as a universally recognized emblem of Lisp programming itself.
:This illustration directly represents Lisp's fundamental list structures and has become its visual identity through widespread use on early hardware (e.g., Lisp machine panels) and educational materials. As both a teaching tool and recognizable symbol, it offers a more accessible representation for general audiences.
[[File:Lisp logo.svg|thumb|right|Picture currently used. Actually a cover design from Guy L. Steele Jr's pen for 'The little LISPer'.]]
Historically, there was never any LISP-logo, so if we want to show something similar, it should be the cons-cell, i think. To enhance the section here a little, please see the picture currently used as the languages "logo" for Wikipedia on the right.
While it might appear more polished and unique, please be aware, that this was dedicated to be so for a particular [[Cover_art#Book_cover|book cover]] ('The Little LISPer'), but not for the language.
This graphic itself might be inspired by a drawing in "Structure and Interpretation of Computer Programs". This publication is out of print and is available [https://web.mit.edu/6.001/6.037/sicp.pdf on-line]. See picture 4.1 on page 494. It displays the cooperation of the apply and eval function as a yin-yang pair, which is uncommon in Lisp literature.
[[File:LISP machine.jpg|thumb|right]]
To the contrary, the depictions of S-expressions, in particular the drawing of the cons-cells are omnipresent in LISP literature and teaching and recognized as an icon for the language itself. Please have a look at the LISP-Machine's panel as a further proof.
The intent is to be historically correct and not to make up a logo that was not present at the time the language was designed or in intense use.
For a view of the appearance of the Cons-cell as a logo in the article, please see the German version of the article [[de:Lisp]].
Hope it helps. Please follow up with any remarks if you have concerns or another proposal. -- [[User:Cobalt pen|Cobalt pen]] ([[User talk:Cobalt pen|talk]]) 00:31, 11 June 2025 (UTC)
:Can you show an example/references of the desired Lisp logo not in the context of LISP machines? A quick search makes me think it is the company logo for the LMI. [[User:Epachamo|Epachamo]] ([[User talk:Epachamo|talk]]) [[User:Epachamo|Epachamo]] ([[User talk:Epachamo|talk]]) 15:31, 11 June 2025 (UTC)
::You are right in that [[Lisp Machines|Lisp Machines, Inc]] has a company logo that contains the cons-cell together with the letters "LMI". Note the artistic differences. The cell depicted on the museums exhibit and the one that i suggest for use is quite typical for the drawings in the Lisp literature.
::We're dealing with the problem of determining a logo for a language that never had one in retrospect.
::While we can of course design or select whatever wild picture, now, doing this historically sensible and correct means to for me, to select something that would have recognized as an emblem for Lisp at time, when the language was in wide spread use.
::I believe, there are only two real options:
::# The lisp cell, is i propose here
::# Some S-expression denotation as e.g. on the Lisp 1.5 primer
::So, something like "(Lisp (language))" or so, would be possible, too.
::Now since we're looking for something graphical, the choice is clear, imo. These s-expression drawings are often the only pictures in older Lisp articles or text books. See the Lisp 1.5. manual, for instance.
::To the contrary, the current icon would be good for the book's logo, as it was purposely designed as such. So Mr. Steele picked something unique for this book, a combination of Yin-Yang and Lambda symbols, which would not have been recognized as meaning "Lisp". I agree it is nice and unique, but purposely not anything that would have been recognized as an icon for the language. See "The little Schemer"'s cover drawing as another such example.
::I think the designer of the LMI logo picked the cons-cell pretty much for the same reason, i'm suggesting it here. Note some distinguishing features in the drawing of the cell. Most particular, the "cdr", right hand side, reference is drawn on the same level as the cell, emphasizing the list nature of the s-expression.
::This is contrary to a tree-like depiction, which can be seen, for instance in the Lisp 1.5 primer, but this is less common and less iconographic and would not have been recognized as a Lisp-emblem. This one does.
::Additionally, and contrary to the cell in the LMI logo, the dots of the start of the references in the components were typically drawn very small, if at all. So i did my best to replicate a "high quality" drawing, but typical cell image.
::-- [[User:Cobalt pen|Cobalt pen]] ([[User talk:Cobalt pen|talk]]) 22:08, 12 June 2025 (UTC)
Hmm, truth sometimes unfolds itself slowly. Perhaps, we really deal with a problem in the design or use of the {{tlx|Infobox programming language}}. Not every language has a 'logo'. Such as Fortran, C, Cobol, for instance, or Lisp, in our case. Perhaps, this is actually more something to be dealt with in [[Template:Infobox programming language]]? -- [[User:Cobalt pen|Cobalt pen]] ([[User talk:Cobalt pen|talk]]) 22:57, 12 June 2025 (UTC)
My recommendation is that we put both, or more logos if there are any, with a note that there is no official logo, but several logos have come to represent Lisp. The unofficial logos all seem to 'represent' the language to a significant userbase. Doing a quick google search, the most common logo actually seems to be [https://www.redbubble.com/i/sticker/LISP-logo-by-hasselbackt/38219558.EJUG5 here]. [[User:Epachamo|Epachamo]] ([[User talk:Epachamo|talk]]) 04:32, 13 June 2025 (UTC)
:Or, maybe don't. The Lisp described in this article is not a single language but rather a family of languages. Why does the article need a logo? Lisp is a family of computer programming languages, not a pop music act. [[User:Quale|Quale]] ([[User talk:Quale|talk]]) 06:11, 13 June 2025 (UTC)
:Same here, Epachamo. My first thought seeing the current logo was "what?!". Same with the "logo" you come up with as "most common". I'm doing Lisp since about 1980. At least stating, that there is no logo for Lisp, really, is the most upright and factually correct, imo. While the one you come up with is at least intended to be a Lisp logo, the current Yin-Yang certainly isn't. So either leaving the logo out or, perhaps better, putting in some text like: "Lisp does not have a logo." would prevent the box to become "graphically enhanced", again. Or do we want this feature, to make the article look nicer, or so? The "logo" actually comes from the Wiki-template field, not from the language, i think right now. So adding a note to the template, stating "please don't make up a logo" might be helpful for other articles. See e.g. [[Cobol]] for another sensible, graphically enhances solution. -- [[User:Cobalt pen|Cobalt pen]] ([[User talk:Cobalt pen|talk]]) 13:55, 13 June 2025 (UTC)
Seems, the discussion came to an end. I lean towards the "graphical enhanced" interpretation and put the cons cell now in the infobox together with a text, that:
* makes clear, we are not showing a logo.
* emphasizes the fundamental role of the cell, especially with regard to the reflexive nature.
I did not mention the omnipresence of the drawing in Lisp literature for brevity.
-- [[User:Cobalt pen|Cobalt pen]] ([[User talk:Cobalt pen|talk]]) 15:27, 24 June 2025 (UTC)
{{Reply to|Quale}} I see, that you've reverted the edit. Since i tried to discuss and clear this here, i must say I'm not amused. Please have a look at [[Cobol]], which i find a sensible use, and my comment in the 'logo' field in the [[Template:Infobox programming language#Parameters]] section. Reverting is soo simple, doing it right, not. Please be so kind to revert yourself and join the discussion again, here. -- [[User:Cobalt pen|Cobalt pen]] ([[User talk:Cobalt pen|talk]]) 11:58, 26 June 2025 (UTC)
:Hey, I've discussed it here too. I think I'm not the only person who has pointed out that this article is about a family of languages, not a single language, and that the Lisp language family does not have a logo. If you claim it does, then that needs a [[WP:RS]]. Willingness to discuss doesn't mean you automatically get your way and it would help if you could make a stronger argument with some actual evidence that your artwork is a Lisp logo. You've had weeks to provide that evidence, but I don't see it. I'm somewhat more familiar with Lisp than Cobol (I haven't written 40+ years of Cobol programs, or actually any Cobol at all), so I'll leave most concerns with the Cobol article to others. [[User:Quale|Quale]] ([[User talk:Quale|talk]]) 12:48, 26 June 2025 (UTC)
::* Your point is "no logo". I'm with you in that.
::* I asked you to look at the [[Cobol]] page, which you apparently did not do. Instead of a logo, they put in a picture of a report. So my point is not so much WP:RS, but rather the use of the template in question.
::* In this respect, your statement "the Lisp family of languages doesn't have a logo", falls short.
::* My question is rather: Do we want the template to be used to graphically enhance the top of the article and interpret the logo field this way, yes or no.
::I'm not here to claim a non-existing logo. To the contrary. Please see my attempt to clarify the field's use in the template's definition. If we want to stay with your interpretation, i.e. a logo is a logo is a logo, then the [[Cobol]] use of the template would be wrong.
::Hope it makes my intention clearer. {{Reply to|Quale}} Please understand, that you reverted the "logo" in Lisp, but not the related note in the template. Can we come to some conclusion here? Please don't duck away saying it is another article's problem. How to cope with the template? -- [[User:Cobalt pen|Cobalt pen]] ([[User talk:Cobalt pen|talk]]) 04:22, 27 June 2025 (UTC)
|