Bruce Hoult <br...@hoult.org> writes: > In article <kpamlscdjl89ihfhsdk3d4rinoa1hji...@4ax.com>, Jason Trenouth > <ja...@harlequin.com> wrote:
> > Well, Dylan really isn't C-ish syntax. No braces (except in macro > > definitions), no casting, postfix type declarations, and very > > different (Lisp/Scheme-like) identifier conventions. Unfortunately, > > from the point of view of promulgating the language, Dylan's syntax > > looks very alien to many C programmers.
> I suspect that the guys tasked with coming up with the infix syntax were > concerned that if it looked *too* C-like then people would expect it to > have C semantics.
Isn't there also an (alternative) prefix syntax for Dylan? That must be even more lisp-like (says Simon, never having tried it).
On Fri, 30 Jun 2000 09:33:34 GMT, Simon Brooke <si...@jasmine.org.uk> wrote: > Isn't there also an (alternative) prefix syntax for Dylan? That must > be even more lisp-like (says Simon, never having tried it).
Brooke <si...@jasmine.org.uk> wrote: > Bruce Hoult <br...@hoult.org> writes:
> > In article <kpamlscdjl89ihfhsdk3d4rinoa1hji...@4ax.com>, Jason Trenouth > > <ja...@harlequin.com> wrote:
> > > Well, Dylan really isn't C-ish syntax. No braces (except in macro > > > definitions), no casting, postfix type declarations, and very > > > different (Lisp/Scheme-like) identifier conventions. Unfortunately, > > > from the point of view of promulgating the language, Dylan's syntax > > > looks very alien to many C programmers.
> > I suspect that the guys tasked with coming up with the infix syntax > > were > > concerned that if it looked *too* C-like then people would expect it to > > have C semantics.
> Isn't there also an (alternative) prefix syntax for Dylan? That must > be even more lisp-like (says Simon, never having tried it).
Oh, absolutely. A lot of simple Scheme textbook programs can be converted into prefix Dylan simply by doing a global s/lambda/method/ e.g.
(define fact (lambda (n) (if (< n 1) 1 (* n (fact (- n 1)))))) // Scheme (define fact (method (n) (if (< n 1) 1 (* n (fact (- n 1)))))) // Dylan
Then the differences start. Scheme has a shortcut "(define (fact n) ... )" whereas Dylan has "(define-method fact (n) ... )". Dylan lets you replace args in the argument list with (n <integer>) as a type declaration. Dylan has a built-in object system (and everything is an object). But they are very, very similar.
But neither current implementation of Dylan supports the prefix syntax. At all. It's pining for the Fjords. It's an ex-syntax. It's bleedin' snuffed it.
Erik Naggum wrote in message <3171354053463...@naggum.no>... >* Jason Trenouth <ja...@harlequin.com> >| No. That was ditched a long time ago.
> Yet, curiously, that was about the same time I decided Dylan was a > waste of time.
If infix syntax was not what you expected, please alter your expectations.
Translation: I implemented Lisp and Lisp environments for 12 years. I worked on Dylan for 5 years. I'm back to using Lisp again. Guess what? I like Dylan better, syntax and all.
On 30 Jun 2000 11:40:53 +0000, Erik Naggum <e...@naggum.no> wrote:
> * Jason Trenouth <ja...@harlequin.com> > | No. That was ditched a long time ago.
> Yet, curiously, that was about the same time I decided Dylan was a > waste of time.
I appreciate that Lispers may dislike Dylan's compromises and miss some of the omitted features. Apart from the syntax, want do you think of the semantics and the feature set?
* "Scott McKay" <s...@mediaone.net> | If infix syntax was not what you expected, please alter your expectations.
Oh, please.
| Translation: I implemented Lisp and Lisp environments for 12 years. | I worked on Dylan for 5 years. I'm back to using Lisp again. Guess | what? I like Dylan better, syntax and all.
Yeah, we need more personal testimonials.
My point was that the decision to drop the Lisp-like syntax was pretty darn stupid considering it was a selling point towards a community that was told "you fine people don't matter, anymore".
#:Erik -- If this is not what you expected, please alter your expectations.
"Scott McKay" <s...@mediaone.net> writes: > I implemented Lisp and Lisp environments for 12 years. I worked on > Dylan for 5 years. I'm back to using Lisp again. Guess what? I like > Dylan better, syntax and all.
if it's okay, and you feel you can expound on this (i.e. if you can point out things in the syntactic differences), plesae do. I know that I was averse to Dylan's syntax. But I also know the following:
when people know and love and understand something -- whatever that something may be -- and then make a serious change (like Lisp->Dylan), it's always hard to go back. I think I wrote a post about his phenomenon not too long ago. Basically, it's always hard to go back to something that breaking away from was work. It's the same thing that makes it hard for me to live in Long Island after growing up very sheltered and struggling to live in my own in Boston.
Of course, for me it was Pascal -> Common Lisp, and so going back to that is hard for me. It's really all about what you see and when you see it. I try to look at these things with as open a mind as I can, and I simply cannot for the life of me see how the Dylan syntax is more sensible. I'm not counter-arguing; I just want to know details -- that is, if you feel you can do it justice. Admittedly, I have only a cursory understanding of Dylan syntax, and so the best I can do is say "I just don't like it as much" or something useless like that. I do think that Dylan syntax bites, at least for me. Syntax is _extremely_ important to many programmers because there are many times when several languages are "equivalent" in many respects, and so in the end it comes down to which one's syntax one is most comfortable with.
Since you have lots of experience with both languages, would you agree that the CL syntax is more expressive? more malleable? More uniform? I would, but if you feel otherwise, I'd like to know why.
o...@my-deja.com writes: > In article <c29g0pxbubg....@nerd-xing.mit.edu>, > David Bakhash <ca...@alum.mit.edu> wrote: > > Jason Trenouth <ja...@harlequin.com> writes:
> > > Basically, Dylan is very Lispy and easy for Schemers and Lispers to > understand.
> > I personally don't agree. That's only my opinion.
> I regard Dylan as a descendant of Lisp... basically a > fully-object-oriented and cleaned-up Lisp. I think that any Lisp > programmer should pick up Dylan very, very easily.
don't get me wrong. I see the similarities, and an kinda map Dylan back into Lisp. It's going the other way that's the problem, and since I'm kinda stuck thinking in Common Lisp, this is just too hard. In fact, maybe it's the fact that they share enough in common that hurts me. It's almost interference. I program quite fluently in Perl, and that's not too similar to CL at all, except no pointers and GC.
Dylan did clean up some things, but they were mostly minor to me. "very, very easily" makes me feel a bit slow.
> * "Scott McKay" <s...@mediaone.net> > | If infix syntax was not what you expected, please alter your expectations.
> Oh, please.
> | Translation: I implemented Lisp and Lisp environments for 12 years. > | I worked on Dylan for 5 years. I'm back to using Lisp again. Guess > | what? I like Dylan better, syntax and all.
> Yeah, we need more personal testimonials.
> My point was that the decision to drop the Lisp-like syntax was > pretty darn stupid considering it was a selling point towards a > community that was told "you fine people don't matter, anymore".
It's pointless to spend any effort selling to 1% of the market. Reality sucks.
* "Carl L. Gay" <si...@thecia.net> | It's pointless to spend any effort selling to 1% of the market.
Then it's clearly even more pointless to spend any effort "selling" anything to you, only one in 6 _billion_ people, such as a much better attitude towards "reality" than you currently have, both in terms of suckiness and in terms of this mythological _one_ market.
#:Erik -- If this is not what you expected, please alter your expectations.
> * "Scott McKay" <s...@mediaone.net> > | > | Translation: I implemented Lisp and Lisp environments for 12 years. > | I worked on Dylan for 5 years. I'm back to using Lisp again. Guess > | what? I like Dylan better, syntax and all.
> Yeah, we need more personal testimonials.
And the alternative is... impersonal ad brochures?
Seriously, I'd love to hear Lisp vs. Dylan comparisons from someone with Scott's amount of Lisp experience. I just browsed the subject tree at Amazon.com, and of the three books listed within "Dylan Programming," one was a tutorial, one a reference manual, and the third had the comment, "Incomplete and riddled with errors." I'd rather trust the judgement of someone like Scott, who I know *gets* Lisp.
Scott, I second David Bakhash's interest in more details from you.
cbbro...@news.hex.net (Christopher Browne) writes: > [Aside...] Microsoft DOC files commonly include all the revisions, as > opposed to merely containing the most recent set of contents.
> As a result, if you use "strings" to extract the "stuff that looks > like text," you can often find more material in the document than the > writer may have intended that you be able to see.
In this case, though, they didn't seem to have done a "fast save".
Either that, or they typed it all in one pass.
-- vsync http://quadium.net/ - last updated Thu Jun 29 13:01:57 MDT 2000 (cons (cons (car (cons 'c 'r)) (cdr (cons 'a 'o))) ; Orjner (cons (cons (car (cons 'n 'c)) (cdr (cons nil 's))) nil)))
In article <j7175.9050$Zr5.877...@typhoon.ne.mediaone.net>, "Scott
McKay" <s...@mediaone.net> wrote: > Erik Naggum wrote in message <3171354053463...@naggum.no>... > >* Jason Trenouth <ja...@harlequin.com> > >| No. That was ditched a long time ago.
> > Yet, curiously, that was about the same time I decided Dylan was a > > waste of time.
> If infix syntax was not what you expected, please alter your expectations.
> Translation: I implemented Lisp and Lisp environments for 12 years. > I worked on Dylan for 5 years. I'm back to using Lisp again. Guess > what? I like Dylan better, syntax and all.
Hark! The voice of experience!
But could you clarify that?
1) you hate Dylan syntax, but still prefer Dylan over CL for other reasons
>> * "Scott McKay" <s...@mediaone.net> >> | If infix syntax was not what you expected, please alter your expectations.
>> Oh, please.
>> | Translation: I implemented Lisp and Lisp environments for 12 years. >> | I worked on Dylan for 5 years. I'm back to using Lisp again. Guess >> | what? I like Dylan better, syntax and all.
>> Yeah, we need more personal testimonials.
>> My point was that the decision to drop the Lisp-like syntax was >> pretty darn stupid considering it was a selling point towards a >> community that was told "you fine people don't matter, anymore".
>It's pointless to spend any effort selling to 1% of the market. >Reality sucks.
Ah, but when you're trying to sell _Dylan_, when it has _no_ market, having a community of Lisp adopters might have been a Good Thing, and might well have represented a lot more than 1% of the market _for Dylan_. -- cbbro...@hex.net - <http://www.ntlug.org/~cbbrowne/lisp.html> I'M SORRY, LUSER, I CAN'T LET YOU DO THAT. WHY DON'T YOU LIE DOWN AND TAKE A STRESS PILL? MY NAME IS LM1. I WAS MADE AT THE LISP MACHINE FACTORY IN MASSACHUSETTS ON DECEMBER 12, 1992. MY TEACHER WAS MR. WINSTON. HE TAUGHT ME A PROGRAM. WOULD YOU LIKE TO SEE IT? HERE IT IS:
>> Fortunately, you can apply unzip to it and not have to execute the >> file. Doing so yields a .DOC file which is a lot more useful than >> an .EXE file, fer sure! You now need _more_ Microsoft shitware to >> read the goddamn _text_. I used the demented StarOffice suite, and
>I used "strings", and although I missed some diagrams and punctuation, >it was enough to get the general idea of the language. It's got a few >things Java doesn't have, and it's missing a few things Java does >have, but on the whole, it's just a Java knockoff. Nothing special >here, folks; move along...
[Aside...] Microsoft DOC files commonly include all the revisions, as opposed to merely containing the most recent set of contents.
As a result, if you use "strings" to extract the "stuff that looks like text," you can often find more material in the document than the writer may have intended that you be able to see.
It is apparently (emphasis "most") entertaining if you receive an offer letter from a would-be employer in Word DOC form. If they issued more than one offer, you might be able to extract information about (emphasis "other") offers from the document, which will doubtless prove valuable in the "negotiations" phase... -- cbbro...@acm.org - <http://www.ntlug.org/~cbbrowne/linux.html> A year spent in artificial intelligence is enough to make one believe in God. -- Alan Perlis
* Jason Trenouth <ja...@harlequin.com> | Apart from the syntax, want do you think of the semantics and | the feature set?
I thought I said that: I concluded that Dylan was a waste of time. What kept me interested in it for a while was the Lisp-like syntax. I didn't find the semantics and the "feature set" sufficiently attractive on their own, and knowing how fixed-grammer languages evolve (rampant keyworditis and logorrhea), didn't appear to be something worth investing in at the time. However, it has been six years, so I ordered a couple books on Dylan from Functional Objects to see if there are any good ideas I am more likely to pick up now. (Incidentally, I didn't see any non-Windows offerings, which means I'm not inclinced to investigate further, as I simply don't deal with criminals, such as Microsoft.)
#:Erik -- If this is not what you expected, please alter your expectations.
>Ah, but when you're trying to sell _Dylan_, when it has _no_ market, >having a community of Lisp adopters might have been a Good Thing, and >might well have represented a lot more than 1% of the market _for >Dylan_.
Hey, look, if the only thing that Lispers care about is having Lisp syntax, then they are as closed-minded as the C and Java communities. Syntax is trivial. Get over it.
Phil Stubblefield wrote in message <395D0225.4FFEE...@rpal.rockwell.com>... >Erik Naggum <e...@naggum.no> wrote:
>> * "Scott McKay" <s...@mediaone.net> >> | >> | Translation: I implemented Lisp and Lisp environments for 12 years. >> | I worked on Dylan for 5 years. I'm back to using Lisp again. Guess >> | what? I like Dylan better, syntax and all.
>> Yeah, we need more personal testimonials.
>And the alternative is... impersonal ad brochures?
>Seriously, I'd love to hear Lisp vs. Dylan comparisons from someone >with Scott's amount of Lisp experience. I just browsed the subject >tree at Amazon.com, and of the three books listed within "Dylan >Programming," one was a tutorial, one a reference manual, and the >third had the comment, "Incomplete and riddled with errors." I'd >rather trust the judgement of someone like Scott, who I know *gets* >Lisp.
>Scott, I second David Bakhash's interest in more details from you.
OK, I'll tell you some of the things I like about Dylan, and some of the things I like better in Lisp. First the likes:
- I like Dylan's type system. I like that the "built-in" types fix into the type system in a clean and consistent way. I like that you can use it "typeless" but can then clamp down the types to get better code, and more importantly, better compile-time error detection. Going back to Lisp makes me fell butt-naked on the type safety front; as the static-type people have been saying for years, a lot of errors really are type errors, and Dylan does a good job catching these. - I am surprised to say that I have come to like the infix syntax. For one, using type decls in Dylan is a lot easier than in Lisp, and a lot more readable, too. Don't delude yourself into thinking Lisp has "no syntax" (as many people claim); it does, but it's just harder to see. - I like Dylan's hygienic macro system. If we adopted Keith Playford's work on procedural macros, Dylan's macros would be very nearly as powerful as Lisp's, and many of Lisp's pitfalls would fall away. - I like that Dylan has a library compilation model. I like being able to ship reusable components. I like Dylan's library and module system. - I like that Dylan is smaller than Common Lisp. I don't miss most of the fat. - Believe it or not, I now prefer the simpler method combination in Dylan. It forces you to get your class hierarchy correct, and not to patch it up with kludgy method combination. If you think you haven't used kludgy method combination, I bet you're wrong. I prided myself on how little I resorted to such kludges, but my Dylan experiences truly showed that my pride wenteth before a fall. (I confess that I miss the "namespace" provided by daemon method combination, but you get used to it.) - I like that all primitive operations are defined as generic functions, too, unlike in Lisp. - It's partly parental pride, but I like using HD/FD better than almost any other programming environment I've used. Yeah, it's not as mature or solid, but it's really good.
Now some dislikes:
- I don't like that Dylan doesn't have first-class interfaces like Java. - I wish Dylan hadn't thrown out so much of the CLOS MOP. I would like some of the introspection reinstated (slot descriptors, e.g.), but could live with only compile-time MOP for doing extensions.
Obviously, I like that Dylan is truly a dialect of Lisp (closest to Eulisp, I think) with all that Lisp gives you: dynamic types, keyword args, higher order functions, etc.
David Bakhash wrote in message ... >"Scott McKay" <s...@mediaone.net> writes: >Since you have lots of experience with both languages, would you agree >that the CL syntax is more expressive? more malleable? More uniform? >I would, but if you feel otherwise, I'd like to know why.
I don't actually think CL syntax is more expressive or more uniform. The *basic* syntax of lists certainly is, but once you start adding in all the macros and special forms, the nice uniformity goes right down the tubes. Think of if, cond, do, defclass, ...
It's certainly more malleable, and it's certainly easier to write read and print. There are some things for which that is a real benefit.
In fact, the slightly less malleable syntax actually makes most Dylan macros easier to read, in my opinion, because there isn't so much flexibility that you can do any awful thing.
"Scott McKay" <s...@mediaone.net> writes: > Christopher Browne wrote in message ...
> >Ah, but when you're trying to sell _Dylan_, when it has _no_ market, > >having a community of Lisp adopters might have been a Good Thing, and > >might well have represented a lot more than 1% of the market _for > >Dylan_.
> Hey, look, if the only thing that Lispers care about is having > Lisp syntax, then they are as closed-minded as the C and Java > communities. Syntax is trivial. Get over it.
it's not. i like the lisp syntax because of its clean look. more importantly, the syntax is what lets lisp have such powerful and useful macros. with a less regular or less simple syntax you could never do it as easily nor to such great effect. it has nothing to do with being closed minded. sometimes certain things really are better; this is such a case.
-- J o h a n K u l l s t a m [kulls...@ne.mediaone.net] Don't Fear the Penguin!