I'm interested in marketing. I don't know why. I guess I like the idea of engineering ideas. I particularly like Seth Godin. He explains things in a way that I like. It's simple and practical---as opposed to how a lot of marketing books are.
One of the things he harps on is the need for a compelling story. These days, people want an authentic message in which to believe. They need a way to fit the idea into their life.
Programming languages have stories, too. They influence your choice of language more than you might think. They are not necessarily organized marketing efforts. The stories are more of an amalgamation of context from the culture at large.
Let's take a look at a few stories.
Java: Java's story has changed a few times. It used to be "Java will let your toaster talk to your washing machine." That 90's idea of appliances having conversations (about what?) died, and in came the "applet". Blech! Now Java has a new story---something that people actually want.
Java tells a story about corporate support. About Object Orientation. About your apps running on any platform. About powerful tools. And a lot of university research is using Java now.
Ruby: Ruby's story is very simple: Ruby makes programming fun and neat. Elegance combined with readable syntax. Power through simplicity and powerful abstractions. You won't believe you ever programmed in anything else.
Perl: Perl tells the story of hacker culture. It's a story of rebellion against the tyranny of mainstream languages. A story of Unix glue. Of making easy things easy. Of short programs and fun hacking. Of staring in awe at what some other programmer wrote---and how incomprehensible it is that a person could have emitted code like that.
Python: Python's story is one of elegance, design, and power. Python's library is standardized and constantly growing. It comes with batteries included. It's readable and eminently clear. You'll be more productive.
C: C's story, whether there's anyone from the C camp is telling it or not, is one of standards. C is fast. Nobody faster. Except maybe ASM. But that's just silly. C is the standard for systems programming.
C++: C++'s story is that it's C with more power of abstraction and code reuse through object orientation.
Scheme: Scheme tells of minimalism, of elegance, and power. It's a good language for experimenting with programming languages.
Haskell: Haskell tells a tale of type systems. That typing is important. That typing is the program. And a clear separation of state change from purely functional elements.
Common Lisp: Common Lisp tells a long story. It weaves a complex story of power and expressivity. That it is--in some way--the mother language. That other languages learn from it. But why not come to the source? The story has a twist--that not only did Lisp do it first, but it will outlast the other languages. They are just fads. And parentheses are a good thing.
The Common Lisp story is sometimes seen as arrogant and stubborn. Hence the name "smug lisp weenie". But whether Lisp was the source is not the real issue. The issue is whether it's a compelling story. Does it speak to people's self-image and needs?
But Common Lisp's story is more complex than I can express here. All the stories are, of course.
I'd like to point out a few compelling pieces of the story:
Paul Graham's On Lisp tells a compelling story about how and why macros are so powerful. This is probably the best account of something Lispers have been trying to say for years.
Peter Siebel's Practical Common Lisp turns the idea that Lisp is academic and impractical on its head. It presents Common Lisp as an ultimately practical language---more practical than many, in fact. It gives a good argument (in code even!) for why Lisp doesn't need so many libraries---they are easily coded up from scratch.
Kent Pitman's Answers on Slashdot (and here) explain very cogently what and why Lisp is. His story is implicit: that Lisp's benefits can be explained and that not all Lispers are weenies.
There are probably many more great stories out there.
I'd like to point out one that I recently came across. I was impressed by the story told by newLisp. Check out their logo:
.
This story rides on the idea that programming in Lisp is fun---which is true. It explicitly asserts that newLisp is focused mainly on fun.
Comments
Fun?
When did the fun stop? What would we expect from a 'Fun' implementation of Lisp? Or as they say in the street "where is defun".
Although I see your point that people wil spend lots of time on their own implementation of LISP, I can't see the economics behind yet another lisp implementation - simply because building a full CLOS is no longer a 'garage' kind of product.
I would be concerned about the linux-ization of lisp platforms.
Lisp and fun
Yeah! I still think Lisp (Common, that is) is fun. The point is, newLisp has a much stronger, more focused message. It's centered around fun.
> I would be concerned about
> I would be concerned about the linux-ization of lisp platforms.
There's nothing to be concerned about.
there is no fun
The "put the fun back in lisp" tagline doesn't really set well with me. I mean I want my language to work for me. A language should be expressive, elegant, succinct, and clear - and Lisp does those things reasonably well. I don't want to play around with a fun language, I want something that *gets stuff done*. All this talk about fun glosses over what Lisp does well. And get off my lawn! ;)
Great post by the way. I think you really nailed the unique "story" of each of the languages.
There is also pico Lisp
At the moment pico lisp tells the most interesting story to me. It's a low level, rebelious lisp which says, I don't need no compilation or fancy type systems, I can get along just as fast (or even faster)_ by running the simplest interpreter that could possibly work ... and look I've even got a web framework and an Object database implementation : ^ )
What is fun?
Maybe the fun referred to in newLISP's tagline is best understood as activity free of hurdles and roadblocks. Closer to play than work. Of course, fun is relative, and one person's problem is another person's solution.
If I were to describe newLISP in just four words, it would be: "expressive, elegant, succinct, and clear" ;-)
m i c h a e l
..and I, coming from a
..and I, coming from a unix-linux-perl-scripting tradition of more than 10 years, refer to NewLisp as "perl6".
Not the one of the Perl6 crowd - which "will be absolutly orgazmic the moment it is", but
as a language that has already been around FOR YEARS, and that lets me do now so many things so well.
The main astonishment of NewLisp is how well-packed it is (a single 230k executable), how much is in it (all modern APIs),
and how many new possibilities it opens (no need for system-wide installation,
ability to start, say 20 copies and make them talk to each other etc)
NewLisp is much, incomparably better than the "system-installed" cumbersome versions
with thousands of operators etc. etc.
NewLisp returns elegance and freedom to scripting.
PHP
What is PHP's story?
PHP can connect your database with your website and create a level of ease and interactivity that is unachievable with any other open source language. The story of PHP is open source at its best!
Post new comment