The Stack Overflow Podcast

How a college extra-credit project became PHP3, still the bedrock of the web

Episode Summary

The home team chats with Andi Gutmans, Google’s GM and VP of Engineering, Databases about the forgotten beauty of Pascal, why so many devs hate PHP, and why companies should prioritize the developer experience.

Episode Notes

A high school class on Pascal launched Andi’s interest in programming (starting on an Apple IIc).

Andi was bored with his university studies and took on an extra-credit programming project that turned into PHP3, the version that built a million websites.

PHP gets a lot of hate, and we have two theories about why. First, it’s primarily brownfield development, and we all know that hell is other people’s code. Second, it democratized development—a great thing in many ways - that nevertheless led to a lot of less than professional code making it’s way to production.

Andi cofounded Zend Technologies to oversee PHP advances and served as CEO from 2009 until the company’s acquisition in 2015. After Zend Technology, Andi became one of what he jokes was “five folks in a garage” building a new graph database for Amazon.

Now, at Google, Andi runs the operational database for Google Cloud Platform, including managed third parties and cloud-native databases Spanner, Bigtable, and Firestore.

His background in programming makes Andi sensitive to the importance of prioritizing developer experience: “the number-one person using our services are our developers. And so we need to make [our technology] super-productive and simple and easy and fun for developers to use.”

Connect with Andi on LinkedIn.

Episode Transcription

Andi Gutmans I always say the difference between a programming language and databases is one's a hash table, the other ones, a B-tree. Obviously the differences are bigger than that, but I'm a systems person, so speeds and feeds and really thinking about how to optimize services and products so customers can get the best priced performance and the best user experience I think really matters. One thing that I have brought into my view of databases is that developer background that I have. The number one persona using our services are our developers and so we need to make it super productive and simple and easy and fun for developers to use.

[intro music plays]

Ben Popper UiPath offers a platform for automation, combining robotic process automation, RPA, with a full suite of capabilities like AI. Developers of all ranks are building upon the UiPath community edition. Expand your tech suite. Learn with UiPath Academy at academy.uipath.com. 

BP Hello everybody. Welcome back to the Stack Overflow Podcast, a place to talk all things software and technology. We have a very exciting episode for you today. I am joined as I often am by two of my wonderful co-hosts, Ryan Donovan and Cassidy Williams. Hi, y'all.

Cassidy Williams Hello!

Ryan Donovan Hey, Ben. 

BP So it's not every day we get to talk to folks who helped to create one of the programming languages that have made a big impact and is used by a lot of people. Today, we're going to have a great guest, Andi Gutmans, who works at Google on the database side. He's a GM and VP in engineering over there, and also was important in the creation of PHP, or in its early creation. So we're excited to have him on. Ryan, I know you have strong feelings about PHP, but I'm going to ask you to just wait. Just hold on tight.

RD It's not me. 

BP It's not you, right. It's the listeners. Andi, welcome to the Stack Overflow Podcast. 

AG Hi, thanks for having me. 

BP So Andi, the first thing we always do, just so folks can get acquainted. Tell them a little about who you are, quick flyover, personal background, how you got started in programming, and what it is you do day-to-day right now. 

AG So I'm Andi Gutmans. Just personal life, I'm married, three children and a dog. That was kind of the compromise with my wife. I wanted four, she wanted two, and we got three plus one. I'm Swiss born, British mother, moved to Israel when I was 10, and then moved to the US about 17 years ago, so I'm quad citizen. I've always been dabbling with computers since I was a pretty young kid in Switzerland. I probably started to do a bit of programming I would say in middle school to junior high, but really just simple stuff like Basic and so on. But when I was a freshman in high school that's when I took a Pascal class, and I'd say that's when I really got into programming. That was on an Apple IIc, if any of you folks remember that. I'm dating myself here, but Pascal was a beautiful language and I really started getting into development there. I was also extremely curious and curiosity is something that stayed with me ever since and I always look to work with curious folks. So if you remember back then, you had like the Norton utilities and they did all kinds of funky things like indexing your hard drive and defragmenting your hard drive. And they were even able to do kind of a smooth mouse cursor in the text ASCII environment. And so that curiosity, having also learned Pascal, I just started to try and replicate different things that I was seeing, and not very successfully. I would say I could never quite build the defragmenter, but a lot of my friends were playing video games at the time and I was coding. It was just something I really liked doing. 

BP You mentioned you sort of thought of Pascal as a beautiful language, so let me ask you a two part question. One, what about it was beautiful? What attracted you to it? And then, two, let's segue from there into your work on PHP, how you got involved in that, and in creating what we know of that language today?

AG I think Pascal was just really well structured. It was very clear how to build things. I was early on in my developer career, I had to build things like binary trees and so on for the fun of it, kind of how pointers worked in Pascal and so on was just very elegant, and I would say relativity error-proof, right? So it was just something I really liked doing. When I went to university, it was kind of interesting because I suddenly discovered that most of what you actually study is math and physics and not computer programming. And so I was a bit bummed out. I was a pretty bad student. It took me about four and a half years to finish my three-year degree. And I think that ended up being my excuse to actually code more. And so one of the things that me and my partner called Zeev Suraski, we were trying to get extra credit projects because we didn't like the math and physics as much. So we said, "Why don't we get some coding projects?" So one of the professors, and this was back in 1997, asked us, "Why don't you go and build a shopping cart?" And right now you've got lots of off the shelf software you can download. But back then that was a real novel thing. And so we actually started to build a shopping cart, and we found this awesome language called PHP/FI, which actually my partner had been using when working for an ISP. And we really liked the idea of the language, but we thought the language wasn't robust. And we looked under the covers, we looked at the source code and we thought it wasn't really built by someone who had a computer science background. And we had just finished our compiler course, so we basically felt like we could do this better. We put our shopping cart project aside and we started to rewrite this language, and that's what ended up becoming PHP3. So we basically used our compiler course knowledge, built PHP3, went back to the person who wrote PHP/FI, said, "Why don't you move that community over to us?" And then PHP3 is really what made PHP take off. We went from about 30,000 users in the world to about a million and a half within 18 months. So that was really exciting. We went back to our professor of the shopping cart and asked her, "How about you also take this as a second project?" And she was like, "No, no, that's not interesting to me. You just go and do your shopping cart." We went to our compiler course professor and he loved the idea. So he actually mentored us while we were working on it. We worked on it night and day, so our grades went down even more. We didn't have time to study. But that's what ended up becoming PHP3. And frankly, just before we launched PHP3, we looked at the work we had done and were like, "We really didn't do such a good job. We could have done this way better." And then just as we announced PHP3, we actually started to work on the Zend Engine. Zend stands for Zeev and Andi. I'm the Andi. That's actually the run time for PHP4 and beyond. So just this kind of curiosity, continuous improvement kind of psychology just made us continue to try and make things better for users. 

RD That's amazing to do that as a college student as an extra credit assignment. 

CW And it's wild to think also as a side note that 1997 was 25 years ago. That was the origin of all this. 

RD Don't remind me.

AG Yeah, don't remind me how old I am. 

BP So when this sort of high velocity moment came, you saw it go from 30,000 users to over a million, were there specific problems you think at that time in '97 or so that it was solving for people? Were there things that it could do that other languages or frameworks couldn't? What do you think drove a lot of that adoption?

AG A few things drove the adoption. First of all, it was a very easy language to pick up, and that's actually one of the things that attracted us to it in the beginning. You could come from C, you could come from Basic, you could come from Pascale, you could come from almost any background, both developer, non-developer, and it was very easy to pick up. The second thing that happened was, as we built PHP3, we built this extension API and also integrated it more closely with MySQL and some of the other databases and other technologies. And so what users really valued about PHP was that out of the box, it had instant connectivity to MySQL to MSSQL, if you still remember that. And so that kind of instant gratification was really significant. And then we also kind of designed it for the web. So a lot of things like input and output in a web context was just incredibly easy with PHP. So it really helped both the developers and the non-developers dabble in web and build web applications. And so companies like Yahoo and Facebook and kind of that whole generation of organizations actually picked up PHP and built some really cool businesses. 

RD Something I read is that 70% of websites today are built on PHP. So it's still got a lasting effect. 

AG It's a huge amount and part of what's obviously driving those numbers are products like WordPress, Drupal, Magento, a lot of these out of the box packaged apps. We have so many languages right now on the web, like PHP, Python, Node, and so on, so I'd say it's not as popular as it was back then. I mean, back then really everyone was using it. But still, it's I would say, the workhorse of the web, and it's still driving a lot of what you're seeing today.

RD Are you still involved in the development? 

AG I'm not anymore. I've become too busy, but I do look at the internal mailing list once in a while and I try and still keep up, but I'm just not successful at it anymore. 

RD I know it gets a fair bit of flack these days in our developer survey and some of my friends were like, "Ugh, PHP." But I have a pet theory that it's because PHP is in a lot of kind of brownfield development. It's in a lot of existing products, so you have to deal with other people's code and all the languages people love are on greenfield projects. 

AG I think that's one point. I think the other thing we realized was, because PHP was so approachable, you had a lot of non-developers actually writing applications in PHP. Hence you got a lot of not great code and not secure code. This was also the kind of personas who were using PHP, which we ultimately saw as a success because we kind of democratized development. But on the flip side, it also led to quite a bit of not great code out there. So obviously there's a lot of philosophy around programming languages, and I'm a C developer, I'm not a PHP developer myself. I think PHP obviously made a huge impact. It was the first language lots of people picked up. But I think there's a lot of other great languages out there today and if there's anything I've learned, great developers these days pick up lots of different languages and use the right tool for the job. 

CW Yeah. A friend of mine works at Wikipedia and she was saying that sometimes when she's hiring people are just like, "Ugh, PHP." And she's like, "You don't get it. The bad PHP is really bad, but the good PHP is kind of nice." It's exactly what you're saying. 

AG You can actually write beautiful PHP. You can write object oriented, great frameworks, very secure. PHP today does enable very professional development. Also from a performance perspective, it's probably the fastest dynamic language out there, if not one of the fastest. But I think it is a bit of that perception like you say, which is there was a lot of bad code out there, so as a result, you know. 

CW It happens with age, too. Sometimes good code today is going to be really terrible code tomorrow. You never know.

AG I don't think I want to look at the code that I wrote back then. 

CW No! Now that you're focused on databases and stuff, speaking of new languages, what's your tech stack now? Are you still very deep into C or do you dabble with other ones?

AG So luckily we have folks who write much better code than I do. So I don't really write code anymore, although I can still read code. But I would say the tech stack at Google, there's definitely a lot of C++. We build a lot of high performance systems so I would say that's probably the number one. Then you have other things like Go lang and other languages. In my prior role when I was at Amazon, there was a lot more Java also in addition to things like C++. But I think in all of these projects you kind of end up using the best tool for the job and we also give flexibility to development teams, within reason. These have to be languages that have good ecosystems, are secure, have good talent pools around them. But I think teams have quite a bit of flexibility on how they want to build their services. 

BP So, let's back up for a second there. We were talking a bunch about creating PHP. Was that then a career for you or were you working simultaneously while trying to build and maintain this? 

AG So I started a startup in the PHP space in parallel to working on open source called Zend Technologies. That was kind of the PHP company. And so what Red Hat is to Linux, we were to PHP. And we also both built open source software, we also had some proprietary products like Zend Server which was doing APM and CI/CD. We co-founded a company and we ended up selling the company in 2015. So really, once we sold the company, then it was time for me to do something else. And I'm very curious as I said before, and I like getting myself out of my comfort zone, so I ended up going to databases and I had to learn databases from scratch and that was a lot of fun. 

BP And so you did that first? You went from selling the startup to working at Amazon. When I read it, it said you were interested in the cloud, but it was always databases that sort of pulled at you and that's what you did there?

AG Yeah, because even in the company I ran, Zend, we were doing quite a bit of cloud already. We were supporting AWS and Azure and GCP, so we did a lot of cloud, but I was always building the connectors to the databases or the APM tool which would kind of inspect the databases, never the database itself. And so there was this interesting opportunity at Amazon to go and build a new graph database which was really exciting, and it was like five folks in a garage. And I had just been done with the very difficult 10 months of having your company sold, and that was a difficult experience. There was a decent outcome in the end but it wasn't an easy journey. And so going back to five folks in a garage was really just a great opportunity. Plus, I had to learn how to build a database really quickly, so that was a lot of fun. And then I also very quickly started to do additional things like Redis and Memcached and Elasticsearch, and then I went into analytics. So I got a pretty good education just on the various both operational databases and analytical databases and that was a lot of fun. I always say the difference between a programming language and databases is one’s a hash table, the other one's a B-tree. Obviously the differences are bigger than that, but I'm a systems person, so speeds and feeds and really thinking about how to optimize services and products so customers can get the best priced performance and the best user experience I think really matters. One thing that I have brought into my view of databases is that developer background that I have. The number one persona using our services are our developers and so we need to make it super productive and simple and easy and fun for developers to use. And so that's something that's always been a guiding principle for me. 

CW Yeah. I feel like developer experience is something that we've always cared about generally in the tech industry, but it's definitely being highlighted more as more and more dev tools are being built and optimized. Developers are your customers and they have a very specific set of needs compared to your average consumer.

RD What's your job title again, Cassidy? 

CW Head of Developer Experience.

BP So Andi, I'd like to focus a little bit on what you're doing now and what excites you. But if you feel like you can do this without offending anyone, tell us a little bit about having worked in a startup, having worked at Amazon, having worked at Google, how would you describe those experiences? From somebody who went from being a very hands-on developer and somebody who obviously loves to code and loves languages, to being somebody as you said now who's more in management. What would you say are the differences between those different experiences in your life and what'd you take away from them?

AG That's a great question. Let me talk about the similarity and what I look for. I always look for the startup. For me it's about being very customer centric, really figuring out how we can make the biggest impact on customers, and then, how do you build an awesome team that has high judgment, has great technical skills, and is able to build something very innovative that not only makes customer impact, but really makes industry impact. And I think when I look at the work I did in my startup, the Amazon work, the work I'm doing now at Google, I think it all fits in that bucket. So I don't think about it as much as small company/ big company. I really think about it as, is there real opportunity to do something exciting, work with great people, make industry impact. And I've been very fortunate that in all three places that's been a 'Yes.' I'm super excited about what's happening at Google right now just because of the heritage of Google and data and a lot of the innovative ways that the systems were built here, which I think opens up real opportunity for us to create those differentiated experiences and really make lasting industry impact. 

RD I mean, Google itself must store an enormous amount of data, right? And I assume Google has built their own databases to handle that?

AG Yeah. So, talking a bit about my role here, I basically run the operational databases for both GCP and then some of them for Google. So for Google Cloud, that includes all the managed third parties, like Cloud SQL that runs MySQL, Postgres, SQL server, our Oracle offering, Memorystore with memcached support, and then also the cloud native databases which are Spanner, Bigtable, and Firestore. Now Spanner and Bigtable were actually initially built for Google. So I also operate those versions for Google itself. And so when you look at things like Gmail, YouTube, Ad, Search, Nest, all of those are basically running on Spanner and Bigtable. So I really have two jobs. One is, I would say, the outward facing commercial, helping enterprise customers be successful and transform their businesses. The second one is also keeping Google up, and so that's been very exciting. And I think what gives us a real competitive advantage is some of the innovation that was driven before my time here, so I can't take credit, to enable Google, we are now democratizing and enabling external customers to really get those benefits. Because if you take Spanner as an example, there is no other database like it. It's a relational database with global scale. It can do petabyte-scale OLTP and is strongly externally consistent. There is nothing like it out there. It's 5 9's available and it truly is that available. There's no other relational database out there like that. And so we had to build that for Google because Google had very unique requirements. But now that you're seeing every industry trying to go through a digital transformation, they have the same problems. They're global businesses, they have to be on 24/7. They keep on scaling and they want to build for success. And so being able to take something like Spanner with a very low entry point of like $65 a month, and being able to scale that to thousands of nodes, petabyte scale, like some of our customers like ShareChat and Uber are running very large scale applications.

BP Yeah. I feel like your point about building it internally and then being able to understand the strengths. I don't know if you've ever heard of this little product called AWS. But maybe if you had stuck with that shopping cart project at the beginning you'd be in a very different position. You could have built something completely different in 1997. 

RD We've talked to a lot of people who build databases and handle a lot of data and what I've been realizing the last few years is that there's so many different kinds of databases. I think early when I got into it, it was just like MySQL, maybe MSSQL if you want to pay for it. And now there's so many specific purpose built databases. Can you talk about why that is and what the sort of landscape looks like?

AG Yeah, I think that's a great question. I think there's different points of view on that. So you can look at a company like AWS that takes a very kind of purpose-built database approach and has one of everything. You can look at Azure who basically tries to do multimodel, not very successfully in my opinion, but they kind of take a multimodal approach. I would say at Google we're kind of the pragmatists. We don't want to confuse customers with too many options, but we also think having too few options isn't the right answer either. And so I think it ultimately goes back to how do you make sure developers are super productive, have an easy experience, but can also build for scale. And so that's where I would say we're trying to take a pragmatic approach and really appeal to two areas. One is the lift and shift migrations. And by the way, according to Gardner 75% of databases will be in the cloud this year, and that's 50% by revenue. So imagine 40 years of putting expensive proprietary Oracle SQL server DB2 on premises, this year basically the majority of revenue is actually in the cloud. And so there's a lot of focus on just making it super easy for developers to get their MySQLs, and SQL servers, and Postgres lifted and shifted into the cloud and just give them that right landing spot so they can actually start their innovation journey from there. So then I would say is the first piece. The second one that is kind of more directed to the question you're asking is, right now we have three offerings that are very unique. They're all 5 9's of availability, very, very scalable. You have Spanner which is relational. Bigtable, which is really wide column, key value store. And then Firestore, which is a document database. We've kind of right now landed on three as opposed to eight, because we do want to make it relatively easier for developers to figure out what to use. And we do think the majority of use cases can be addressed by the databases we offer. Plus we have great partners like MongoDB that we work super closely with to optimize their run times also on GCP. Never say never. I mean, we're constantly thinking about if there is anything else we need to do to enable developers. But I would say we're trying to meet this balance of not being too complex and also not too simple. And I think that's what makes GCP a pretty powerful place to go because we have very differentiated offerings but we also create an easy onboarding journey onto those offerings.

CW I feel like with a lot of things in tech there's like a pendulum where people start going to an extreme of one way and then swing the other way and stuff. Do you see there ever being a swing back away from cloud? I do think it's here to stay, but do you ever see reasons for people to have more on-prem solutions?

AG It's a great question. I would say I do think, longer term, there is a bit of a disaggregation happening on two dimensions. One is, just over 80% of enterprise customers use more than one cloud. And so when you ask, "Hey, what's the opportunity for GCP and why am I here?" It's because I think there's a huge opportunity because pretty much every enterprise customer is going to have a second cloud. And we're extremely differentiated on data, both on databases, analytics, and AI and ML. And so I think a lot of those workloads are ultimately going to come to GCP. So already it's going to be more than a single cloud game. The second thing is, as you're seeing more edge computing, IOT, data sovereignty, and so on and so forth, we're definitely seeing some additional disaggregation of workloads into different areas. So I do think the pendulum keeps on swinging a bit. I don't think the momentum around the big hyperscalers is going to go down. I think there's going to be an additive piece where you're going to see additional edge compute, 5G, and so on. It will need a cloud to operate, but you're going to see some of this being pushed to the edge. 

BP I think that's a really interesting question, Cassidy. I think, kind of as Andi was saying, there are sort of these outliers now that might themselves grow to really scale. We talked to another, I think it was an Israeli startup, and they do like smart car cameras and they process everything first locally at the edge, they extract stuff that could be personally identifiable, PI, and then they send it up to the cloud. So they are doing a lot of work on the hardware. I know Google still has tape storage for everything, and we just had a big discussion with some folks at this company, Rewind, and for all the companies that are cloud native and they're developers just work in some kind of Git platform and then everything is stored everywhere, take a close look at the Terms of Service. If you lose that stuff, it's not backed up for you anywhere. You have to at some point if you're getting to scale, make that consideration of, say the cloud goes down or it gets corrupted in some way, what am I going to fall back on to make sure I can rebuild my business?

AG And by the way, just on your point, I mean, if you think about how powerful just your mobile phone is. There's so much memory and CPU there, like AI and ML like inferencing and so on, a lot of this is going to get pushed into the cameras and into other places on the edge and they will be cloud connected of course, but there's just a huge amount of compute that's being built at the edge.

[music plays]

BP All right, everybody. It is that time of the show. We are going to offer up some recommendations of things you should check out as well as shout out the winner of a lifeboat badge. So a lifeboat badge– came on Stack Overflow, found a question with a score of -3 or less, got it up to a score of 3 or more, and an answer score of 20 or more. Awarded seven hours ago to Leejay Schmidt, "How do I display the index of a list element in Python?" All right. If you always wanted to know, we have the answer for you. My shoutout this week will be 3D printing. I used to cover this all the time in like the 2010 era and then I forgot about it. I don't know if you remember MakerBot and everything like that.

CW Yeah. They're still thriving. 

BP Well as I found out, 3D printing is still thriving and now I have a son who's obsessed with painting miniature models and you can just hop on, download a file, print it, make your own in CAD, throw it on there. So I'm investing in my first 3D printer and it was exciting to see that that space is still alive. I kind of stopped thinking about it, but Cassidy, are you familiar with what's going on? 

CW Yeah, I have a 3D printer. Let's talk afterwards, we can chat. I will recommend something completely at the other end of the spectrum. Perle di Sole lemon drop candies. I really like lemons and sour candies and stuff in general, and then I decided I would look up what are some good lemon candies besides like Lemonheads or something. And I discovered these and they're incredible and I highly recommend them. 

RD Yeah. And on the snack shoutout, we just got a box of snacks from Stack, and it was full of stuff I never heard of. So I got to trial a whole bunch of stuff. 

BP Andi, anything you've played with recently, any snacks you've had, any software projects you like? Just give us any kind of recommendation. We'll take it. 

AG I'm Swiss born, so I love my Lindt chocolate hazelnut. Every evening I have some of that. But I think one of the things I've been really excited about is actually kind of upgrading my home to being a bit more of a smart home. And so I've been buying a lot of light switches and smart dimmers and so on and so forth, and slowly but surely I'm replacing them in the home and it's just awesome. You can put timers on when the lights go on and off, and the kids love it, and it's connected to Alexa– don't tell anyone. 

All [laughter]

BP Are you using one of the ones with like a central hub and everything's connected together? 

AG Well, it actually connects to your wifi directly, so you don't need any hubs or anything. You just need wifi. And so we turn on and off our lights in our home with voice commands and the kids love it. 

CW I love it. We have ours. I'm not going to say her name because she's behind me and will wake up. I'll call her Donna. We'll say, "Donna goodnight," or whatever, and then all of our first floor lights will turn off and then our top floor lights will turn on so we can get ready for bed and stuff. It's so nice. 

BP So do you use Phillips Hue, or different kinds of bulbs, or what do you use? 

AG I use the TP-Links. They actually have the actual light switches, the light sockets. They're awesome. Not that I want to do an advertisement here, but they're really good. They're not too expensive. I think our kid's kids are basically not going to know what a light switch is. 

CW Oh my gosh, what a concept. But you're probably right. 

BP All right, everybody. We are going to say goodbye. I am Ben Popper, the Director of Content here at Stack Overflow. You can always find me @BenPopper on Twitter. Email us podcast@stackoverflow.com with questions and suggestions. If you like the show, leave us a rating and a review. And if you're listening and you don't know yet, we have a whole new crew of hosts, so be sure to check out the blog, learn about that, and give us a follow. 

RD I'm Ryan Donovan. I edit the blog here at Stack Overflow. You can find me on Twitter @RThorDonovan. And if you have a great idea for a blog post, please email me at pitches@stackoverflow.com. 

CW I'm Cassidy Williams. I'm Head of Developer Experience and Education at Remote. You can find me @Cassidoo on most things.

AG I'm Andi Gutmans. I am the General Manager and VP of Engineering at Google for databases. And you can find me at gutmans.com. 

BP All right, everybody. Thanks for listening. We'll talk to you soon.

CW Bye!

[outro music plays]