In this episode, we discuss the appeal of great API design, when it's worth spending money on a custom CMS, and why every app evolves towards greater complexity until it can send email.
The starting point for today's conversation was an argument made by Guillermo Rauch in this blog post. "And each time, your frontend has an opportunity to impress, delight, perform, be accessible and memorable. What's more, frontend is an area of technological and artistic differentiation, while backend becomes increasingly commoditized, turnkey and undifferentiated."
Sure, programming in PowerPoint isn't very practical. That doesn't mean it can't be lots of fun, and teach you a few things.
Speaking of learning things, we chat a bit about Alan Kay, who has a wonderful talk on the ways we can use computers to illustrate complex concepts to children.
Paul Ford I get nervous when people are like, "Oh, the backend totally commoditized." I'm like well, then it really should be like, I go to the store. And I say, "I'd like this schema, please."
[MUSIC]
Ben Popper Couchbase is a modern, multicloud-to-edge, SQL-friendly JSON document database for building applications with agility, performance, and scale. If you’re new to Couchbase and would like to learn more, the Couchbase Developer Portal is the best place to start! It’s loaded with tutorials, videos and documentation, as well as best-practice tips, quickstart guides and community resources including the Couchbase Developer community forum. Ready to get started developing on Couchbase? Visit couchbase.com/new2couchbase
BP Hello, good morning and welcome to the Stack Overflow podcast.
PF Hey Ben!
BP Hi Paul. Nice to see ya.
PF Good to see you too!
BP I love your new office.
PF Thank you, yes. I have a new office, I moved house in the middle of the pandemic.
BP It's distinct from your bedroom.
PF Yeah. [Paul & Ben chuckle] No longer in my, like corner of shame and sadness, which was--
BP That was a moment in time. But yeah, your new office, it really, its got some intellectual energy. I'm digging it.
PF Yeah, it does, well, no all I do is put up my books. I mean, honestly, these bookshelves were just to the right before and now they're behind me, because I'm very conscious of being on video all the time.
BP Yeah, your Zoom profile has, whew, through the roof.
PF Its weird to move, because then you're like, well, you know, is it still gonna be worth it after three months? [Ben chuckles] You know, but I think so, it's nice to have a little home office. I don't know, for all going back five days a week in the future. I couldn't tell you.
BP Yeah, I feel like it is kind of optional now. It's definitely in the past, it was like, you want to be at the office a certain amount of time to show your face. And then you know, you know that you're not working the whole time. I can see that because I can see you on Twitter, fellow coworker. But now it's so much more about are you getting your work done? Because really, you just have to be on those Zoom meetings.
PF Is your Slack dot green, right, like thats--I don't know. I'm a big fan of presence. And I actually like offices are kind of, you know, I think they're kind of important places, because that's where the lore and the culture of the company builds up. But I'm a boss. So I would say that, right? [Paul chuckles] Like, everybody else is like, "Yeah, I could also just stay home on Friday night commute, and get a lot done."
BP For sure. I saw a tech startup. I can't remember who it was now. But it was a tech startup, very software focused recently. And they were announcing that they had purchased a new office and it was a mall. And I just thought, oh, like that's one of those turning--
PF Yeah it's Epic Games in North Carolina, they bought an old mall and they're gonna turn it--it's so great. It's just so smart.
BP That is really a fun playground to have as your office and there's so much open air, you can walk, walking the food court, in a whole new situation, that's taking two different kinds of America and mashing them together in a way that I appreciate
PF Exactly. No, the mall, the repurposing of the mall, to me is like the most interesting thing that can happen, because it's just all those stores make wonderful little breakout conference areas. You've got, the food court will become the cafeteria and it's dead space. And it's also just funnier and better than building out this new, some new ecology destroying piece of infrastructure.
BP Right? Exactly. Yeah, you don't have to cannibalize all of Mountain View. There are many malls, waiting to be rehabilitated.
PF I'm going to tell you my fantasy here, my fantasy is that they leave the electronics boutique, right? Like there is one game store.
BP Oh yeah. The Sharper Image stays.
PF Yeah, like the one electronic game store is just, you know, you could go in and they're like, "Oh, sorry, we're all out of Wiis. Sorry." It's electronic boutiques. And they should just hire one person to tell you that they're kind of out of it. And then anything that's not like SimCity it's impossible to buy.
BP Oh my god, that is such--for Epic Games. That's such a good fantasy. You go into the gaming store, but everything is free.
PF Oh yeah!
BP At night, they put it back on the shelf. You just take what you want.
PF That's right. That's right. Box games, that would get everybody so--people would just work there just so they could go to that store and get free games.
BP So I don't know about Postlight, if you guys are both the front end and back end shop.
PF We are.
BP But I was preparing a little bit--you are? Okay, so, so I'm going to throw something at you. You tell me what you think. I was preparing for our guest Guillermo Rauch later today, who's coming on later today. We'll hear his episode probably next week. And I was reading a blog post where he made the argument that the front end is really your opportunity to like, impress, and delight and perform for the customer to be more accessible and memorable, because the back end is increasingly commoditized, turnkey undifferentiated. So as a shop that does both, like what's your response to that?
PF Oh, well, now, hold on. I think it depends on what you're building, right? If you're building a classic sort of web app that has a lot of forms in it, and you're trying to create a nice experience. I mean, this is really--okay. Let me break this out a couple different ways. So first is like for a classic web app, let's come up with something like, you know, Sneaker Tracker, where everybody puts their cool sneakers up and pictures of them and talks about the sneakers they have, and occasionally people trade sneakers, right? You're going to build that back end using a commodity or RM based system. Or you might even use something like Firebase, or you might use--I mean, basically, a lot of what's happening on the back end is that you're kind of defining a schema, whether in a no SQL framework, like Mongo or using Postgres, and then you're, you're adding as little code as possible on top. And a lot of problems that used to be really big problems like authentication or, you know, analytics, so and so forth are really disaggregated. You can buy services that make them easy and things plug in together. Okay, so that, yeah, that part of the backend absolutely is commoditized, but the front end is also increasingly commoditized. It's commoditized through design systems, it's commoditized through various widget toolkits, the React ecosystem. So to that end, I see a lot of sameness on the front end, and then differentiation through styling. Like you don't see many new user interface elements, right? You know, there aren't that many, like you don't, you know, pull to refresh was one that was a while ago. Because the cost of change for the UX is actually incredibly, incredibly high. So I think there is truth in that. But I think there's another thing here, which is just like, on the back end, API's and building really good back ends that can be used by lots of people. That is as much of a product development craft as building great UX in the front end. And it's, it's, it's still designed, it's just a way more abstract kind of design, like a well designed API front end, which is well documented, easy to explore, easy to build around. It's like architects are responsible for the basement and the plumbing, and making sure that the house really works as a system as well as the facade and the windows, right. And that's that aspect of development isn't--it might be commoditized, in that you don't have to build your own authentication system. But getting that API right is just as hard as getting the front end right. I mean, you could go further. And you could say, like getting the content, right, and getting the communications right, and getting the developer relations right. Like, this is all a big, complicated system. And so it's not wrong for the work-a-day, like I need to build this thing in the next quarter. And then once it's out, we're gonna see what it's like. Sort of classic startup thinking, that's actually it's a correct statement. But for like, I'm going to build something for the long haul. And then to make it even more complicated, you're also looking at like, kind of super commoditized spaces like CRM, or CMS, where you would be, you need to go look at Salesforce and Pipedrive, and all the others on the CRM side, and you need to look at WordPress and, and then also at WordPress, for the CMS side, right, like, there are these large platforms that are not just commoditized, but just like almost becoming the standard, they're also increasingly AI driven, and you're gonna, you're gonna build to them as well. And then there's a--but a lot of times, they don't really do anything to allow you to--they make it hard to be--to do things differently on the front end. And so you might think that through too. The thing we did at work called Glide, which is a graph qL layer that lets you talk to Salesforce, it's open source, you can go to GitHub, just if you search Glide Salesforce, you'll find it. And you know, to me that's there's a little bit of that future, like how do I want these systems to be orchestrated, and work in an elegant way that allows me to be creative on the front end.
BP There's two things that jumped out to me there, and I'll break it down for you. So like one, what I thought you said was interesting, which is like, you have to think about designing your API. And I think you mentioned, right, plumbing versus, you know, the the view of the house you're going to get when you just come to visit. And I think there you know, that's about extensibility, for example, if your business evolves, but also whether you're trading sneakers, you know, or something else, like maybe in the future, you want people to be tapping into your business, right, like where are other businesses going to hook into what you do, and how, you know, to what degree can you grow into some kind of Central node or platform?
PF Where are you going to differentiate? Because Shopify has a beautiful API, it is, you know, Stripe has a beautiful API.
BP Those are both really good points, because I think people have argued that Amazon is a monopoly. But I think Shopify, you know, clearly showed that some of what you can do on the API side, the elegant integrations and the ability to evolve those quickly for new tools can be, you know, a differentiator for--
PF Well and I kind of wonder, I mean, as antitrust comes out to these things, and it takes five to 10 years, you know, more and more attackers will appear on the horizon. Like it is a it, they're still vulnerable in a weird way. I mean, to me, the advantage that the giant tech companies have is everybody logs in for their services, so they can see what's growing and acquired it before it can compete with it, right?
BP Right, right. Buy it or smush it, if you see that it's growing fast.
PF Yeah, exactly. Like you can't turn away from that dashboard. You're just monitoring your auth. [Ben laughs] So but you know, that is that's real. Look, I mean, you know, the work we did, some of the work we're most proud of from last year was making the MailChimp API's really accessible and building a really good developer portal, right. And so it's like, there is a just a lot of work and thought not done by my company, actually done by MailChimp, about how their API is going to integrate with the world and how developers are going to use it. And then, you know, we were sort of creating an interface on top of that in terms of documentation and experience. And so like, you're talking an enormous amount of true product work, but it's product work that an end consumer almost never sees, it's you know, developer experience, and things like that. But it's still exactly the same as any other kind of product work. Like if you were doing health care, you know, sort of anything that is professional to professional. So yeah, no, I think that's why I'm hesitant.
BP I mean, you made the other point, which is that, right, then people always consider, oh, well, you know, should I just do this with WordPress or Wix or whoever. And then again, you get back to this idea of, well, I'm not really going to be too differentiated. So I'm not going to be delighting and surprising.
PF My answer is always yes to that if you don't know why you wouldn't. Right? Like, right, the very dangerous thing is people are like, "I don't want to use WordPress, everybody uses WordPress." It's like, well, why wouldn't you use WordPress? "Well, because everybody is, I don't want to be the same." Why wouldn't you want to be the same? And it turns out, they want to be the same, but just like, maybe with a little more yellow. [Ben laughs] And so you got it, you got to kind of hold their hands. And it's, you know, the great differentiator there is that, you know, getting that WordPress site set up and looking basically good. Could cost $15,000 to $20,000 on the high end, if you're going to do--
BP This is where you explain the power of fonts to them.
PF Yeah, exactly.
BP If you really want to stand out. [Ben chuckles]
PF And then doing the custom API that does the really fancy stuff. Now you're well into six figures really quickly. And so when people write people often really want a lot of special stuff, but when they realize the chasm that they're gonna have to jump over consists of hundreds of 1000s or even millions of dollars to get to the really special case. They realize that that's not what they wanted after all.
BP I have two things that I want to point out to you before we wrap today's episode one is that enterprise software is now popular on TikTok. [Paul laughs] This is an amazing trend. I wish we had Sara on today, but apparently the teens are getting ready to start a new semester and they are figuring out how they can you know best organize and optimize themselves, so there was a story here in The Verge, TikTok teens latest passion is enterprise software and I guess Notion. Notion was the one that went viral. This is your sign to get to get Notion and organize your life. Wow it's special.
PF I wouldn't call Notion enterprise, I read that article.
BP I think there's a bit of a stretch
PF It also described like Andy Baio is like an obscure blogger or something like that, which wasn't cool.
BP Ouch. Ouch.
PF Yeah. And he was like, you know, created XOXO, he's a good dude. You should check out Waxy.org, you know, it's a great site. Yeah. So that, Notion is not enterprise, it's software as a service. And you know what we know this about the teens, the teens love Google Doc, they keep the WhatsApp chat going in the college. There's like the official WhatsApp channel, and then the unofficial WhatsApp channel for your class. And so like, you know, that story was funny to me, because it was like, not only did it sort of ding a friend unnecessarily, thank you, but also, it came at like, yeah, teens use tools and then teens celebrating Notion and sharing tips and tricks on TikTok to me is like, absolutely the world I live in. Absolutely. 100% that is the cosmos I want to exist in which is like--but also let's be mindful. An enormous amount of media online has always been tips and tricks. You know, there are 43 folders and life hacker and all the getting like, there's always productivity is always part of the larger dialogue.
BP Yeah, this is just the digital savvy millennial teens, exactly, doing the life hacks that they would have done on their kanban board of paper notes.
PF It's expanded and so like there is an audience for To Do List hips, there are teens who love a good to do list. So I just celebrate that like go teens, you own it, use Notion. Because when I saw that headline, I'm like teens are using Salesforce? Teens are doing enterprise resource planning?
BP They're tracking their party invites and their popularity in their CRM.
PF That's the thing, if you told me that, like teams were using ERP, to figure out how they could buy their, you know, their innovative, the most innovative set of houses in order to you know, build their TikTok brands. I'd be like, I guess that kind of makes sense, though. But I would love to see enterprise TikTok, that would be--true enterprise TikTok would just be miraculous.
BP Stay tuned. This is developing situation, it could we might tip over. I think at one point, Paul, you threatened jokingly that the worst kind of programming in the world, you know, if we really were to get there to the no code, low code I was talking about. And you were saying okay, all we need to do to get there is to make sure that everybody can program in PowerPoint. And then I found a small lecture Programming in PowerPoint. Have I shared this with you? It's great in practical ideas and computer science. Apparently, you can build a Turing machine in only 15 slides.
PF Yeah, I mean, this is so I mean, PowerPoint is actually extensible, you know, in the regular way that Microsoft Office apps are, right, so it actually has language inside. But this was a little more like, making it like, this is more about like pushing the buttons and stuff and and really, you know, bouncing between different slides and creating an actual abstract computer in PowerPoint. So there's a great thinker, Alan Kay, who is critical at Xerox PARC, he was one of the progenitors of the Smalltalk language, sort of the progenitor of Smalltalk with lots of other people and really, a lot of what we take for granted, comes out of the milieu that he was in, in the in the 70s in computing, and he has, unlike a lot of other people who just kind of went off and, you know, ran enormous companies or were chief scientists. He's done that but also I really stayed connected to the idea that computing is for empowering people in a really specific way, like people with special needs, and children are always the priority when he talks about them in public. So coming back around to this, right, like he's very critical of the web and critical of a lot of systems that exists for not taking the power inherent in the computer and making it available. And so you know, PowerPoint is a funny one, right? Because it comes under a lot of pressure for really diminishing the way that that people think and communicate. And you know, Edward Tufte, has written about this, there's a paper called the Cognitive Style of PowerPoint, there's been quite a bit of research into it. What this reveals, and I always, I love when people do things like this, because what it reveals is that the power of the computer is always actually right there. But PowerPoint has decided to abstract that away and say, here's the things you want. You want titles, you want templates, maybe you want a little animation, right? And then from there, right, you can kind of people go like, well wait, it's actually on a computer. And really, the web is a story of that, like it was the web was, "Hey, we're gonna trade some documents with links, and make it easy to point to each other." And then, you know, 25 years later, it's a virtual machine, running JavaScript or WebAssembly that basically is, it's a computer.
BP Totally. I think one of the most popular stories on--one of the most popular blogs we ran last year on the Stack Overflow blog was about motoko or Makoto, basically, you know, like, enabling the browser to be sort of an internet computer, and then just taking, you know, working from that as first principles. That was one of the blogs we did last year that sort of caught people's attention. So yeah, I love the idea of you're saying, like, you always try to abstract it away. And then somebody, whether they're in a ridiculous lecture, or, you know, with a serious purpose, you know, tries to turn things around and make it a machine again, that you can work from.
PF There are a lot of joke laws and computing. And one of the joke laws that I love is you know, every application expands until it can send email, which just happens like, you know, there was a point where like, Microsoft Word was like, "send this document as email" became a menu item, right. And it happened to the to the GIMP and Linux and sort of all over the place. And so the point really here is that if an application hangs out long enough, it starts to become the computer, it starts to actually offer a computational environment, like the Emacs text editor is a very good example. All the IDEs, you know, everybody ends up having like an abstract machine inside that's a target for the experience.
BP Yeah, some clever programmer is tired of context switching. And it's just like, I can build this in here.
PF That's exactly it. It's the it's avoiding the context shift, because you're like, I'll have more power if I use the object model inside of the text app.
BP Right? And then eventually, it gets too complicated. Somebody's like, I'm going to unbundle this.
PF Yeah. And don't you just want to use a simple email reader, [Ben laughs] they won't--actually, you know, where you get bit is security, right? Because once you've created an abstract computational system, instead of like a word processor, where anything can be executed at any time, this is so true with the browser, you have a security nightmare.
BP Alright. Before we sign off today, I want to give a little shout out. You sent this to me and my kids loved it. Tinkersmith.com. Do you know anything about this, like who's behind it, if you want to shout it out?
PF I don't know who's behind it. But it's great. We're talking about sort of computational aesthetics in a recent episode of this podcast. And I think that this is one of the, one of the better examples, it's like, you can basically do a line and a half of really efficient JavaScript or just really tight JavaScript. And essentially, you're just doing math, you've got like sine, sine and cosine and right, and it gives you a couple of variables. And the variables turn into, they affect a little screen above, they sort of change how all the pixels work. And so it's a toy, right? You can play with math and sort of see how it shows up on the screen. And that used to be, that was the old eight bit computing aesthetic. And now it's, again, it's always available, right? Like it's always been there inside the browser, but people are kind of starting to fill in those blanks.
BP Oh, yeah. sliders are infinite joy. I mean, my six year old can't get enough of it.
PF Sliders are the best thing. sliders are the single best interface element because they're so--laziness is wonderful. You just move that little guy left to right. And you're like, "Ohhh"
BP I have created art! Yeah, exactly.
[MUSIC]
BP Alright, wonderful. Well, let's sign off for the day with a lifeboat awarded yesterday to Gideon: How do I clear the selection of a selected node in a TreeView? Alright.
PF Good job!
BP Thanks Gideon for helping to spread the knowledge, we will put that lifeboat in the shownotes. I'm Ben Popper, Director of Content here at Stack Overflow. You can always find me on Twitter @BenPopper. And you can hit us up with ideas or questions. podcast@stackoverflow.com.
PF I'm Paul Ford. I am the cofounder of Postlight. Check out my company and wow, are we hiring? We could really use good front end, back end, full stack, however you define yourself engineers, please get in touch.
[OUTRO MUSIC]