Re: What is Lisp used for?



From: cartercc <carte...@xxxxxxxxx>
My main languages are Perl, Java, and ColdFusion.

I have demonstrations that Perl and Java can be used to implement
CGI applications. I'm not familiar with ColdFusion. Is it capable
of implementing CGI applications or not? If it is, please
demonstrate its capability by setting up a demo in a similar manner
to the demos I already have for 7 other languages (C C++ Perl Java
Lisp PHP FlamingThunder).
<http://www.rawbw.com/~rem/HelloPlus/hellos.html>
<http://www.rawbw.com/~rem/HelloPlus/hellos.html#step3>

I understand exactly what kinds of jobs the tools are good for,
and wouldn't try to use a tool that is less suited for a particular
job when I have a better tool at hand.

Lisp is a really good tool for a wider variety of kids of jobs than
the other languages. The only time I use some language other than
Lisp (except for my hello-plus demos) is when Lisp isn't allowed
(such as on some free Web hosting sites that support only Perl or
PHP) and in rare cases when some other language (usually Java) has
special libraries for the task readily available and well
documented, or where I just want a quick Web page with minimal
scripting where PHP is good enough. See here for that topic:
<http://www.rawbw.com/~rem/HelloPlus/hellos.html#s4outl> Skip to:
* Lesson 6: Briefly comparing the various programming languages
+ Why ever use another language except Lisp?

I have been trying to learn Lisp for several years now and have
reached the stage where I am building some non-trivial scripts, but
these are just 'toy' scripts that I can't use on the job.

It's all fine and dandy that you can write superficial "scripts"
using PHP and Perl and Lisp, but that merely shows that all those
languages are roughly equivalent in ability to write three lines of
code to call up a library function to do a quick trick. To fully
appreciate Lisp you need to get past the idea of writing surface
scripts and start thinking of designing and implementing
data-processing algorithms that build and maintain and manipulate
tree structures as an essential part of each algorithm. The easy
stuff like sorted lists and associative arrays etc. have already
been provided in the libraries that comes with Java and Common
Lisp, so you need to think of something a little more advanced that
you could implement all by yourself. As a starter, try writing a
parser, i.e. a algorithm that converts some specialized syntax into
a tree structure representing the logical structure of the syntax.
(Don't try this on natural languages; it's too difficult to cover
all the cases in common use. Parse some contrived syntax used in
computer communications or data storage etc., such as RFC822
headers, or ELF or PE executables, or SGML/HTML, or JavaScript
within Web pages, etc.)

All I ever see is the suggestion that Lisp is good for AI.

Either you're lying, or you have deliberately avoided reading this
newsgroup for the past twenty years. In either case you sound like
a "troll", just posting garbage for the purpose of starting fights.

I'm not interested is theory, but in actual, real world practice.
Is Lisp a suitable tool to use for workaday solutions?

Yes. I use it for just about every D/P task I want done, except if
it's a Web task and PHP will do it quick-and-dirty.

What kinds of jobs do you use Lisp for?

Just about everything. Take a look at <http://tinyurl.com/352wo4>
where you'll see a good proportion of tasks accomplished by means
of Lisp.

Why is Lisp a better tool for those jobs than Perl or Java, or C
or Basic for that matter?

Compared to C or Perl or Basic, it provides more options for
directly doing what you want instead of needing to find a way to
emulate what you want within the very limited set of operations
permitted by the language.

Compared to Java, it provides a way to directly do just want you
want without needing to first provide an entire framework of class
with methods. Java forces you to use OOP, and you must work hard to
fake any other paradigm. Lisp provides all the major paradigms
directly and independently and without hassle.

And if it isn't too much of a faux pas, could you post an example
of a short script that you have used for a job?

Script (in PowerLisp):
(input-find-second-line-indent-refill-output 67)
(Don't try this on natural languages; it's too difficult to cover
all the cases in common use. Parse some contrived syntax used in
computer communications or data storage etc., such as RFC822 headers,
or ELF or PE executables, or SGML/HTML, or JavaScript within Web pages,
etc.)

Output from that script:
***START***
(Don't try this on natural languages; it's too difficult to cover
all the cases in common use. Parse some contrived syntax used in
computer communications or data storage etc., such as RFC822
headers, or ELF or PE executables, or SGML/HTML, or JavaScript
within Web pages, etc.)
***END***
nil

Then I copy&paste from that back into this newsgroup article I'm
composing (near the top, 55-60 lines before here).

Are you sure you know the difference between a *script* (when you
just pass data into an already-programmed algorithm and collect the
results back out) and an *algorithm* (the inner workings used to
define a utility, such as the set of functions used to implement
input-find-second-line-indent-refill-output, which can then be
called from a script, but can also be called from a higher-level
utility)?

dice.com ... Today, Java is at 13,767, Perl at 4,690, PHP at
2,157, and Lisp at 27.

If you can show me even one (1) Lisp programming job where Lisp
experience is the only experience needed, a job I might qualify for
with my 15 years Lisp programming experience, not a job that merely
mentions Lisp in addition to several other languages, where I
wouldn't qualify because I don't have five years J2EE it also
requires, I'd appreciate it. It's been more than ten years since I
saw a regular Lisp programming job opening advertised anywhere
closer than 3000 miles away.

For example, I tried dice.com just now:
<http://seeker.dice.com/jobsearch/servlet/JobSearch?caller=0&LOCATION_OPTION=2&EXTRA_STUFF=0&N=0&Hf=0&Ntk=JobSearchRanking&op=300&values=&FREE_TEXT=lisp&Ntx=mode+matchany&=0&=0&RADIUS=64.37376&ZC_COUNTRY=1525&COUNTRY=1525&STAT_PROV=1805&METRO_AREA=33.78715899%2C-84.39164034&AREA_CODES=&AC_COUNTRY=1525&TRAVEL=0&TAXTERM=0&SORTSPEC=0&FRMT=0&DAYSBACK=30&NUM_PER_PAGE=30>
number of mentions of Lisp down to 26 today, one less than when you
tried. The first three jobs in the local area are:
<http://seeker.dice.com/jobsearch/servlet/JobSearch?op=302&dockey=xml/2/b/2bb668b2bef6995ba2e04145f83fa251@endecaindex&source=19&FREE_TEXT=lisp&rating=99>
Skills:
Application Support Engineer - system support, data modeling, SQL,
Oracle, MS SQL Server, Linux, Unix, j2ee, Python, Lisp, XML, JSP,
HTML, DBA, Systems Administrator, Network Administrator
<http://seeker.dice.com/jobsearch/servlet/JobSearch?op=302&dockey=xml/2/a/2a942ed906a0d9f2e70e57597572cdf9@endecaindex&source=19&FREE_TEXT=lisp&rating=99>
Skills:
Must be willing to relocate to Austria for a 2-year commitment. 2+
years of storage systems or SAN or NAS or CDP or data deduplication
software developing experience. ... You will
write C++ and Lisp code for a virtual machine that will work with SAN
and NAS systems.
<http://seeker.dice.com/jobsearch/servlet/JobSearch?op=302&dockey=xml/5/3/53928a6c6631c6b8e35b57fe7cae2653@endecaindex&source=19&FREE_TEXT=lisp&rating=99>
Skills:
C++, software engineer, security, linux, platform, server, postgresql,
perl, swe, wireless ...
Desirable Skills
* Perl or other dynamic language like Ruby, JavaScript, Lisp or
Scheme
Each requires extensive non-Lisp experience ahead of anything Lisp.

From experience I've learned it's really a waste of my time to even
try looking for Lisp jobs on any of the online job boards, except
to prove a point such as here. I could spend every waking moment of
every day scanning job ads and see nothing I qualify for, only ads
that require experience I don't have and can't get in addition to
mentionning Lisp as a secondary requirement or as an afterthought.
But I'm interested in setting up a new kind of job-ad filtering
service that allows *rejecting* any job ads that require experience
the job-seeker doesn't have, so then I could run the filter
automatically and not be bothered until and unless some job opening
comes up that I *might* qualify for, not requiring any of the
skills I have already flagged as I_Don't_Have_That_Skill. It would
be run as a "cooperative", where volunteers spend time tagging the
job ads per skills (the more volunteers the fewer job ads that each
individual must tag), and then the voluneers can run the filter
based on the whole set of tags that everyone did. Some tagging
would be automatic, but humans would still be needed to specify new
keywords not previously known to trigger the appropriate tags, and
to correct mistakes made by the auto-tagging. Would anybody be
interested in joining me in such a cooperative effort?
.



Relevant Pages

  • Re: Java vs C++
    ... There seem to be an awful lot of language mechanisms in current LISP ... which is a distinction that has no analogue in other languages. ... specification sizes in pages that predated Java and Clojure; ... JVM + javac vs. gcc vs. whatever, as binaries, on the same ...
    (comp.lang.java.programmer)
  • Re: Why stay with lisp when there are python and perl?
    ... Why should I keep on learning lisp when there are python and perl? ... programming in other languages and I think my perl, ...
    (comp.lang.lisp)
  • Re: Lisp vs Java
    ... Java and Lisp are different languages with different stories and aims. ... it does need a new standard. ...
    (comp.lang.lisp)
  • Re: To the Challenge question and a quick application from a J2EE guy
    ... There are some things that could easily be done better in lisp, ... java works through accessors and mutators, ... Thare are languages that better for this, ... And it has a large set of libraries that are established by default which isnt a bad thing at all, except it has not much to do with the language and syntax. ...
    (comp.lang.lisp)
  • Miscellanous Language Ranting (was Re: For performance, write it in C - Part 2, comparing C, Rub
    ... but object oriented programming isn't ... lot of things better than Perl, ... Given the available libraries for Perl, Ruby and R, I _could_ do the entire job with any one of the three languages, at least on Linux. ... Stereotyping both Java and ...
    (comp.lang.ruby)