The Utopian Internet Vision
00:00:00
Speaker
So I've seen a lot of stuff happen. It's been kind of interesting. It's, you know, when the network first appeared, we, I think, had this fantasy that we were going to, you know, bring understanding to the world. When everyone could communicate with everyone else, then, you know, wars would be gone and so forth and so on. We really had a concept that this is going to be a utopian future.
00:00:28
Speaker
Now that it's the future, I don't think it looks quite as utopian as we used to think it would be. Hey friends, you probably knew that text control is a powerful library for document editing and PDF generation, but did you also know that they're a strong supporter of the developer community and it's part of their mission to build and support a strong community by being present, by listening to users and by sharing knowledge at conferences across Europe and the United States. If you're heading to a conference soon,
00:00:56
Speaker
Maybe check if TextControl will be there. Stop by and say hi. You'll find their full conference calendar at textcontrol.com. That's T-E-X-T, control.com.
Eric Allman's Career and Retirement
00:01:08
Speaker
Hi, I'm Scott Hanselman. This is another episode of Hansel Minutes in association with the ACM Bytecast. Today, I have the distinct pleasure with chatting with Eric Allman.
00:01:19
Speaker
He is a computer programmer who developed SendMail and its precursor deliver mail in the late 1970s at UC Berkeley. And in 1998, he and Greg Olson co-founded SendMail Incorporated. How are you, sir?
00:01:32
Speaker
I'm doing pretty well. It's a lovely day. It is a lovely day. I woke up and I thought to myself, I'm going to try to get some sun and some vitamin D today. And I think that as programmers, I'm sure it's a constant balance between working on the thing that captures your attention and trying to get some ah some sunshine and touching grass.
00:01:50
Speaker
Yeah. have to admit, I'm looking out my window at the garden right now. so So you are currently retired. I'm curious what made you retire. ah Some people just work until they finally fall into a hole.
00:02:04
Speaker
I think I would probably have to say it had a lot to do with, well, actually a lot of things. I retired basically during COVID.
00:02:14
Speaker
i was working at UC Berkeley for my my third job at UC Berkeley, third and presumably last. And ah the last grad student on the project I was working on graduated, and the new grad students didn't show up because of COVID.
00:02:35
Speaker
But they were working together and I had worked on a project with this group and I had assumed they were going to leverage off the code that I had already written and I and you know the other people in the group.
00:02:50
Speaker
And they didn't. They wanted to go in a totally different direction. So at some point I went, you know, they're paying me to do nothing or nothing of use. I mean, I'm available, but...
00:03:02
Speaker
And that didn't sit well with me. And I was a retirement age. And my husband has a degenerative neural disease. um So he's slowly losing the ability to walk. And he wanted to do traveling as much as he could while he still could. And so that seemed like another good reason to do it.
00:03:25
Speaker
And yeah, a bunch of things just came together all at once.
Traveling with Health Challenges
00:03:30
Speaker
And have you been able to do that traveling? um Yeah, actually, we've got we've done a couple of trips, several trips, actually, and we've got two other big ones coming up this year, including a train tour around Africa.
00:03:47
Speaker
Oh, wow. so That's amazing. Yeah, it should be kind of fun. So i've been I've been married for 25 years. You're coming up on 13 this year. Is that right, sir?
00:03:59
Speaker
Actually, based on the beginning of our relationship, it's more like 40... Oh, my goodness. 44, 46, somewhere in there. Okay, that's amazing. We got together in 79.
00:04:14
Speaker
Oh, wow. That's fantastic. and And your husband, Marshall, is a well-known computer scientist as well. And I'm curious because my wife and I, she is non-technical. She's a nurse. And we were writing a book on what it's like to be in a mixed marriage. And the joke is the mixed marriage is I'm technical and she's not.
00:04:31
Speaker
Is two technical people in a relationship
Technical vs. Non-Technical Relationship Dynamics
00:04:34
Speaker
challenging? Do you chat about computer stuff or do you just keep that part of the relationship separate? No, I think we you could safely say that we chat about it. and I mean, he's got his stuff that he does. He's basically a file systems guy.
00:04:48
Speaker
Yeah. I don't do file systems, but you know, he doesn't do email. So actually I don't do much email anymore. oh Sure. Getting far too much of it and so forth. I use it.
00:05:03
Speaker
Yeah. But I'm out of the development cycle now.
Early Work in Technology
00:05:07
Speaker
And in fact, My main gig is a 501c3 that I helped found called the Berkeley Historic Building Fund.
00:05:18
Speaker
And we raise funds for preservation of historic buildings, starting with the Hillside Club, which is just up the street from me. That's fantastic. is that Is that amazing, though, to let go of so much computing? I'm just really, as I start thinking about when I'm going to retire,
00:05:36
Speaker
Do you just release it into the universe and you just to say, I'm just not up on the latest stuff or did you cling to trying to stay current and stay up to date? Well, I've got a, uh, um, poor ability to concentrate, I guess you'd say. it I've done many, many things. So, uh, various stuff I've done. I started off really doing database systems.
00:06:02
Speaker
And I was the lead programmer on the Ingress project at UC Berkeley. That was my first university job. right And I've done sort of user interfaces to database systems, which I think I overreached for the ability of the technology to support it at the time.
00:06:23
Speaker
So that one never got out as a product. And um I worked on neural networks at International Computer Science Institute for a while.
00:06:35
Speaker
So that's basically the same technology behind all the AI you see today. But back then, you know, a mega flop was really, really, really fast machine. And now it's like they're gigaflops. that one, we got some interesting papers out of it. It was an academic organization, but we never The goal was continuous speaker independent um speaker speaking the speech recognition.
00:07:10
Speaker
And we never really got that to the point where it worked to our satisfaction. Now, of course, you know my phone can do it. What does that feel like? Because I feel like I can see so much history, and I've only been doing this 35 years,
00:07:26
Speaker
to To be sitting at the tail end of this and go, wow, we really built a deep stack of stuff. Like we're, we're teeter tottering at the top of this pyramid of all the different protocols that came before us and all the pieces and each, you know, each additional layer of abstraction is indistinguishable from magic.
00:07:46
Speaker
And now I've got this pocket supercomputer that can recognize my voice and do stuff. Yeah.
Evolution of Networks and Internet
00:07:53
Speaker
Well, I actually started on the ARPANET.
00:07:59
Speaker
And that was a very different network. They only felt they needed 8-bit host addresses. Should be enough for everyone. and not Yeah, exactly.
00:08:11
Speaker
And what was it? Thomas Watson, I think, said the mark international market for computers is going to be about 100. Yeah. Just be a mainframe on each in each country, and that would be it. Each country would have their own mainframe, and maybe one per continent should be and should should be fine for everyone. Yeah.
00:08:31
Speaker
And ah so I've seen a lot of stuff happen. It's been kind of interesting. it's You know, when the network first appeared, we, I think, had this fantasy that we were going to, you know, bring understanding to the world. When everyone could communicate with everyone else,
00:08:52
Speaker
then you know wars would be gone and so forth and so on. We really had a concept that this is going to be a utopian future. Now that it's a future, I don't think it looks quite as utopian as we used to think it would be. So that's disappointing.
00:09:09
Speaker
It is disappointing. It does feel like eternal September really is kind of eternal at this point. There was a smaller kind of feeling of of of community and neighborhood in the early days when I first got online.
00:09:21
Speaker
in in the late 80s, mid 80s, late 80s, it just felt like there was maybe a couple of thousand of us and we were all pretty pleasant. And now it seems somewhat chaotic. I actually have a a book in the other room, which was essentially a phone book for the ARPANET slash early days of the internet with the name, address, and phone number of every user on the network.
00:09:47
Speaker
And I'm in it. Yeah. I, uh, I had a Fido net node for a time, that I ran in my bulletin board and, was, you know, making local phone calls, trying to not pay long distance phone calls and bouncing internet, uh, bouncing email rather around or Fido net mail at least, uh, for a time. And I, I had a ah spiral notebook with kind of the 30 or 40 folks that I knew around. It felt like the ham, it was like ham radio, you know, it was very small.
00:10:18
Speaker
Yeah, I guess ham radio still is. Yeah, I guess it's well because it's hard. You've got to get a license, which is an interesting idea. In fact, maybe they should have given us a license to make to send email.
00:10:29
Speaker
That um would have solved a lot of problems. Yeah, indeed. you weren't Were you thinking planetary scale when you're building these systems, when you and your compatriots were doing things like sending mail? I mean, email is kind of the original open adversarial system. It's open, it's federated, it's effectively unauthenticated, or at least it was at the time, but it's also constantly attacked. And, you know, I'm curious.
00:10:55
Speaker
Were you thinking this is for everyone for the world right now, are you were just building it for you and your your friends? So there was already a network known as UUCP. Right.
00:11:06
Speaker
And that was you know dial-up modems. And it turns out that I know the guy who first brought UUCP to Japan. I know the guy who brought the first UUCP to Europe.
00:11:21
Speaker
And so, and ah Australia, actually. is that Is that Mike Lesk? ah No, no. Toast Hagen in the Netherlands, Robert Ells in Australia, and why am I blanking on his name in Japan?
00:11:40
Speaker
um Anyway, the point is we, yes, we were very early on thinking there's no particular reason why This can't be an international thing, which is, I think, part of the reason we really thought it was going to make the world a smaller place and everyone would discover that we're just people and so forth. Like I said, fantasies.
00:12:04
Speaker
Did it, uh, send mail, uh, is somewhat famous for being extremely configurable. maybe a little complexity crept in there over, over time. Do you see any parallels between send mail and sending mail and the kind of, you know, retries and cues store and forward? Uh, and then what we're seeing in agents and things like that in AI, do you think at all about how we're all just building the same thing over again, just a different, uh, in a different font?
SendMail, AI, and Configuration Complexity
00:12:32
Speaker
Um, Actually, I hadn't thought about the comparison to AI, and I probably should have, because the reason SendMail is so configurable is because it started before the internet.
00:12:47
Speaker
And so I was trying to get the local network at Berkeley, which was called, creatively enough, BerkNet, and UUCP and the ARPANET and so forth to talk to each other. And they all had different address syntaxes.
00:13:02
Speaker
and different semantics and so forth. So SendMail was designed to be the glue that would hold them together. And I had taken an AI course and ah one of the things we talked about was production systems. And I said, you know, I know AI is maybe overkill for an email program, but production system looks like it fits really very nicely.
00:13:30
Speaker
And in fact, That's the core of the SendMail configuration file. So it's been proven that it's Turing complete, which probably doesn't need to happen. And the truth is, it's, I mean, the world pretty much agrees now that everything should be user at sign domain.
00:13:49
Speaker
And nobody uses host bang host bang user or, and you know, host colon colon user or any of those others.
00:14:03
Speaker
So, yeah, it was basically setting up something where you could use the effectively an AI technique to route email. and ah But it hadn't occurred to me anything comparing it to large language models.
00:14:22
Speaker
Yeah. what What do you think is a design decision in Sendmail that may have aged better than you expected? Like, you know, you don't really know if these things are going to be extensible, if they're going to hit some kind of a design wall.
00:14:34
Speaker
But looking back, is there a particular design decision that may be aged quite well? Well, I mean, there was... A couple of things that I did kind of on the side, um not as well known as as my background with SendMail is that I also did the first implementation of syslog.
Syslog Development and Impact
00:14:55
Speaker
ah hu And i did that as a tool to use for DeliverMail, the predecessor to SendMail. And at the time, we didn't have interprocess communication and so forth. So i had to use things called MPX files.
00:15:13
Speaker
And then, you know, the IPC came along and I converted it to use the new technology and so forth. That's proven to have real legs.
00:15:25
Speaker
um I mean, there's dozens of implementations of syslog, all basically at their core, the same thing that I did as part of the implementing SendMail.
00:15:36
Speaker
Yeah, that's a great point. I mean, syslog, syslogd, these are something that is keeping track of everything for the last, what now, 50 years, 60 years.
00:15:50
Speaker
and And now on top of that, we have new ideas like open telemetry. And I'm seeing people shuttle their logs around with things like that. That seems like a pretty pretty successful project.
00:16:03
Speaker
Yeah, well, it was you know it wasn't a project in and of itself. it was really just part of a much larger project. But and I'm just thinking if there's anything else.
00:16:14
Speaker
I mean, to be perfectly honest, the send mail rewriting rules, which are the things that people complain about the most because they're big and complicated. Yeah. I totally understand them.
00:16:27
Speaker
But that was very successful because it made SendMail be the glue that could hold the universe together as it was still in this nebulous state and you know still you know an astral cloud as opposed to a solid planet.
00:16:44
Speaker
And um so I think the uptake of email would have been much slower if people had been stuck with sitting in these, these pools that didn't talk to each other. Yeah. And the, the fact that they were recursively applied that send mail rules are recursively applied.
00:17:06
Speaker
Uh, I think some people have found that to be somewhat mysterious and frustrating, but that's kind of the genius of it. Yeah. I mean, you can use recursion, but it's not necessarily the necessary in order to do the job.
00:17:23
Speaker
Okay. But that level of flexibility was kind of the secret sauce. Yeah. It was also part of the thing that made it sometimes really challenging to debug. but
AI Advancements and Coding Tools
00:17:41
Speaker
you said that you were doing AI, like AI had a moment and I think AI has had a branding moment, but you were thinking about AI and your compatriots and your peers in the space were thinking about AI very, very long time ago.
00:17:54
Speaker
Did you all in the creating and thinking about neural networks, see transformers and generative pre-trained transformers like coming? Was this a inevitable thing that would hit the hockey stick and then,
00:18:09
Speaker
take off or did you kind of like wake up when chat GPT happened? You said, oh crap, they, they, they did it more of the latter. now When we were doing it, we were just trying to get it to run fast enough to to implement a relatively small neural network.
00:18:24
Speaker
We weren't using ai in general. I don't think we even ever called it AI. It was just neural networks. Right. Um, you know, a name that seems to have gone out of favor, but still there at the core.
00:18:39
Speaker
But the new models are so much more sophisticated. They've got call-outs to engines that are not you know stochastic parrots and so forth. So I've actually started playing with Claude to do some coding stuff. I do still code some at home. yeah And it's really stunning.
00:19:03
Speaker
um The thing that really... became clear to me is, you know, I can only absorb so much stuff in my head.
00:19:15
Speaker
And asking Claude to do these things, it said, oh, yes, there's a already a library to do that. Here's how to use it. it's like, I've never heard of that library before. And you're right. It does exactly what I need.
00:19:29
Speaker
So that alone, you know, has me as a bit of a fanboy these days. It is extraordinary. I feel like Opus last October kind of was the moment. And you know Claude Opus is an extraordinary extraordinary model.
00:19:44
Speaker
And i kind of go back and forth and I get a little bit of an analysis paralysis because I think to myself, maybe I'm a stochastic parrot and maybe what I'm about to say to you is the statistically most likely next token based on the last 50 years of my ah my life and the big, in the context window that I carry around with me, maybe I'm just saying the next obvious thing.
00:20:05
Speaker
So then you get all in your head about, are they parrots and they're just saying code because they've seen code or is there more there? Because I like the stochastic parrot like analogy. I think it is a a good one because I refuse to believe that it is in any way conscious or, or creative.
00:20:25
Speaker
Yeah, I mean, here we start getting into the realm of philosophy as opposed to computer science. You know, what is consciousness anyway? I think you're qualified to have an opinion, though.
00:20:36
Speaker
I'm qualified to have an opinion, but it's just my opinion, and hence it's worth the price you paid for it. I will take it, though. No, I... So it certainly presents as though it's as though it's got some kind of consciousness. It carries on a discussion with you and so forth. But for example, um i had cases where you know Claude will say, oh you know to fix that bug, you do this.
00:21:11
Speaker
And then there's something else and Claude fixes that but puts the other bug back in. And I don't think that and exhibits his consciousness.
00:21:23
Speaker
You know, it's Claude is very helpful as long as you use it effectively, but I can't see doing Vibe coding where you just say, here, you know throw me some code, I'll test it and tell you if it works or not. And if it doesn't, try again. Yeah.
Personal Coding Projects
00:21:40
Speaker
It is so funny though, that we made programming languages and syntax and we we we we worked so hard to make it, to make ourselves able to express our intent clearly and unambiguously to the computer.
00:21:56
Speaker
And now we've created the prose compiler where one can just talk in English or any language. But if there is a lack of clarity, it will fill that lack of clarity with the statistical mean or just randomness. It'll,
00:22:10
Speaker
come up with something, it'll vibe it. and ah And then we are frustrated when it doesn't work out because we were we not clear or was it that it filled our lack of clarity with its with its randomness? And then I kind of waffle back and forth between, I don't want to remember all the details and and I don't want to type all this stuff. this is It's still fun. It's still great, but it's it's it's's frustrating. I waffle back and forth between love and hate for AI-assisted coding.
00:22:37
Speaker
I can certainly understand that.
00:22:41
Speaker
Sorry, I had a thought, but I've lost it. That's okay. If you get it back, you can interrupt. do you Do you code primarily just for projects? Do you have an idea and you think, I'm going to code this? Or do you like, like you know I know you have a garden. Do you like, oh, I'm going to code some some IoT, Internet of Things, for the garden? Because I have all kinds of projects that I'm working on just to make the house run better.
00:23:00
Speaker
Well, I think this counts as making the house run better. I mean, we've Kirk and I have a wine cellar. And so at some point... A long time ago, I started keeping a database, which was just a flat file, you know, parsable, but flat file.
00:23:18
Speaker
And at some point I went, I want something fancier. So I built myself a wine database with a GUI interface and so forth and so on.
00:23:31
Speaker
And, you know, periodically we want to tweak that. So there's that, there's some home automation, things which involve code. i find myself writing you know and C++ plus plus for the Arduino and usually um some other higher level language ah for general coding stuff that's going to run on my server and what not. I use MQTT a lot for getting data around. So things don't have to be all on one piece of hardware. you can just talk to the broker and get what you need.
00:24:09
Speaker
So, you know, Python has been probably my most common language, even more so than C one, which is a little shocking because I was a dedicated C programmer for most of my career.
00:24:22
Speaker
It is surprising. i have I'm C-sharp programmer, but ultimately any any any curly brace in a storm, you know honestly... I think we could probably argue about whether we should use the Allman indent style or whether, you know, with the correct way to do indentation and do curly braces. But so I do C sharp, but I keep falling back into Python. It's just kind of simple and easy. And when I do my my home automation, even just as a point of note, I'm a type one diabetic and I have an an insulin pump and a sensor and it all kind of runs on Python. And I've got Python systems that will go and check my blood sugar and notify my wife and tell me if things are going to be okay. And certainly I could have done it in any of the curly brace C languages, but I keep falling back into Python these days. Well, Python's added enough, basically a type system hu that it's becoming, the problem with Python when it's in pure pure dynamic mode is you never know for sure whether your code's debugged or not.
Programming Languages and Type Systems
00:25:24
Speaker
And, you know, a strong type system can really help that. So I haven't really made the switch to typed Python. I I'm aware that it exists, but i haven't read up on it enough to know how to use it effectively.
00:25:38
Speaker
Yeah. The same thing, of course, happening in JavaScript with TypeScript, where you kind of go back and forth between how strongly type, there's kind of a slider bar of typedness and how much you want to care as you move from JavaScript to TypeScript.
00:25:51
Speaker
Yeah. The, uh, I've never been a JavaScript fan. Let's just put it that way. Well, so I've always felt like I like to joke that JavaScript is not the language that we deserve, but it is the one that was that we have.
00:26:06
Speaker
So it's an imperfect language, much like English, but it's the one that we're all speaking, unfortunately. Yeah, well, some of the type automatic type conversions between things that, you know, they are strings, but they might be numbers. So that was like we'll just, you know,
00:26:23
Speaker
Oh, it's a number now. And that's not what I always want. No, it's not. but yeah So you might enjoy TypeScript. TypeScript, would basic because type typescript of course, came from Anders Heilsberg, who made you know Delphi, and he made C Sharp. So he was basically finding JavaScript equally objectionable, as you were finding it, and said, what if I applied what we know about C Sharp and strong typiveness to JavaScript and really locked it down?
00:26:53
Speaker
So I think most of the JavaScript that people are writing these days has some some common sense typing, I i think. Well, thank goodness for that. Thank goodness for that. Indeed, sir.
00:27:08
Speaker
what have you What have you been doing over the last ah five or ten years when it comes to...
Teaching and Future Prospects
00:27:14
Speaker
coding and like your own learning. Do you, I'm just trying to plan for my, you know, the the remaining years of my, uh, my career. And I'm wondering, will I just become a tinkerer or will I go back to school and, and teach? Like, cause I feel like I know a lot of stuff and I want to share it with, with folks. And I'm wondering when you were doing your work in academia, if you found that to be really satisfying.
00:27:37
Speaker
Well, I do have to say the best part of my last job working on a research project again, was the students. you know The students are just so bright and so creative and so forth. that Definitely, there was one of the students, I usually came in and more in the morning. I'm more of a morning person, I guess. And he would wander in around noon and immediately start talking with me about whatever it was he had been thinking about. And it's like half the time I didn't know what he was talking about, but, uh, it was so great being bombarded with this pretty much every day.
00:28:21
Speaker
uh, I haven't, been seriously trying to keep up on, you know, the absolute most current version of everything, partially because, you know, I'm traveling a lot more.
00:28:36
Speaker
and you know, that feels like too much work to be something you do on vacation. Yeah, it's it's going to be fascinating. i have a number of friends that are telling me that I'm fooling myself into saying that I'll retire and that I may fall in and out of retirement, depending on what feeds my spirit and what works well for my family at the time. So it's going to be interesting to see if I can rise to the challenge.
00:29:01
Speaker
Yeah. Well, I actually did retire several years ago, or at least I thought I had retired and, um, at some point got bored. And actually that was, um, right about the time I went back to the university. I got a call from somebody I had worked with in the past who,
00:29:22
Speaker
I really liked working with. And he called and said, so I'm working in a new lab up here on campus. And we've got seminars that you might find interesting. And oh, by the way, free lunch.
00:29:33
Speaker
um So I started going to those and ended up hanging out in a research group. Just, you know, they said, hang out if you want. Our meeting's right after the seminar.
00:29:45
Speaker
And at some point they said, you know, if you're going to be here this much, we really ought to pay you. And so that was the beginning of my last job.
00:29:57
Speaker
That's a pretty good gig. I mean, if you can get snacks and also be paid for it and you enjoy the work, that's kind of the optimal scenario. It it is kind of, yes.
00:30:08
Speaker
Well, and i I admire you very much. I think that I hope you appreciate how much the people in the circles that we run in appreciate you.
00:30:19
Speaker
You, of course, were an ACM fellow. You've done a huge amount of work. Your sister is also well-known and has been doing a lot of open source software since the 80s. I hope that you give her our best. And also to your husband, Kirk, we appreciate you all and the work that you've offered us over so many years.
00:30:37
Speaker
Thank you. I do find it amusing that you know my husband, myself, and my sister all have Wikipedia pages. That's a kind of a pretty cool flex. I mean, you have to admit, at Thanksgiving dinner, you know, the with the number of Wikipedia pages is probably three ah for a long for a long table.
00:30:56
Speaker
Yeah. Is there anyone else we should know about with a Wikipedia page in the family?
Wikipedia Fame and Family
00:31:03
Speaker
Not that I'm aware of. Well, they need to they need to get on your level and work a little harder then, don't they?
00:31:10
Speaker
Yeah, and well, I have to admit, I feel like I've played most of my career, and not really worked much. and And that is the goal. And if you can say that with a straight face, then you have lived a blessed life, sir.
00:31:23
Speaker
Yeah, except for email standards. I was doing standards for a while and decided I really, really did not like doing standards. Yeah, standards committees are a lift, I will admit. That is a challenge. Yeah, so i retired from that, but not from my job at the time.
00:31:46
Speaker
Well, i thank you so much for spending time with us today and for chatting with me. It was very nice to meet you, sir. Very nice meeting you. Thank you. We've been chatting with Eric Allman. This episode of Hansel Minutes is in association with the ACM Bytecast, and we'll see you again next week.