Transcript
Patrick Collison (0:00)
It's interesting to me that we haven't experimented in some sense that much with the paradigm of programming over the past 20 years. Yes, you put those together, you now have the ability to, again, at the kind of level of the individual cell, to read, think and to write. And this starts to really feel like a new kind of Turing loop and to have its own sort of completeness. I think that's a case where the right API design, the right abstraction design ends up having just quite significant business ramifications. I think the basic IDE of as development environment and not just text editor is really the right idea. And that's the thing I want to
Podcast Narrator (0:39)
see a return to Patrick Collison wrote his first startup in Smalltalk. Its development environment let him fix errors mid request, inspect stack frames and resume execution. And he wanted that more than he wanted a mainstream language. He and his brother chose Ruby and MongoDB for Stripe instead. Those decisions still defined the company. 15 years and 44 seconds of annual downtime later. Now Stripe is shipping V2 APIs, rewriting core abstractions. First designed in 2010. It's taken years. Defining the new APIs is the easy part. Making them work alongside everything already built on the old ones is, as Collison put it, more like an instruction set migration than a product launch. This conversation, previously aired on Cursor's podcast, also gets into why AI hasn't moved productivity numbers, what today's dev environment could steal from Lisp machines, and Collison's work at ARC on foundational models for biology. Michael Truel, CEO of Cursor, sits down with Patrick Collison, CEO of Stripe.
Michael Truel (1:40)
Well, it's great to have you.
Patrick Collison (1:41)
Thank you for being here. Thanks for having me. Great to be here.
Michael Truel (1:43)
Yes, I've heard that your first startup was written in Smalltalk. Please explain.
Patrick Collison (1:49)
I don't know what there is to explain. It's the best programming language. Well, I'd worked on Lisp and Lisp dialects before that and actually I worked on Lisp web frameworks and when we went to build our first startup we first wrote it in. We first implemented it in Rails and then I found compared to Lisp, that development process kind of frustrating and I mean we don't need to get into the full details, but I thought that continuation based web frameworks were really the right way to implement web applications. There were no continuations in. There was no continuation based framework in Ruby. And kind of searching around I found that there was a good one that had just been written in Smalltalk and so I decided to play with it a little bit and then I found that Smalltalk is actually this extremely interesting development environment that had a lot of the aspects of Lisp that I'd really appreciated there. Like a fully interactive environment with a proper debugger so that you can edit the code while in the middle of some web request or deep in some stack trace or something. And you could, for example, encounter an error with some web request, edit the code to fix the error, and then resume higher up in the stack such that the entire web request would just complete. And so rather than this kind of annoying feedback loop of having to add some log statements and do this binary search, find the problem, and eventually deploy a fixed version, a process that could take an hour, you could just literally inspect the stack frame, see which variable has the wrong value, fix it like jump back up, hit proceed, and have the whole thing work. Anyway, the point is, in the hunt for this continuation based web framework realized that Smalltalk in general had just a much more powerful development environment as compared to Ruby, as compared to basically every other mainstream programming language. And so we decided to use it for the company, which in hindsight was. I mean, I don't know if it's a terrible decision or not. The reason I think one would think it would be terrible is that it would be hard to hire people and hard to scale and whatever. It wasn't hard to hire people, or rather nobody knew it, but it was easy to teach them.
