In this episode we chat about the ways in which React has reshaped web design and mourn the lost days of maximalist HTML overkill. Plus, what would social media look like today had Napster lived to conquer the music industry?
If you're in the market for a used car and some retro web design, look no further.
Thanks to our Lifeboater of the week, Günter Zöchbauer, for explaining how to use the MyHomePage widget in Flutter.
Ben Popper And now we've moved to just an, uh, an endless fields of white space and mobile friendly with, you know, dropdown menus and hamburger buttons. And from a performance perspective, obviously that makes a big difference. If you're trying to pull up a website on a 3G or weak LTE phone on the other hand, you know, we've lost a little bit of flare, right?
Paul Ford Well, I mean, apps can't, document driven web. It can be full of shenanigans. It's like a newspaper ad, right? Like that's what this website looks like. Ling's Cars looks like a newspaper ad in a, in a tabloid from, you know, 1995. And I mean, you can still buy the New York Post, I'm sure half the car ads kind of look like this Crazy Memorial Day Deals! And I mean, so we lose that because we're dealing, we're building software instead of documents.
[INTRO MUSIC]
BP Hey, everybody, this week's episode is brought to you by Couchbase. Couchbase is an open source, no SQL document and key value store database. It requires no external cache support SQL and analytic queries for JSON data. And Couchbase supports technologies like Kubernetes, Java, .net, JavaScript, GO and Python. Download it today at couchbase.com/stackoverflow and let them know we sent you.
PF [laughs] Here we are.
BP Yeah. I'll tell you what, where it all went wrong on this day in 1999, Napster launched. And if only we had let that thing live, you know, maybe a kinder, gentler tech industry would have been born a freer more libertarian, progressive. No, I'm just kidding. Napster was fun though.
Sara Chipps [laughs] Yeah.
PF No, I think that this is very meaningful conversation. It really is. Which is that an enormous amount of the pressure that is being brought in our society right now is directly due to extremely centralized platforms. So Facebook and Twitter, obviously.
SC That's a good point.
02:01
PF But also like we only have increasingly few media sources owned by very large orgs, et cetera. And I'd like, I don't think I don't need to go full Noam Chomsky on everyone. But what you're seeing is that that is let's just from a practical point of view, it scales in a weird way, which allows for lots of bad information to get out and communication becomes harder in times of stress. And so I keep thinking there have always been efforts to like read de-centralized the web, right? Like let's make a new Facebook or a new Twitter, and there are many out there and they're great. And I actually think that activists remove using them more and more. Right. But you just, this to me is showing tremendous fault lines on those consolidated platforms. Whereas the peer-to-peer stuff like Napster, you know, it's going to seem surreal that people were getting robo sued for $3,000 each.
SC Yeah.
PF Right? Like we, they, I don't think people were realized like the, the actual pressure that came down against music piracy from the industry and from the law was so large that it basically shut down this open network. And that model went out of the running. And instead things like Spotify came together to get all the music into one place. What I'm noticing. And this is what I'm going to say. Something really abstract. And maybe you guys can tell me what you think about it. Because I was thinking about this last night when I couldn't get to bed, which is that when you centralize and you create a single platform, you're always optimizing for hits. And so like, why isn't there a centralized platform for journalism? Journalism is actually not hit based it's news base. It's got to keep moving and moving and moving and you want to know what's new, but it rarely is there like a really popular news article. Like it might get a couple of million impressions, but then it's done. It's people aren't going to come back to it.
BP Right. It's not a, it's not a Drake single. It doesn't do a billion streams. No news story does a billion streams.
03:53
PF And so Spotify what Spotify really does. Right. It's just optimized around those hits. Those people get paid out fine. And then everyone else kind of has to be there because that's where listeners are. That's where attention is. But boy, if you get down in that long tail, you're making pennies. So you can't survive on it. Right.
SC No, yeah.
PF Facebook and Twitter, same thing like millions of likes. Great. And then you'll just see the same tweet. Like I saw there was a tweet of cars going into protestors in New York City. I probably saw it 300 times as I was scrolling on my phone. Like just constant. And so, I mean, I wonder how do you build a system that is financially exciting, which may not be possible with VC funding that would get people involved and that isn't optimized for hits. And it feels like you'd have to hack human psychology in order to do that.
BP Paul, have you ever heard of this funky thing called the block chain though?
PF Ah, well see no, that there is that right. That is an actual attempt to decentralize and build it in at the protocol level.
SC Yeah. The tough thing there is like monetizing, right? Always, right. Like the, if it's not, there's been a few people I've tried to do this, right. Optimize, not for hits, but for content and like value of content and things like that. But the problem is so many of these networks monetize based on ads and that kills ads. Like you can't monetize on ads when you're, you're not optimizing for eyes. So, you know, how do you monetize in that way? Can you find a hundred thousand people that'll give you $5 a month? Who knows? I think that's where we're a lot of those platforms die.
PF When they're become a really good product, right? Like people only use good products. So I will say Signal has become a good product. It wasn't at first, which is a, it's a more peer-to-peer encrypted communications platform. But in general, product talent, product development, engineering, and design talent goes where there is money and where there are other product managers and designers and engineers. And I mean, I don't think this is like some shocking expose of capitalism. I run a company where I try to hire very talented people because I can pay them. Well. And you guys work at Stack, right? Like, I mean, I don't like, I'm not like I'm not tearing open the gates here, but I think that those decentralized systems have maybe one, 1000th of the resources of, you know, or one, 1 millionth in the case of Facebook, right. Like just incredibly tiny sets of resources. And so people see those experiences, you know, what this reminds me of is open source software where it's like, you know, Linux on the desktop because it's, I mean, how are you going to motivate somebody to use that unless they are politically motivated.
06:27
SC Yeah.
BP I mean, it's interesting. One thing I want to shout out before we move on is that there's like this idea that you can't get paid that well as a musician on Spotify, but really what it gets back to is that there used to be these huge winners that were huge. Even if they weren't at the very top, like you'd come out with the number one selling CD for a week, but you'd move half a million copies. And that was a big chunk of change. And now people actually typically when, like, if you're a subscriber to Spotify, like I am in you pay $12, $15 a month or something you're spending more every year than the average person ever did on CDs. Like, you know, if, if I were to buy a CD every month or something like that, that would have been pretty unusual behavior. I mean, maybe not for like a go, you know, a diehard teen music lover, but the average American wasn't buying a CD...
PF I used to spend probably like $150 a month.
SC Wow!
PF I was bananas.
BP Oh, wow. Yeah.
PF Well, cause that's 10 CDs. I'd buy a hundred CDs a year. Maybe, maybe 150.
BP Well, yeah, but the average, the average is that people spent like, I think it was like 80 or $90 a year buying music. And now I might spend 140 and that should go out to people. But the issue is that Spotify has to take some, the middleman have to take some and then, you know, the, the artist gets whatever's left over. And so if you're not at the very top, it's really hard, but was it ever not really hard for like musicians who didn't break a big, of course they just, you know, you know, they were living in a shack and going on tour and living, you know, the artist's life. Right.
PF No, I know, I know.
07:54
BP I don't think there's some middle class of musicians that's been gutted by this is what I think is what I'm trying to say.
PF Oh, I think there is a little bit, no, I think that there was like a, there was a way that you could make a, more of a living and it was a little less touring and you could sell some CDs and merge and it's harder now. It is definitely harder, but let me, at least..
BP That might be true.
PF At least that's what the musician say, but who can trust them?
SC [laughs] Yeah.
BP On the other hand, grab a Nine Inch Nails sample, throw it up on SoundCloud. And, you know, next thing you know, you're graduating high school in Denmark with a billion dollar single in your pocket. So, you know, there's openness, there openness.
PF That Old Town Road. I mean, this is the world we live in, right? Like it is at some level, it's okay to lament for lost opportunity, but it also, like, it is fascinating to see what is coming, which is why I think I'm in tech. I mean, I just, you know, I'm looking at, as in, in this world of chaos, I'm looking at this speaking of chaos, I'm looking at the stack exchange top questions, and it's wild to see Stack's agenda and the political such situation, just kind of juxtaposed. Like I've got, how do I get a new player to stop rewriting my game to match his favorite fiction? And then I've got how many members of Antifa in the US and one is in politics. And one is in world building.
BP We're trying, we're trying to build a better world, but it ain't easy.
[MUSIC]
BP Alright. There was a story that came out in the may issue of Increment, which is the magazine, like a sort of tech publication run by Stripe. Right.
PF I've written for Increment! They're very nice. They're very nice, yes.
BP Paul has written for it. And it was on the rise of react. And I thought it was really interesting. First of all, it gives a big shout out to the worldwide web of 1999.
PF Woohoo! Shout out right back at you!
BP And direct, uh... yeah. Yeah. Maximalist, you know, uh, took a long time to load on your 54 K bod, but man, did it have all the bells and whistles?
PF Mmm.
BP And so shout out to Ling's Cars, a secondhand car dealership in Northeast England.
PF Oh, that's a famous website. Yeah.
09:55
BP Still going.
PF Just truly retro.
SC Wait I haven't seen this. Tell me about it.
BP It's just lingscars.com and it is gorgeous. It hasn't changed today since geocities left.
PF It's L I N G, right?
BP L I N G S C A R S.com. We'll put it in the show notes.
PF There you go.
BP Yeah. It's really, really special. Um.
PF Oh, there it is. That's what I like to see.
SC Oh that's beautiful!
PF Now here's the thing is that this used to not be quite so ironic. And, and then they realized what they were up to. And now it's very kind of tongue in cheek. It is like nineties geocity style, like full smash selling cars though.
BP Selling cars.
SC Yeah, I'll buy a car from this.
PF What you've got with react is software. You're building components and boy, you got to get that under control because if you don't, it'll go completely bananas without, without like just, it just wants to explode all over everything.
SC Yeah could you imagine building components for this page?
PF Exactly. Right. Like each car. Well, I mean, the reality is like, kind of?
SC Yeah, you kind of can.
PF You can't, except that, like the weirdness gets lost when everything uses the same CSS style sheet.
SC Yeah, it's really hard to do like, uh, yeah. These different colors. And I mean, you can.
PF You can, but just in general, it's seen, as consistency is usually seen as a feature, right?
SC Yeah.
PF Like, Oh, I know what I'm looking at. I'm looking at a car listing. And then, you know, when we're presenting, when we do mocks or envision prototypes, right. You're presenting that one car view and you're promising that all the cars will look roughly like this and people go, Oh, that's how I want cars to look.
SC Yeah. I know what to expect.
BP Well, I want to give you, I mean, the devil's argument, uh, the devil's advocate here was that, you know, for your Facebooks and your Twitters and your other big people, this kind of modularity is super useful. And that has become a way of thinking that, you know, a lot of folks have adopted. On the other hand, says somebody here in this article, I can't find them, ''When I'm making a, I have to don't have need for that extreme modularity. And moreover, it can be a drain on a resource drain that tends not to be worth it.'' So is there something to that if you're a smaller, independent web, whatever, like maybe react based design is not ideal for you?
12:07
SC Well, I think that if you're saying that if it's a smaller website, I think it, it's not that the react based design is inappropriate. It's just sometimes over-engineering, if you're just, if you're building something small.
PF Yeah, I mean, look, if you're, what are your goals, right? Are your goals to communicate a few things about your organization? Make sure that the SEO is good and have people look at it and go, these are smart people who are consistent in their thinking. You don't need react in any way, shape or form. You need like Squarespace. Yeah. Or, or plain HTML and right with a couple CSS style sheets. And you are good to go. If you are building an interactive experience on the web where people can manage, you know, some aspect of their email or do calendaring, or like do all the things that we do as software as a service, you need some kind of front end framework because the web just truly deep down, isn't built for that. It can do it because it's the most flexible medium that's probably ever existed in the history of humankind.
BP Ooooh.
PF No it is. I mean, even, you know what, you don't have to put the CD, right? Like software just comes. I hit a button, I go to a thing. And the software loads.
BP I just love hearing your, I love hearing your love for the web. Just flow out of you.
PF It's still, there's still nothing like it. Like everybody has tried to be like, well, it's dead now. And it's like, Oh, is it? It never dies. It never dies. And I love that. I mean, it's just, it's sheer awfulness. Like you hear old people, older program like ''well, this is not the way, it should be a list machine.'' You're like, I should, hold on. Let me go to Stack and ask you if the web should be a list machine.
BP Another interesting thing, I read this article, which I think comes back to a bunch of what we've been talking about with big COEs and the open web and open source was that, you know, react came to exist. But, uh, then you know, Facebook became kind of the chief steward. And then there was a back and forth about these patent clauses and whether or not people should be adopting it, say at WordPress. And if that, you know, would be creating issues for them in the future. And so the Apache software foundation placed the patent law, the patent clause outside of its list of allowed licenses. And then Facebook eventually turned around and put react. And Justin flow under the MIT license. So like there was a win there. Yeah? There was like that kind of realization that to make this continue to work at scale, you need to follow these newer better practices or no?
14:22
PF This is the world of Sara Chipps.
SC Wait, what? You're tagging me in.
PF Yeah, no, I really am because it's just, it's about large organizational licensing challenges and what they mean, which if you are a day to day programmer, you're like, Oh my God, shut up nerds. Which is what people are usually saying to you.
SC Yeah. I've had approximately a hundred hours worth of meetings since the beginning of this year regarding licensing.
PF Uhhhh, it's like, Sara. It's literally worst. I swear to God, I'm not doing this. Ironically, thank you for your service. It is the worst part of our world. I cannot, I'll do it, but it's horrible.
SC Well, it's like the, it's the thing where like law, it's funny. I just had actually one of these conversations go really well when everyone was really preparing for it to go horribly. And it's a funny thing because when it's like in software, we like to really throw around lots of opinions and lots of thoughts and really play devil's advocate all the time. But the thing is when legal, like the second that legal things get involved, it becomes much more sensitive. And you're setting yourself up for all types of you can't be as free in your conversations. Recently, I got to see an open source project change its license. You know, it's just something that open source projects do. And it was sponsored by a foundation, which is something you can't do when you're sponsored by a foundation, really. And there was just, you have to strategize.
PF Oh, so they just were like, Hey, we're, we're, we're using this license now. And the foundation was like, um, that's not our deal.
16:01
SC Yeah. You just messed up everything for us type of thing. And the people that know, but everyone you got, there's like a lot of work that went into the strategy of confronting the conversation. And like, because these things become so sensitive. So it's not, it's not the place. I think where most software developers shine. Or, yeah.
PF Oh, no. One of the, one of the great things for me was my cofounder at my company Postlight is a lawyer. And I would never advise if you can get a lawyer co-founder for anything you do. I strongly recommend it.
SC Yeah!
PF Because you just don't, you don't live in fear. They see, lawyers see contracts as in the same way that you or I might see like a library of code. They're just like, Oh, interesting. Huh? How's that one work. I don't like it. And then I'll use this one instead. And they're very it's fear, right? Like everything with contracts, just invokes, terrible fear with people and, and, and it gets to territoriality and anger really quickly. And like, what do I get to do? And you're not allowed to do that. And, and actually I have to say like the law, they're always trying to like check the constitution in on Github. People think the law is like code maybe a little, but it is it's it's code for humans, not code for computers.
SC And there's a lot of amateur lawyering. Like there's just like a lot. There's like...
BP It's not code for humans, code for lawyers. Yeah. It's not even, I don't, it doesn't make sense to me most of the time.
PF Wow, Sara, you've seen some amateur lawyering in the, in the programming community? I'm, I'm shocked.
BP But wait back up a minute. You know, you were saying that this stuff can be really painful, but my question initially was did things sort of end up working out in a, in a, in a good way with react because of pressure applied by folks in the community and because of, you know, folks like the Apache software, like, did we move that, you know, overall in the right direction, towards a less restrictive, less legal, you know, less threatening thing where now it's safer to work with react because, you know, they had to had to confront a choice where people said, we don't want to, we don't want to mess around with this. If your patents might come back to bite us.
18:05
PF It's worth breaking this down. So what it was was that WordPress had used react internally for Calypso it's, it's sort of what the is the wordpress.com framework that they use on the front end when you are making your wordpress.com blog. And then they have a new modular system called Gutenberg for editing, which is very good. It's just like, it's a very good piece of code. And at one point they were using, they built in react and they're going to use it for Calypso, but there was a patent protection provision and they realized we can't ship. A third of the web pages in the world are produced by WordPress. Like, we can't ship this to hundreds of thousands and millions of people with this license, because it's not compatible with our license and we will blow up our whole world. And so they gave up, they were like, all right, well, we're just not going to use react. And Facebook, because Facebook had said, no, we're not going to change anything. And actually, once they publicly said, Hey, we're going to go in this direction. It'll take a little longer, but it'll be better. We're not going to use react. Facebook actually came around and I was like, Oh, wait, you know what? Okay, we can work this out. Let's get rid of this clause and relicensed and all as well. All is good.
SC Yeah. That's a, that's a huge, that's a huge effort to relicense in that way. But I bet because it seems like WordPress is big enough that making that change sounds worth it.
PF Well, I mean, the choice they were going to make, it was a, you know, patent protection provisions are really kind of arbitrary structures. Right? Like, and so the choice they were going to make is we could have our software ship to millions of websites and use to create stuff and, and sort of grow the community that way or not.
SC Or not.
PF And that was the, and so they made that choice, honestly, they might've made the other choice and it would have been, everything would have been okay. Right. Like, and WordPress would have just written, you know, word react or react press. And we would have all moved on and been like, ah, licensing. But it is nicer when everybody can kinda not reproduce everybody else's effort due to weird legal clauses.
20:04
[MUSIC]
BP Alright y'all. We are at time, I'm going to read a lifeboat and we'll say our goodbyes. This question is written in a very strange way, but I'm just going to make my way through it. It says flutter my home page parentheses key key, this title, colon super parentheses, key key, please, anyone explain clearly with an example, flutter. So thank you to Gunter Zerbe Zoc Bach for taking the time to figure out if that was a question and then answer it.
SC Awesome.
BP Cause you got a life boat, my friend. The code is a constructor of the, my homepage widget. And this is you have two options for setting your parameters. So thank you. Alright, thanks to Gunter. Appreciate the lifeboats. Appreciate people who connect and share knowledge in our community. Stay safe out there. Get in touch wit us at podcast@stackoverflow.com and you can find me Ben Popper, director of content on Twitter @BenPopper.
SC I'm Sara Chipps, director of community here at Stack Overflow and you can find me at @SaraJChipps at Twitter.com.
PF I'm Paul Ford. I'm the co-founder of a product development company called Postlight. You can find us at postlight.com and on Twitter I'm at @Ftrain.
BP Awesome.
[OUTRO MUSIC]