Talk:Lisp (programming language)
From Wikipedia, the free encyclopedia
![]() Archives |
---|
[edit] Which dialects should be mentioned at the top?
Most Lispers will tell you that there are only 3 major dialects of Lisp now: CL, Scheme, and Emacs Lisp. The former two are standards and the third merits mention because it is ubiquitous.
NEWLISP is NOT a major dialect. It is neither a standard nor ubiquitous. To me, its addition is possibly a marketing effort. If it is to be included, then many other, more important dialects should also be included, such as librep.
It is already mentioned under minor dialects.
I removed it but left it in the rest of the article.
--gamba
[edit] Applications
Myself, I've been involved with many commercial successes for 20 years. Where are the references to these? Emacs, for instance. I've added ICAD which is a wonderful example of an extreme form of End-user computing. jmswtlk 16:21, 29 December 2005 (UTC)
[edit] Logo and turtle graphics
I restored the link to turtle graphics in the description of Logo as it is the best known feature of the language and it's not mentioned elsewhere in the article. --Tony Sidaway|Talk 20:23, 14 January 2006 (UTC)
[edit] .NET programming language?
Why is there a category ".NET programming languages"? Shouldn't the correct place for this category be only in article L Sharp .NET programming language? --lauri 07:08, 26 January 2006 (UTC)
- Quite right! Gone now. --FOo 07:16, 26 January 2006 (UTC)
[edit] Raymond's influence removed?
CYD just removed the note that "Many new Lisp programmers describe the writings of Paul Graham and Eric S. Raymond as influential in their decision to pursue", replacing it with the text that "Many new Lisp programmers were influenced by Lisp 'evangelists' such as Paul Graham in picking up"; his edit comment was that "Raymond never did any Lisp evangelism". I think this edit discounts the writing that some people do cite as influential in their decision. I believe that the evangelism in question is from How To Become A Hacker. Specifically, esr speaks of "the profound enlightenment experience you will have when you finally get it", and "that experience will make you a better programmer for the rest of your days". A quick search in the Road to Lisp surveys linked to from the article (in that paragraph) will show multiple hits saying that this influenced their decision to learn Lisp. So I think that this edit should be reverted, but wanted to see if I could get consensus before doing so. - Piquan 22:48, 2 February 2006 (UTC)
- I've certainly seen positive comments by ESR on Lisp, so it's inaccurate to say that he "never did any Lisp evangelism", except insofar as the word evangelism is misapplied. That said, it probably isn't too important for the article's phrasing to name everyone who's said something good about Lisp. --FOo 05:46, 3 February 2006 (UTC)
- I think he belongs in the list. Much of the Linux and other free software community would be unaware of Paul Graham, but very aware of ESR. His occasional words about Lisp (such as it being one of the two languages GNU will have and his comment cited above in How to Become a Hacker) are not as strongly influential as Graham's extensive writings, but he has a much larger audience so the aggregate influence is comparable if not greater. Ari 06:11, 3 February 2006 (UTC)
-
-
- I think you'll find that ESR doesn't have much to do with GNU ... it was rather RMS who said Lisp was going to be one of GNU's two system programming languages, waaay back in the original announcement of the project.
-
-
-
- It's actually one of the few goals of GNU that didn't get fulfilled in modern GNU/Linux systems ... others being a versioning filesystem and a release-quality HURD. (Yes, there are high-quality free Lisp systems for GNU/Linux ... but as with the kernel, that's one place other contributors got well ahead of the actual GNU folks.) --FOo 06:26, 3 February 2006 (UTC)
-
-
-
-
- Fair enough. I was mistaken, and it's hard for me to envision why ESR would be mentioned. Ari 03:18, 5 February 2006 (UTC)
-
-
- Instead of depending on the weaselly "many new Lisp programmers", why not use a quote from an actual new Lisp programmer who cites ESR influence in his/her own words? I'm a little skeptical that any exist, but a verifiable direct quote would prove otherwise. Stan 14:10, 3 February 2006 (UTC)
-
- Check the references! The footnotes on that section take you to the "Road to Lisp Survey", a section of another wiki site where new Lisp programmers relate their experiences. --FOo 07:57, 5 February 2006 (UTC)
-
- While in general, I agree that verifiable quotes are preferable in general, whom do we use? New Lisp programmers are not generally people whose quotes are noteworthy for an article on Lisp. Besides, the fact that one particular person said that esr influenced their decision is not the point: the fact that several did is. So including one quote instead of the "many" phrase isn't really getting the same point across. Other than that, I'll expand on what FOo said. The Road to Lisp pages (which are a reference in that same paragraph) are easily checked: there's a search function, and even a wiki category for Road to Lisp stories from people who feel that esr was influenced them (I believe it's RtLRaymond, but you can find it easily enough yourself). --Piquan 11:01, 5 February 2006 (UTC)
- Ok, I'm not really sure if we have consensus here or not. Any second opinions? --Piquan 03:42, 10 February 2006 (UTC)
[edit] List processing operations
I recently wrote a (stubby) article on append
, and was trying to find logical places to cover that material and link to it. I ended up adding a section on list operations to this article. I'm afraid it's probably woefully inadequate; I'm still learning functional programming, and I have more experience in Scheme than Lisp, but I'm hoping it's a start.
To some extent, the material seems a bit more specific than I might want in the general "Lisp programming language" article. I certainly wouldn't object to it being moved to a subarticle, but there doesn't seem to be an appropriate one existing yet. I don't know whether it might be appropriate to have a separate article on "List data structures in LISP-like languages", or something like that. -- Creidieki 21:57, 9 March 2006 (UTC)
- I think that producing material about this sort of Lisp-specific information is a great idea. I'm not sure that Wikipedia is the right place, though; as you mentioned, it does seem out of place here. However, Wikibooks may be just the right place for your Lisp articles. --Piquan 10:08, 10 March 2006 (UTC)
- Yes, if you write an article about list processing for Common Lisp Wikibook taht would be cool. You can also start Scheme Wikibook, which is not developed at all. Grue 10:27, 10 March 2006 (UTC)
[edit] Functional Language?
I don't know if Lisp can be considered a functional programming language. It indeed has functional support, but it also supports other features that can break the functional paradigm. The preceding unsigned comment was added by 24.84.195.200 (talk contribs) 02:41, 27 March 2006 (UTC1)
- Lisp was not invented to advance any particular ideology about programming. It antedates by several years terms such as "functional programming", "object-oriented programming", and so forth. It was invented a decade before anyone thought it would be a good idea to make languages artificially more restrictive in order to constrain programmers to specific favored practices.
- (Lisp -- 1958. "Go to statement considered harmful" -- 1967. Pascal, the first language designed to restrict -- 1970.)
- When the first Lisp dialects were developed, the problems of the day were making languages more expressive (particularly, more like mathematics) and more reflexive (because it was thought this would aid AI). Constructs such as upward and downward funargs (the ability to pass functions as arguments, and return them as values) had to be invented before anyone could come up with the claim that all programming should be done functionally. They were invented in Lisp.
- Lisp as it is practiced today (in either Scheme or Common Lisp) is more akin to functional programming style than the original LISP was. This is largely because we have learned to gloss over or hide some of the innards the original systems exposed: we have languages more like mathematics and less like machine code. We also have optimizations which make functional style efficient enough to be practical -- tail-call optimization; dynamic compilation; type inference. These were developed for Lisp.
- Of course Lisp does not enforce a functional style, for the same reasons it does not enforce an object-oriented style. It supports these styles, just as it supports structured programming and even imperative kludging with GOTO if you really want it. Nonetheless, it's correct to say that Lisp is broadly in the camp of functional programming because Lisp is where the ideas of functional programming, and the tools needed to do it well, were developed. --FOo 05:16, 27 March 2006 (UTC)
- It can be quite hard for us to state the obvious, without citing, but I know a guy whose primary job description is Lisp Programmer. If you do a little research you will find that lisp is a functional language applicable in commercial industry. Yet, I will admit it is in a limited sense.
[edit] Another comment on functional style
While it is true that CL is multiparadigm, I think that the following paragraph is far too strong. Functional programming is far more widespread an ideal in CL than is indicated. I propose that it be toned down a bit. It implies that CL is much more imperative than it is culturally.
The style preferred by many Common Lisp programmers may seem more familiar to programmers used to structured languages such as C, while that preferred by Schemers more closely resembles pure-functional languages such as Haskell.
I propose:
Common Lisp is multiparadigmatic, and it supports an imperative style, familiar to users of languages such as C. However, functional programming is culturally well regarded and most experienced Lisp programmers use it when possible. This preference is stronger in Scheme, which more closely resembles pure functional languages such as Haskell.
--gamba
[edit] Edit war about polish notation and AutoCAD?
I am somewhat baffled by the repeated reverting of what seemed to me perfectly valid edits. Could the reverters please explain why they do not this article to link to AutoCAD and polish notation? —Tobias Bergemann 08:30, 1 April 2006 (UTC)
- I have not a clue as to the issues with AutoCAD.
- But one author has confused a list prefix notaton with polish notation. Polish notation doesn't use (or need) parentheses because the arity of an operator does the job, list notations use parentheses to handle the arity and can therefore handle N-ary operators.
- For example, the traditional notation
(a*b)+(c*d)+(e*f)
- could be written in a list notation as something like
('+ ('* a b) ('* c d) ('* e f))
- but in a polish notation you have fixed operator arity (binary in this case) and you would have to pick either
+ + * a b * c d * e f [corresponding to ((a*b) + (c*d)) + (e*f) ]
- or
+ * a b + * c d * e f [corresponding to (a*b) + ((c*d) + (e*f)) ]
- The notations are obviously related (they both put the operator first), but not the same at all.
- The list notation is a lot more flexable, and can handle things needed in an AI language such as operators that take operators as arguments. Nahaj 13:58, 1 April 2006 (UTC)
- It isn't really an edit war. The two editors that were reverted were both Sockpuppets of banned user Zephram Stark. His edits are reverted without regard to their merit. So if you think some of the changes were appropriate, them you can make the edits and they won't be reverted. --JW1805 (Talk) 14:54, 1 April 2006 (UTC)
- I ReiniUrban have some clue about AutoCAD. I deleted SageCLOS from Object systems, as of the 22:12, 1 December 2005 edit by 68.219.238.110. SageCLOS is a simple CLOS for AutoLISP, but is no seperate new and distinct Object system for LISP, as flavors, CLOS or KR truly are. SageCLOS tries to fill in for CLOS, without having the possibility to use macros and some syntactic sugar, a real lisp has. ReiniUrban 09:05, 10 September 2006 (UTC)
[edit] Lisp Criticism
why isnt there any section for criticism of lisp? no one did one? :) - --Cyprus2k1 12:04, 22 May 2006 (UTC)
- Because LISP is without flaw of course! Begone heretic, lest you wish to smell burning faggots. :) --DV8 2XL 12:16, 22 May 2006 (UTC)
-
- Apart from the joking braggadocio of DV8 2XL, I feel rather strongly myself that there should not be a criticism section in this article. There is a very distorted misreading of "balance" that seems to arise among editors of many topics, but especially technical topics. They come to believe that NPOV mandates that whenever some topic is discussed, a collection of negative comments about that topic need to be recruited out of "balance". But such sections almost always read as very unencyclopedic, and ultimately rarely very informative. I've fought off the same misconception at Python programming language and Functional programming. Unfortunately, I recently noticed that Object-oriented programming has an overly long and unprofessional looking "criticism" section.
-
- What an article on something technical like a programming language or programming paradigm should do is present all of what it discusses in a sufficiently neutral fashion that there is nothing to be counter-balanced in the first place. So don't write that "Lisp does blah because that is the most powerful technique". Either just write "Lisp does blah" and leave it at the plain fact... or quote some specific source that claims blah is "the most powerful technique". As long as the entirety of the article avoids advocacy, some separate section for criticism is superfluous. LotLEtalk 18:10, 1 June 2006 (UTC)
-
-
- I have been a Lisp user since 1970, and I am very fond of it. However, I think it makes perfectly good sense to incorporate criticism both in specific sections (e.g. "Jones has criticized this design decision because xxx[biblioref]") and perhaps in a separate section if there is in fact relevant serious literature, like Kernighan's "Why Pascal is Not My Favorite Programming Language" and Hoare's "The Emperor's Old Clothes" -- though I disagree with many of Hoare's arguments, it should certainly be referenced in the Ada article, which it is not currently. There must also be serious articles about Scheme vs. Common Lisp. --Macrakis 19:19, 1 June 2006 (UTC)
-
-
-
-
- I entirely agree on the "inline" criticism when some specific feature are fact is discussed. Certainly if we report that "Lisp does blah" it is reasonable to also mention that "Jones criticizes the choice of blah". The thing I don't like is a whole section devoted to "criticism", since it almost always turns into a semi-random collection of negative remarks w/o any helpful structure (in every technical article where I've ever seen such a thing). LotLEtalk 19:26, 1 June 2006 (UTC)
-
-
-
-
-
-
- I think that's fine, as long as "Jones" is notable and we verifiably cite where that criticism was made. This helps keep WP from becoming a collection of original research/analysis and user reviews. --Ds13 19:56, 1 June 2006 (UTC)
-
-
-
-
-
-
-
-
- a few common lisp criticism include, the irritating parenthesis , the code gets too confusing if the algorithm is more complex, speed issues, its easy to program inefficient solutions but harder to program efficient solutions, the language itself is too large , in java and python its organized in objects which makes it easier to remember and use, the majority of university students who use it, hate it and never want to even heard of it again.
- im not sure if its true but according to this lisp doesn't define threads or GUI.
- anyway, knowing the pros and cons of a language is a usefull information when choosing one. and therefore should be present in wikipedia articles, as long as it stays NPOV - --Cyprus2k1 11:17, 9 June 2006 (UTC)
-
-
-
-
-
-
-
-
-
-
- People may or may not like various attributes of Lisp, but the only criticisms that belong in an encyclopedic article are those written by competant scholars. What undergraduates think of it after brief study is not terribly interesting and certainly not encyclopedic. --Eipi 13:40, 9 June 2006 (UTC)
-
-
-
-
-
To reiterate Eipi's point: While everyone is qualified to complain about something they don't like, not every complaint is noteworthy criticism. For instance, I would suggest that Ron Garret's "How Common Lisp Sucks" is far more noteworthy than some freshman's complaint that he doesn't like being assigned to learn Scheme when he'd rather learn C++ so he can get a job as a code monkey. Garret (n Erann Gat) has been working with Lisp for many years, and has a refined understanding of the ways in which it sucks, whereas the freshman does not. --FOo 04:51, 10 June 2006 (UTC)
If people do think its worthwhile adding a criticisms section then they should not repeat what is elsewhere in Wikipedia. For example, criticisms due to Lisps nature as an impurely function language should refer to other pages on that subject rather than repeating it. The problem with many of the criticisms in other language entries is that they rehash issues mentioned elsewhere in wikipedia, and do so badly. - --Jrthorpe 14:38, 26 July 2006 (UTC)
- So much rudeness here. Why assume the critics are freshmen? As far as I know, there is NO university program that uses LISP, because it is a pathetic language. Scheme, there are a few that come to mind. In any case, there are very few companies that use LISP, because it is a lousy language misdesigned from the get-go. C/C++, Java, Perl, .net, python, maybe even ruby here and there, some COBOL, some Fortran, but NO ONE uses LISP. It's hard to imagine someone using it since '70. I say, bring on the criticism section. And spare the "unencyclopedic" preachiness. As if the current level of detail about a programming language is something that belongs in an encyclopedia. Igottalisp 00:20, 21 October 2006 (UTC)
-
- Geez, got some serious fanboyism here. LISP is dynamically scoped, which all computer scientists that don't use LISP agree is absolutely retarded, leading to unpredictable code and poor efficiency. This is a valid criticism but the fanboys keep removing it. Igottalisp 01:14, 22 October 2006 (UTC)
- All computer scientists agree that Lisp is absolutely retarded? That's pretty serious claim. Care to provide a source? Grue 11:17, 22 October 2006 (UTC)
- Geez, got some serious fanboyism here. LISP is dynamically scoped, which all computer scientists that don't use LISP agree is absolutely retarded, leading to unpredictable code and poor efficiency. This is a valid criticism but the fanboys keep removing it. Igottalisp 01:14, 22 October 2006 (UTC)
-
-
-
- They think dynamic scoping -- LISPs form of scoping -- is retarded. NOBODY uses it and NOBODY likes it. It is less efficient and is confusing. It's impossible to find anything proving they all dislike it, but there are plenty of individuals who've said so. Dynamic scoping is not used in any language with any significant mindshare (Perl has it in the "local" construct for holdouts, but it rarely used). Here's one site: [1] History has taught that static scoping is far preferable to dynamic scoping....Upshot: if you have to implement a language, use static scoping. Igottalisp 03:25, 24 October 2006 (UTC)
-
-
-
-
-
-
- You're right that NOBODY uses dynamic scoping, indeed. In fact, modern Lisp systems don't even use it. Scheme doesn't, Common Lisp doesn't, Arc doesn't ... basically the only folks who still use it are the Emacs people. --FOo 05:14, 24 October 2006 (UTC)
-
-
-
-
-
-
-
-
-
- Not quite. Dynamic scoping is used in Common Lisp for special variables. It makes a lot of sense for global variables and similar stuff. And it's not confusing because programmer usually puts asterisks before and after variable name so it stands out. So, I use dynamic scoping, and I like it. Grue 15:28, 24 October 2006 (UTC)
-
-
-
-
-
-
-
-
-
-
-
-
- Yes, yes. Don't be tedious. The newbie's implication was that Lisp used dynamic scoping only or by default, which is thoroughly wrong. --FOo 17:56, 24 October 2006 (UTC)
-
-
-
-
-
-
- The old school hanger on speaks out to (personal-attack someone (who (disagrees-with him)) . So what if some dialect of LISPs were shamed into modernity by other languages -- it only proves how lame LISP was to begin with, and it leaves other dialects using the outdated dynamic scoping....and decades worth of legacy code unusable on "modern" LISP systems. It is still a criticism of LISP that has been and is still used. Just cause fanboys don't like to admit when their favorite toy has blemishes doesn't change the fact, so give up on the "removed POV" edit summaries. Igottalisp 04:36, 25 October 2006 (UTC)
-
- Whoa, I get the shivers when I read this! Although I am not an unreserved fan of either Lisp or dynamic scoping, I must say you must obviously be a Wikipedia-troll of the most abysmally dumb kind. Thank you. 0ffh
[edit] Application Order
"Evaluation is performed in applicative order."
I don't think that this is strictly true. In most Lisps, it is, but, in R5RS Scheme, for example, I'm pretty sure that the order is unspecified and may even vary within an implementation (depending upon what optizimations are made) and maybe even between different executions of the same expression. --69.61.168.145 02:49, 22 August 2006 (UTC)
[edit] Missing stuff
The Smalltalk#Image-based persistence article mentions this in one section:
- "Other languages that model application code as a form of data, such as Lisp, often use image-based persistence as well."
(Where it's talking about persistent System images.)
I vaguely remember hearing about something similar for Lisp machines, with "worlds". Could we maybe add a section on that? -- Gwern (contribs) 20:29, 23 September 2006 (UTC)
[edit] Name
I'm not all that happy with the current article name, parenthesized or no: it suggests Lisp is a single language, when the very intro takes pains to emphasize that it's a family of languages with quite a bit of diversity in it. Perhaps we should move it to Lisp programming language family or something more accurate at least? --Gwern (contribs) 15:28, 9 October 2006 (UTC)
[edit] Cleaning up
I've done some cleaning up also involving removing a lot of stuff that is not particularly relevant to Lisp. This article is not about Common Lisp after all. I'd also like for most of the explicit syntax use to go away. No need to duplicate Common Lisp.--MarSch 17:40, 9 February 2007 (UTC) Furthermore I've now moved the extremely stripped down Genealogy section up into the ``History`` section. This needs some major reworking and especially the lists should be killed. I also think that for the major Lisps, Common Lisp and Scheme there should be a separate section. --MarSch 19:07, 9 February 2007 (UTC)
[edit] Why were all the minor dialects removed?
It seems rather strange to me that as a result of a large series of edits to the Lisp page on Feb 9, 2006, by MarSch there is now a page on newLISP that goes into great detail about newLISP, but is not linked to from this primary page on Lisp. The same is true for many of the other "minor dialects" listed on this version of the Lisp page. References to those other dialects were removed from the main page. Personally, I think that these should be listed somewhere on this page so that people interested in Lisp can go and find out about some of the other Lisp dialects out there. Was this intentional? Or just an omission during a large editing cycle?
Given that there has been so much discussion and debate in this page's history - and I have not been part of that, I'll not go and put them back in myself, but I would suggest to those of you maintaining this page that they should be included again. What do others think? - Dyork 18:25, 12 February 2007 (UTC)
- All I did was remove the __list __ of minor dialects. If you want something like that you should use a category or create a list article. If you can write some __prose__ on the minor dialects that would be fine here. --MarSch 11:00, 13 February 2007 (UTC)
[edit] Gentle Intro for Links Section?
Hi. I'm interested in learning Lisp. Is this recommended for the External Links section?
Common Lisp: A Gentle Introduction to Symbolic Computation by David S. Touretzky
Thanks Dhammapal 04:35, 21 March 2007 (UTC)
- There are many Lispen. Look at Common Lisp and Scheme for more info. --MarSch 10:03, 21 March 2007 (UTC)