[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lisp considered unfinished



Against my better judgment...

Some ramblings (and maybe ranting) from a chemical engineer attempting to 
sell commercial molecular design software products written in LISP:

- First as background my formal programming experience was a one half 
semester course in FORTRAN. When I started learning LISP I said "Wow, 
look at all these parentheses." When I started learning C++ I said "Wow, 
look at all these semicolons." Learning a new language is a pain but if I 
can be reasonably sure it is worthwhile people invest the time. Look at 
the languages people learn for their spreadsheets and databases and even 
their HP calculators. If people thought it was worth it, people would 
learn LISP.

- The key factor is feeling confident that the investment of time and 
effort learning a new language will pay off. A colleague of mine felt 
confident that Visual Basic would suffice for a chemical kinetics package 
he was thinking of. The reason he felt confident was that there were a 
number of existing programs written in VB he could refer to. These existing
programs were not Gulf War or Space Station efforts. Nor was his. I don't 
understand the comment that BASIC is an inadequate language. His 
numerical integrations are as accurate as anyone else's. As far as 
development time, in under two weeks he had a debugged and documented 
$500 program that people are buying and think is great.

- I have to say that as I start a new port of our molecular design system 
I do not feel confident that it will be easy to deliver a finished LISP 
product. This is why I feel "unfinished" is an appropriate description 
for some of the LISP implementations I've used. Halfway through 
development of one product I started looking at how to generate hardcopy 
output. I could not find it documented. The LISP vendor said they had not 
addressed hardcopy in their current release. I wanted to invoke a system 
dialog. That also had not been addressed yet. Another LISP, how about 
oriented text for the Y axis in graphs. Not yet implemented.

- Reimplementing the product in Visual C++, I started with a skeleton 
application which called the system dialog I wanted, had hardcopy already 
built in, and had a CDRom of hints that talked about displaying rotated
text. The problem with C++ is that I have to compile and link my code 
everytime I wanted to make one change.

- A big step in generating confidence would be for LISP vendors to 
include a skeleton application framework upfront. Let me know what can be 
accomplished. A good test of development time would be how long it takes 
to create a "Hello World" APPLICATION (not just the display of Hello 
World in a listener) in Visual C++ vs their LISP implementation.

- Interestingly the 5MB Hello World program is not a problem for me. Most 
engineers have at least 1GB of disk and 8MB of RAM on their PCs and much 
more on their workstations. Speed differences are not a big deal either. 
However, when the system starts garbage collecting right in the middle of 
someone dragging a molecule across the screen, that is a real problem.

- My customers see only the end product. They don't care what language 
I've written the program in. They also don't care if I was much more 
productive developing my code than my competitor. Unfortunately for me my 
competitors can afford many more programmer than I can.

All in all I would hope the LISP vendors could make a clear statement 
about the markets their products address. If LISP is for research, fine. 
You are already there. If LISP is for application development 
then you need to make it a lot easier to "finish" programs.