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
Message from discussion Why I can't use Lisp.
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
 
Kaz Kylheku  
View profile  
 More options Aug 3 2002, 3:40 pm
Newsgroups: comp.lang.lisp
From: Kaz Kylheku <k...@ashi.footprints.net>
Date: Sat, 3 Aug 2002 19:40:26 +0000 (UTC)
Local: Sat, Aug 3 2002 3:40 pm
Subject: Re: Why I can't use Lisp.

In article <b295356a.0208011247.562f2...@posting.google.com>, thelifter wrote:
> It's because there are no good compilers for free.
> If you want a free Lisp system you have to choose between
> CLISP(generates only byte-code) and CMUCL(runs only on Unix).

You are implying that ``runs only on Unix'' and ``good compiler'' are
opposites, which you are free to believe, but don't assume that everyone
accepts it as truth.

> So how
> are you guys expecting anyone to use it?

I can't speek for all ``you guys'', but I don't expect anyone to do anything. I
couldn't care less if I'm the last Common Lisp programmer on the planet, as
long as I have a way, in that case, to maintain the programming environment I
need.

> Other functional languages are better off. Take Ocaml for example, it
> comes with a native code compiler for free.

Just one? What are the players in the Ocaml world? Who are the vendors?
Now count the vendors of Lisp systems.

What does it mean for a language to be better off? Why does it matter?  
Is a language a living thing? Would you want people to be badly off, for
the sake of a programming language being better off?

> I agree that Lisp is probably one of the best languages around if not
> the best. But what does that help if you can't generate efficient code
> with it?

> Of course this won't matter if your application doesn't need speed.

> A lot of people talk about the nice abstractions that Lisp enables,
> but what if that produces slow, lousy code. Look at this interesting
> article:

> http://www.ai.mit.edu/docs/articles//good-news/subsubsection3.2.2.4.html
> "This example is bitterly sad: The code is absolutely beautiful, but
> it adds matrices slowly. Therefore it is excellent prototype code and
> lousy production code. You know, you cannot write production code as
> bad as this in C. "

But nobody would write the matrix code that way, only someone who
didn't know that Lisp has built-in multi-dimensional arrays.

What part of the paragraph heading ``Totally Inapprpropriate Data Structures''
has the author not made clear enough for you?

You can write stupid code in any language; if stupid code can also
be beautiful in Lisp, so what? That's only an advantage, because it
means that if you aren't constrained by performance, you can just
express yourself in the most convenient way to get the results.

Consider that if you wrote matrix multiplication using linked lists
in C++ or Java, it would be so contorted, that the reader of the
code would not even recognize it to be matrix multiplication.
Moreover, removing the stupidity from the program would probably
be quite hard, involving irrelevant changes all over the place.

The number one concern in programming is correctness and reliability.
The number two is maintainability. Performance isn't even number three.

> What help are the higher level structures of Lisp if afterwards I have
> to hand-optimize everything to make efficient code?

You don't have to hand-optimize everything, because it is very, very rare for
the time spent running a program to be equally distributed throughout that
program. Usually, most of the time is spent in a few places, which are
sometimes called ``hotspots''.  If you don't know that, you have yet to
advance to the rank of programming newbie.  Optimizing hotspots doesn't
call for the destruction of the higher level structure of your software.

> Now the last practical question:
> Inspite of all those points I want to use Lisp for a project of mine.
> Speed will be crucial, and I want to generate native code for both
> Windows and Linux. I don't have money to buy one of the expensive
  ^^^^^^^
> proprietary systems, so which compiler can I use if there is one at

  ^^^^^^^^^^^^^^^^^^^

> all?

Idiot, Windows is a proprietary system. If you write a program for Windows, you
must use that proprietary system, and all the users of that program must use it
as well.

If you don't mind paying for and using a proprietary operating system, why
object to proprietary tools?  Or are you stupid enough to believe that
just because your computer came with Windows preinstalled, it was free?
Or maybe you feel that for some reason Microsoft deserves your business, but a
Lisp vendor does not?

I simply don't follow the chain of reasoning.

You want someone to buy and license Windows, so that they could use it to
develop tools for it, and give those tools away to you, right?  These people
have to bootstrap themselves with proprietary tools at some point. You think
that Cygwin magically ran on Windows from day one without the help of any
proprietary tool?

Even the Linux kernel needed proprietary tools at the beginning.
Very early versions were compiled with a Borland C compiler,
because that is what Minix used. Oh yeah, and Minix isn't free
software either. Only when the kernel was robust enough to host
GCC was the switch made to that compiler.

Some people do make free software for Windows, like Cygwin, but you have no
right to demand others to serve you.

There are no impediments against writing free, open source software in Common
Lisp.  If your users want to run that software on some proprietary platforms,
and they want to make it run it as efficiently as possible, they can license
the proprietary Lisp systems needed to do that.  If they are not smart enough
to port the software to these Lisp systems, they should be willing to pay you
to do it for them, and provide you with the tools that you claim you cannot
afford.

Note that a number of proprietary Lisp vendors allow you to use their
tools free of charge. Some have reduced functionality, some do not.
But what is available is good enough to actually port a program to
target these systems.

For example, one vendor's system has the limitation that you cannot make a
standalone executable. But that doesn't prevent you from getting the program to
work.

Thus if you are really short on cash, you can delay the purchase until you have
conquered some of your other risks, like getting the program working, and
finding potential customers.

> Thanks for any help...

> --------------------------------
> Lisp, a language that works nice in theorie only?

Lisp is a language that works nicely, for non-whining, non-loser, non-idiots
who work for a living.

You know, there was a day when CLISP and CMUCL didn't exist;
they exist because motivated people took *action* instead of sitting
around lamenting how there are no liberated Lisp implementations.

Since these people took action, the freedom to determine their implementation
requirements was also their own. The CLISP designers went to a bytecode
model, leaving native code generation to a later stage. The CMUCL designers
targetted UNIX. Changing these decisions requires more *action*,
not whining.


 
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.