Lisp Makes Business Sense
I worked with a team of engineers for a telecom company. We were
maintaining a cell phone billing software. Being a very complex
software it took many hours to start.
frgo: Really? Hours to start? Wow, even SAP starts within a couple of
I remember my colleagues working overnight to fix a bug. Imagine the
stress they endured while the company was losing millions of euros.
Now imagine if they were able to find and fix the said bug without having to restart the software? It sounds too good to be true, doesn't it? However it's possible with Lisp.
Let me show you a simple example:
(defun hello ()
(message "hello")) ;; frgo: This is not consistent, as I think you
;; are fully aware. #'message not being
;; defined ...
(hello) => "hello"
(defun hello ()
(hello) => "bonjour"
Do you see what I did? I redefined a function without rebooting my
software. That is really cool! I don't have to waste time compiling or
wait for the program to start. As I improve a function I just need to
evaluate it to try it out.
This is not unique to Lisp. Smalltalk does it too and nowadays it can
be done with any language that uses a symbol to define a function.
However Lisp is so powerful it can even redefine class instances on
Let me define two classes to illustrate this:
(defclass class-one () ())
(defmethod method-one ((x class-one)) "I am class 1")
(setf interface-one (make-instance 'class-one))
(member-one interface-one) => "I am class 1"
frgo: Which of course should say (method-one interface-one) => "I am class 1"
Now I inherit class two of class one. Note that I have no changed the
interface one in any way:
(defclass class-one (class-two) ())
(method-two interface-one) => "I am class 2"
Of course the first method works as expected:
(method-one interface-one) = >"I'm a class 1"
My guess is other language can do this but it would be very difficult to
implement. Indeed a class can be redefined in C++ but existing
instances will behave according to the old definition.
frgo: This is unclear in its message. What has this to do with class
redefinition? (also, English spelling not ok)
The usual critics of Lisp I hear from my colleagues is that it's a
functional language and encourages recursion.
It's partly true. But what is wonderful about Lisp is that it
is multi-paradigm. If you want to do loop instead of recursion fine,
there are constructs such as do, dotimes and loop. If you are more of
a functional programmer you have everything you need map, reduce,
anonymous function, etc... For object oriented programming there is
the Common Lisp Object System (usually called CLOS).
Finally you can program Lisp with macros. Unlike their C counterparts,
they are ways to reprogram the language itself.
I hope I have showed you that things can be done in Lisp that are
difficult to implement in other languages. Now I want to convince you
that not only Lisp is a good technical choice, it also makes business
Let's get back to my experience at the telecom company. When your
software breaks it's expensive. Doing the usual fixing, compiling
testing is fine for small programs. However when you have critical
enterprise grade software running it is just unacceptable.
Let's see a real world example. Ron Garet observed a team fixing Deep
Space 1 using Lisp. I think his quote is worth meditating on:
"Debugging a program running on a $100 million piece of hardware that
is a 100 million miles away is an interesting experience. Having a
read-eval-print loop (1) running on the spacecraft proved invaluable
in finding and fixing the problem."
If the NASA has put Lisp on a very expensive spacecraft then it is
capable of running your software in an enterprise environment.
When you are dealing with software it would be a benefit when your
engineers learn Lisp. There will be a lot of reticence. After all,
programmers are very fond of their language.
But let's face the truth. It makes sense for your business to spend
less time troubleshooting software in production. You can't afford
losing time and money on critical software.
I hope I have convinced you that Lisp is worth a shot. There are two
books I recommend: The Land Of Lisp by Conrad Barski and Practical
Common Lisp by Peter Seibel which is available as a free download.
frgo: Ok, so by here you have spent 3 minutes with your presentation. If
that's all the time you have the fine. If you have more time then it
certainly would serve your agenda to promote Lisp with some killer
examples that are business relevant: Transpose the NASA example to some
web site running a shop, to some software controlling e.g. a power
plant (but please don't go nuclear here ;-) - or even just a power
transmission grid control software. It would certainly be very nice to
see some examples scling from small to big to show applicability to
every size of business and every type of business.
>> Pure nonsense... Well, maybe French sense of humor... This is the same
>> like suggesting that Latin language would be good as common languahe
>> for United Nations.
> Actually, Latin would be one of the best choices as common language for
> the United Nations.
> It's was already once the language of everybody on Earth (but the Chinese).
That's not even close to being true.
> It's the language on which are based most of the languages of South America,
> North America, Europe, most of Africa,
Again, not true. Yes, it is the mother of Spanish, French, Portuguese,
Italian, and Romanian, but not the Germanic lanaguages, Greek, Slavic, Hungarian, Finnish, etc., and that doesn't even get you out of Europe.
| At one point the software integration engineer was giving his
| presentation and listing all of the things that were going wrong.
| Someone (I don't know who) interrupted him and asked if he could
| change only one thing to make things better what would it be. His
| answer was: get rid of Lisp
And this is what they did: No Lisp in NASA spacecrafts anymore today.
Same problem for two other projects:
So is there still a project which uses Common Lisp for business? I agree
with the blog: it might be good for startups and if you can find people
who like to program in Lisp, but it might be not good for business in
BTW: currently I'm trying to learn Scala, which feels a lot like Lisp
(there are even Lisp-style macros, experimental at the moment), mixed
with a bit Haskell, but not as pure as Haskell, so easier for me to
write programs in it.
Frank Buss <f...@frank-buss.de> wrote:
> So is there still a project which uses Common Lisp for business? I agree
> with the blog: it might be good for startups and if you can find people
> who like to program in Lisp, but it might be not good for business in
What I completely fail to see is why its is so terribly relevant
whether or not LISP is good for businesses. If you like LISP, use
it. If you don't like it, don't. If you think your boss should use
LISP for some project, talk to them.
I think LISP can be enjoyed greatly without being successful in
Business is about making stuff cheaply and dependably and selling
it for the maximum profit. So the ultimate product is so shitty
that most customers will still accept it while you charge them
absurd amounts of money. What's so freaking cool about this? Trade
is nothing but subsidized theft. Why is it so important that our
favorite languages plays an active part in it?
I have used LISP (Scheme) maybe two times in my life as a professional.
Both times because it did not matter which lamguage I use. Both times
it was fun, but I guess this would change when I was pressed to create
shitty stuff whose only purpose is to extract money from people.
So why don't you just enjoy coding in LISP and get over the fact
that virtually nobody in industry cares? I, for my part, consider
this to be a good thing.
On Saturday, September 15, 2012 12:17:20 PM UTC+2, Frank DG1SBG wrote:
> And here is mine (marked "frgo"):
Thanks, I have taken account of all your remarks.
> frgo: Ok, so by here you have spent 3 minutes with your presentation. If
> that's all the time you have the fine. If you have more time then it
> certainly would serve your agenda to promote Lisp with some killer
> examples that are business relevant: Transpose the NASA example to some
> web site running a shop, to some software controlling e.g. a power
> plant (but please don't go nuclear here ;-) - or even just a power
> transmission grid control software. It would certainly be very nice to
> see some examples scling from small to big to show applicability to
> every size of business and every type of business.
On Sunday, September 30, 2012 8:22:56 AM UTC+2, Nils M Holm wrote:
> Frank Buss wrote:
> > So is there still a project which uses Common Lisp for business? I agree
> > with the blog: it might be good for startups and if you can find people
> > who like to program in Lisp, but it might be not good for business in
> > general.
> What I completely fail to see is why its is so terribly relevant
> whether or not Lisp is good for businesses.
I think I feel the pain around me with Java and C++ developpers. I would like
to improve the situation by convincing CEO, CTO, etc... to give Lisp a shot.