Andreas Bogk <andr...@andreas.org> wrote: > Kaz Kylheku <k...@ashi.footprints.net> writes:
>> Some people feel, others think. The history of Lisp has produced >> four surviving flavors. Firstly, there are ANSI Common Lisp, ISO >> Standard Lisp (ISLisp). These have actual ISO document >> numbers. Then there is EuLisp and Emacs Lisp.
> I'd certainly like see the criteria by which these four are Lisp, > and all other languages are not.
The fact that they contain the four letters "L", "i", "s", and "p" might be considered signals of some sort.
Dylan isn't called Lisp, not by much of anybody. While there are similarities in some of the semantics, and Lisp folk were involved in its design, it's still pretty clearly not "Lisp": -> It doesn't normally offer a REPL; -> Programs aren't expressed in the form of lists.
Is it potentially of interest to people interested in Lisp? Surely. But it's still not "Lisp."
If it's arguable that Scheme isn't "a Lisp," then Dylan certainly isn't.
>> In this newsgroup, an unqualified ``Lisp'' refers to Common Lisp. > Would you mind referring to Common Lisp as Common Lisp when you > actually mean it, and use Lisp when talking about the family of > languages? That would make it much easier for me to follow your > argumentation.
That is an unfortunate and common confusion.
I agree that people should say "CL" when the context doesn't make it manifestly clear that that's what's meant.
If someone is asking about how to "use MOP in Lisp," that's a conversation that is pretty clearly likely to be about Common Lisp.
But in more 'generic' discussions, such as this one, where Emacs Lisp and ISLisp and such are _certainly_ legitimate instances of languages under discussion, and where Scheme might even be near enough to fit, it certainly does _not_ suffice to just say "Lisp."
>>> Dylan shares the following features with Common Lisp: dynamic typing, >> According to this reasoning, we can conclude, for instance, that C >> is really Pascal, or that C# is Java, based on sharing features. > No. I was just pointing out similiarities between Dylan and Common > Lisp. If you look at C# and Java, you will notice that they are > very similiar too.
The similarities aren't nearly as near as those that allow people to suggest that comp.lang.apl should be inclusive of "other Array Programming Languages such as J, K, and Nial."
I'd think that there is room for discussions about the similarities and differences between Dylan and Lisp. Just as someone might want to discuss the differences between C# and Java. And comp.lang.lisp is probably a reasonable forum for such a discussion (you know which one!).
But to consider that Dylan should be considered an instance of a "Lisp language" seems to be going ab it too far.
>> Dylan differs from Lisp in that if I have a Lisp program and I want >> to run it, a Dylan implementation won't do it for me. So if I'm >> looking for a Lisp compiler, it's completely irrational to be told >> that there is a nice Dylan compiler I can use. > I suspect most people asking for a Lisp compiler are really asking > for a compiler that gives them all the features they've heard Lisp > would have. In other words, more "Lisp the family" than Common > Lisp.
That's fine, and if someone suggested an ISLisp or EuLisp or Emacs Lisp, or, for that matter, REP, compiler, that would be fair game. I'd take mention of a REP compiler as more of a _joke_ than anything serious, but it certainly fits.
Mentioning Dylan in such a context doesn't seem reasonable.
>> Absolutely not. Here is a basic litmus test. If it barfs on >> (cons 'a 'b), it's not a Lisp, okay? Can we at least have that much >> sanity? Or do words mean nothing anymore?
> Hm. I've just checked the implementation of L. Peter Deutsch on the > PDP-1. It barfs on the above expression. Now of course that's a LISP > and not a Lisp...
.. And that's a perfectly good waggish response.
(cons 'a 'b) is something that works perfectly well in a whole raft of Lisp-related languages, including CL, REP, and even Scheme. It is amusing that you have found an implementation that rejects it.
The serious point of the litmus test is that (cons 'a 'b) does something reasonably appropriate in all of (list 'CL 'Scheme 'REP).
Dylan is sufficiently "not like Lisp" that (cons 'a 'b) doesn't work there.
>> Lisp is not a synonym for ``dynamic language''. It's an instance, >> not the entire class. > No, Common Lisp is an instance of Lisp, which is a subclass of > "dynamically typed language".
And since Smalltalk is also dynamically typed, as is Python, we presumably should be including them, as well?
The fact that it's _not_ reasonable to include them as being "Lisps" suggests that maybe evaluating things based on dynamically-typed subsets of languages isn't a meaningful way to divide things up.
>> I don't understand why Dylan people need to be accepted by the Lisp >> community. It must be some kind of inferiority complex at work.
> If you look at the history of Dylan, you will see that the roots of > it are in the Lisp community. The very same people who brought you > the Common Lisp standard, CLIM, CMU CL, and a lot of other things > worked on Dylan, and it was supposed to be the next big thing after > Common Lisp, and an improvement over it.
> Something bad must have happened on the way, I suspect it must have > to do with Apple's marketing department and dumbing down the > language ever so slightly, until most of the Lisp community rejected > it as "not powerful enough".
Moving from prefix to infix isn't forcibly "dumbing down," but is certainly a controversial change that will turn off people that thought that part of the charm of Lisp was in its syntax.
> Then there's the area of compiler implementation. Lots of the > tricks applicable to any of the Lisp (or not) dialects are > applicable to Dylan.
.. Which is something I'd think worth discussing, if the discussion thread is about "cool compiler implementation tricks."
>> How would you know what is standard Dylan or not?
> There's the Dylan Reference Manual.
>> Remember, the word ``Dylan'' can refer to whatever you want. There >> *is* no precision! Scheme is Dylan! Dylan is Lisp! TeX is C >> (proof: both have curly braces for blocks). > That's why I'm talking in terms of specific features. This does > produce something like a distance metric, and I can say things like > "Dylan is much more like Common Lisp than like Java".
Based on the (cons 'a 'b) litmus test (which is pretty flimsy, but so are litmus strips), Scheme is rather like Common Lisp, and Dylan and Java are, by that test, not at all like Common Lisp.
You can choose not to agree with that test; the wider point is that for things not to fall into a pointless dispute, there needs to be _some_ sort of test to agree on.
The really _simple_ one, mentioned up top, would involve the predicate:
(loop for lang in '("common lisp" "elisp" "Scheme" "Dylan" "ISO Lisp") do (format t "Language ~A ~A a Lisp~%" lang (if (lisp-p lang) "is" "is not")))
Language common lisp is a Lisp Language elisp is a Lisp Language Scheme is not a Lisp Language Dylan is not a Lisp Language ISO Lisp is a Lisp
> Of course, experts would be highly welcome too. Native backend > generator with abstract machine description anyone?
Isn't this something you should take to comp.lang.dylan? -- (concatenate 'string "cbbrowne" "@acm.org") http://cbbrowne.com/info/advocacy.html "The right honorable gentleman is reminiscent of a poker. The only difference is that a poker gives off the occasional signs of warmth." -- Benjamin Disraeli on Robert Peel
In article <87wur6frut....@meo-dipt.andreas.org>, Andreas Bogk wrote: > Kaz Kylheku <k...@ashi.footprints.net> writes:
>> Some people feel, others think. The history of Lisp has produced >> four surviving flavors. Firstly, there are ANSI Common Lisp, ISO >> Standard Lisp (ISLisp). These have actual ISO document numbers. Then >> there is EuLisp and Emacs Lisp.
> I'd certainly like see the criteria by which these four are Lisp, and > all other languages are not.
They are not; they are simply languages with the word Lisp contained in their name, and perhaps some historic connection. I would never say ``Lisp'' if I meant EuLisp, ISLisp or Emacs lisp.
I said these are four surviving flavors. ISLisp survives in the form of an up to date ISO standard. EuLisp is, presumably, being actively developed, and Emacs lisp in in wide use.
Of course there are historic dialects. The language to which McCarthy pointed, and uttered ``Lisp'' was Lisp at the time. But today, that word no longer refers to his language, except in well-established a historic context.
So when we say that McCarthy invented Lisp, we don't mean Common Lisp; the mention of the inventor's name establishes the historic context which causes Lisp to refer to the first dialect which he invented.
>> In this newsgroup, an unqualified ``Lisp'' refers to Common Lisp.
> Would you mind referring to Common Lisp as Common Lisp when you > actually mean it, and use Lisp when talking about the family of > languages?
Yes, I would mind. This is just unnecessary verbiage. If I mean something other than Common Lisp, like some historic, or surviving but insignificant dialect, I will qualify it accordingly, or at least let it be inferred from an obvious context.
I will change, but only after the newsgroup is renamed to comp.lang.common-lisp, right after Corman Lisp becomes Corman Common Lisp, Xanalys LispWorks becomes CommonLispWorks, and the domain registered by the Association of Lisp Users becomes www.common-lisp.org along with a new logo which somehow blends in the word Common.
The definitions of programming language names change. For example Fortran refers to Fortran 90. If you mean Fortran 77, then you have to say that, unless it is made obvious by context, like ``in 1983, I worked on a Fortran program'' which cannot possibly mean Fortran 90. C now refers to C99, with complex numbers, variable length arrays, designated initializers and other things. Ada refers to Ada 95, which is the most recent standard as far as I know, not, in any case, to Ada 83.
Time does not stand still, no matter how many new facts are refused by how many minds, in hopes of staying young.
> "Stephen J. Bevan" wrote: > > It remember when Le Lisp, Xlisp and Portable Standard Lisp used to be > > mentioned/discussed in comp.lang.lisp. I haven't seen any mentioned > > here in a while, let alone Cambridge Lisp. However, I still haven't > > got used to thinking of ``Lisp'' as ``Common Lisp'' in this group > > despite what the FAQ says. Note to myself to try harder :-)
> What about Autolisp?
My list above wasn't meant to be exclusive, it was just some of the Lisps I used in the past and which were once discussed here. None of them had a separate newsgroup devoted to them and so comp.lang.lisp was a natural place to discuss them. Depending on exactly what the issue was with Autolisp then comp.cad.autocad may or may not be a better place to discuss it. If it was something generically Lispy then comp.lang.lisp seems fine to me -- though perhaps not to others given the warning in the FAQ.
Christopher Browne <cbbro...@acm.org> writes: > Andreas Bogk <andr...@andreas.org> wrote: > > Kaz Kylheku <k...@ashi.footprints.net> writes:
> >> Some people feel, others think. The history of Lisp has produced > >> four surviving flavors. Firstly, there are ANSI Common Lisp, ISO > >> Standard Lisp (ISLisp). These have actual ISO document > >> numbers. Then there is EuLisp and Emacs Lisp.
> > I'd certainly like see the criteria by which these four are Lisp, > > and all other languages are not.
> The fact that they contain the four letters "L", "i", "s", and "p" > might be considered signals of some sort.
In the very beginning of _The Structure of Evolutionary Theory_, when Stephen J. Gould tries to define what he means by Darwinism, he writes some about the history of ideas. The logic behind picking the criteria for what it means to be a Darwinist applies here, I think:
Goldilocks's "just right" position between these extremes will strike nearly all cooperatively minded intellectuals, committed to the operationality and advance of their disciplines, as eminently sensible: shared content, not only historical continuity, must define the /structure/ of a scientific theory; but this shared content should be expressed as a /minimal list/ of the /few defining attributes/ of the theory's /central logic/ -- in other words, only the absolutely essential statements, absent which the theory would either collapse into fallacy or operate so differently that the mechanism would have to be granted another name.
Dylan fails on two points to qualify as a Lisp: it does not share historical continuity, and its abandonment of s-expressions causes it to operate quite differently. Dylan *was* an intentional break from Lisp: the lack of the letters l-i-s-p in its name is a result of that. S-expressions are not sufficient to make something a Lisp, but surely they are part of the central set of ideas that makes a language a Lisp dialect. To label Dylan a Lisp reduces the term to meaninglessness.
-- /|_ .-----------------------. ,' .\ / | No to Imperialist war | ,--' _,' | Wage class war! | / / `-----------------------' ( -. | | ) | (`-. '--.) `. )----'
Kaz Kylheku <k...@ashi.footprints.net> writes: > In article <87wur6frut....@meo-dipt.andreas.org>, Andreas Bogk wrote: > > Kaz Kylheku <k...@ashi.footprints.net> writes:
> >> Some people feel, others think. The history of Lisp has produced > >> four surviving flavors. Firstly, there are ANSI Common Lisp, ISO > >> Standard Lisp (ISLisp). These have actual ISO document numbers. Then > >> there is EuLisp and Emacs Lisp.
> > I'd certainly like see the criteria by which these four are Lisp, and > > all other languages are not.
> They are not; they are simply languages with the word Lisp contained in their > name, and perhaps some historic connection. I would never say ``Lisp'' if I > meant EuLisp, ISLisp or Emacs lisp.
This denies the term "Lisp" any use. If it simply means "Common Lisp", why keep it? The fact is that these languages do share a common set of ideas, and a common history, whence the string "Lisp" in their names. And for what it's worth, in the Emacs community, the term "Lisp" is used constantly to refer to Emacs Lisp.
[...]
> The definitions of programming language names change. For example Fortran > refers to Fortran 90. If you mean Fortran 77, then you have to say that, > unless it is made obvious by context, like ``in 1983, I worked on a Fortran > program'' which cannot possibly mean Fortran 90.
Well, Fortran has the advantage that they changed the name from FORTRAN to Fortran with the switch from 77 -> 90, so in writing anyway, I can say that I have a soft spot for FORTRAN, but I really wouldn't reccomend that a biologist learn Fortran.
-- /|_ .-----------------------. ,' .\ / | No to Imperialist war | ,--' _,' | Wage class war! | / / `-----------------------' ( -. | | ) | (`-. '--.) `. )----'
>> In article <87wur6frut....@meo-dipt.andreas.org>, Andreas Bogk wrote: >> > Kaz Kylheku <k...@ashi.footprints.net> writes:
>> >> Some people feel, others think. The history of Lisp has produced >> >> four surviving flavors. Firstly, there are ANSI Common Lisp, ISO >> >> Standard Lisp (ISLisp). These have actual ISO document numbers. Then >> >> there is EuLisp and Emacs Lisp.
>> > I'd certainly like see the criteria by which these four are Lisp, and >> > all other languages are not.
>> They are not; they are simply languages with the word Lisp contained in their >> name, and perhaps some historic connection. I would never say ``Lisp'' if I >> meant EuLisp, ISLisp or Emacs lisp.
> This denies the term "Lisp" any use. If it simply means "Common > Lisp", why keep it?
Because it's shorter, and therefore more convenient!
I'm only saying that the symbol Lisp has a default binding, which is to Common Lisp, in the absence of any overriding context. It does not have refer to exactly one thing, in every context and for all time.
(define-symbol-macro lisp '(common lisp))
The short name should default to the most popular, successful, feature-rich, best-of-breed language which claims to be some kind of Lisp. That is perfectly fair and rational.
It's the name of a programming *language* not the name of a family. When you say ``I wrote it in Lisp'', it can't possibly mean ``I wrote it in a whole family of languages at the same time''. If someone wants to use Lisp to refer to a family, then that requires a special context in which that use is clear. It's the wrong use for the default context, because there is an expectation that the name refers to a concrete language; a system of symbols in which you can write a working program.
Family is a loaded word; it implies we should all be chummy and get along as some kind of community, and stand together against the Big Bad World or some nonsense like that. I don't feel that I'm in any family with Scheme users, or Emacs lisp users or the EuLisp lunatics. Or for that matter with Common Lisp users. A stranger who happens to know Common Lisp is not automatically my friend.
> The fact is that these languages do share a > common set of ideas, and a common history, whence the string "Lisp" in > their names. And for what it's worth, in the Emacs community, the > term "Lisp" is used constantly to refer to Emacs Lisp.
Again, context. In their scope, they have a different binding for this convenient symbol:
(symbol-macrolet ((lisp '(emacs lisp))) ...)
Why shouldn't Emacs users just use the short name among themselves? But when an Emacs user steps outside of that scope, he or she cannot continue to use that word to refer to Emacs Lisp.
Christopher Browne <cbbro...@acm.org> writes: > Dylan isn't called Lisp, not by much of anybody. While there are
I know some people who do, and some people who don't even consider Scheme to be a Lisp.
> its design, it's still pretty clearly not "Lisp": > -> It doesn't normally offer a REPL;
The commercial compiler from Functional Objects does. The Gwydion folks realize the need, and as of the hacking session of last weekend, one can say:
$ d2c -i gwydion> local fac(n :: <integer>) n == 0 & 1 | n * fac(n - 1) end; fac(5); evaluated expression: {literal extended-integer 120}
> -> Programs aren't expressed in the form of lists.
Strictly speaking, in Lisp, Programs are expressed as s-expressions, and there's a canonical representation of the parse tree as lists. This is of course of a certain elegance.
On the other hand, you're calling library functions for parsing and writing s-expressions anyways, so the complexity of parsing and writing is something that doesn't matter to the user. What does matter is how easy it is to do something useful with the parse tree, and I can think of less elegant solutions than a generic function that dispatches on the particular syntactical element in question.
If the presence of s-expressions is the litmus test, then Dylan certainly isn't a Lisp. But saying "it's a lot like Lisp, just that it doesn't have s-expressions" would be justified, I think.
> Dylan is sufficiently "not like Lisp" that (cons 'a 'b) doesn't work > there.
Yes, it's called pair(#"a", #"b") over here.
>> No, Common Lisp is an instance of Lisp, which is a subclass of >> "dynamically typed language". > And since Smalltalk is also dynamically typed, as is Python, we > presumably should be including them, as well?
Neiter Python nor Smalltalk has generic functions.
> The really _simple_ one, mentioned up top, would involve the > predicate:
Well, at least there would be no dispute about evaluating this predicate :).
>> Of course, experts would be highly welcome too. Native backend >> generator with abstract machine description anyone? > Isn't this something you should take to comp.lang.dylan?
On the off chance that somebody who is able to write such a beast *and* has enough free time at his hand is reading this, he's welcome.
Andreas
-- "In my eyes it is never a crime to steal knowledge. It is a good theft. The pirate of knowledge is a good pirate." (Michel Serres)
In article <87heiafgi7....@meo-dipt.andreas.org>, Andreas Bogk wrote: > Christopher Browne <cbbro...@acm.org> writes: >> -> Programs aren't expressed in the form of lists.
> Strictly speaking, in Lisp, Programs are expressed as s-expressions, > and there's a canonical representation of the parse tree as lists.
We actually think of the list structure itself as being the source code for the Lisp program. That's easy to slip into when the notation is so close to the structure.
> This is of course of a certain elegance.
> On the other hand, you're calling library functions for parsing and > writing s-expressions anyways, so the complexity of parsing and > writing is something that doesn't matter to the user. What does > matter is how easy it is to do something useful with the parse tree,
A close correspondence between the notation and the structure does actually matter. It means that you don't have to expend a lot of mental effort in converting between how something is printed, and what it is. Even if you have a parser, that doesn't mean that that built-in parser is the only procedure that will be doing parsing. *People* will still be parsing that representation in their heads when they read and write it! They read and write one thing, but have to think another. For example, if x + y represents the tree (+ x y), then you have to remember that extracting the first element of x + y actually yields x and not +. Now multiply that little problem by dozens of symbols and levels of nesting, across a large body of code. Moreover, if a representation travels outside of the context of that programming language which has a parser for it, a difficult grammar could be an impediment. It may be very well that *you* have a formatter and parser, but someone using a different language, who needs to interoperate with your software, does not have that parser and formatter! Lastly, the performance of formatting and parsing may be an issue. A lot of programs are going to be doing it all over the place, so it's not something that you can dismiss as rarely executed functionality.
In article <87heiafgi7....@meo-dipt.andreas.org>, Andreas Bogk wrote: > On the other hand, you're calling library functions for parsing and > writing s-expressions anyways, so the complexity of parsing and > writing is something that doesn't matter to the user.
Incidentally, would you say that since it's possible to make calculators that work in base 23, there is no practical problem in getting people to work with numbers in base 23? ;)
Kaz Kylheku <k...@ashi.footprints.net> writes: >> On the other hand, you're calling library functions for parsing and >> writing s-expressions anyways, so the complexity of parsing and >> writing is something that doesn't matter to the user. > Incidentally, would you say that since it's possible to make calculators that > work in base 23, there is no practical problem in getting people to work > with numbers in base 23? ;)
No, I'm saying it's possible to make calculators that work in base 16, and there is no practical problem since the user interface will still be in base 10. I have even heard that some engineers actually prefer working in base 16, even though they only have 10 fingers.
Andreas
-- "In my eyes it is never a crime to steal knowledge. It is a good theft. The pirate of knowledge is a good pirate." (Michel Serres)
In article <aijv0j$14uvs...@id-125932.news.dfncis.de>, Christopher Browne <cbbro...@acm.org> writes:
> ... > Dylan isn't called Lisp, not by much of anybody. While there are > similarities in some of the semantics, and Lisp folk were involved in > its design, it's still pretty clearly not "Lisp": > -> It doesn't normally offer a REPL; > -> Programs aren't expressed in the form of lists.
this is not necessarily a criterion: the Lisp1.5 manual by mccarthy used an "external syntax" tha was pretty much algol like, and i vaguely remember having heard/read about a Lisp2 project (I think it was at stanford) that also used a very algol like syntax. you could argue that dylan is a lisp in that tradition (which seems not to have gained much following in the lisp community)
when i first read a (somewhat superficial) description of dylan, my first impression was that someone tried to redo common lisp with a more conventional syntax. this impression was strengthened by the original specs that called for two syntaxes, one of them actually quite lisp like
hs
--
don't use malice as an explanation when stupidity suffices
h...@heaven.nirvananet (Hartmann Schaffer) wrote: > In article <aijv0j$14uvs...@id-125932.news.dfncis.de>, > Christopher Browne <cbbro...@acm.org> writes: >> ... >> Dylan isn't called Lisp, not by much of anybody. While there are >> similarities in some of the semantics, and Lisp folk were involved in >> its design, it's still pretty clearly not "Lisp": >> -> It doesn't normally offer a REPL; >> -> Programs aren't expressed in the form of lists.
> this is not necessarily a criterion: the Lisp1.5 manual by mccarthy > used an "external syntax" tha was pretty much algol like, and i > vaguely remember having heard/read about a Lisp2 project (I think it > was at stanford) that also used a very algol like syntax. you could > argue that dylan is a lisp in that tradition (which seems not to have > gained much following in the lisp community)
> when i first read a (somewhat superficial) description of dylan, my > first impression was that someone tried to redo common lisp with a > more conventional syntax. this impression was strengthened by the > original specs that called for two syntaxes, one of them actually > quite lisp like
I agree that there are manifest similarities.
There are also manifest differences.
The computing world would probably be a better place if Dylan had gotten more popular instead of some combination of [Java|Tcl|Perl|C++]. (I'd tend to think that Ada offers nice things over those options, too, but that's another story.)
This all doesn't make Dylan "Lisp." -- (reverse (concatenate 'string "moc.enworbbc@" "enworbbc")) http://www.ntlug.org/~cbbrowne/sap.html Q: What's the difference between MicroSoft Windows and a virus? A: Apart from the fact that viruses are supported by their authors, use optimized, small code and usually perform well, none. -- Rogier Wolff <r.e.wo...@et.tudelft.nl>
> >>>>> On Sun, 4 Aug 2002 16:23:44 +0000 (UTC), Kaz Kylheku ("Kaz") writes: > Kaz> It doesn't matter what Dylan supports or not; even if it has the > Kaz> semantic equivalent of every Lisp feature, it's still not Lisp.
> Does Dylan have symbols?
Depends on what you mean by symbols.
Do you mean a datatype called symbol? Sure.
But then, there are languages that have an integer data type that we don't think of as having "integers".
For sake of argument, I'll here claim Dylan doesn't have symbols. Not that there isn't another possible point of view, and I fully expect someone to raise it in response--but just to say I'm comfortable having that exchange. Here's my claim:
To me, symbols have (at least) two parts:
- they are interned, canonical strings [dylan has this, and so does java--java calls them canonical strings, I think--it's been a while since i checked]
- they are not not mired in syntax.
I'll be further provocative by alleging that, to me, let's ay "in my heart", X is a symbol if and only if X can be used unadorned as a name in data and code.
(So, in my mind, symbols like |THIS IS A SYMBOL| are allowed in the datatype symbol but emotionally, in my heart, they are "cheating" and are not what symbol processing is really about... they're just an accomodation to practicality. I'm not saying symbol operations won't work on them, I'm just saying that they don't represent the spirit of what symbol processing was about--more like an exception that was patchily added afterward to accomodate cases never really intended origionally.)
Dylan uses the notation #"foo" for what lisp would call foo. To me, this is just not a symbol. I strongly believe that had this been the notation of symbols, important programs like Eliza and Macsyma would have risked never having been written (or would have looked very different).
Processors that are supposed to take '(I AM NOT FEELING WELL TODAY) as an argument but have to take #{#"I", #"AM", #"NOT", #"FEELING", #"WELL", #"TODAY"} are just not, to me offering the same capability.
Processors that should take '(+ x (- y 3)) but instead take #{#"+", #"x", #{#"-", "y", 3}} are again missing the point.
That small degree of willful failure to do user engineering means that interactive experimentation is virtually ruled out. IMO, no one is going to find it "fun" to simply sit around and try things. And so a great deal of accidental discovery will be lost... or, so I claim.
On 02 Aug 2002 19:52:23 -0400, Camm Maguire <c...@enhanced.com> wrote:
>Greetings! Just a note to the original author that GCL runs on >windows, produces native code, and is free as in beer *and speech*.
>Its only CLtL1 compliant at present, but we're working on that ....
>Take care,
Five questions: 1) Is it also run on Linux? ( Probably a stupid question, but I should ask.) 2) Does it run PCL/clossette/whatever? 3) How ell does it support FFI? 4) I was under the impression that GCL was no longer actively maintained. 5) Is there some documentation ( just to clarify the CLtL1 vs CLtL2 issues)>
> Processors that are supposed to take > '(I AM NOT FEELING WELL TODAY) > as an argument but have to take > #{#"I", #"AM", #"NOT", #"FEELING", #"WELL", #"TODAY"} > are just not, to me offering the same capability.
Well, neither expression syntax is one a naive user would choose to communicate with a supposed-to-be-intelligent program. Here's the Dylan code that takes a string, and returns a collection of symbols:
let (#rest words) = split("\\s", line) map(curry(as, <symbol>), words);
Voila, an improvement over using s-expressions as the input of Eliza.
> That small degree of willful failure to do user engineering means that > interactive experimentation is virtually ruled out. IMO, no one is going
Hm, don't think so. But I've already noticed that my mileage does vary :).
Andreas
-- "In my eyes it is never a crime to steal knowledge. It is a good theft. The pirate of knowledge is a good pirate." (Michel Serres)
Andreas Bogk <andr...@andreas.org> writes: > Kent M Pitman <pit...@world.std.com> writes:
> > Processors that are supposed to take > > '(I AM NOT FEELING WELL TODAY) > > as an argument but have to take > > #{#"I", #"AM", #"NOT", #"FEELING", #"WELL", #"TODAY"} > > are just not, to me offering the same capability.
> Well, neither expression syntax is one a naive user would choose to > communicate with a supposed-to-be-intelligent program. Here's the > Dylan code that takes a string, and returns a collection of symbols:
> Voila, an improvement over using s-expressions as the input of Eliza.
> > That small degree of willful failure to do user engineering means that > > interactive experimentation is virtually ruled out. IMO, no one is going
> Hm, don't think so. But I've already noticed that my mileage does > vary :).
But you've made my point.
You have turned them in to string processing applications.
To be honest, I don't think anyone who starts with split("\\s" line) is going to target symbol as their final datatype. I bet they'll write it using strings.
Further, the application involves even more string processing to get "x+y*z" to work. One of the virtues of starting with s-expressions was that it allowed the people with this idea to skip to the part where they were working on the idea, unimpeded by the UI issues that would be needed in order to get to a workable representation. (+ x (* y z)) is "good enough" even if "x+y*z" is arguably more natural to some. But having to write a parser for "x+y*z" is annoying. And it's DOUBLY annoying because you know the Dylan language HAS such a parser and does not reveal it to the end user as an ordinary part of doing business.
> To be honest, I don't think anyone who starts with split("\\s" line) > is going to target symbol as their final datatype. I bet they'll > write it using strings.
And I bet there's no READ that doesn't treat its input as a string internally.
Of course, clueless users who don't know the value of symbols should be slapped with the manual.
> to work. One of the virtues of starting with s-expressions was that > it allowed the people with this idea to skip to the part where they > were working on the idea, unimpeded by the UI issues that would be needed > in order to get to a workable representation.
An s-expression parser written in Dylan is readily available.
> parser for "x+y*z" is annoying. And it's DOUBLY annoying because you > know the Dylan language HAS such a parser and does not reveal it to the > end user as an ordinary part of doing business.
Oh, how I agree. Once GD 2.4 is released, I'll take a chainsaw and liberate the compiler's parser.
Andreas
-- "In my eyes it is never a crime to steal knowledge. It is a good theft. The pirate of knowledge is a good pirate." (Michel Serres)
Andreas Bogk <andr...@andreas.org> writes: > Kent M Pitman <pit...@world.std.com> writes:
> > To be honest, I don't think anyone who starts with split("\\s" line) > > is going to target symbol as their final datatype. I bet they'll > > write it using strings.
> And I bet there's no READ that doesn't treat its input as a string > internally.
> Of course, clueless users who don't know the value of symbols should > be slapped with the manual.
But this is again my point. Only some of the input is going to come from input lines. Some of it wants to be literal program data. And if you don't have symbols (and lists) IN MANAGEABLE SYNTACTIC FORM in your language, you won't have users including them as literal data as many places in programs as they need to.
> > to work. One of the virtues of starting with s-expressions was that > > it allowed the people with this idea to skip to the part where they > > were working on the idea, unimpeded by the UI issues that would be needed > > in order to get to a workable representation.
> An s-expression parser written in Dylan is readily available.
You remind me here of my (very well meaning) physics teacher in high school who when I suggested I might want to repeat the Michaelson/Morley (sp?) experiments for measuring the speed of light using mirrors said "why don't you use an oscilloscope"? To me, that seemed a strange question to ask since it was probably callibrated somewhere along the way with a knowledge of the speed of light, and seemed of defeat the whole purpose of the experiment.
I'm talking here about how important it is to have s-expressions in the language because of the invention it promotes by accidentally using such a simple device for routine play in your program, and you're saying back to me "you can have the sophisticated understanding that this simple device is available". Sure, *I* can because I know the importance of using it. But the people I'm talking about are people who don't know this importance and won't be using s-expressions.
Separating M (or D) -expressions from S-expressions is not a recipe for creating the "data is program / program is data" thing. It's a way of saying "data is data / program is program", which isn't the same thing at all.
Does that make Dylan a non-Lisp? I dunno. I'm not sure what's criterial to Lisp. Maybe I think the desire to BE a Lisp is criterial to Lisp, and maybe I think Dylan doesn't have that. I've seen no active desire to be called a Lisp and some active desire to not be called a Lisp by certain key Dylan folks over the years, and that seems to me to be more interesting... But at least at the level of programming, having separate tools (parsers, printers, etc.) for managing programs and managing data is relatively unlispy...
> > parser for "x+y*z" is annoying. And it's DOUBLY annoying because you > > know the Dylan language HAS such a parser and does not reveal it to the > > end user as an ordinary part of doing business.
> Oh, how I agree. Once GD 2.4 is released, I'll take a chainsaw and > liberate the compiler's parser.
* Andreas Bogk | I suspect most people asking for a Lisp compiler are really asking for a | compiler that gives them all the features they've heard Lisp would have. In | other words, more "Lisp the family" than Common Lisp.
Your suspicions are wrong. Someone who comes asking for a Lisp compiler does /not/ want Scheme or Dylan. They know how to ask for Scheme and Dylan if they want it. Really. Trust me. Nobody /ever/ comes to comp.lang.lisp to field their inquiries into Dylan and accidentally happen to call it "Lisp". That is one real test of whether something is or is not a Lisp. However, your disgracefully disrespectful attitude that you are right about this and everybody else, especially seasoned users of the language in the community you disrespect, is really annoying. You think you know better than every single living Lisp programmer. What gall! What immeasurable arrogance! What utter cluelessness!
| No, Common Lisp is an instance of Lisp, which is a subclass of "dynamically | typed language".
Look, we have multiple inheritance here, and no one superclass is /defining/.
| If you look at the history of Dylan, you will see that the roots of it are in | the Lisp community.
Which you *abandoned* because you no longer wanted to support Lisp!
What we in the Lisp community, if I may be so bold as to speak for the numerous people who take exception to your classification, and who and whose learned opinions you dismiss out of hand and purposefully ignore, do not consider Dylan a Lisp. Deal with it. Stop annoying people so much. Listen to what people tell you. Figure it out. Sheesh, dude, this is /not/ hard.
| The very same people who brougt you the Common Lisp standard, CLIM, CMU CL, | and a lot of other things worked on Dylan, and it was supposed to be the next | big thing after Common Lisp, and an improvement over it.
But you chucked the syntax, you frigging dimwit! You /left/ the Lisp community with that choice. You are not competing with Common Lisp, you are not at all "improving" on Common Lisp by taking away something that many people really, really value in Common Lisp. That you think so and are apparently unable to back down from your religious belief is so amazingly annoying that I wish I could slap your stupid face and hope you snap out of it. Sadly, you have demonstrated such amazing cluelessness and the arrogance to go with it that the impression here, if I may again interpret the /massive/ rejection of your claims to be a consensus, is that Dylan is the language of choice for people who are /utterly/ unable to deal with counter-information. You and that other bozo from the Dylan camp keep arguing /here/ in order to /convince/ people who have no interest in your language whatsoever that it is somehow a Lisp, when /one look/ at Dylan will reveal that it /lifted/ a number of concepts from real Lisps, /spit/ on their syntax tradition and those who much prefer it over yeat another Algol-Pascal-whatever derivate, and then you people have the /chutzpah/ to tell people you disrespect and ridicule that your stolen lemon of a language is an "improvement" over Common Lisp! Sure, you think so, and you can think so as much as you like in comp.lang.dylan.advocacy, but if you have to go running like a missionary to convert the heathens to your belief, you tell everybody that Dylan is the kind of language that is used by people who have no working brain, it is for /believers/ and /non-thinkers/ who accept your bogus claims at face value. "Yeah, it really is a Lisp because Andreas Borg says so", but resistance is not futile. We /shall not/ be assimilated.
Appealing to authority by imputing similarity between different products just because the same people worked on them is such a ridiculous denigration of their intelligence and their work ethics that I am almost speechless. How /dare/ you assume that people choose Common Lisp because persons X, Y, and Z worked on it? How /dare/ you imply that persons X, Y, and Z are unable to accomplish more than one useful thing in their entire life, so if they do two things, they must somehow be the same? How /dare/ you implicitly indicate that persons X, Y, and Z are unable to change direction in their life at will?
Jesus, idiots like you make me /angry/! And now that I had taken nearly a month off the newsgroup because I found that more than anything else, I wrote articles to clarify my own thinking instead of wanting to help the morons who are never satisfied, anyway. I wrote and filed, but did not post, many a response, and it was so liberating to know that I would be relieved of the idiotic, hostile responses. Over the past week or so, I have posted what I believe to be more insightful than blabbering, but cretin like yourself really do make me realize that newsgroups are mostly for trolls and idiots. Look at how many responses you have received! And only because you are so blindingly stubborn and /wrong/. Be right about something, and nobody says a word, write something insightful that required much thought on your end, and you are guaranteed silence (but occasionally some uplifting mail). But say something utterly boneheaded that pisses people off simply because it is so stupid that people who make such rabid mistakes must be corrected, and you get to control the whole goddamn agenda in the newsgroup for a while.
But people like you, Andreas Bogk, are truly incorrigible. You are a waste of time for anyone to respond to. You are unable to deal with contradictory information or opinions. Your purpose here is to annoy and /pester/ people with your retarded beliefs that you are certainly /not/ prepared to discard in the face of overwhelming rejection.
| That's why I'm talking in terms of specific features. This does produce | something like a distance metric, and I can say things like "Dylan is much | more like Common Lisp than like Java".
I like to see distance metrics graphically.
|-------------------------------------------------------------------------- | idiot ^ common lisp programmer you
The fact is, your Dylan programs look like one of those rejected languages that did /not/ become that celebrated commercial success called "Ada".
Grow a damn clue! Dylan proselytizing and marketing is /not/ welcome here, yet people flock to tell you this because you are so helplessly unintelligent that you stick to your beliefs no matter what people tell you. Why? Why do we all (me included) get so upset about such /fucking morons/ that we just /have/ to post some rebuttal? These people are positively /brimming/ with bovine excretions, yet neither putridity nor the methane deters people from trying to make it into something else. Get this: */they will never get it/*.
USENET has been fertilized so heavily that it is no longer fecund. And all that that methane does on USENET is cause spontaneous combustion.
See on you all August 15, provided you can stop responding to the nutjobs.
-- Erik Naggum, Oslo, Norway
Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.
Thaddeus L Olczyk <olc...@interaccess.com> writes:
> On 02 Aug 2002 19:52:23 -0400, Camm Maguire <c...@enhanced.com> wrote: > Five questions: > 1) Is it also run on Linux? ( Probably a stupid question, but I should > ask.)
Yes. Currently all Debian architectures save hppa.
> 2) Does it run PCL/clossette/whatever?
PCL -- yes. Don't know anything about clossette.
> 3) How ell does it support FFI?
GCL compiles to C, and therefore has a straightforward interface to foreign functions via a C calling sequence. There are examples in the source distribution.
> 4) I was under the impression that GCL was no longer actively > maintained.
There is a small, but active, volunteer development effort ongoing. Please check out http://savannah.gnu.org and gcl-de...@gnu.org.
> 5) Is there some documentation ( just to clarify the CLtL1 vs CLtL2 > issues)>
Yes, documentation is provided in info format. You can find it in the gcl ftp directory on savannah.
Take care, -- Camm Maguire c...@enhanced.com ========================================================================== "The earth is but one country, and mankind its citizens." -- Baha'u'llah
> PCL -- yes. Don't know anything about clossette.
I built Closette once with GCL on Windows but didn't use it for anything. I believe that it is relatively limited compared to PCL, but I believe that Corman Common Lisp based it's CLOS implementation on Closette, so I assume that there may be an important reason for that.
Andreas Bogk <andr...@andreas.org> writes: > > I don't understand why Dylan people need to be accepted by the Lisp > > community. It must be some kind of inferiority complex at work.
> If you look at the history of Dylan, you will see that the roots of it > are in the Lisp community. The very same people who brougt you the > Common Lisp standard, CLIM, CMU CL, and a lot of other things worked > on Dylan, and it was supposed to be the next big thing after Common > Lisp, and an improvement over it.
From a vendor's point of view: In the mid-90's we at Franz were interested in Dylan as a new tack on the Lisp community. It obviously had its roots in Lisp, and we were interested in seeing what the plans were. Java had not yet come into its own, and there was a nice hole that looked like it could be filled nicely by Dylan. And Apple had approached us to see if they could find a good home for Dylan (they were looking to cut costs by cutting projects).
So a couple of us from Franz went to Apple to talk to the developers there, and we asked a bunch of questions. The major points I remembered were:
1. Dylan was at the time a long way from being viable as a production language, even though it had many bells and whistles and close to a Developer Release. If we had taken Dylan on, we would have had a lot of work to do to roll it out, even after DR1.
2. The original Dylan specs had allowed for both C-like and paren style syntax, but the developers on all Dylan projects were moving to get _away_ from paren-based syntax, and by the time DR1 had come out that bridge had already been burned by Apple. I'm not sure what the state of the other Dylan development groups had done by that time, but in order for us to take Dylan on, we would have had to make a decision to buck the stated desire of the Dylan community to lose the Lisp-like syntax.
3. Macros were not yet completely developed, and it was told to us that they would likely be text-based pattern-matching and substitution. We would have had to buck that trend as well.
We went away from there deciding that Dylan was not a good match for a Lisp company to take on. The distance from where we would have wanted to take it was not the problem, but the direction in which it was headed, instead.
> Something bad must have happened on the way, I suspect it must have to > do with Apple's marketing department and dumbing down the language > ever so slightly, until most of the Lisp community rejected it as "not > powerful enough".
I think we rejected it as "not Lisp enough".
I view Dylan as lisp-like, but certainly not as a Lisp.