Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 176 - 200 of 325 - Collapse all  -  Translate all to Translated (View all originals) < Older  Newer >
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
John Foderaro  
View profile  
 More options Sep 3 2001, 11:32 am
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: Mon, 3 Sep 2001 08:31:59 -0700
Local: Mon, Sep 3 2001 11:31 am
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
.. and just one more point from your last posting.

 Why do you keep telling people how much you dislike me?   Do you think that there is
anyone reading this newsgroup who really cares about that?  Don't you realize that it
reduces your credibility to near zero when you then make some statement about me
because people now see that the motivation for your post may not be to provide
information to the readers of this group but instead is just a lie to get back at me
for whatever it is that I did to you (which is still a mystery to me).


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bulent Murtezaoglu  
View profile  
 More options Sep 3 2001, 11:43 am
Newsgroups: comp.lang.lisp
From: Bulent Murtezaoglu <b...@acm.org>
Date: Mon, 03 Sep 2001 15:42:43 GMT
Local: Mon, Sep 3 2001 11:42 am
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
>>>>> "CR" == Christophe Rhodes <cs...@cam.ac.uk> writes:

[...]
    CR> Sometimes, I suspect that dealing with the lower-level OS
    CR> calls becomes necessary, no matter how good the
    CR> abstractions.

I agree with this.  The the frequency with which this happens depends on
whether the abstraction was appropriate for the problem you are trying
to solve.  Maybe one way to measure it is to think if the OS interface
abstractions will get in the way, _other_ stuff will also, causing  one
to write very specialized code (eg: real time stuff).

    CR> However, by their nature, it would seem silly to
    CR> standardize on an interface given that to at least some extent
    CR> there's a moving target.

I don't know why I didn't think to say this last night, but there is
POSIX at least which even NT+ Windows purport to support AFAIR.

    CR> However, what would make me feel good is to see (public)
    CR> debate on what a current interface would be like, just so that
    CR> I (and others) can see what has been considered and rejected,
    CR> and so that where there are good ideas others can use them.

I would like that also.  Two things have come up relatively recently
in this NG that I remember:  timer/timeout stuff, and event-driven
IO as opposed to multiple blocking threads.  Maybe we could come up
with some small set of programs that expose those bits of OS-assisted
functionality to be rewritten in multiple implementations as a starting
point.  

Also note that my feeble attempt to change the course of this thread
to something technical has failed, so maybe we should top post a new
thread and hope for interest there.

[...]
    CR> There are several approaches that can be taken here. One is as
    CR> a wrapper to exec() and friends, so that its signature would
    CR> look something like:

    CR> run-unix-program (path arguments &optional environment)

    CR> Another approach could be to use system() (or /bin/sh -c);
    CR> then run-unix-program would be like:

    CR> run-unix-program (string)

    CR> So far, so non-controversial.

Even then, I worry about details.  At the lower level this is
traditionally done by fork+exec.  Unless a variant of fork (vfork afair)
is used, you might actually be forking a huge process which
w/o overcommit might exhaust your vm.  This is not necessarily a made-up
example, think of a long running AI-ish program that grows to 1gig and
then 'system's out a sendmail to let you know about progress...

    CR> However, there's a certain
    CR> amount of pain and suffering involved if you are porting
    CR> between implementations; in particular, if you've used the
    CR> first form and are trying to implement it in an implementation
    CR> with only the second.

Yes, maybe in this case the thing to think about is whether or not
the Unix people were drunk when they came up with the 4(?) variants
of exec.  Maybe that was the best compromise?  I often find that bits
of odd looking functionality in syscalls/libc is actually necessary.
They may not be pure and elegant, but given what you are dealing with
(unix), they are not gratuitious monstrosities.  Now, CL folks usually
have a pragmatic approach to elegance and minimalism as evidenced by
other useless threads here I won't name.  Maybe that approach should
carry over?

[good stuff deleted]

    CR> The point I'm trying to make is that a certain amount of
    CR> public discussion on these non-standard features (not just OS
    CR> interaction) might be beneficial, both for implementors and
    CR> users, even if it's only to the level of making some
    CR> suggestions for differences to expect between :unix and
    CR> :windows on the *features* list.

I agree 100%.  

cheers,

BM


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "What I want from my Common Lisp vendor and the Common Lisp community" by Jonathan Coupe
Jonathan Coupe  
View profile  
 More options Sep 3 2001, 11:57 am
Newsgroups: comp.lang.lisp
From: "Jonathan Coupe" <jonat...@meanwhile.freeserve.co.uk>
Date: Mon, 3 Sep 2001 17:08:58 +0100
Local: Mon, Sep 3 2001 12:08 pm
Subject: Re: What I want from my Common Lisp vendor and the Common Lisp community

"Friedrich Dominicus" <fr...@q-software-solutions.com> wrote in message

news:874rqnjupd.fsf@frown.here...

> g...@flownet.com (Erann Gat) writes:

> > So maybe there isn't only one Lisp vendor, maybe there are 1.84, maybe
> > even 2.
> What interesting implications. How many vendors are there for Perl?
> Python? Ruby? Smalltalk? OCaml? Haskell?

The only one of these people pay for, and probably the only one acceptable
for developing more than cgi-like applications or doing glue-work in a
reasonable number of organizations, is Smalltalk. At my last count there
were six commercial vendors, plus Squeak - a product available for free but
built by a large team of full time professionals, and relatively easy to
port and maintain. Ocaml is about equivalent to Squeak (and there are
non-Ocaml commercial ML's). Perl, Python and Ruby have adequate,
well-supported, portable, constantly maintained implementations that make up
for the lack of a commercial system. (Plus for several of them you can call
on ActiveState etc for support, if your tastes run that way.) Even Haskell
has university funded teams updating and fixing compilers. As good is it is
as a language, Lisp is way behind on these issues, which do figure in a lot
of organisations decision making.

-Jonathan Coupe


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Wade Humeniuk  
View profile  
 More options Sep 3 2001, 12:03 pm
Newsgroups: comp.lang.lisp
From: "Wade Humeniuk" <humen...@cadvision.com>
Date: Mon, 3 Sep 2001 10:02:39 -0600
Local: Mon, Sep 3 2001 12:02 pm
Subject: Re: What I want from my Common Lisp vendor and the Common Lisp community

"rohan nicholls" <rohan.nicho...@canoemail.com> wrote in message

news:7148ec2a.0109030606.1c72c5c7@posting.google.com...
> I just want to add my support to this posting as a new Lisp possible
> user.  I have come lately to both Lisp and Python and although coming
> to Lisp has been like a coming home.  This is a really amazing
> language, so much power, elegance, and readable code.  It is amazing
> to me that I could go into the source files of clisp and not only
> understand the code, but feel confident enough to make changes that
> worked.!!!

...

> As an outsider looking in I see an amazing tool and language that is
> not supported by much of its users which to me makes no sense.  If you
> don't like it why do you use it?  And I hope the sparks that are there
> do start to grow and become a fire.  Personally when I know enough
> about the language enough I am going to be doing all I can to improve
> the libraries out there where I can, I have never been so caught by a
> language and I would consider it a major tragedy that it disappeared
> due to lack of support.

Maybe they are bunch of old foggies who forgot how to laugh!

What you say is definitely true and I am glad you are one the people who has
made a sincere effort to learn Lisp.  The main fret in this thread is about
getting other people to support Lisp's use in (money-making) circumstances.
I did some work awhile ago for one of those dot-coms.  Just five people, two
programmers (one guy doing dynamic web-page generation in PHP, the other
using Java to build tools to populate the database), the owner, a
documentator and me (part-time  project manager/filler-in).  There was a
part do be done that had automatic newsletter generation from a database and
eventually into PDF/Postscript files.  The guy doing that part spent 6 weeks
using PHP and in that time had nothing to show for it.  The endeavour was
next to failing, so I thought, hey, I will try to do that part in Lisp
(originally ACL/FreeBSD then CMUCL/FreeBSD).  One week later (40 hours in
total) I had the first version running, complete with a web interface to see
the generated newsletters.  I showed the work to the others in the group and
the other programmer looked at it and said, "Thats good, if you had to do it
over in Java it wouldn't take much time at all".  Now why would he say that?
He's been a programmer for a long time.  He has seen Lisp (he loves Emacs!).
The primary reason I believe is that he was trying to get more money out of
the owner by using things that

1) Are preceived as awesome technology, like Java, so they will pay more for
a precieved race-horse.
2) Which stretch out the job, so you have more chargable hours

Guess what?  The company did not deliver then folded.  Wasted time, wasted
effort, I just pity the owner who shelled out for it from his own pocket.

Lisp is really awesome.  But there is story I have to relate..

I worked as a construction coodinator earlier in my life.  We subcontracted
out the welding of a new pipeline system for delivering natural gas.  This
company hired this old experienced welder who on his first morning welded 13
pipe joints.  That afternoon the other welders approached him and pointed
out the average (and acceptable) number of welds to do in the morning was 2.
The next day he was gone.

The beef is not really with Lisp, its with people.

Wade


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Promoting CL Was: What I want from my Common Lisp vendor andthe Common Lisp community" by Srini
Srini  
View profile  
 More options Sep 3 2001, 12:19 pm
Newsgroups: comp.lang.lisp
From: Srini <psr...@lucent.com>
Date: Mon, 03 Sep 2001 11:18:25 -0500
Local: Mon, Sep 3 2001 12:18 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor andthe Common Lisp community

Tim Moore wrote:
> On 2 Sep 2001, Erann Gat wrote:

> Maybe we're too busy writing Lisp programs to take silly polls?

> I use Common Lisp to do my income taxes.  This year I had work under way
> to automatically fill out the IRS pdf forms, but then I saw how much I
> owed and lost interest.

> Tim

Tim:

This looks like an interesting thing to do. Would you mind sharing
how you did it? Even better, can we get handle on the code
(or parts fo it) if it is not part of any proprietary product
you are developing.

Thanks
srini


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by Marc Spitzer
Marc Spitzer  
View profile  
 More options Sep 3 2001, 1:50 pm
Newsgroups: comp.lang.lisp
From: m...@oscar.eng.cv.net (Marc Spitzer)
Date: Mon, 03 Sep 2001 17:22:28 GMT
Local: Mon, Sep 3 2001 1:22 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

I think Erik was looking for mindful agreement and enthusiasm.  Every
vendor I have worked with will always try to put there products in the
best possable light and this is the 'sane' thing to do.  If you do not
do this then it is not sane or insane.  I am doing this from what I
rember of what he wrote and the above quote in this thread and any
mistakes are mine.

I just took a look at opensource.franz.com/postoffice project and when
looking at the source(imap.cl and smtp.cl) and saw the 'if*' macro in
the code for both files, with no pointer to an auxilary file where it
is defined.  Now I go to the hyperspec and look for 'if*' and its not
there and I am using cmu for example and it blows up. Here is the only
pointer to how to try to figure out where is this odd 'if*' thing:
 imap.cl:;;
 imap.cl:;;- This code in this file obeys the Lisp Coding Standard
 found in
 imap.cl:;;- http://www.franz.com/~jkf/coding_standards.html
 imap.cl:;;-
so I finaly go and read the coding standard in hopes of finding a url
or pointer to fix my problems.  Mow the first sentence of the first
rule, on a document on franz's website starts like this:

 Use if* instead of the bogus-three-conditionals: if, when and unless

This is an odd way for franz to show that they support common lisp and
would at the very least make me look for someone else to give my money
to or just pick another language for the project.  That you put it up
is one thing, that your management lets it stay up in its current form
is realy amazing to me.  This document bites the standard that feeds
franz and you.  Now 2 lines down you insult my inteligence with the
following:

 Glancing at the form (if aaaaaaaa bbbbbbbb cccccccc) you tend to see
 that three values are being evaluated in order:  aaaaaaaa then
 bbbbbbbb and then cccccccc

What I think a incomptent or better lisp programmer would have figured
out that (if a b c) is a special form and that only b or c is
evaluated based on the truth value of a, this is exactly how it worked
in basic in highschool and pascal, cs101, in college.  Currently I am
an incomptent lisp programmer, I am trying to fix that though. I will
skip commenting on rule 2 because I do not know enough to have an
oppinion yet.  On to rule 3  here is one sentence from it:

 At the same time, don't obscure the important comments by surrounding
 them with trivial comments.

and here are some comments from imap.cl:

imap.cl:136:  ((mailbox-name   ; currently selected mailbox
imap.cl:141:    ;; string that separates mailbox names in the
hierarchy
imap.cl:145:   ;;; these slots hold information about the currently
selected mailbox:
imap.cl:147:    (message-count  ; how many in the mailbox
imap.cl:151:   (recent-messages ; how many messages since we last
checked
imap.cl:155:   (uidvalidity  ; used to denote messages uniquely
imap.cl:160:    :accessor mailbox-uidnext ;; predicted next uid
imap.cl:163:   (flags   ; list of flags that can be stored in a
message
imap.cl:167:   (permanent-flags  ; list of flags that be stored
permanently
imap.cl:171:   (first-unseen   ; number of the first unseen message
imap.cl:210:  name     ;; often the person's full name
imap.cl:212:  mailbox  ;; the login name
imap.cl:213:  host         ;; the name of the machine

Some of these seem trival in the extreme, line 213 for example.  If
your standard is so good why is it not followed by source files that
have it listed in there comments for reference.  One last thing when
you have code that is diffacult to read you should fix the code not
explain it.  I have many english teachers tell me not to explain your
paper but to write it clearly in the first place.  Using excessive
comments is telling me about your code.

I would like to thank franz for writting smtp.cl and imap.cl I have a
project that I would use it on after I get all the if* stuff out of
it.

And I think that everyone has the right to use whatever macros they
want.  But with that said from looking at it I think cond is much
better to look at then your stuff.  I always thought a case,
switch. cond statement was MUCH clearer then a long series of nested
if statements to read.

One last thing in the source code please put a reference to where to
get the macro source, just for clarity sake.  

marc


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Pierre R. Mai  
View profile  
 More options Sep 3 2001, 2:31 pm
Newsgroups: comp.lang.lisp
From: "Pierre R. Mai" <p...@acm.org>
Date: 03 Sep 2001 19:28:04 +0200
Local: Mon, Sep 3 2001 1:28 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

John Foderaro <j...@unspamx.franz.com> writes:
> Are you purposely trying to confuse people here?  

> I'm not the one who made the big deal of that document on if*, you are.
> You took it as an attack on the Common Lisp standard.  In fact it
> is just the opposite.  It shows that Common Lisp gives you the
> flexibility to define forms that make your code easier for you to
> read.  Java doesn't allow that.  C and C++ give you a very weak
> macro extension language.

There is a difference between showing people that they can define
their own little convenience macros, and publically calling upon
people to use a particular macro as a replacement to standardized core
language constructs, claiming along the way that those constructs are
bogus, with little to no objective evidence.

There is a reason that nearly every language in existence standardizes
a certain amount of basic control-flow operators, even if it could get
away with far less due to the existence of syntax-extension
mechanisms.

There are reasons for including such constructs as IF, WHEN, UNLESS,
CASE, TYPECASE, etc. in the core language standard, even if all of
them can just as easily be defined by each user with macros based on
COND.  And that reason is _WIDE READABILITY_!  IF, WHEN and UNLESS
aren't readable based on their own merits, or not.  They are readable
by the whole community because they are part of the shared
understanding, because they are part of the standardized language.  If
a reader sees an IF, WHEN or UNLESS, they don't have to worry about
the exact semantics those constructs might currently have, because
the exact semantics have been prescribed, once and for all, in the
ANSI CL standard, and are not subject to changes.

If we follow down the John Foderaro route of everyone inventing their
own basic control-flow operators, we will soon have 10s of IF*, BIF,
IFF, etc. operators, each one with their own little syntactic sugar,
and their own little semantic idiosynchrasies, understandable only
upon studying yet another specification (if there is one, besides the
implementation code).

And since basic control-flow operators are central parts of any
language, what this will basically mean is that we will have 100
twisty little Common Lisp dialects, all different.  We've been
there before, when we had 10 industrial-strength Lisp dialects, all
differing in little details even on the constructs they shared.  This
is something that Common Lisp was created to avoid happening again.

Even with C's pre-processor macros it is possible to do

#define BEGIN {
#define END }

or even

#define IF(x,y,z) ((x)?(y):(z))

But no serious C user will ever contemplate doing such a fundamentally
stupid thing, let alone any expert C user.  Try posting such
suggestions on comp.lang.c, and you will get a serious lecture as to
why this would be fundamentally stupid, and don't you want to go over
there to comp.lang.pascal, or wherever you came from?

Yet somehow over here in Common Lisp land, we are supposed to hail
people who publically advance such dubious proposals, outside any
relevant standardization effort, as saviours of Common Lisp, and
demonstrators of its power?

And for what gain are we deliberately risking the splintering of
Common Lisp into mutually incompatible sub-dialects?  If this was some
fundamental advancement, like e.g. a fully reflective Lisp system, I
could maybe see the sense of this.  But for an improvement that (if it
was there to begin with), can only be described as a small,
incremental improvement, I just cannot see how it would be wise to
incompatibly change the status quo (and incompatible change is needed,
since the supposed readability of IF* can only be realized if it
supplants IF/WHEN/UNLESS in time).  And the improvement (again I
really doubt there is a general improvement) can only be described as
light, since it seems that many, many programmers have been able to
read code using IF/WHEN/UNLESS without undue problems, it seems,
otherwise we'd probably have regular criticism of IF/WHEN/UNLESS on
c.l.l all the time.

I'm afraid it seems to me that certain members of the CL community
seem to have not a clear enough understanding of the fundamental
values of a standard, and a community-wide consensous, prefering
instead to go off on a wild chase of their own personal ideal Lisp.

This seems quite unlike most other language communities I've
encountered.

Regs, Pierre.

--
Pierre R. Mai <p...@acm.org>                    http://www.pmsf.de/pmai/
 The most likely way for the world to be destroyed, most experts agree,
 is by accident. That's where we come in; we're computer professionals.
 We cause accidents.                           -- Nathaniel Borenstein


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "McCLIM and other GUI's was: Re: What I want from my Common Lisp vendor and the Common Lisp community" by Peter Van Eynde
Peter Van Eynde  
View profile  
 More options Sep 3 2001, 2:45 pm
Newsgroups: comp.lang.lisp
From: Peter Van Eynde <pvane...@debian.org>
Date: 03 Sep 2001 20:45:22 +0200
Local: Mon, Sep 3 2001 2:45 pm
Subject: McCLIM and other GUI's was: Re: What I want from my Common Lisp vendor and the Common Lisp community
Hi,

Can I just mention I do love Common Lisp and that I'm trying to get
more students and other people to at least _try_ it.

Paolo Amoroso <amor...@mclink.it> writes:
> Another project by some of Robert's students is the Eclipse/CLWM window
> manager:

>   http://www.emi.u-bordeaux.fr/~boninfan/TER
>   http://www.emi.u-bordeaux.fr/~hatchond/Eclipse

Can I just mention that the Eclipse guy found a bug in CLX that
probably has been in there since the dawn of time. Nobody ever tried
to write a window manager with CLX it seems :-(.

Anyway, the fix is in the new-CLX CVS tree on sourceforge in the
cclocc project. I've been trying to rejuvenate CLX by porting it to
the cclan/port interface, so far it works on cmucl and should on
ACL, LW and clisp. It features XAUTHORITY support and using PF_UNIX
sockets.

Patches are welcome.

> I profit by the occasion for thanking all of you.

McCLIM is maybe the most exiting thing happening in the Common Lisp
work for the last few years...

(with-mode (:dark)
  Can I just mention that it is strange how much people complain that
  nothing is happening and yet I always see only the same brave souls
  on cliki, cclan, cclocc, McCLIM, etc. Why this indifference? Why
  this complaining without taking the situation in hand? I think the
  agol languages has succeeded. At least in pulling away most of the
  people with some energy left...)

Groetjes, Peter

--
It's logic Jim, but not as we know it. | pvane...@debian.org
"God, root, what is difference?" - Pitr|
"God is more forgiving." - Dave Aronson| http://cvs2.cons.org/~pvaneynd/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "What I want from my Common Lisp vendor and the Common Lisp community" by Lieven Marchand
Lieven Marchand  
View profile  
 More options Sep 3 2001, 3:20 pm
Newsgroups: comp.lang.lisp
From: Lieven Marchand <m...@wyrd.be>
Date: 03 Sep 2001 18:23:50 +0200
Local: Mon, Sep 3 2001 12:23 pm
Subject: Re: What I want from my Common Lisp vendor and the Common Lisp community

Espen Vestre <espen@*do-not-spam-me*.vestre.net> writes:
> BUT I still think the "simple interaction with the OS" argument is valid.
> It's still less painful to use perl for a lot of these tasks, and that's
> a real shame.

Because "interaction with the OS" isn't the "simple" problem some
people here think it is. I'll use Unix for my example since I don't
know enough about Windows but I assume the problems are similar or
worse.

Writing a low level wrapper around most of the POSIX interface isn't
difficult when you know the FFI of your implementation a bit. It's a
big job and it's tedious. But all that buys you is the ability to
write C with parentheses. Consider the simple problem of listening to
a port on a service. Given your POSIX wrapper you can write this in a
sequence of calls to getservbyname/socket/accept/bind/listen and I'm
probably forgetting some. All with weird encodings of error situations
etc. What you really want is something like LispWorks
COMM:START-UP-SERVER. Designing these chunks of functionality with
usable interfaces and decent error handling is a lot of work.

--
Lieven Marchand <m...@wyrd.be>
She says, "Honey, you're a Bastard of great proportion."
He says, "Darling, I plead guilty to that sin."
Cowboy Junkies -- A few simple words


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by John Foderaro
John Foderaro  
View profile  
 More options Sep 3 2001, 4:16 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: Mon, 3 Sep 2001 13:16:11 -0700
Local: Mon, Sep 3 2001 4:16 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
we've been through this before in the other thread (about loop) but I'll just fill you
on what you missed.

In article <slrn9p7f72.2tns.m...@oscar.eng.cv.net>, m...@oscar.eng.cv.net says...

> This is an odd way for franz to show that they support common lisp and
> would at the very least make me look for someone else to give my money
> to or just pick another language for the project.

You've read the web page describing the coding standards but apparently missed this
sentence at the beginning:

        The opinions in this document are those of its author (john foderaro)
        and may or may not reflect those of anyone else at Franz Inc.

These are my opinions.  All mine.  They would be my opinions if I worked for any
company or university.  I would not work for a company that didn't allow me to have my
own opinions on things and neither should you.

My opinions are based on 23 years of programming experience in Lisp.   That doesn't
mean that you have to agree with them but at least it should cause you to pause and
think for a bit.  I don't think that you gave what I wrote much thought at all.

I've contributed a lot of Lisp code to the community even before the term opensource
existed.  What have you contributed?  Suppose I was looking for a module to do X and
found that you had an opensource version.  You sent it to me and I found that it was
using a private interation or condition macro of your own design.  I sent you a letter
asking for a copy of that macro and you emailed it to me.   What should I then do?  
Post something in comp.lang.lisp saying how you're denegrating the Common Lisp
standard by inventing your own control macro?  That's not what I'd do.  I'd send you a
letter thanking you very much for the code.  Then I'd congratulate you for being a
Lisp programmer and realizing that Lisp is a language designed to be extended.

If you look at one of the programs I've contributed (AllegroServe) you'll find a
number of ACL only macros.   A quick grep reveals: excl::atomically, excl::fast,
excl::with-dynamic-extent-usb8-array.   Why don't you now get on my case for including
uses of these macros and not giving you the source code for the macros?  Could you
stand to use AllegroServe because it included these macros or would you have to remove
them before using it?    The alternative I'd suggest is rather than get
confrontational you should send a friendly letter to the author of the program and say
"I'm trying to run your program X on Lisp Y and it doesn't include macro Z could you
tell me what that macros does or better yet give me the source?"   That's a much
better solution than telling someone who is doing you a favor by releasing his code
for free to change his code to suit your personal coding standards.

How dare you insinuate that I'm not enthusiastic about Common Lisp?  The programmers
working in companies producing commercial Common Lisp systems are the most
enthusiastic people about Common Lisp you will ever find.  These people know that they
are the last thing standing in the way of the Lisp language returning to its position
of an academic oddity.   It takes a tremendous amount of work to maintain Lisp while
the computing world changes rapidly.   Here it is a holiday in this country and while
this is a day off at Franz and it's a beautiful sunny day ouside there has been a
steady stream of email all day between developers about lisp-related issues.

-john foderaro
 franz inc.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Foderaro  
View profile  
 More options Sep 3 2001, 4:49 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: Mon, 3 Sep 2001 13:48:32 -0700
Local: Mon, Sep 3 2001 4:48 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
 It pained me to read your message.  You're progamming in Lisp but you are still
thinking like a C programmer.    A C programmer can't extend the syntax of the C
language.   Neither can a Java programmer.   [A C++ programmer can extend operators
but this often makes the code just more unreadable and undebuggable].

  How do you think that we got to where were are now with the current set of control
form macros?  Were they spontaneously created by the standards committee?   No.
For the most part all those forms existed in pre Common Lisp lisps.  They were
invented by people in those lisps to solve a need.

 Not all needs are met by the standard common lisp macros.  For example there's a
dolist but there's no dovector to map over items in a vector.  

> If we follow down the John Foderaro route of everyone inventing their
> own basic control-flow operators, we will soon have 10s of IF*, BIF,
> IFF, etc. operators, each one with their own little syntactic sugar,

I'm never swayed by this scare tactic argument.  If you can prove this statement I'd
like to see it.   As I said in an earlier message I've programmed in Lisp for 23 years
but have only found it necessary to create one control macro (If in Franz Lisp, if* in
Common Lisp).   I suspect that most people will create no control macros but some
people will create some great control macros that will make us think "how could we
have lived without this for so long?".  At that point the Common Lisp community will
make an evolutionary step forward (and this would not in any way affect the standard
since the ability to define macros is part of the standard).

We can't live in fear of what may happen and let that control us to the extend that it
inhibits growth.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tim Moore  
View profile  
 More options Sep 3 2001, 5:18 pm
Newsgroups: comp.lang.lisp
From: Tim Moore <mo...@herschel.bricoworks.com>
Date: 3 Sep 2001 21:09:46 GMT
Local: Mon, Sep 3 2001 5:09 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
On 3 Sep 2001, Jordan Katz wrote:

> Tim Moore <mo...@herschel.bricoworks.com> writes:

> > I use Common Lisp to do my income taxes.  This year I had work under way
> > to automatically fill out the IRS pdf forms, but then I saw how much I
> > owed and lost interest.

> Hey,

>   I was wondering: how would you go about filling a PDF from Lisp?
>   Would you use a library like the one used by gv or xpdf or is there
>   a simpler way?

The approach I was taking was to generate FDF for a given PDF form.  FDF
is a very simplified version of PDF that enumerates form field names and
values.  You can (on Unix, at least) use the Adobe Acrobat reader to print
a PDF with form field values supplied by an FDF document.

From a Lisp point of view, generating the FDF is pretty trival; it's plain
text with a regular syntax.  FORMAT is your friend.

Figuring out the field names and meanings is very tricky; I mostly did
that by writing a Perl script to extract the field names, then by hand
generating a simple FDF for each field, then seeing how the resulting PDF
printed.  This was a huge pain; a PDF parsing library might have made this
easier, but you still have to figure out what each field "means"...

Tim


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Marc Spitzer  
View profile  
 More options Sep 3 2001, 5:45 pm
Newsgroups: comp.lang.lisp
From: m...@oscar.eng.cv.net (Marc Spitzer)
Date: Mon, 03 Sep 2001 21:45:01 GMT
Local: Mon, Sep 3 2001 5:45 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

In article <MPG.15fd84e57d0615f5989...@news.dnai.com>, John Foderaro wrote:
> we've been through this before in the other thread (about loop) but I'll just fill you
> on what you missed.

> In article <slrn9p7f72.2tns.m...@oscar.eng.cv.net>, m...@oscar.eng.cv.net says...
>> This is an odd way for franz to show that they support common lisp and
>> would at the very least make me look for someone else to give my money
>> to or just pick another language for the project.

> You've read the web page describing the coding standards but apparently missed this
> sentence at the beginning:

>         The opinions in this document are those of its author (john foderaro)
>         and may or may not reflect those of anyone else at Franz Inc.

I do not care about a PC disclaimer, my point was and is franz is
giving your claim's weight because it is on there web site.  This is
where I would expect to see stuff about how CL is wonderful and ACL is
even beter then that.  Instead I see your poorly thought out and
fundmentaly flawed rant about CL.  If you must do less then optimal
things you should not do them at work and franz's web space is part of
your work enviorment.

> These are my opinions.  All mine.  They would be my opinions if I worked for any
> company or university.  I would not work for a company that didn't allow me to have my
> own opinions on things and neither should you.

Part of being a good employee is to not harm your employer.  What you
have done is harm your employer with this stupid and insulting coding
standard and wierd if* macro( yes it is wierd and looks ugly) is to
make me think if this is who they show the world who do they keep
hidden?

> My opinions are based on 23 years of programming experience in Lisp.   That doesn't
> mean that you have to agree with them but at least it should cause you to pause and
> think for a bit.  I don't think that you gave what I wrote much thought at all.

If you want to start a civil discussion then start it in a civil
manner, your coding standard is rude, condisending and insultiong. Why
do think that being a asshole in writting for all the world to see and
biting the hand that feeds you should make me think you are worth
listening to?  I tend to judge people by the quality of there writting
on usenet, its all I have, and by that yard stick you are IMO not
worth the effort to take seriously.  You do not have the saving grace
of being correct in your thoughts.  I went to your home page and there
were no links just "jkd styff" and nothing else, www.franz.com/~jkf .

> I've contributed a lot of Lisp code to the community even before the term opensource
> existed.  What have you contributed?  Suppose I was looking for a module to do X and

at the present time nothing.  But with that said it does not change the
fact that it was a stupid page that does a disservice to the CL
community and to your employer.

> found that you had an opensource version.  You sent it to me and I found that it was
> using a private interation or condition macro of your own design.  I sent you a letter

if I put up a package I would hope to do a complete job of it, ie to
get this to work you need this file also in the comments at the top of
the file or a tar file with everything in it that you need including
any custom stuff that is neded to support the other stuff.

> asking for a copy of that macro and you emailed it to me.   What should I then do?  
> Post something in comp.lang.lisp saying how you're denegrating the Common Lisp
> standard by inventing your own control macro?  That's not what I'd do.  I'd send you a
> letter thanking you very much for the code.  Then I'd congratulate you for being a
> Lisp programmer and realizing that Lisp is a language designed to be extended.

extended not mutated/fragmented, your if* in code put up as something
that franz is giving to the CL community says among other things that
your convienence is more important then franz's adhearence to the CL
standard and this is bad in s company that's product is suposed to
fathfuly reproduce the standard and not gratuitisly ignore parts of it
whenever they feel/you feel like it.

> If you look at one of the programs I've contributed (AllegroServe) you'll find a

I looked at it and if I remember correctly it is copy right franz
inc.  If this is true then did you donate it to franz or was it part
of your job?

> number of ACL only macros.   A quick grep reveals: excl::atomically, excl::fast,
> excl::with-dynamic-extent-usb8-array.   Why don't you now get on my case for including
> uses of these macros and not giving you the source code for the macros?  Could you

well IFF you insist I can, but I realy have better things to do.  Also
are you planning on responding to KMP's reply to why the if* macro is
a bad idea, he had a much better argument including been ther don that
it stank and CL was suposed to fix it.  Since his message was posted
before mine I would expect you to have a repled by now or are you
being selective in who you respond to?  After all I am unknown and
Erik has a bunch of people who do not like him that you can tap into
for support.

> stand to use AllegroServe because it included these macros or would you have to remove
> them before using it?    The alternative I'd suggest is rather than get
> confrontational you should send a friendly letter to the author of the program and say
> "I'm trying to run your program X on Lisp Y and it doesn't include macro Z could you
> tell me what that macros does or better yet give me the source?"   That's a much
> better solution than telling someone who is doing you a favor by releasing his code
> for free to change his code to suit your personal coding standards.

again is it a favor or part of your paid work for franz?  If it is the
latter then you should only deviate from the standard when you must,
networking come to mind, not where you want, if* cones to mind.

> How dare you insinuate that I'm not enthusiastic about Common Lisp?  The programmers
> working in companies producing commercial Common Lisp systems are the most
> enthusiastic people about Common Lisp you will ever find.  These people know that they

well you do hide the fact that your the saviors of the modern world
quite well, does anybody recognize you with your glasses on?

> are the last thing standing in the way of the Lisp language returning to its position
> of an academic oddity.   It takes a tremendous amount of work to maintain Lisp while
> the computing world changes rapidly.   Here it is a holiday in this country and while

I am sure it does, so why add more gratuitus ans unneeded changes on
top of it?

> this is a day off at Franz and it's a beautiful sunny day ouside there has been a
> steady stream of email all day between developers about lisp-related issues.

And I am in the offfice also and have been working on a project all
weekend that I was told about on thursday that goes live on tuesday
and your point is?

> -john foderaro
>  franz inc.

Since there is no disclamer on this message I have a question for
someone that you work for, is this an offical posting from franz?

marc


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Sep 3 2001, 6:34 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Mon, 03 Sep 2001 22:34:28 GMT
Local: Mon, Sep 3 2001 6:34 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
* John Foderaro <j...@unspamx.franz.com>

> Are you purposely trying to confuse people here?  

  So quoting me is too much for your need for references?  *snicker*

> I'm not the one who made the big deal of that document on if*, you are.

  Oh, right.  Sorry.  John Foderaro should be allowed to criticize
  anything, but criticize John Foderaro, and you are his enemy.  Remember
  that line about "enemy list"?  Could you cough up a reference to that
  list, please?  I regret that I have temporarily taken my machine off the
  web for security reasons, but I can assure you that no such list exists,
  either published or unpublished, but still John Foderaro accuses me of
  having one and being on it.  So, I should say that you are the one that
  made such a big deal of being my enemy.  Does this help anyone understand
  how you have reacted from day one?  It explained a lot to me, at least.

> You took it as an attack on the Common Lisp standard.

  It is not?  Geez.

> In fact it is just the opposite.

  Oh, I see.   I have not been attacking you, either, John Foderaro, in
  fact, just the opposite.  You see that now, too, I hope.

> It shows that Common Lisp gives you the flexibility to define forms that
> make your code easier for you to read.

  Why did you have to knock the standard conditionals just to say that?  I
  have asked you repeatedly, yet you never answer, so I guess you cannot
  answer (in the spirit of your own style of argument, I am allowed to
  assume something from a lack of answer, right?), whether you could have
  expressed your new, f*king brilliant IF* shit in positive terms that did
  not reflect your stupid personal hangup with aestetics in the standard.

> Java doesn't allow that.  C and C++ give you a very weak macro extension
> language.

  Who cares?  Are you using Java a lot?  Last I heard, you rant even more
  irrationally about Java than about the "braindamage" in Common Lisp.

  I happen to like Java, too.  That is probably because I have figured out
  that it sometimes makes sense to appreciate things on their own terms, as
  opposed to some completely different terms that makes everything look bad.

  I have certainly not stopped liking C.  On its own terms, it is a good
  language.  There are a lot of things in C that I would like to see in a
  Common Lisp system.  Access to machine words and the machine operations
  on them is the only way to achieve high efficiency in some algorithms.
  Writing sufficiently complex code that it needs macros in C is a mistake
  -- if you need that, write in Common Lisp and generate the code you want;
  C is not that hard to generate human-readable code from.

///


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Sep 3 2001, 6:49 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Mon, 03 Sep 2001 22:49:06 GMT
Local: Mon, Sep 3 2001 6:49 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
* John Foderaro <j...@unspamx.franz.com>

> In other words you want vendors to mindlessly echo back your enthusiasm.

  Wrong.  _Everybody_ else understood something else by what I said.

> You don't want to hear what the vendor may have learned through years of
> experience about what could potentially be a problem for you using the
> language in your project.  You don't  want the truth.  You can't handle
> the truth.

  If you believe this idiotic crap was uttered by anyone but yourself, you
  are quite simply insane, John Foderaro, and nothing can be done about you.

///


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Wade Humeniuk  
View profile  
 More options Sep 3 2001, 7:28 pm
Newsgroups: comp.lang.lisp
From: "Wade Humeniuk" <humen...@cadvision.com>
Date: Mon, 3 Sep 2001 17:28:01 -0600
Local: Mon, Sep 3 2001 7:28 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

During this on-going discussion about if* I have had the oppurtunity to "try
it on for size".  The thenret control statement I found unatural and took
some getting used to.  But all in all I have found it a fine macro.  Of
course its "just" an if/then/else/elseif construct.

I totally agree with the living in fear bit.  I would not have learned CL if
I had lived in fear of learning yet another programming language.

Wade


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Sep 3 2001, 8:18 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Tue, 04 Sep 2001 00:18:17 GMT
Local: Mon, Sep 3 2001 8:18 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
* John Foderaro <j...@unspamx.franz.com>

> My opinions are based on 23 years of programming experience in Lisp.
> That doesn't mean that you have to agree with them but at least it should
> cause you to pause and think for a bit.  I don't think that you gave what
> I wrote much thought at all.

  How much thought do you expect anyone to give a paper that calls itself
  "lisp coding standards" and which contains two grave insults and a silly
  comment on comments that is completely useless?  And this is the result
  of 23 years of programming in Lisp?  Sheesh!

> I've contributed a lot of Lisp code to the community even before the term
> opensource existed.  What have you contributed?

  Is this intimidation tactic a way of saying that you are _entitled_ to
  destroy and denigrate Common Lisp, but those who criticize you for it are
  not entitled to criticize because of their lack of contributions?  Where
  do you _get_ all this arrogance?  What are you trying to defend?

> Post something in comp.lang.lisp saying how you're denegrating the Common
> Lisp standard by inventing your own control macro?

  Why are you constantly _not_ getting that it is your very unintelligent
  insults that cause the majority of the hostility and not your very silly
  macros?

> Why don't you now get on my case for including uses of these macros and
> not giving you the source code for the macros?

  Because it is your gratuitous insults that get people on your case, not
  your macros.  How _can_ you fail to understand this?  You act like a
  person who _knows_ he is guilty as sin and tries very, very hard to
  pretend he has done nothing wrong by trying to deflect all criticism.
  So many people have pointed out to you that this is about your attitude
  that it _must_ be a matter of will that you do not get it.  Otherwise, 23
  years of experience with that level of inability to understand things is
  not really worth a lot.

> That's a much better solution than telling someone who is doing you a
> favor by releasing his code for free to change his code to suit your
> personal coding standards.

  I remember three distinct occasions when I mailed real bug-fixes to your
  code and received _very_ hostile comments back that you could not use it
  because it used loop and if and when and unless.  I believe at least one
  of those incidents prompted your writing your digusting Lisp Coding
  Standards document.  Suffice to say that from then on, I viewed your
  ability to think straight to be permanently impaired.  The bugs were
  still unfixed for at least one release, by the way, and there are still
  bugs in that code: The symbol printer and reader in Allegro CL does not
  conform to the standard and violate print-read consistency expectations.
  After having tried to explain to you how you could have avoided those
  bugs, you simply failed to implement them because I use a much richer set
  of conditionals in Common Lisp than you do.  I do not string a whole
  bunch of if* together in an unreadable mass of spaghetti code, I choose
  the most readable form with care.  Therefore, I manage to find and fix
  such bugs only after converting the if* mess to something readable, while
  your code has been buggy for over a decade, but you do not wany my fixes.
  In other words, I have solid evidence that your personal coding standards
  are much more important to you than working, conforming Common Lisp.

> How dare you insinuate that I'm not enthusiastic about Common Lisp?

  Try reading your own language.  Try remembering how you react when people
  say that upper-case names symbols are required the standard.  Try
  actually _answering_ some of the many questions you have been asked, to
  which positive answers would really have helped, while double negatives
  really do not help at all.  Instead of attacking people with the above
  negative, try writing something _positive_ for a change.

> The programmers working in companies producing commercial Common Lisp
> systems are the most enthusiastic people about Common Lisp you will ever
> find.

  I would have expected some humility in such a statement, such as at least
  including a "probably" or "in my experience".  Making it sound like a
  universal truth means it can be shot down as false or dishonest with a
  single counter-example.   Such a universal statement is also an insult to
  the many people who clearly exceed you in terms of enthusiasm and a
  strong reason not to work with you.  This is probably what you want.

  The reason I have not applied for a job at Franz Inc. and probably never
  will is that your statement is manifestly untrue.  A few people at Franz
  Inc. have really gone out of their way to destroy the credibility of the
  standard, imply very strongly that you are in a market position where you
  can dictate the standard and lock people in.  Most of them fortunately
  quit and others have assured me that they really had no effect on policy,
  but they got _hired_.  I would have loved to work full time with most of
  your staff, but you, in particular, and a few others, have really managed
  to rub me the wrong way, and you, in particular, have done everything you
  can to make my insistence on conformance be unwelcome and result in no
  action when I point out conformance problems.  Your insane ranting here
  is not doing anything to help this, and your idiotic "religious zealot"
  stamp because I do not approve of your if* stunt and particularly do not
  approve of your constant need to denigrate the standard and the people
  behind it.  I have very high respect for some of the people you have
  spent _hours_ insulting to my face.  I have _none_ for you, anymore.  You
  have done more to destroy that respect in this thread than anything else
  you have done, however, including your pathetic passive-aggressvieness,
  your dishonesty, and your personal need to misrepresent me and _pretend_
  that you do not have a clue what I am talking about.

  I would have thought the most enthusiastic people about Common Lisp I
  would ever find would be a lot smarter about expressing it positively,
  and _definitely_ not so pathetically self-defensive about his own
  destructiveness as you are.

> My opinions are based on 23 years of programming experience in Lisp.

  I _really_ hope I have had more to contribute by the time that I have as
  much experience than some silly rewrite of cond and personal distaste for
  a powerful iteration macro.  Most of the other people who have had in
  excess of two decades of Lisp experience have been fantastically helpful
  to me and have imparted so much wisdom about the language that I feel
  that my 6-8 years of Common Lisp and Emacs Lisp have been much more,
  although I met my first Lisp in 1978 or 1980.  That is part of the reason
  I feel disappointed, and more than that, almost betrayed, when someone
  with so much more experience chooses to sully the language and present
  his experience as insulting comments about standard features.  (Again,
  never mind the infinitely silly if* macro -- it is of minimal material
  consequence compared to the insulting attitude -- it makes you look
  really ignorant and _far_ from really experienced.)

///


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Pierre R. Mai  
View profile  
 More options Sep 3 2001, 8:31 pm
Newsgroups: comp.lang.lisp
From: "Pierre R. Mai" <p...@pmsf.de>
Date: 04 Sep 2001 02:02:19 +0200
Local: Mon, Sep 3 2001 8:02 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

John Foderaro <j...@unspamx.franz.com> writes:
>  It pained me to read your message.  You're progamming in Lisp but
>  you are still thinking like a C programmer.    A C programmer can't
>  extend the syntax of the C language.   Neither can a Java
>  programmer.   [A C++ programmer can extend operators  but this
>  often makes the code just more unreadable and undebuggable].

So if I read your argument correctly, anyone who thinks it is a bad
idea to replace perfectly good standard constructs in CL with
different, unstandardized personal macros is still thinking like a C
programmer?  Oh my god!

Just because one can do certain things in a language doesn't mean it
is a good thing to do in all cases.  It somehow seems to me that this
is a concept totally alien to you.

>   How do you think that we got to where were are now with the current
>   set of control form macros?  Were they spontaneously created by
>   the standards committee?  No.  For the most part all those forms
>   existed in pre Common Lisp lisps.  They were invented by people in
>   those lisps to solve a need.

Of course they weren't spontaneously created by the standards
committee (neither the ANSI working group, nor the orginal ad-hoc
standardization group that led to ClTl1 and later morphed into
X3.J13), and it would indeed be to their discredit if they had done
this in large amounts.  That's not what standards are for, as you well
know.  Standards are for exterminating minor differences where broad
consensous can be reached on infrastructure, not for inventing the
best control-flow operator in the world.

And yes, lots of slightly differing control-flow operators where
invented, and re-invented in many dialects.  And that was fine, when
the new operator solved a real need that was otherwise unfulfilled,
and it was sad when people solved similar needs slightly differently
in different dialects, making knowledge (much more so than code) less
portable than it could have been.

And that's why Common Lisp was such a huge step in the right
direction, by canocalizing lots of those operators into one form.

>  Not all needs are met by the standard common lisp macros.  For
>  example there's a dolist but there's no dovector to map over items
>  in a vector.

And no-one would be giving you any kind of resistance if you had
implemented dovector.  I can't believe you don't see a difference
between creating a new control-flow operator for some functionality
that is not covered by the standard, and replacing standard operators
with your own personal definitions which are functionally identical,
only offering a slight syntactical variation, especially if you then
go on to call on people to replace uses of if/when/unless with if*
unconditionally.

Exactly because CL gives you the power to extend the language, and
create new languages embedded within/replacing the standard language,
it is even more important to use that power wisely.

Even C has enough power to replace certain syntactic constructs of the
language with your own "improved" versions, as I mentioned in my
posting.  And even this limited power can be thus abused, in the name
of personal persuasions of what constitutes readability.  But in that
community I have yet to encounter anyone with any kind of experience
seriously suggesting that such a thing is something desirable.

> > If we follow down the John Foderaro route of everyone inventing their
> > own basic control-flow operators, we will soon have 10s of IF*, BIF,
> > IFF, etc. operators, each one with their own little syntactic sugar,

> I'm never swayed by this scare tactic argument.  If you can prove
> this statement I'd like to see it.  As I said in an earlier message
> I've programmed in Lisp for 23 years but have only found it necessary
> to create one control macro (If in Franz Lisp, if* in Common Lisp).

What kind of proof do you need?  We already now have IF* and if.  The
reason we don't have 10 IF*'s lies in the fact that most CL users are
more prudent in the use of their powers than you seem to be.  If
everyone followed your example, we _would_ have more syntactic sugar
macros, because it is unreasonable to assume that you are the only
person who is dissatisfied with some construct in the language (or in
your words considers some part of the standard "bogus").

We have seen the consequences of this in stuff that hasn't become part
of the standard:  Just take a look at all the ITERATE macros that were
(mostly) created as a reaction to complex LOOP.  To the best of my
knowledge there are at least 4 slightly different ITERATE constructs
in current use out there, and I haven't looked at all widely for others.

I contend (and of course I cannot prove this in any rigorous sense of
the word, but who are you to call for proofs, when the best of
evidence you seem to feel necessary to underscore your dismissal of
IF/WHEN/UNLESS are completely subjective comments) that the fact that
we haven't seen similar things happen for constructs that are part of
the standard is that most CL users do in fact understand the values of
a commonly shared _basic vocabulary_, and have refrained from creating
their own variant macros.

> I suspect that most people will create no control macros but some
> people will create some great control macros that will make us think
> "how could we have lived without this for so long?".  At that point
> the Common Lisp community will make an evolutionary step forward (and
> this would not in any way affect the standard since the ability to
> define macros is part of the standard).

You still seem not to grasp the difference between inventing a new
control-flow operator like e.g. WITH-STATE-MACHINE, or PATTERN-CASE
(to name just two that I personally "invented" -- along with scores of
others, I'm sure -- for certain libraries[1]), that can stand besides the
standard-provided basic operators, and replacing one of the most
fundamental (by your own reasoning in coding-standards.html[2])
control-flow operators in the language standard with your own personal
version?

Can you imagine that there is a difference between inventing a new
word for a new concept for which no word already exists in a natural
language, and insisting on replacing 'if' by 'fi' in all your natural
language sentences?  And this isn't less of a problem in CL just
because you can automatically map the semantics of fi onto if via
macros, because macro-expansions are _not_ part of the readability of
code, unless as a last resort, if all else fails, on par with
reverse-engineering.

> We can't live in fear of what may happen and let that control us to
> the extend that it inhibits growth.

We can't let blind belief in the obvious superiority of our own ideas
blind us from the likely consequences of our deeds.

But somehow I'm slowly coming to the conclusion that you don't want to
understand the criticism aimed at your stance, but would rather prefer
to dismiss it out of hand, calling everyone who doesn't agree that the
introduction and promotion of IF* as a replacement for IF/WHEN/UNLESS
is a completely grand idea, as religious zealots, thinking like C
programmers, scare mongers, or whatever, and debating straw-man
arguments that bear little to no resemblence to the arguments that
people really are levelling against your stance.

Regs, Pierre.

Footnotes:
[1]  See also my response to a recent request for meta-programming and
     language creation examples in CL for another example.

[2]  http://www.franz.com/~jkf/coding_standards.html

--
Pierre R. Mai <p...@acm.org>                    http://www.pmsf.de/pmai/
 The most likely way for the world to be destroyed, most experts agree,
 is by accident. That's where we come in; we're computer professionals.
 We cause accidents.                           -- Nathaniel Borenstein


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Sep 3 2001, 8:33 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Tue, 04 Sep 2001 00:33:41 GMT
Local: Mon, Sep 3 2001 8:33 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
* John Foderaro <j...@unspamx.franz.com>

> Why do you keep telling people how much you dislike me?

  Because you have made your dislike for me the core your responses to me.
  Remember, _you_ invited people to take part in a popularity contest with
  the clear aim of defeating me through misrepresentation of what I said.
  Such behavior pisses me off tremendously.  I merely followed up on that
  because it would be a _disaster_ if you won.

> Do you think that there is anyone reading this newsgroup who really cares
> about that?

  Yes.  You, for one.  Those who want to vote with their wallet to remove a
  cancer from the Common Lisp community.

> Don't you realize that it reduces your credibility to near zero when you
> then make some statement about me because people now see that the
> motivation for your post may not be to provide information to the readers
> of this group but instead is just a lie to get back at me for whatever it
> is that I did to you (which is still a mystery to me).

  Er, _what_ was it that I should realize in that garbled sentence?

  If something still remains a mystery to you, talk to your colleagues.
  Several of them got the point quite early, while you keep _not_ getting
  it on purpose, or so it seems.

///


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Foderaro  
View profile  
 More options Sep 3 2001, 8:57 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: Mon, 3 Sep 2001 17:49:14 -0700
Local: Mon, Sep 3 2001 8:49 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
In article <3208551490117...@naggum.net>, e...@naggum.net says...

>   Because it is your gratuitous insults that get people on your case, not
>   your macros.  

Remember, due to your bias against me (how many ways have you told me you hate me in
the last week?) and your many misrepresentations of things I've said, we agreed that
you would not speak for me any more and would instead just quote me and give the
context for that quote.

Please now provide the quotes which show me insulting people.

>   I remember three distinct occasions when I mailed real bug-fixes to your
>   code and received _very_ hostile comments back that you could not use it
>   because it used loop and if and when and unless.  

Again we will have to assume that this is yet another lie unless you provide the
proof.  If you can give the time of the supposed response from me and the subject of
the message I can attempt to locate it in our support archive and post it for all here
to see and judge if it's  "_very_ hostile".

> Therefore, I manage to find and fix
>  such bugs only after converting the if* mess to something readable, while
>  your code has been buggy for over a decade, but you do not wany my fixes.

please post the letter from me refusing your fixes.

Now do you understand?  Make no statements about me unless you can substantiate them.  
Otherwise the good people who read this newsgroup will think that you are wasting
their precious time persuing your own personal vendetta


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jochen Schmidt  
View profile  
 More options Sep 3 2001, 8:58 pm
Newsgroups: comp.lang.lisp
From: Jochen Schmidt <j...@dataheaven.de>
Date: Tue, 04 Sep 2001 02:51:25 +0200
Local: Mon, Sep 3 2001 8:51 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

John Foderaro wrote:
>  It pained me to read your message.  You're progamming in Lisp but you are
>  still
> thinking like a C programmer.    A C programmer can't extend the syntax of
> the C
> language.   Neither can a Java programmer.   [A C++ programmer can extend
> operators but this often makes the code just more unreadable and
> undebuggable].

That is true - but one of the reasons _I_ do not like IF* is that it leads
to code that looks astonishingly like C...
(Look at AllegroServe for what I mean)
This does not have to be a bad thing at all - but it is simply not the
style I want to write Lisp. IF* encourages _big_ control-statements, since
it makes small ones bigger that using IF/WHEN/UNLESS.

If we take a look at this code-snipped from AllegroServe (taken from
GET-REQUEST-BODY)

(let ((ch (read-char-no-hang (request-socket req)
                               nil nil)))
    (if* (eq ch #\return)
         then ; now look for linefeed
         (setq ch (read-char-no-hang
                   (request-socket req) nil nil))
         (if* (eq ch #\linefeed)
              thenret
              else (unread-char
                    ch (request-socket req)))
         elseif ch
         then (unread-char ch (request-socket req))))

Then I see no outstanding benefit by using IF* compared to e. g.
this:

(flet ((accept-char (char stream)
              (let ((c (read-char-no-hang stream nil nil)))
                (cond ((eql c char))
                      (t (unread-char c stream))))))
    (declare (inline accept-char))
    (let ((stream (request-socket req)))
      (and (accept-char #\return stream)
           (accept-char #\linefeed stream))))

In what way is the IF* solution more readable and maintainable then the
second solution?

ciao,
Jochen

--
http://www.dataheaven.de


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bulent Murtezaoglu  
View profile  
 More options Sep 3 2001, 9:02 pm
Newsgroups: comp.lang.lisp
From: Bulent Murtezaoglu <b...@acm.org>
Date: Tue, 04 Sep 2001 01:01:42 GMT
Local: Mon, Sep 3 2001 9:01 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
>>>>> "PRM" == Pierre R Mai <p...@pmsf.de> writes:

[...]
    PRM> a new control-flow operator like e.g. WITH-STATE-MACHINE,
[...]

Where does one find this macro?  Is it public?

thanks,

BM


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Foderaro  
View profile  
 More options Sep 3 2001, 9:20 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: Mon, 3 Sep 2001 18:20:08 -0700
Local: Mon, Sep 3 2001 9:20 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
In article <871ylnx1pw....@orion.bln.pmsf.de>, p...@pmsf.de says...

> So if I read your argument correctly, anyone who thinks it is a bad
> idea to replace perfectly good standard constructs in CL with
> different, unstandardized personal macros is still thinking like a C
> programmer?  

No, you didn't read my argument correctly.
A C programmer knows he can't extend the language he merely writes in it.
A Lisp programmer knows he can extend the language.  That doesn't mean that he has to
in all cases, but if it leads to sufficiently better code then he should.

Let me as you this:  are  when and unless good or bad?
I'll be you say "good" since they are part of the ANSI spec.

Now what if they weren't part of the ANSI spec.   What if now I introduced them to
you.  Would they be good or bad?  Now you would say "bad" since they don't give you
anything that if, not and progn can't give you.

I consider that a strange way of looking at things but sadly very common here.  To me
something is either good or bad.   I don't need the approval of the ANSI committee to
tell me that it's good.  

> Exactly because CL gives you the power to extend the language, and
> create new languages embedded within/replacing the standard language,
> t is even more important to use that power wisely.

Would you consider writing one control flow macro in 23 years of programming to be
using that power wisely?  Or for you is 'zero' the only wise number of new control
flow macros that should be written.

> Even C has enough power to replace certain syntactic constructs of the
> language with your own "improved" versions, as I mentioned in my
> posting.  And even this limited power can be thus abused, in the name
> of personal persuasions of what constitutes readability.  But in that
> community I have yet to encounter anyone with any kind of experience
> seriously suggesting that such a thing is something desirable.

If you ever looked at the source code for the 1978 version of Unix for the Vax that
came out of Bell Labs you may have read the source for the adb debugger program. The
author of this program (who was  famous but whose name I don't remember) was a bigger
fan of Algol than C.  Thus he wrote a complete set of C macros that allowed him to
write that debugger in an Algol like language that got macro expanded into C.
So yes, it has been done in the C community.  The C macro facility is very weak as
I've said so the reason it's not been done more has, I believe, more to do with the
lack of power of the macroexapander than the lack of desire to extend the control
forms of C.

> What kind of proof do you need?  We already now have IF* and if.  The
> reason we don't have 10 IF*'s lies in the fact that most CL users are
> more prudent in the use of their powers than you seem to be.

wait a minute.  You're proving my point not yours.  my point is that most users know
that have the power to write control flow macros but choose not to do it.  That says
that there won't ever be 10 if*'s.  You have nothing to worry about.

> But somehow I'm slowly coming to the conclusion that you don't want to
> understand the criticism aimed at your stance, but would rather prefer
> to dismiss it out of hand, calling everyone who doesn't agree that the
> introduction and promotion of IF* as a replacement for IF/WHEN/UNLESS
> is a completely grand idea, as religious zealots,

you're completely wrong.   I'm not asking you to embrace if* and give up if, when and
unless.   I'm telling you that I've done that and I'm shocked that people are angry at
me for making a personal choice like that.   A zealot insists that only he is right
and everyone must believe the same.   How many people have told me on this very
forum that I can't give away for free lisp source code that includes a macro that they
don't like?  It is absolultely unbelievable.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Foderaro  
View profile  
 More options Sep 3 2001, 9:22 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: Mon, 3 Sep 2001 18:21:29 -0700
Local: Mon, Sep 3 2001 9:21 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

>   Because you have made your dislike for me the core your responses to me.

again, post a direct quote from me that says that I dislike you.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Foderaro  
View profile  
 More options Sep 3 2001, 9:36 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: Mon, 3 Sep 2001 18:36:17 -0700
Local: Mon, Sep 3 2001 9:36 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
This is an apples and oranges comparison

You've altered the readability of the code by factoring part of
it out (enhancing readabilty at a cost in speed if the function isn't compiled inline)

In doing so you've introduced a bug (if read-char-no-hang returns nil you'll call
unread-char passing it nil as the first argument (and the first argument should be a
character)).

If you really want to compare apples/vrs/apples you should take the if* code exactly
and put in if/when and unless and see what it looks like.  

It may just be my newsreader but the indenting on both examples is messed up on my
screen so in particular for those who haven't seen if* and who run a lousy newsreader
don't be put off by the less than readability of the if* example.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Messages 176 - 200 of 325 < Older  Newer >
« Back to Discussions « Newer topic     Older topic »