How Lisp Broke My Heart
I was first introduced to Lisp in college, back in the late 80s, when I took an AI survey course at the University of Michigan. I enjoyed those courses so much that I took all that my advisor would allow. I spent a lot of time at Michigan's AI lab, working on Symbolics workstations. This was the best possible introduction to Lisp, since the workstations provided a full-featured, entirely Lisp-based development environment. To this day, I've never worked with anything comparable.
Get A Job
As graduation neared, I discovered, to my chagrin, that it was difficult to find work as a Lisp programmer. I had written code in other languages, including BASIC, assembly, and Mac Pascal. But nothing in my experience compared to Lisp, so why wasn't everyone using Lisp?
Instead, employers were hiring either C or COBOL programmers. I ended up taking a job as a C programmer. I loved C. I loved the control over the machine that C gave me, while at the same time being much less tedious than assembly language. But I missed Lisp and those Symbolics workstations. And I felt less productive in C than Lisp. So the question kept nagging at me: why is everyone using C (or COBOL) instead of Lisp?
Some of my friends were IBM programmers. They used COBOL all the time. They raved about it. I thought maybe COBOL was the Lisp of the business world. I would sit down with my friends as they wrote COBOL programs, and they'd explain to me what they were doing. While I could see why my friends enjoyed COBOL, COBOL was definitely not the Lisp of the business world.
Paul Graham and Viaweb
A decade passed, and I became an experienced C and C++ developer. But my passion for Lisp still burned. I read books on Lisp and wrote Lisp code in my spare time for fun. One of the books I read was On Lisp, written by Paul Graham. Yes, that Paul Graham. At the time, he was just a guy who had a written a Lisp book. Shortly thereafter, in 1995, he started an e-commerce company named Viaweb. And they'd written their product in Lisp!
I took this as inspiration when I started a company in 1996. My business plan proudly featured Lisp under the Technology section. I felt that using Lisp gave me an advantage over people using C++ or the new kid on the block, Java. However, prospective investors disagreed. In 1998, Yahoo! bought Viaweb for nearly $50M, and I felt vindicated. I added that to my business plan, and kept pitching.
By this time, I'd built a little framework in Lisp for building Web apps. It was modeled after the Flavors Lisp dialect I had learned back in college. Everything was a mixin, which anticipated Web Components by more than a decade. I also borrowed an idea that Paul Graham had mentioned in an interview, using closures to store session state. This got added to the Technology section of the business plan. Investors remained unimpressed. One flat-out told me that Lisp was a dead language. I was apparently living in a world where selling a company for $50M to one of the hottest startups in the industry (yes, believe it or not, Yahoo! was once that company) was a meaningless data point.
Worse Is Better?
Meanwhile, I ran into a more practical problem. It was now the spring of 1999 and, having given up on trying to raise money, I'd taken $20,000 out on credit cards. I promptly doubled that with the help of my beloved Red Wings and a neighborhood bookie. I wanted to shift my focus to sales to generate some revenue, so I started looking for developers to help with product development. We needed people willing to come work for a company with no cash flow and no outside investors. And who knew Lisp.
In an ironic twist on my earlier job-hunting experience, this turned out to be even more difficult than selling prospective investors on Lisp. And I was running out of time and money. Instead of Lisp developers, I found PHP developers. PHP was becoming wildly popular. With its C-like syntax, it was easy to learn, and came pre-integrated with the Apache Web server. As a trial, we managed to rewrite most of our product over a long weekend in PHP. With a heavy heart, I put aside my little Lisp framework, and we became a PHP shop.
I deleted the Technology section of my business plan entirely. My plan was to rewrite it later. To my surprise, prospective investors didn't ask about it. We raised a round of seed capital two weeks later.
Was it possible that an industry characterized by technological innovation didn't care about the technology? That was a question I wouldn't come to terms with until years later.
But Better Isn't Worse
Our little company was eventually swallowed up by the aftershocks of the NASDAQ crash in 2002. I haven't written a line of Lisp code since. Paul Graham, of course, went on to start the Y-Combinator. (I had so thoroughly repressed my earlier infatuation with Lisp, I didn't realize at first that it was the same guy.) And he's still one of the only people in the software industry willing to say that the technology makes a difference. If YC had existed in 1998, I likely would have applied, and I'd like to think they would have accepted me. Maybe things would have been different. Maybe I'd be a Lisp hacker to this day.
My path led me instead down a long and winding road, and eventually here, to Panda Strike. And I'm both proud and humbled, if that makes sense, to work with the best developers and dev ops people in the business. We share some common passions: fine spirits, fiction, and, yes, technology. We're all hackers at heart. We all believe that Paul Graham is right, that the technology matters. That, if you want to build a technology business, you need people who understand technology. And that, today, all businesses are technology businesses.
Prologue: Whence Lisp?
You might wonder why we aren't pushing Lisp on all our clients? Or at least Clojure? For one thing, Lisp broke my heart. It wasn't her fault, of course. I was the one that left her. But maybe if she hadn't been such a dreamer…
The real reason, though, is that my passion for Lisp, and our passion for great technology, in general, still lives on, in our belief in the Open Web, and in our open source libraries. These include support for building HTTP APIs, doing functional reactive programming, automating cloud infrastructure, and much, much more. Our projects are a byproduct of our collective experience with our own personal Lisps. For some of us, it was Ruby, for others, Python, or even CoffeeScript. The languages and platforms may change, but the inspiration remains the same: to make the world a little better than it was yesterday by building something useful.