Facebook badge

Amol Aggarwal's Facebook profile

About Me

I like to write once in a while. I hope you will like my blog.

Wednesday, July 2, 2008

About lisp

Why not lisp :->
1. CL lacks standardized support for many operations that are necessities in today's world (e.g. sockets, database connectivity,foreign functions). i.e. these features are not in the ANSI standard (which is 14 years old which may explain why new features were not standardised).Therefore one must choose between using implementation-specific features or writing to the least common denominator (ie writing code which works for all implementations which is very inefficient). Implementing new revisions to standard requires a lot of time and money.
2.Some of CL's core is badly designed. For example, consider NTH and ELT. The functionality of ELT is a strict superset of NTH, so why have
NTH cluttering up the language? Say I want to get nth element in a list i get confused as both elt and nth are in the language.
Why is the function that computes the difference of two sets called SET-DIFFERENCE, but the function that computes the intersection
of two sets called simply INTERSECTION? And why do all of these functions operate on lists, not sets? It's because there are no sets in
CL, which means that CL leads one to prematurely "optimize" sets as lists.More to come on this.
3.Lisp sadly lacks good library support . That means sometimes very ordinary stuff which can be done very easily in say Java will take quite a lot of time in lisp. Say you need a functionality to do something quickly ,you simply take an appropriate function from a well documented library. Creating your own libraries is not a solution when stuff needs to be done within a deadline as expected by business clients.
4.Lisp is not a mainstream language and is hardly been used in the software industry. Just being good enough is not sufficient . The lisp on your resume is not going to make much impact .Ron Garret who programmed in lisp for twenty years and has also written some highly referenced papers on lisp says that his adoption of lisp as a career option destroyed his career as a programmer.You could contact him on comp.lang.lisp on google groups.

4 comments:

Amol said...
This comment has been removed by the author.
Amol said...

Although lisp doesn't have as good library support as other mainstream languages , one can easily access C,C++ and Java libraries using foreign function interface libraries. These are the libraries which basically converts your say c library functions to lisp and vice versa .Here again the main constraint is programmer time in gluing together different code. Commercial ACL has got good support for FFI's.
http://www.franz.com/support/
documentation/current/doc/
foreign-functions.htm

Amol said...

The time has been past when careers in software industry depends on the language you program in. It is more important to get knowledge in the domain you are working in which gets accumulated with experience.The language forms a small part of your competency although programming in lisp somewhat makes you a better programmer.

Amol said...

from comp.lang.lisp forum :
in the UK, lisp jobs currently represent only 0.011 % of
all IT jobs:
http://www.itjobswatch.co.uk/default.aspx?page=1&sortby=0&orderby=0&q...
so if you're lucky to be one of the 21 happy fews, it would be very
practical to be a lisp programmer, but if not, it would be very
impractical, because being a lisp programmer without a lisp job
wouldn't bring the bread on the table. If you don't have a lisp job,
better become a java programmer. You would have more probabilities to
get a java job (given that more than 15% of the IT jobs in the UK
involve Java), and therefore it would be more practical.

Finally, depending on your priorities, it might be practical to make
your own job. Don't count on a boss to create your lisp job, create
it yourself (become self-employeed, or start up your own company with
a secret alien-tech advantage).