3

Almost every LISP enthusiast claims that one of the key advantages of the language is that it can be adapted to a problem rather than the problem being adapted to the language. I'm looking for real world examples of how this is possible in the field of simple business software or web apps. Is there anything more to this than DSLs? Any sufficiently complex/non-obvious examples of those?

PS: why can't I use 'problem' in the title?

Saurabh Nanda
  • 6,373
  • 5
  • 31
  • 60

2 Answers2

3

Here is the list of lisp applications on Paul Graham's site. The page contains products/companies from many different fields.

Among other things, Yahoo! Store is WAS lisp-based (Graham's product acquired by Yahoo). Thanks robert for pointing out.

I think the following stackoverflow post might interest you: What is lisp used for today and where do you think it's going?

Community
  • 1
  • 1
KK.
  • 783
  • 8
  • 20
  • 1
    Yahoo! Store was Lisp-based. Not so anymore: http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg02367.html – robert Oct 08 '11 at 11:40
  • 1
    Unfortunately, this doesn't really answer my question. I'm interested in knowing HOW lisp's 'malleable' nature has been used to tackle a business problem elegantly - the implementation details. These links are just a collection of where lisp is being used. Am I being vague? – Saurabh Nanda Oct 08 '11 at 17:59
  • @Saurabh Nanda. I cannot point you to any implementation details. Have a look at Github's [Lisp page](http://github.com/languages/Common%20Lisp). You can see some later chapters of the Peter Siebel's [Practical Common Lisp](http://www.gigamonkeys.com/book/) book to see how CLisp can be used for some applications. My apologies. As far as you being vague, I'd say do not worry. If some question is vague, its votes will reflect it. – KK. Oct 09 '11 at 05:33
0

An article on MIT's website by Paul Graham, discusses the advantages they got out of using lisp for their startup Viaweb: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/lecture-notes/lecture2lispstor.pdf

The article is worth reading in it's entirety but three quotes stand out in relation to your question:

And we were always far ahead of them in features. Sometimes, in desperation, competitors would try to introduce features that we didn't have. But with Lisp our development cycle was so fast that we could sometimes duplicate a new feature within a day or two of a competitor announcing it in a press release. By the time journalists covering the press release got round to calling us, we would have the new feature too.

It must have seemed to our competitors that we had some kind of secret weapon-- that we were decoding their Enigma traffic or something. In fact we did have a secret weapon, but it was simpler than they realized. No one was leaking news of their features to us. We were just able to develop software faster than anyone thought possible.

And to support this claim [Claim is not related to the first quote above] I'll tell you about one of the things I find missing when I look at the other four languages [python, java, C, perl]. How can you get anything done in them, I think, without z? And one of the biggest zs, for me, is macros.[5] Many languages have something called a macro. But Lisp macros are unique.

But I think I can give a kind of argument that might be convincing. The source code of the Viaweb editor was probably about 20-25% macros. Macros are harder to write than ordinary Lisp functions, and it's considered to be bad style to use them when they're not necessary. So every macro in that code is there because it has to be. What that means is that at least 20-25% of the code in this program is doing things that you can't easily do in any other language.

It's also worth noting that the main argument in the article isn't that you should use lisp. The main argument is that you should use the most powerful language available to you and not stick to the language you're most familiar with, which will be your natural instinct. In the author's case that language was lisp; for many modern companies I wonder if Go might be the current equivalent?

Mehmet Karatay
  • 269
  • 4
  • 11