Reasons for rejecting Lisp (was Re: Newbie questions [Followup to comp.lang.lisp]) 
Author Message
 Reasons for rejecting Lisp (was Re: Newbie questions [Followup to comp.lang.lisp])


+---------------


| > | lisp has infix syntax.
| > +---------------
| >
| > I think you meant to say, "Lisp has PREFIX syntax".
| > (At least, I *hope* that's what you meant to say...)
|
| I believe I remember seeing someone use an infix syntax package (in
| this group?) and it looked something like #I(2 + foo * pi ...).
+---------------

Uh... That's what Lisp *can* do, if *you* choose to write a reader macro
function that implements an infix parser and bind it to a dispatch character
(in this case, "I", which is undefined by default in standard CL) for the
non-terminating dispatching macro character "#" in *your* application program.
But it's not built into Lisp. Lisp's native syntax (in the absence of macro
characters) is prefix:

        (+ 2 (* foo pi))

-Rob

-----

Applied Networking               http://www.*-*-*.com/
Silicon Graphics, Inc.          Phone: 650-933-1673
1600 Amphitheatre Pkwy.         FAX: 650-933-0511
Mountain View, CA  94043        PP-ASEL-IA



Mon, 22 Oct 2001 03:00:00 GMT  
 Reasons for rejecting Lisp (was Re: Newbie questions [Followup to comp.lang.lisp])

Quote:


> +---------------
> | lisp has infix syntax.
> +---------------

> I think you meant to say, "Lisp has PREFIX syntax".

> (At least, I *hope* that's what you meant to say...)

oh yeah, thanks for fixing my think-o.

--
                                           J o h a n  K u l l s t a m

                                              Don't Fear the Penguin!



Mon, 22 Oct 2001 03:00:00 GMT  
 Reasons for rejecting Lisp (was Re: Newbie questions [Followup to comp.lang.lisp])


    Rob> | I believe I remember seeing someone use an infix syntax package (in
    Rob> | this group?) and it looked something like #I(2 + foo * pi ...).
    Rob> +---------------

    Rob> Uh... That's what Lisp *can* do, if *you* choose to write a reader macro
    Rob> function that implements an infix parser and bind it to a dispatch character

There is the infix package in the CMU Lisp archives....

Ray



Mon, 22 Oct 2001 03:00:00 GMT  
 Reasons for rejecting Lisp (was Re: Newbie questions [Followup to comp.lang.lisp])
On Wed, 05 May 1999 17:34:40 GMT, Joachim Achtzehnter

Quote:



>> > Well Bagheera didn't state the problem quite right.  The overall
>> > point is that type checking saves you from tons and tons of late
>> > night typos and logic errors.

>> Nothing in CL forbids you from type-declaring every variable. Knock
>> yourself out.  Don't forget to send bug reports when the compiler
>> fails to use them well or flag problems, so your vendor will know
>> you care.

>It is true that one cannot fault the language for this. Nevertheless,
>until vendors listen to and act on these 'bug reports' the problem
>persists in practise. I agree strongly with Joshua that lack of static
>type checking is one on the main disadvantages of (at least) the
>commercial Common Lisp implementation I am familiar with.

I agree strongly that the lack of static type checking is perceived
*by you and Joshua* as a main disadvantage of CL implementations.

One of the major problems with C++ is that it requires static
typechecking, which means that building generic functions requires the
contortions of templates, which have taken years to settle down enough
that compilers could coherently implement them.  (And it is not at all
clear that template-based code is portable between different
template-implementation approaches.)  

The fact that CL doesn't *force* you to restrict the manipulable types
at the time that you write the code means that you don't need
templates; you just need to go write CL code, and use it on whatever
datatypes you need to use it on.

You're not likely to get agreement that the problem *that you
perceive* represents a problem *in fact.*

Quote:
>> But the language itself already supports this.  It's simply up to
>> the market to decide if this is what stands between it and
>> success. I doubt it is, but you're welcome to make the case
>> otherwise.

>Well, I tend to disagree. Adding static type checking (optional of
>course) would go a long way towards convincing experienced C++/Java
>programmers to take another look at Lisp. Of course, I can be certain
>only about my own opinion, others may disagree. I have heard a
>representative of a Lisp vendor seriously argue that Lisp code must
>look as simple as Java code to be competitive. IMHO, static type
>checking is an order of magnitude more important than that. :-)

Adding in a requirement to put semicolons at the ends of statements,
and changing over to C++ syntax, might also go a long way towards
convincing C++/Java advocates to take another look at Lisp.

By the way, if static type checking is, as you say, an order of
magnitude more important than simplicity of appearance, would you then
pay an order of magnitude more for the Lisp implementation?  

Money talks; if the Lisp vendors figure out that they can make ten
times as much (a decimal order of magnitude) in sales as a result of
implementing this functionality, then I don't think they'll sit back
on their haunches with some "religious" attitude about not doing it
because they think it's a silly idea; they'll say:

"Cool!  If we invest $100,000 paying a developer or two to add static
type checking, and when our sales increase by an order of magnitude,
from $10M to $100M, this $100K investment will pay off handsomely!"

[Hint: The fact that they haven't done so means that they obviously
consider this "enhancement" to *not* be of that much economic value.]

- Show quoted text -

Quote:
>> I won't try to tell you not to write declarations if you won't try
>> to tell me that I must write them.

>Sure, there is no need to take away this flexibility.

>> > In code that rarely runs or isn't expected to run under
>> > normal conditions, this sort of correctness checking is very
>> > important.

>> You don't say what your point is.

>The point is probably this: A C++/Java compiler cannot catch all
>errors, especially not design or logical errors, but at least it
>catches most simple errors like typos, passing the wrong number of
>arguments, passing a wrong argument, etc.  With existing Lisp
>implementations many such errors are detected only at runtime even
>when declarations are used. This is less problematic with mainline
>code which is likely to be run by the developer anyway, but typos in
>sections of the source code that are less frequently run have the
>habit of crashing in the hands of a user, or the QA department if
>you're lucky. Yes, you should test all your code, but the kind of bug
>we're talking about is often introduced by changes that are so
>'obvious' that many developers don't imagine a bug may have been
>introduced.

I have a whopping lot more problems with things other than type
declarations.

Feel free to believe whatever you want about the "order of magnitude"
importance of static type checking.  If you lose credibility as a
result of this belief, that's not my problem.
--
Where do you *not* want to go today? "Confutatis maledictis, flammis
acribus {*filter*}is"  (< http://www.*-*-*.com/ ~cbbrowne/msprobs.html>



Mon, 22 Oct 2001 03:00:00 GMT  
 Reasons for rejecting Lisp (was Re: Newbie questions [Followup to comp.lang.lisp])
On 05 May 1999 10:22:23 +0200, Marco Antoniotti

Quote:


>> An X implementation written in a Lisp would indeed be extremely
>> interesting.  Definitely would need some interesting compilation
>> techniques to stay fast; it would doubtless {*filter*}le some bugs out of
>> existence.

>Ahem!  CLX?  Remember that in the beginning there were TWO
>implementations of X, C/Xlib and CL/CLX.

Isn't that merely a CL implementation of Xlib?

That's hardly an "X implementation written in a Lisp;" that's merely a
wrapper for the X protocol written in a Lisp, and is not a
*remarkably* interesting thing.

--
Where do you *not* want to go today? "Confutatis maledictis, flammis
acribus {*filter*}is"  (< http://www.*-*-*.com/ ~cbbrowne/msprobs.html>



Mon, 22 Oct 2001 03:00:00 GMT  
 Reasons for rejecting Lisp (was Re: Newbie questions [Followup to comp.lang.lisp])

Quote:

> On 05 May 1999 10:22:23 +0200, Marco Antoniotti


> >> An X implementation written in a Lisp would indeed be extremely
> >> interesting.  Definitely would need some interesting compilation
> >> techniques to stay fast; it would doubtless {*filter*}le some bugs out of
> >> existence.

> >Ahem!  CLX?  Remember that in the beginning there were TWO
> >implementations of X, C/Xlib and CL/CLX.

> Isn't that merely a CL implementation of Xlib?

> That's hardly an "X implementation written in a Lisp;" that's merely a
> wrapper for the X protocol written in a Lisp, and is not a
> *remarkably* interesting thing.

I stand corrected.  However, beside being interesting, why should a
X *server* be built in CL at this time in history?

Cheers

--
Marco Antoniotti ===========================================
PARADES, Via San Pantaleo 66, I-00186 Rome, ITALY
tel. +39 - 06 68 10 03 17, fax. +39 - 06 68 80 79 26
http://www.*-*-*.com/ ~marcoxa



Mon, 22 Oct 2001 03:00:00 GMT  
 Reasons for rejecting Lisp (was Re: Newbie questions [Followup to comp.lang.lisp])
Quote:

>>>> On the subject of "Re: Newbie questions [Followup to comp.lang.lisp]"
>>>> Sent on 06 May 1999 00:42:56 +0000



 >> | Welcome to the real world.  The only time I've ever seen an office where
 >> | the programmers had all the time they needed for designing, documenting,
 >> | debugging and other 'engineering' process tasks was in a government job.
 >>
 >>   I love it when people think theirs is the only corner of the world that
 >>   is worthy of the trademark Real World.  one usually doesn't need any more
 >>   evidence to discard people than that.
 >>
 >>   I have had the opportunity to do everything I have wanted to do for my
 >>   client, and have been able to spend all the time I have wanted on what I
 >>   think is important to the end goal...

Is this why your CLEmacs (http://sourcery.naggum.no/emacs/clemacs.html)
project is dormant for almost 2 years now? :-)

Apparently it's not important to the end goal...

[No, you do not owe anyone anything, and I am not blaming you for
anything, and I am not whining &c &c &c.]

--
Sam Steingold (http://www.goems.com/~sds) running RedHat6.0 GNU/Linux
Micros**t is not the answer.  Micros**t is a question, and the answer is Linux,
(http://www.linux.org) the choice of the GNU (http://www.gnu.org) generation.
I may be getting older, but I refuse to grow up!



Mon, 22 Oct 2001 03:00:00 GMT  
 Reasons for rejecting Lisp (was Re: Newbie questions [Followup to comp.lang.lisp])
Hmm. If you did want to write a CL compiler in C, is there a formal grammar
(LALR etc) out there somewhere. I had a look and couldn't find one.


Mon, 22 Oct 2001 03:00:00 GMT  
 Reasons for rejecting Lisp (was Re: Newbie questions [Followup to comp.lang.lisp])

Quote:


> | I believe I remember seeing someone use an infix syntax package (in
> | this group?) and it looked something like #I(2 + foo * pi ...).
> +---------------

> Uh... That's what Lisp *can* do

That's kinda what I was getting at.

Quote:
> Lisp's native syntax (in the absence of macro characters) is prefix:

>    (+ 2 (* foo pi))

How enlightening.

Christopher



Mon, 22 Oct 2001 03:00:00 GMT  
 
 [ 350 post ]  Go to page: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24]

 Relevant Pages 
 

 
Powered by phpBB® Forum Software