Other languages >> Lisp as a general purpose language.
Posted by MooKeen on 10:44:00 05-21-2002
I am very new to the language Lisp, and the first time I heard of it, I dismissed it as "one of those AI languages". While Common Lisp is very good with, and often used in the area of artificial intelligence, the more I play with it, the more I realize that it's good for just about everything. It seems odd to me that it is used by so few people.

What do you think?

-Moo

[ This Message was edited by: MooKeen on 2002-05-21 10:46 ]
Posted by bpt on 12:17:00 05-21-2002
I agree. In fact, it is is good for just about everything. On the Symbolics Lisp Machines, Lisp was used for everything from microcode to user-level programs, and multiple dialects (such as MacLisp, ZetaLisp, Common Lisp, and to some extent even the C language) could coexist and interoperate. Nowadays the only LispOS projects around are Vapour and Sky, although TUNES provides hope of something beyond even Lisp.
Posted by bpt on 12:21:00 05-21-2002
I would like to add that it is usually rejected for incredibly stupid reasons. I have no idea why it causes so much cognitive dissonance -- perhaps because it rejects today's buzzword mania. Every Lisper I know of -- including newbies -- no longer sees the parens, just as C programmers don't see the braces and semicolons. ``It's an AI language'' is false. So is ``no one uses it''. It's got an ANSI standard and several de facto standard libraries plus an excellent interface *standard*, CLIM (an interface manager, not just a GUI toolkit). Anyway, I'm sort of preaching to the choir here...
Posted by fsvara on 02:01:00 05-22-2002
yeah, i figure it's seen as old fashioned or antiquated by a lot of people... because "real" programmers should use C++...
Posted by MoX on 15:08:00 05-22-2002
Hell, what's wrong with C/C++? Show me what I can't do with it...(no flaming please)

At least for general purpose it's great. I'd like to learn lisp, too, but I don't have any time left, right now. [addsig]
Posted by sacah on 17:30:00 05-22-2002
I dl emacs to learn Lisp, but i got lost readin how to use Emacs, and Lisp lost interest.
Posted by bpt on 10:28:00 05-26-2002
Quote:
On 2002-05-22 17:30, sacah wrote:
I dl emacs to learn Lisp, but i got lost readin how to use Emacs, and Lisp lost interest.

You're already using Lisp -- albeit a crappy outdated dialect -- if you use Emacs. And you needn't use Emacs to use Lisp, although most Lispers probably do use it or Emacs-like editors such as Zmacs and Hemlock.
Posted by bpt on 10:38:00 05-26-2002
Quote:
On 2002-05-22 15:08, MoX wrote:
Hell, what's wrong with C/C++? Show me what I can't do with it...(no flaming please)

There are lots of examples I could give you, but as something trivially possible to do in Lisp, you can't extend C++'s syntax. This list is extremely incomplete, but there's also some things like dynamic compilation, first-class identifiers, object-orientation, macros, metaobject protocols, easy metaprogramming, poor man's persistance with PRINT and READ, real persistance with tools such as `PLOB!' and UncommonSQL and WOOD and AllegroStore, and *ahem* simple things such as first-class functions and lexical closures???
Quote:
At least for general purpose it's great. I'd like to learn lisp, too, but I don't have any time left, right now.

No comment on why you might not have any time left...
Posted by MoX on 15:02:00 05-27-2002
Well, if you think that C++ was not object oriented and had no macros...

Okay, maybe lisp is really superior to C++. I'm no lisp insider, so maybe you can tell me of some projects or bigger programs written in lisp. [addsig]
Posted by bpt on 10:29:00 05-28-2002
Quote:
On 2002-05-27 15:02, MoX wrote:
Well, if you think that C++ was not object oriented and had no macros...

C++ is not object-oriented, except as a buzzword (no identity-orientation, and many things are not first-class, even though there are datastructures with slots and methods). I had forgotten about its macros though, although they are pretty klugy compared to Lisp macros.

Quote:
Okay, maybe lisp is really superior to C++. I'm no lisp insider, so maybe you can tell me of some projects or bigger programs written in lisp.

Look at the CLiki.
Posted by MoX on 17:22:00 05-28-2002
Well...C+++ is ObjectOriented in every way something can be object oriented by definition.

Of course you can say that lisp is better for OOP but saying C++ was not object oriented seems simply ignorant to me.

I how long you have been using C++ that you can say all these things. Anyway, you got me interested and I will take a closer look at lisp.

Considering the fact for how long I want to learn Perl now it can only be a matter of years until I learn lisp. [addsig]
Posted by bpt on 10:25:00 05-29-2002
Quote:
On 2002-05-28 17:22, MoX wrote:
Well...C+++ is ObjectOriented in every way something can be object oriented by definition.

Haven't heard of C+++
If you use the C++ definition. I suggest you read some of Kent M. Pitman's essays for the original meaning of the term, which implies identity-orientation and ``first-classibility'' (heh), not merely slotted objects. If by OO you want to mean slotted objects, then say so, but please don't use nonstand
ard definitions without saying so (in Lisp fora and some other programming communities, the standard definition is the original one)

Quote:
Of course you can say that lisp is better for OOP but saying C++ was not object oriented seems simply ignorant to me.

And saying C++ is object oriented seems ignorant to me, relying on a near-worthless definition of ``object-oriented''. But it's a terminology difference. If by object-oriented you mean slotted objects, not also first-classibility and identity-orientation, then I agree, C++ is object-oriented. But this is not the meaning I used. Your definition is probably right amongst C++ programmers though.

Quote:
I how long you have been using C++ that you can say all these things.

I didn't use it for long, only a few months, but I made sure later that I knew the main features of it, etc.

Quote:
Anyway, you got me interested and I will take a closer look at lisp.

Considering the fact for how long I want to learn Perl now it can only be a matter of years until I learn lisp.

LOL
Posted by MoX on 04:01:00 05-31-2002
Actually I did not read any essay about OO...I'm not studying yet, but merely interested in programming.

Simple as I see things, Objects are variables and fuctions working with these. And then there are all these little features like inheritance and polymorphism that can make several things a lot easier. So, now that you know what my humble self considers Object oriented you'll see that C++ is OO, too.

Don't know what kind of super sophisticated OO you know and I have to admit that neither know what a slotted class is nor do I know any of the other fancy words you threw in.

So much to the "buzzwords"

Don't know [addsig]
Posted by seunosewa on 22:47:00 06-07-2002
C++ is designed to be a general-purpose language with which you can do virtually anything. Flexibility and Performance are the key issues with C++.

Implication: If there is anything that plain C++ cannot do, which Lisp can do, you can be sure its easy to extend C++ with a few functions, classes, templates and overloaded operators to do the job. Look at the Standard Template Library, for example. Its almost a language on its own

The price of this flexibility is that none of these other 'features' are forced on you (if you implement garbage collection, the language does not _force_ you to use it!).

Does this make sense?
Posted by dxprog on 06:42:00 06-08-2002
Lisp, eh? Do "r"'s and "l"'s get replaced with "w". Like:

PWINT "You wascawy wabbit!" [addsig]
Posted by MoX on 19:06:00 06-08-2002
I agree with seun. A program which could not be done in C++ but in any other language has yet to be invented...

(of course there might be easier solutions than doing some things in C++...) [addsig]
Posted by dxprog on 00:42:00 06-09-2002
Of course there are easier solutions. It's called Visual Basic. [addsig]
Posted by MooKeen on 06:10:00 06-09-2002
I, although I am a novice (I still can't understand those infernal macros!), know this to be true:

You can use Lispy features in C/C++ if you implement Lisp. I think I remember a quote that said something like that... ah, here it is.

"Greenspun's Tenth Rule of Programming: any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp."
- Phil Greenspun


[ This Message was edited by: MooKeen on 2003-04-18 10:42 ]
Posted by ComWizz on 18:59:00 06-20-2002
I agree, some languages are dismissed as "one-pupose".

Eg: Lisp is not just for AI, and awk is not just for text proccessing.

I don't know lisp, I don't have an [interpreter/compiler] for it, I don't think.

Thanks, ComWizz.
Posted by fsvara on 22:49:00 06-20-2002
while to my undertsanding lisp was never meant to be used for ai (only) while awk is quite a classical UNIX text-processing lang.. of course it can be used for a lot of toher stuff, as perl, but perl started a s a lang specifically designed to do text processing easily.. and that's what it still does (often)... that's also why it's sued for cgi so much...