<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000099">
Way to go fanboy. Pointing out postive things companies say about
themselves is often circular reasoning, and indicates that despite my
attempts in the past to think of you as trying to engage in discussion,
other people's comments that you are a flamer and a troll are spot on.<br>
<br>
Microsoft says they're out to protect users' rights WRT DRM but that
doesn't make them right.<br>
<br>
You are an idiot. You twist my words and then act like you're the
authority, without any grounds. I'll respond to others' comments as
they actually make sense.<br>
<br>
Mail from <a class="moz-txt-link-abbreviated" href="mailto:seniorr@aracnet.com">seniorr@aracnet.com</a> >> /dev/null from now on.<br>
<br>
RP<br>
<br>
Russell Senior wrote:
<blockquote cite="mid86fyt3ozxi.fsf@coulee.tdb.com" type="cite">
<pre wrap="">
This is an idiotic criticism. If you leave out a semi-colon in a C
program it won't compile either. Lisp editors (like Emacs and others)
make leaving out a parenthesis just about impossible, and anyway,
easily corrected.
One of the primary things Lisp gives you is leverage. It lets one
person develop things that take armies of programmers in other
languages. There are some engineering tradeoffs for this. Automatic
memory management doesn't come for free, nor does its dynamic typing,
but for many things it is well worth the cost. The REPL, from a
development point of view, is a huge win.
Here's a summary of features from one of the two bigger commercial
Common Lisp vendors:
<a class="moz-txt-link-rfc2396E" href="http://www.lispworks.com/products/lisp-overview.html"><http://www.lispworks.com/products/lisp-overview.html></a>
Common Lisp Language Overview
Common Lisp has long been the leading language for software
research and advanced development projects. Its ability to tackle
the biggest problems is unmatched.
Common Lisp is rich in data types, supported by a high-level
language model and garbage collection. In Common Lisp, all data are
represented as objects. There are no out-of-language errors. This
model encourages a high-level view of programs and an exploratory
programming process that make Lisp programmers among the most
productive in the world. Evidence for this is presented in Erann
Gat's paper Lisp as an Alternative to Java.
<a class="moz-txt-link-rfc2396E" href="http://www.flownet.com/gat/papers/lisp-java.pdf"><http://www.flownet.com/gat/papers/lisp-java.pdf></a>
Common Lisp has grown and evolved over time, acquiring features and
supporting paradigms as they've entered the world of computer
science. It is now supported by an ANSI standard (ANSI
X3.226:1994). This standard includes the Common Lisp Object System
(CLOS); features like multimethods and dynamic class redefinition
make CLOS among the most advanced object systems in the world.
Among the most important features of Common Lisp are:
* Machine-independent language model. All operations are
performed in terms of program objects, not raw bits.
* Iterative design process. Common Lisp supports exploratory
programming, making programmers more productive.
* Dynamic patching. Common Lisp programs can be updated while
they are running. The ability to install field patches
without interrupting service is important for many
mission-critical applications.
* High-level debugging. All debugging is performed within the
language model, preventing system crashes and other
out-of-language errors.
* Common Lisp Object System (CLOS). Common Lisp provides
advanced object-oriented programming, including multiple
inheritance, multimethods, class redefinition in running
programs, and dynamic type creation. No other language
provides an object system so rich in features.
* First class functions and classes. First class higher-order
functions provide control systems that are elegant and
powerful.
* First class classes let you manipulate the object system in
running programs, giving you finer degrees of control.
* Extensive data types. Objects, structures, lists, vectors,
adjustable arrays, hash-tables, and symbols are just a few of
Common Lisp's myriad data types.
* Advanced numeric types. The Common Lisp arithmetic package
includes unlimited size integers, fractions, complex numbers,
and a complete floating point library. Conversion between
numeric types occurs automatically.
* Complete IO library. Common Lisp includes a portable
interface for streams, the file system, and other IO
facilities.
* Extensive control structures. Complex looping, guard
expressions, non-local transfer of control and lexical
closures are among the control structures offered by Common
Lisp.
* Condition system. The Common Lisp condition system is
object-based, and supports recovery as well as escape from
errors and other exceptional situations.
* Consistent syntax. Common Lisp uses a simple consistent
syntax that is easy to learn and easy to use from day one.
* Macros. A convenient macro system lets Common Lisp
programmers create embedded languages, essentially turning
their Lisp environment into a domain-specific problem solving
tool.
* Programs as data. Common Lisp is a fully reflective language,
supporting genetic algorithms, evolutionary programming, and
other self-referential programming techniques.
* Late-bound types. By leaving type declarations to the
programmer's discretion, programs can be simpler and
prototyping faster.
For more information on Common Lisp, see our Community pages.
There are some anti-features as well. The free Common Lisps don't
support multithreading (there are some free Schemes that do, though).
Lisp doesn't always play nicely with others, e.g.: it is harder or
uglier to link in foreign functions from C or Fortran; and I/O can
sometimes be inefficient (basically a matter of getting raw data into
and out of Lisp types).
I have never regretted learning or using Common Lisp.
</pre>
</blockquote>
<br>
</body>
</html>