Ask Kent M. Pitman About Lisp, Scheme And More 353
Kent M. Pitman has been programming in Scheme and Lisp, and contributing to the design of those languages, for a long time -- 24 years. He was a technical contributor and an international representative for the ANSI subcommittee that standardized Common Lisp, and in that capacity directed the design of Lisp's error system. Scheme may be better known as a teaching language, but both Scheme and Lisp have applications (as any Emacs user knows) that go far beyond this. Now's your chance to ask him about the pros and cons of those two languages, circa 2001 A.D. Kent also has an interesting, ambivalent take on Free software that's worth noting in an atmosphere where complex issues are often oversimplified and radicalized. Since he's someone who's helped develop standards, this is perhaps a timely issue on which to probe his opinion. It's also a good time to get acquainted with things he's written, which might interest you just as much as his programming. (Soap opera parodies, anyone?) So suggest questions for Kent below (please, one per post) -- we'll pass along the highest-rated ones for him to answer, and Kent will get back soon with his answers.
Lisp becoming more used (Score:1, Interesting)
John Casey
LISP on Windows (Score:2, Interesting)
Where has Lisp been? (Score:4, Interesting)
"Good" applications for Lisp (Score:4, Interesting)
It seems to me that Lisp would be useful in areas such as derivatives ananlysis, where people come up with a new exotic type of option every day. I'm still learning about Lisp, but it seems that it might provide more flexibility to handle this constant evolution.
Is that analysis accurate? What general types of problems is lisp best suited for?
List in Mathematics Programming (Score:5, Interesting)
The prerequisite FP question (Score:4, Interesting)
Lisp - Scheme - ML (Score:5, Interesting)
I know a lot of big academic (erstwhile) lisp shops, such as CMU, have transitioned away from lisp to ML [standardml.org] and relatives [inria.fr]. Some of the reasons we might give are:
- Sophisticated type systems, catching most bugs before your program is run, ensuring safety, etc.) , partly due to compilation strategies using types
- Much more efficient (http://www.bagley.org/~doug/shootout/craps.shtml
- Increased modularity and abstraction
- Pattern matching, (subjectively) more natural syntax
In fact, I'm one of those people. I've been scoffed at by lisp fans, but most had never used ML. But I have an open mind, so, in the face of more "modern" languages, what advantages do lisp and scheme offer? Do you think that these advantages are fundamentally impossible to achieve in a typed setting?
relative benefits of using Scheme and LISP? (Score:3, Interesting)
-What arguments would you give to convince programmers looking for easier ways to accomplish traditional computing tasks to use LISP or Scheme, mindful of the overhead required to learn LISP and Scheme and the lack of programmers who are intimately familiar with them?
For example, I start to develop an OpenSource text editor at SourceForge, and I choose Scheme. What advantages would I have over someone using a language such as Java or C++ that would outweigh the fact that I might not be able to find another developer who is familiar with Scheme?
-Do you feel that any work is being done at present to bring the two languages further into mainstream?
Thanks, I genuinely like both languages, and would like to seem them gain greater adoption by programmers et al.
Overlooked practical aspects of Lisp (Score:5, Interesting)
Why do you think that people so often overlook many of the wonderful things in Common Lisp such as unwind-protect, the whole condition system (which you are of course closely associated with), and so on - things that make it very useful for day-to-day programming, and are there any such things that you'd particularly highlight, or conversely that you wish had become part of the standard but did not.
Incidentally, thank you for all of the insight so generously and regularly poured forth in comp.lang.lisp.
Good texts for learning Scheme? (Score:5, Interesting)
To further my goal of learning Scheme inside and out, i've been reading "The Little Schemer", as well as "Structure and Interpretation of Computer Programs". Do you have any other recommendations for good Scheme programming texts?
New programming language ideas in Lisp? (Score:4, Interesting)
cheers,
ric
Lisp vs the world. (Score:5, Interesting)
What strengths does it specifically have over other functional languages (such as ML), over structured languages (such as C, Algol, etc), over object oriented languages (such as C++, smalltalk, simula, etc), and over scripting languages (such as TCL, perl, etc)? Can these other languages or classes of languages be enhanced to include these strengths? If so, how, and if not, why?
What about weaknesses? What do you see as the weaknesses of Lisp, both in general and in comparison to the above classes of languages? Can these weaknesses be eliminated? If so, how and if not, why?
I mean strengths and weaknesses not only in the formal sense of the language itself, but also in terms of its usability in today's world. For example, difficulty in delivering binaries or lack of accessibility of system libraries from within common implementations of a language would be considered weaknesses.
First nontrivial program (Score:4, Interesting)
Scheme as an XML Translation Language (Score:5, Interesting)
I've become fairly interested lately in using Scheme (probably mzscheme [rice.edu]) and the SXML [okmij.org] package as a way to do arbitrary XML translations in my free time (if I had any).
From the looks of it, the ability to create a reflexive mapping between an arbitrary XML document and an interpretable programming language is too powerful to be ignored.
Do you think that in the future one of the primary roles of Scheme/Lisp is going to be in manipulation of XML documents, or is this going to be relegated as an academic curiostiy while the world struggles through parsing XML in Java?
Basis set for programming languages? (Score:5, Interesting)
New ANSI Standard (Score:1, Interesting)
And what do you think of using a bytecode standard (like
Questions I've Come Across Learning Lisp (Score:4, Interesting)
I was recently (April) hired-on as webmaster at Franz [franz.com], a commercial lisp company (we make Allegro Common Lisp [franz.com]) which has introduced me to lisp in a very loud way. Since joining these guys (and gals), I've been thoroughly indoctrinated - with my full consent - because of my belief that as computing hardware progresses programming in more abstract languages will allow for more creative and effective use of the platform. Sure, coding assembler on a new super-duper petaflop chip will still be possible and less wasteful, but who would want to code a million lines of asm to save a few (or even a few thousand) operations out of a few billion, or trillion when it will only net a difference of nanoseconds in the end? I'm less interested in making super-fast programs than I am in making artistic and super-functional programs.
I'm not expressing the views of Franz, every member of the company has their own beliefs on what makes for great programming - which is one of the major reasons I find this place so fulfilling, everyone has complex reasons for their design considerations, and everyone communicates them (something I've grown to appreciate from working in too many places where this was definitely not the case), and consequently I've been exposed to quite a few different techniques of Lisp coding since my introduction half a year ago. I'm constantly amazed that so many different styles of programming can be expressed in the same language, it's capable of accomodating any logical thought process that can be converted to code - and I doubt many of you often use recursion in a logical way on a daily basis, but even that can be done efficiently in lisp.
I'm still very new to lisp, and I was never a serious programmer in the past, but I've always been accustomed to asking questions, and here are a few that I'd like some input on:
I'd love to hear about what people think sucks about lisp and needs improvement - or can't be improved, so far I haven't found anything that I could complain about, the most difficult thing for me has been managing all the documentation on a half-century old language in the process of learning it. I've begun to love working in lisp, but I suppose being surrounded by a group so full of passion for it has helped contribute to my bias - if I'm wrong, help snap me out of it with a good argument against using lisp. ;)
What will it take to make Lisp fashionable again? (Score:5, Interesting)
Alas! In our jobs and even in our personal projects, we are often forced to use C, C++, Java, Perl, or Python -- not because we prefer to write in those languages, but for two much less satisfying reasons: first, everyone else knows those languages, so we'll get more developers with them. And second, you can't count on users and testers having the right environment to run programs written in Lisp/Scheme, so right away you take a portability hit if you choose to develop in them.
Do you think there is a chance of Lisp/Scheme becoming "mainstream" again? That is, when someone contemplates starting a project, it would be as realistic for them to consider Lisp or Scheme as, say, Perl, without worrying about losing developers or initial testers? What will it take?
LISP was commercial twice in 1980s (Score:3, Interesting)
A few years later commodity chip UNIX workstations from Sun and DEC took over the workstation market. Custom LISP processors could not evolve new generations as fast as commodity chips. Furthermore, clever LISP interpreters learned to emulate LISP hardware in coventional machine languages almost as fast as the custom hardware.
(I have worked on some oil-industry software with LISP at its core because it was first developed in the 1980s when LISP machines were the only viable workstations.)
(2) The second pulse was the "Expert System" frenzy of late 1980s. Applied A.I. was going to take over the world. Japan was going leap-frog the USA in doing this first. The expert system stock bubble and bust resembled the internet stock bubble on a smaller scale. There are a couple of survivors doing interesting things such as the CYC (enCYClopedia) project in Austin TX.
The first language of the expert system frenzy was LISP. Then a language specifically designed for logic inference called Prolog was used. And finally very fast implemntations in conventional languages such as C.
Language feature trickle-down (Score:5, Interesting)
One needn't look far to find arguments that there is still something unique to Lisp that differentiates it even from very recent languages which have had ample opportunity to borrow from Lisp. But one rarely finds a really clear articulation of that uniqueness. Do you think concur with the view that Lisp is still unique, and if so, do you think that Lisp's putative advantage really is ineffable?
If there is an advantage but it's ineffable and therefore opaque to managers with purchasing power, that would explain why Franz, Harlequin, et al have had such a rocky road. Does the Lisp/Scheme community regard this as a worrisome issue? (Some folks on c.l.lisp clearly don't think so, but I don't know if they are just a noisy minority.)
Lisp OS questions. (Score:3, Interesting)
What do you have to say about Lisp OSes? What do you think of the past efforts? I hear that the old Lisp machines (genera, etc.) can do cool things that even modern machines can't do, but I've never heard anything specific. Do you know what these are?
(My OS, HomunculOS (tm), will hopefully have it's own dialect of Lisp (If I can get around to doing this) that is hybridized with the best of Scheme. Modular, capability based, orthogonally persistent, only as much low level coding as necessary, for portability. Scheme shell text interface. )
Lisp in a hardcore science/engineering environment (Score:2, Interesting)
Do you think its worthwhile pursuing Lisp solutions to everyday-type problems in scientific/engineering enviroment, which are numerically intensive or data-intensive? (for example, a particle physics monte-carlo simulation, or searching gigabytes of DNA sequence for patterns)
Sean McCorkle
Genome Group, Brookhaven National Laboratory
The standard process (Score:5, Interesting)
Practical Lisp (Score:2, Interesting)
Interactively programmable applications (Score:5, Interesting)
One of the primary reasons why Scheme and Lisp interest me is that they are well suited for making applications interactively programmable at runtime (Scheme especially, due to its small size). This is far more flexible and useful than applications which are only extensible through heavyweight, precompiled plugins. Since the Slashdot readership tends to be made up of people who are comfortable with programatic interfaces (unlike the general computer-using public), why do we not see more such applications?
Re:Scheme as an XML Translation Language (Score:3, Interesting)
> From the looks of it, the ability to create a reflexive mapping between an arbitrary XML document and an interpretable programming language is too powerful to be ignored.
I looked at XML and thought it was too much syntax for a relatively simple problem, so I already ditched it in favor of Scheme as a data representation language.
Other people are taking the same route, e.g., Xconq uses a Scheme-like language for its scenario data.
Notice that your "stylesheet" can just be a program that does arbitrary transformations on your data, and also that you can include executable code in either the data, the stylesheet, or both. (Sandbox those applications, though!)
FWIW, when I was first learning Scheme I spent an evening writing a program that would accept an ad hoc "SBML" (Scheme-Based Markup Language) as input, and spit out an HTML output.
There's an old claim that "those who don't know Lisp are doomed to reinvent it, badly". IMO that claim was a prophecy of the coming of XML.