From: Israel
Subject: Newbie Attempting to choose a language.
Date: 
Message-ID: <3b301475.467686267@news.lith.com>
Hello there...

I've been searching for an especially good compilable language.  Now
as I understand it, Lisp or common lisp or whatever implementation you
pick, is a language that, in the end gets compiled and runs farily
efficiently?  How does it stack up to C++?

I'm very interested in playing around with AI, Neural Networks and
other such subjects which are way over my head at this particular
point in my education.  I'm also interested in interactive gui
programs.  Now, in your opinion,  how does Lisp stand out.

Also, How in the world do I navigate the insane proliferation of Lisp
implementations and choose a good stable quality lisp and a decent
development tool set?

Help please?


~Israel~

From: Kent M Pitman
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <sfwofrj3il0.fsf@world.std.com>
······@lith.com (Israel) writes:

> Hello there...
> 
> I've been searching for an especially good compilable language.  Now
> as I understand it, Lisp or common lisp or whatever implementation you
> pick, is a language that, in the end gets compiled and runs farily
> efficiently?  How does it stack up to C++?

The two languages express things in different ways.  Comparisons would
be meaningless.  Both languages can be used to build production speed
applications.  C++ might get what superficially looks like faster
code, but at the expense of many "correctness" features CL has.  But
the difference in any case will be a very small and uninteresting
constant factor.  Might I suggset that this is an extraordinarily bad
criterion to use when you're shopping for a language unless you know
absolutely precisely what you're going to program and that you already
have coded it in some language and have found the speed irresolvably
unsatisfactory?  You're better off concerning yourself initially
working in a good development language, and if you get to the point of
deployment and all that stands between you and delivery is a constant
factor, work with your vendor for how to resolve that detail.
 
> I'm very interested in playing around with AI, Neural Networks and
> other such subjects which are way over my head at this particular
> point in my education.

Then you should work with languages designed for these purposes.
C++ is, in my opinion, is a terrible way to learn the ideas these
systems have to teach you.

> I'm also interested in interactive gui programs.

It's a bad idea to mix the notion of a gui language with your application
language.  Most languages can do or interface to a competent gui, regardless
of whether they themselves have one directly.  

>  Now, in your opinion,  how does Lisp stand out.

It was designed by people doing AI and other very hard probelms four decades 
ago and has tons of experience in design factored into it.

Just learn it.  It is too early in your career to be shopping for any single
language to use exclusively.  At this point, it is quite important to you to
gather first-hand experience to add to your personal breadth.  That you don't
know what it has to offer speaks to your  need to understand it firsthand.

> Also, How in the world do I navigate the insane proliferation of Lisp
> implementations and choose a good stable quality lisp and a decent
> development tool set?

www.alu.org (The Association of Lisp Users) has faqs and other help info.

A number of fine texts exists.
From: Jochen Schmidt
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <9gprha$abecv$1@ID-22205.news.dfncis.de>
Israel wrote:

> Hello there...
> 
> I've been searching for an especially good compilable language.  Now
> as I understand it, Lisp or common lisp or whatever implementation you
> pick, is a language that, in the end gets compiled and runs farily
> efficiently?  How does it stack up to C++?

You could risk a look at http://www.bagley.org/~doug/shootout/craps.shtml
This site contains some little toy-benchmarks to compare a rather big 
amount of languages. Be careful the results doesn't have to say anything 
useful!!!
CMUCL is on the fourth place in the CPU table (actually better than e. g. 
Java or C++).
There are things like 32 bit arithmetic that are difficult to get fast in 
Common Lisp, but most things are comparable to e. g. C++.
Be assured that many C++ programs run _very_ slow if they core-dump! ;-)

> I'm very interested in playing around with AI, Neural Networks and
> other such subjects which are way over my head at this particular
> point in my education.  I'm also interested in interactive gui
> programs.  Now, in your opinion,  how does Lisp stand out.

IMHO Common Lisp is the ideal language for this experimenting. The ugly 
quirks of languages like C++ and Java stand often between you and the 
natural solution of a problem. The inherent simplicity of Lisp combined 
with the many goodies that help to get your job done lets you face your 
real problems and not the language problems.
Another nice thing is that programming Lisp means building your own 
language. Common Lisp is somewhat of a language construction toolkit
that allows you to create a language that exactly fits your problem.

As you want to do some GUI work I would advise to take a look at the 
commercial Lisp-Systems as this come with more mature and easier GUI 
support. There are some free projects that look promising (like FreeCLIM 
and CLG) but I personally find e. g Xanalys CAPI toolkit easier to use. 
Using Xanalys CAPI toolkit allows you to create GUIs including such things 
like OpenGL that run on both UNIX/LInux _and_ Windows.

Xanalys offers a free trial version so you can take a look at it: 
http://www.xanalys.com

another good commercial Lispsystem is AllegroCL from Franz Inc.: 
www.franz.com

or Corman Lisp: www.corman.net

For further information on Lispsystems take a look at http://www.alu.org

ciao,
Jochen
From: Paolo Amoroso
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <ypUwOyx47YYW5=b9bLViwVuTBFUb@4ax.com>
On Wed, 20 Jun 2001 03:18:52 GMT, ······@lith.com (Israel) wrote:

> Also, How in the world do I navigate the insane proliferation of Lisp
> implementations and choose a good stable quality lisp and a decent
> development tool set?

Could you elaborate on this? What gives you the impression that Lisp
implementations proliferate insanely? How many Lisp implementations are you
aware of? Can you name a few?


Paolo
-- 
EncyCMUCLopedia * Extensive collection of CMU Common Lisp documentation
http://cvs2.cons.org:8000/cmucl/doc/EncyCMUCLopedia/
From: Israel
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <3b30dbc8.518713220@news.lith.com>
>Could you elaborate on this? What gives you the impression that Lisp
>implementations proliferate insanely? How many Lisp implementations are you
>aware of? Can you name a few?


First, I want to thank everybody for their replies.  It's really
helpfull to have all of these voices raised up in lisp.

My confusion stems from the whole "Family" of LISP.

AutoLisp
Common lisp
Elisp
EuLisp
FranzLisp
InterLisp
ISLisp
LOOPS
MacLisp
Scheme
XLisp
Corman Lisp

Should I just go for the CMU Common Lisp?  Especially since I'm just
beginning my journey?

If so, what editor do any of you most reccommend?

I've been playing with Emacs but my Windows Wounded brain is having
trouble getting comfortable.  It took a couple of months playing
around with Python to even get used to using an interactive
interpreter (IDLE).  It's hard to step out of my nice little non
interactive text files that only move when I tell them to move..  :)


Danke

~Israel~
From: Kent M Pitman
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <sfwn173c9mt.fsf@world.std.com>
······@lith.com (Israel) writes:

> My confusion stems from the whole "Family" of LISP.
> 
> AutoLisp
> Common lisp
> Elisp
> EuLisp
> FranzLisp
> InterLisp
> ISLisp
> LOOPS
> MacLisp
> Scheme
> XLisp
> Corman Lisp

Corman Lisp is an implementation of Common Lisp, not really a language.

LOOPS is, as I understand it, more of a macro package than a language.

Maclisp, FranzLisp, and Interlisp are mostly old, obsolete dialects.  
(There may be some Interlisp compatibility stuff running around still, though.)

Eulisp is somewhat moribund, I think.  It may or may not still have active
pockets but seems to have lost steam.  It was intended as an alternative
to common lisp a decade or two ago.

ISLisp is a standard but has only a very few implementations that haven't
really taken tactical hold.  As with Eulisp, I hestitate to write off
all hope for its future, but I wouldn't spend your "learning" time focusing
on this dialect.

Mostly today there are these commercial branches:

 - Autolisp - used if you are doing Autocad and probably not otherwise

 - Elisp (I assume this refers to emacs-lisp, if not, I don't know what it is)
   - used mostly if you are either extending emacs or have gotten used to
   using emacs-lisp and have decided to use it for "other things".  it's more
   general than a lot of people think.

 - Scheme - popular for teaching, used in some commercial situations, 
   especially those calling for a small footprint.
   The most powerful features are not very portable.

 - CL - popular for commercial use in a wide variety of applications
   involving large, complex, rapidly changing problems.

 - Xlisp - to be honest, i really have no idea what this is.

Unless you have some special-purpose need, I recommend you confine your
choice of how to proceed to either Scheme or Common Lisp. If you choose
Scheme, you should be talking to the folks on comp.lang.scheme.
If you choose Lisp, you're in the right place.  If you're the sort to
think it's more importnat for programs to "look pretty" then to "just work",
you should probably choose Scheme.  That's not to say CL can't look pretty;
just that CL rates elegance as a secondary priority, with commercial
usefulness/stability being the first priority.

> Should I just go for the CMU Common Lisp?  Especially since I'm just
> beginning my journey?

It depends on how "hands on" you want to be, how much you want to pay,
what your platform needs are, etc.

CMU CL is free, but is not commercially maintained.  I don't know what
its platform issues are.

Xanalys and Franz both have commercial implementations that offer a lot
more "cool gui tools".  You can get a cost-free, stripped-down version of
the CL version, and you can get a temporary-license cost-free 
Franz/Allegro version.  I personally recommend at least trying one of these
commercial offerings so you can see the difference between the free and
commercial versions.  It's quite "apples and oranges" in terms of comparison.

If you're using a Mac, you'll want MCL.

> If so, what editor do any of you most reccommend?

The editor of choice is generally Emacs.

If you use Xanalys or MCL, they will come with integrated Emacs-like
editor alternatives, but the command set will feel the same as Emacs.
 
> I've been playing with Emacs but my Windows Wounded brain is having
> trouble getting comfortable.

Did you try the tutorial?  (try pressing "control-h" then "t".)

It's definitely worth pushing on yourself to learn Emacs.  Emacs has
very good handling of Lispy expressions, but is also optimized for
touch-typing code efficiently.
From: Thomas F. Burdick
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <xcvvglrm188.fsf@conquest.OCF.Berkeley.EDU>
Kent M Pitman <······@world.std.com> writes:

>  - Elisp (I assume this refers to emacs-lisp, if not, I don't know what it is)
>    - used mostly if you are either extending emacs or have gotten used to
>    using emacs-lisp and have decided to use it for "other things".  it's more
>    general than a lot of people think.

In fact, I'd say it is a general-purpose language.  It's slow, sure,
but you can have database bindings, an integrated web-server, GUI
bindings, a CLOS-like object system, an exception system similar to
CL's (someone told me there was an implementation of this out there
somewhere, but I couldn't find it -- on the other hand, it only took
around 4 hours to write this myself), and on.  In fact, short of
really system-level stuff, I can't think of anything it can't do.
Should, of course, is another matter.

(on a lark, for a record store, I wrote an inventory management /
point-of-sale cash-register-alike / via-the-web shopping system, all
in elisp.  It was supposed to be just a silly part of a
my-editor-is-better-than-your-whole-programming-system-put-together
war, but it worked so there was no need to rewrite it)
From: Chris Riesbeck
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <riesbeck-B1BF0F.14284020062001@news.it.nwu.edu>
In article <···············@world.std.com>, Kent M Pitman 
<······@world.std.com> wrote:

>······@lith.com (Israel) writes:
>
>> My confusion stems from the whole "Family" of LISP.
>> 
>> ...
>> XLisp
>> Corman Lisp

> - Xlisp - to be honest, i really have no idea what this is.

It's a free implementation of a subset of Common Lisp 1, for
PC's and Mac's. David Betz began it as a way to learn about
Lisp. When he eventually moved to XScheme, Tom Almy took
over XLisp and moved it closer to Common Lisp.

It's not really a subset in that there are extensions for 
statistics and a little bit of graphical user interface, but
there's definitely a large core of CL1 in there. 

Years ago, I found it quite usable to introduce students
with Macs and PC to pre-CLOS CL.
From: Dowe Keller
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <slrn9m4i4s.2ap.dowe@localhost.localdomain>
On Wed, 20 Jun 2001 14:28:40 -0500, Chris Riesbeck
<········@cs.northwestern.edu> wrote:
>In article <···············@world.std.com>, Kent M Pitman 

>> - Xlisp - to be honest, i really have no idea what this is.
>
>It's a free implementation of a subset of Common Lisp 1, for
>PC's and Mac's. David Betz began it as a way to learn about
>Lisp. When he eventually moved to XScheme, Tom Almy took
>over XLisp and moved it closer to Common Lisp.
>
>It's not really a subset in that there are extensions for 
>statistics and a little bit of graphical user interface, but
>there's definitely a large core of CL1 in there. 
>
>Years ago, I found it quite usable to introduce students
>with Macs and PC to pre-CLOS CL.

It's downright tiny too, I have an old HEATH/Zenith 286 laptop with
640K of ram, I use XLISP under FreeDOS on that system with out a
problem.  Oh, it fits on a diskette with DOS and space left over!

-- 
····@sierratel.com              Homepage: http://www.sierratel.com/dowe
				Project : http://freshmeat.net/projects/vsh
From: Joel Ray Holveck
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <y7c1yoe7r5o.fsf@sindri.juniper.net>
>  - Elisp (I assume this refers to emacs-lisp, if not, I don't know what it is)
>    - used mostly if you are either extending emacs or have gotten used to
>    using emacs-lisp and have decided to use it for "other things".  it's more
>    general than a lot of people think.

There is a Lisp implementation named Elisp that is distinct from Emacs
Lisp.  Since discovering this, GNU tries to avoid calling Emacs Lisp
"Elisp" in documentation, but it's heavily used in filenames.  (I
can't find my reference on this offhand; it's in some standard GNU
document.)

>  - Xlisp - to be honest, i really have no idea what this is.

An implementation of CL that's not terribly complete, and has an OOP
(not CLOS or Flavors).  While I was at HP, one app I used quite a bit
was written in Xlisp.  It seems to have a compiler and a tree shaker,
as well as a fairly easy-to-use Motif interface.

joelh
From: David Thornley
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <oBIY6.226$RP4.154375@ruti.visi.com>
In article <···············@world.std.com>,
Kent M Pitman  <······@world.std.com> wrote:
>
>Unless you have some special-purpose need, I recommend you confine your
>choice of how to proceed to either Scheme or Common Lisp.

Given the original poster's intention to play around with AI-type
algorithms, I'd suggest Common Lisp as the better of the two, on
the ground that it's easier to get things done in.

The other thing to consider is what packages are available to
play with, since it's usually easier to enter a field by fiddling
with somebody else's code than writing one's own from scratch.
This could indicate Scheme but I'd think Common Lisp would be
more likely.

The other other thing is the books and other references available.
My favorite Scheme book (Structure and Interpretation of Computer
Programs) covers the basics of computer science, while my
favorite Common Lisp book (Paradigms of Artificial Intelligence
Programming) covers the implementation of AI algorithms.

So, all other things being equal, I'd think Common Lisp would
probably be the better choice.

As far as implementations go, that depends on available platform
and how much money one is willing to spend (and whether one can
claim a student discount).  The commercial implementations are
likely to be faster to get in and working with, and more pleasant,
but I'm not convinced programming with them is significantly
more productive.

The absolute minimum tool requirement is a parenthesis-matching
editor; one will come with commercial Lisps, and there's always
Emacs/XEmacs for the noncommercial.



--
David H. Thornley                        | If you want my opinion, ask.
·····@thornley.net                       | If you don't, flee.
http://www.thornley.net/~thornley/david/ | O-
From: Coby Beck
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <rU5Y6.25806$_T2.5824948@typhoon.tampabay.rr.com>
"Israel" <······@lith.com> wrote in message
·······················@news.lith.com...
>
> My confusion stems from the whole "Family" of LISP.
>
> AutoLisp
> Common lisp
> Elisp
> EuLisp
> FranzLisp
> InterLisp
> ISLisp
> LOOPS
> MacLisp
> Scheme
> XLisp
> Corman Lisp
>

This list you present is a mix of lisp dialects, lisp subsets, at least one
language that causes many people to get very upset when they see it called a
lisp and lisp implementations.  There is an ANSI standard Common Lisp that
is what "lisp" defaults to in this group.  You would be best to learn that
using any of a number of ANSI CL compliant development environments (that at
least try to be compliant) ...like Franz's Allegro CL, Lispworks, Corman
Lisp ...others ( check www.alu.org )


> Should I just go for the CMU Common Lisp?  Especially since I'm just
> beginning my journey?
>
> If so, what editor do any of you most reccommend?
>

I quite enjoy the editor that comes with Allegro.

> I've been playing with Emacs but my Windows Wounded brain is having
> trouble getting comfortable.

I, too am a windows child, but learning Emacs *is* worth the effort.  It is
very useful when learning, to have someone who is a true fan of it around,
but that is hard to control...

Coby

(remove #\space "coby . beck @ opentgi . com")
From: Pierre R. Mai
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <873d8vyor9.fsf@orion.bln.pmsf.de>
······@lith.com (Israel) writes:

> First, I want to thank everybody for their replies.  It's really
> helpfull to have all of these voices raised up in lisp.
> 
> My confusion stems from the whole "Family" of LISP.

My personal advice is to just forget about this "LISP-Family" stuff,
at least for the moment.  Just like you normally don't care that e.g.
Pascal, Modula-2, C and Ada can be considered to be part of the Algol
family, you shouldn't care about it with the different members of the
Lisp family, especially since the differences between family members
can be huge.

> AutoLisp
> Common lisp
> Elisp
> EuLisp
> FranzLisp
> InterLisp
> ISLisp
> MacLisp
> Scheme
> XLisp

These are all different languages in their own right (though some of
them have more in common than others).  Of those, the following are
application-specific extension languages:

> AutoLisp
> Elisp

And the following are nowadays of dwindling interest, because active
development of them/their implementations stopped many many years ago:

> FranzLisp
> InterLisp
> MacLisp

And to some degree this is starting to apply to

> EuLisp

IMHO, only, of course.

This leaves you more or less with the following languages (Corman Lisp
is just a Common Lisp implementation):

> Common Lisp
> ISLisp
> Scheme
> XLisp

Each of those languages has fairly distinct goals, values and
features, with XLisp and Common Lisp probably being the closest in
some sense, and Scheme and Common Lisp being the furthest (though from
other perspectives, the perceived distances might be altogether
different).

Common Lisp, ISLisp and Scheme have standardized language definitions
(ANSI, ISO and IEEE/an independend group respectively), whereas XLisp
is solely defined by its implementations, at least AFAIK.

You probably ought to take at least a cursory look at each of the
languages in question, but since you'll have to start at one, and we 
are here in c.l.l, which has a fairly well developed Common Lisp bias,
I'd recommend you to start with Common Lisp.

> Should I just go for the CMU Common Lisp?  Especially since I'm just
> beginning my journey?

That depends.  There are numerous free implementations out there, that
are sufficient for learning and working with Common Lisp, and CMU CL
is one of them.  Take a look at www.alu.org for an overview of
available implementations.

> If so, what editor do any of you most reccommend?

For use with CMU CL, I personally recommend an Emacs, and for those
coming from a GUI, XEmacs is probably a bit easier to approach at
first, than GNU Emacs.  Use ILISP as the interface from Emacs to your
CMU CL process.

OTOH, if you are coming from Windows, you might want to take a look at
Xanalys' LispWorks Personal Edition (for Windows or Linux), or Franz'
Allegro Trial Edition (for Windows, the Linux version also uses Emacs
as its main interface).

> I've been playing with Emacs but my Windows Wounded brain is having
> trouble getting comfortable.  It took a couple of months playing
> around with Python to even get used to using an interactive
> interpreter (IDLE).  It's hard to step out of my nice little non
> interactive text files that only move when I tell them to move..  :)

Yes, when coming from a non-interactive world, getting used to the
interactive development approach takes some time, and restraint (you
can BTW develop completely non-interactively with Common Lisp, as well,
but you'll be missing much of the power of CL, and so should restrain
yourself from taking that approach).  But rest assured that crossing
over the other way is much harder process.  ;)

Regs, Pierre.

-- 
Pierre R. Mai <····@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
From: Christopher Stacy
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <u66dqwlyz.fsf@spacy.Boston.MA.US>
Whatever happened to the GCL (GNU Common Lisp)?
From: Raymond Toy
Subject: Re: Newbie Attempting to choose a language.
Date: 
Message-ID: <4nu219694s.fsf@rtp.ericsson.se>
>>>>> "Christopher" == Christopher Stacy <······@spacy.Boston.MA.US> writes:

    Christopher> Whatever happened to the GCL (GNU Common Lisp)?

http://www.ma.utexas.edu/gcl.html

Ray