There’s Gonna Be Some Flapping
Marco:
Don't say anything funny now.
Marco:
That's a really good ending, so don't say anything funny.
John:
You can always put it at the beginning of the show.
Marco:
That's true.
John:
Time has no meaning in podcasts, Marco.
John:
You are the master of time and space.
John:
Oh, God.
Casey:
Some follow-up.
Casey:
Do we want to talk about Flappy Bird and get in an argument again?
Marco:
I would just like to say that I think most of the feedback sided with me that Flappy Bird is actually a good game.
Marco:
Not a great game, but it was that it got most of its popularity, at least the initial popularity boost that got it into the top charts, which then made social elements really take over.
Marco:
It got a lot of its popularity simply because of its merits.
Marco:
And even though it is not...
Marco:
To me, it's like a McDonald's hamburger of games.
Marco:
Not even McDonald's.
Marco:
It's more like a Wendy's hamburger of games.
Marco:
It's like you shouldn't like it.
Marco:
It's terrible.
Marco:
It's complete junk.
Marco:
However, it's good.
Casey:
No, no, no.
Casey:
That's McDonald's.
Casey:
Wendy's is good.
Casey:
McDonald's is not good, except breakfast.
Casey:
Breakfast is good.
Marco:
Well, whatever people eat at McDonald's, it's actually good.
Marco:
Is there anything there?
Casey:
Yeah, breakfast is good.
Casey:
The burgers are not, but breakfast is good.
Marco:
I've actually found that on long car trips where I have to stop at a rest area somewhere in the middle of nowhere to eat, if I have to pick between the major fast food chains and you're really somewhere out in the middle of nowhere, I would go with McDonald's because...
Marco:
They're they've always been extremely good about quality control standards.
Marco:
And so it's just, you know, you're guaranteed to get the same crap everywhere.
Marco:
Whereas like Wendy's, I like Wendy's better in an ideal case, but I've had a lot of like I've had a much wider range of Wendy's quality.
Casey:
Where did we stop on the way back from South Carolina?
Casey:
I thought we stopped at Wendy's.
Marco:
We did.
Marco:
That was in a fairly populated area.
Marco:
I'm talking about, like, if you have to stop on, like, the Pennsylvania Turnpike or something, you know, where, like, you're really in the middle of nowhere.
Marco:
And you have, like, the Roy Rogers or the McDonald's.
Casey:
Oh, God, I remember those.
Marco:
Or, like, the TCBY, you know, the...
Marco:
This is this is our new podcast.
John:
This is it.
Marco:
So, John, what do you think about the Flappy Bird follow up?
John:
I think the feedback was it's hard to tell with Twitter, especially because, of course, I only see the replies that mentioned me or, you know, like people might be mentioning just you to say they agree with you.
John:
I wouldn't see those or whatever.
John:
But I think the majority of the feedback was they agreed with you.
John:
And that just goes to show that the majority of people are often wrong about things.
John:
So, like, as is often the case in this podcast where I don't do any preparation, like, we sort of just talk about things in the moment, right?
John:
And then after the podcast, I think of, like, how it would have, you know, how I could have approached it better or explained things better or maybe just the next show I want to summarize stuff or whatever.
John:
So I do have some actual follow-up that I put in the notes about this.
John:
But, like...
John:
I have a vague outline here of kind of what we said the last time.
John:
The heading here is the two sides of success.
John:
We barely touched on one of these sides, and maybe we should have talked about it more.
John:
The first side of success is when you're very successful, you get a lot of attacks from people who...
John:
Don't think you should be that successful.
John:
Don't think you deserve your success or just because you're very popular, you get the backlash effect.
John:
We've all experienced this to one degree or another, and it scales proportionally with your success.
John:
If you are massively successful and everybody knows what you are, you're going to have a proportionally larger backlash.
John:
And that was mentioned at the very beginning of last show maybe.
John:
I tried to point out that I didn't think it was a terrible game because it's not.
John:
It's not terrible.
John:
It's not completely incompetent.
John:
It's not non-functional.
John:
It has – High praise.
John:
Yeah.
John:
Right.
John:
So what I'm just saying, like people, I don't think it's a terrible game.
John:
No, it's not a terrible game.
John:
And yes, you have to recognize that because it's so successful that you see this crazy backlash against the game, the concept of the game, people who enjoy the game and everything like that.
John:
That is one of the sides of success.
John:
Um,
John:
And I don't think we spent enough time focusing on that because I think a lot of the people are saying, I agree with Marco.
John:
It's not a terrible game.
John:
I don't think anybody said it was a terrible game.
John:
Nobody thought it was terrible.
John:
You know, I said it was not a good game.
John:
And then it's like, well, what's good versus mediocre versus, you know, I would call it a mediocre game.
John:
I would not call it a good game, but it's certainly not terrible.
John:
Right.
John:
And, of course, it has many things about it that make it be successful in the marketplace.
John:
And I'm drawing a distinction that a lot of other people don't between the quality of something like, is this a good game, a bad game, or whatever, and how successful it is in the market.
John:
Sort of like the, is the McDonald's hamburger a good hamburger, a bad hamburger, versus how many McDonald's hamburgers are sold every year.
John:
That type of distinction.
John:
Although I draw that line much more harshly than most people do, because most people will say that their favorite movie is the best movie, and I would never say that about my favorite movie.
John:
Or, you know, I can separate those two more than most people like to separate them.
John:
What is the best movie?
John:
Yeah, that's a whole other podcast.
John:
I would say, Marco, what is best in life?
John:
And you would say, what are you talking about?
John:
Anyway, so the second side of success is... Over my head.
John:
Me too.
John:
Good job, guys.
Casey:
At least we're consistent.
Yeah.
Casey:
I'm sorry.
Casey:
We tried to have a serious conversation here.
John:
This is not that long, but there's going to be some flapping.
John:
So just there's going to be some flapping and some birds.
John:
The second side of success is the idea is the opposite side of the coin of like everyone attacking the thing that's successful.
John:
And that is people deciding that the successful thing is a success based on its merits.
John:
And the trick about that is choosing the merits that you think seem fair or admirable.
John:
So that means diminishing the role of chance in this and minimizing or diminishing less attractive merits.
John:
So, for example, if you think it's admirable to be a successful game because of the code that's in the game itself, because of what's on the screen and how it works.
John:
You will elevate those elements.
John:
And if you think it's not admirable to be successful because of a genius marketing campaign or like a very well-made television ad or whatever you decide is sort of less fair or less –
John:
uh it's you're deciding what your merits are and most of us kind of agree like oh if the game itself if the code that ships is good and the game is successful that is fair and that is admirable and we should all look up to that but if something is as successful because to take the other end of the spectrum someone you know paid to get a bunch of fake reviews we all agree that's not admirable what if they had a really good ad campaign and they wrote the ad copy themselves and they made the art and they what what if they had a really good strategy for viral marketing or whatever we decide
John:
Well, those aren't creepy or anything, but they're not as admirable as the game.
John:
So as being in the game itself.
John:
So when I'm talking about success based on the merits, most people, when they see a big success, will decide that the thing is successful based on whatever they think are the most admirable aspects of that success.
John:
The position I was taking on the last podcast was that the merits of the game itself, and that's the thing that I would find an admirable reason for success, is what's in the code, what's in the binary that ships to people, and all the other stuff I consider less...
John:
Less directly connected to success in terms of like, is the game good versus is the marketing campaign good versus, you know, the popularity of it or whatever.
John:
When discussing that, I mentioned in the show that there are plenty of other games that have similar attributes.
John:
And that's what we were talking about when Marco was saying the attributes of the game that led to its success.
John:
I'm saying those attributes were probably necessary for its success because if it's a terrible game, no one's going to want to play it or anything.
John:
But they're not sufficient because lots of other games have those same attributes and they're not successes.
Marco:
So you're saying that they were necessary but not sufficient?
John:
Yes, yes, yes.
John:
But implicitly, what I'm trying to get at here is implicitly when we were discussing that, all of us kind of agreed implicitly what things we're talking about.
John:
We weren't talking about the ad campaign.
John:
We weren't talking about any other aspects of the game.
John:
We were talking about essentially what's in the binary, like the app itself.
John:
And we didn't need to establish that up front because I think –
John:
Like we're all on the same page in terms of when you're talking about the game, that's what we mean.
John:
And I don't think that's necessarily a valid viewpoint from all perspectives, because if you are in the advertising business, for example, if you read ad age and like, you know, big into the advertising world.
John:
Of course you would consider the ad campaign part of the success of the thing.
John:
It's like that's so important.
John:
In fact, it's more important than the binary that you created.
John:
But I just want to establish that there are assumptions that we don't state that are definitely informing what it is that we're talking about.
John:
So much so that we didn't even need to call them out last time.
John:
And most people who are responding to this also need to call them out.
John:
But I think it's worth thinking about other perspectives in this.
John:
And anyway, so since I said that about, you know, other apps in the App Store having these characteristics, of course, people came out of the woodwork and said, well, show me these tens of thousands of games that have these other characteristics.
John:
And that's kind of a sucker's bet because, A, you know, how many games are there in the App Store?
John:
100,000?
John:
150,000?
John:
I don't even want to know how many games there are, but no one has played them all.
John:
So it's pretty much impossible to exhaustively find them.
John:
And then you have to do some sort of statistical sampling of games to try to find games with these qualities.
John:
A couple people posted games, and they said, here's this game from five years ago that has these qualities or whatever.
John:
But the reason I say it's a sucker's bet, because whatever game anyone was to cite...
John:
Someone will say, well, that one is not alike enough because there's always some extra nuance that Flappy Birds has that this game doesn't have.
John:
Down to the fact like, well, that game doesn't include birds and Flappy Birds includes birds and do the history of the App Store with, what is it called, Angry Birds and Tiny Wing, the birds themselves, you know, therefore Flappy Birds was this perfect thing.
John:
You know, and it would be impossible to satisfy, because they would say, see, that little nuance that I pointed out, this game has and that game doesn't have, you know, extra levels, all in one screen, doesn't scroll, doesn't matter where you tap on the screen with your thumb, like, there would always be some difference between the game that you cite and that game, and they'll say, see, that's why Flappy Birds is a success, and this other game wasn't.
John:
And that's why I think Flappy Birds itself is the best example, which is why I gave the time travel scenario on the show, which was like, okay, go back in time to before Flappy Birds was created, bring the Flappy Birds binary with you, submit it to the App Store.
John:
Of course, provisioning profiles would never let you do this.
John:
But anyway, we're in a hypothetical scenario.
John:
and and you'll see that it doesn't sell and flappy birds itself was on the app store for months and months and months and it didn't it didn't sell right and even then with this example i imagine someone will say well there was some minor gameplay tweak that happened just the week it took off and that was the minor gameplay gameplay tweak that made it happen i don't know if this is true or not i don't know if flappy birds gameplay was updated at all between the time it was released six months ago now but that's what someone would say and
John:
The reason I'm bringing up these hypothetical people's complaints that they would have if you were trying to cite earlier games or even if you were trying to cite Flappy Birds itself, which I did frequently on Twitter and say, what about Flappy Birds itself?
John:
It was out for six months.
John:
It was not successful.
John:
It's like, well, you don't understand.
John:
It had to be in the store gestating for six months because that's how long the ramp takes for viral whatever.
John:
There's always something you can say.
John:
And this is the point I really wanted to get at on this podcast and that I didn't bring up enough in the last one.
John:
It's the second side of excess is people seeing something successful and then working backwards from its success to determine why it was successful.
John:
It's kind of this fatalistic everything happens for a reason mindset where you see something that's successful and decide that every attribute of that thing that you find admirable has to be in exactly that position for it to be success.
John:
Otherwise, how could it have happened, right?
John:
And this, I think, even applies to really good games and most other things in life where you look at the success and even the really admirable, awesome things about it, you'll say, that's why it succeeded.
John:
And also every other detail of that thing, because how could it have been any other way?
John:
You know, this is what happened.
John:
So it was written.
John:
So it shall be done.
John:
Flappy Birds is the perfect game because it is massively successful.
John:
Other games that were not Flappy Birds were not successful.
John:
Therefore, you must be like Flappy Birds to be successful.
John:
Nothing but Flappy Birds could have been successful, so on and so forth.
John:
And to address this, friend of the show, Kieran Healy, put a blog post.
John:
Is he a sociologist or does he play one on the Internet?
John:
I think he's a real sociologist or teaches sociology.
John:
He's at least smart.
Casey:
He teaches at Duke.
Casey:
I believe that's true.
Casey:
And if that's not true and he's actually at UNC or something, I'm going to be in real deep trouble.
John:
He posted something where the sociologists are interested in this phenomenon of like, how do things become successful?
John:
And the angle they were taking on it was, why can't record executives and stuff predict like hit songs?
John:
And the idea is like, don't these guys know anything about their business?
John:
How come?
John:
They have such a poor track record of predicting hit songs.
John:
Some songs hit, some songs don't.
John:
And if you ask executives beforehand, they would be totally sure this song was going to be a hit and it wasn't.
John:
And other people would say this song is going nowhere and it becomes a mega hit.
John:
Why can't we predict that?
John:
So trying to figure out this phenomenon, they ran a series of experiments, but they had a bunch of songs in this case and had people listen to them and download them.
John:
It was like 14,000 different people and in some situations the people could see what other people were doing They could see how many downloads a song had and in other situations they couldn't see how many songs How many times a song was downloaded so it's basically trying to Move the slider on social influence from like zero all the way up to maximum
John:
And what they found in this experiment was that increasing the strength of social influence increased both the inequality and unpredictability of success.
John:
So as they made the social aspect more relevant, like as they showed the download numbers more prominently, as they sorted by downloads or whatever, the difference between the most and least successful became much bigger.
John:
The difference between like the winners and losers, which you kind of expect because like there's a piling on effect of like once everyone recognizes a winner, everyone's going to go download it and the losers won't get downloaded at all.
John:
Versus if you had no signal from what other people are doing.
John:
You wouldn't see this runaway success.
John:
But the other part of the thing was that the predictability of success went down.
John:
So in general, the best songs never did really badly and the worst songs never did really well.
John:
But almost any other result was possible.
John:
I'm quoting from his blog post here.
John:
Uh, so basically once you add social signal to the mix amongst the games, amongst the songs that were kind of in the good category, as the social signal increased, which one of those songs would be the hit became totally unpredictable.
John:
Uh, and what he wrote, he first wrote this blog post and I was like, Oh, this is one point that he didn't make.
John:
And I'm excited to make it on the, on the podcast next week.
John:
But then he updated his blog post to making my additional points.
John:
He told me I could still make it because we're both right.
John:
So I will, uh, and he, he,
John:
He used the phrase that I was going to use here.
John:
I had to come up with different wording because I don't want to copy his phrase exactly.
John:
Basically, he's trying to explain the reluctance of people's reluctance to agree that true unpredictability is a real feature of markets like this.
John:
Like people don't want to believe that there's that unpredictability as you increase social signal amongst the top.
John:
They want to believe that the one that came in number one was always going to be the number one.
John:
But these experiments prove that in a totally different set of people with the same set of songs, run this experiment lots of different times amongst the sort of good enough to be good songs.
John:
as you increase the social signal it's totally unpredictable which one will hit and people do not want to believe that so he says psychologically people are often predisposed to believe in some version of a just world hypothesis where people are fundamentally get what they deserve and that's what i was trying to get at with the fatalism thing people want to believe that the world is fair and just and that what happened deserved to happen especially if it's something like well i like this game and it's the number one game obviously it's number one because it's a good game
John:
And if you try to tell them that it's number one for reasons other than just it being a good game, they'll say, you're saying this game is terrible or you just don't understand why this game is good or anything like that.
John:
It even cites the other example that I was hoping to bring out, which is you see this all the time in books about how to succeed at business.
John:
What will happen is basically in the 80s and I guess in the 90s and probably today as well.
John:
some some rich white dude i hate to bring rich white dudes for two shows in a row but some rich white dude he may or may not be bald or wear a toupee if it's the 80s becomes amazingly successful for whatever reason and decides i now know everything i
John:
am massively successful i need to write a book telling everybody else what i know and they don't and they write these books about like here's what i do wake up every morning and have cornflakes all right and then make sure you drive an american car and get into working early and like they just they just pick every detail from their life and they say because i am successful everything i do in my life must have led to that success therefore all of you people should do this and you're not successful so who are you to complain sort of the
John:
Again, working backwards from success.
John:
And every business is like that.
John:
Like we did this in our business and we're successful.
John:
Therefore, you should do this.
John:
Seven habits of highly effective people or whatever.
John:
We get into software methodologies about in a future show, I'm sure.
John:
Talking about the same type of thing where you're.
John:
Where it's like, we did something, we were successful, therefore this methodology should work for everybody.
John:
But business books in particular love to just, the winners come and tell you, here's what I did, and if you do this, you'll be successful.
John:
Because otherwise, to think otherwise would be to think that your success is derived from something other than the merits you consider admirable.
John:
If your success is derived from like, you know...
John:
The fact that you had rich parents and got into a good school because their legacies, the fact that you were in the right place at the right time with a product that was merely satisfactory and you decide it's because of your great business acumen and really any monkey could have run the business and would have been just fine and had the same result.
John:
No one wants to believe that happenstance or things that you don't consider admirable contributed to your success, but I think in general that is more often the case.
John:
Anyway, this link to Kieran's article with the results and links to the papers that no one's going to read, but he has a really good summary of it with some graphs and everything.
John:
I encourage everyone to read it.
John:
I agree, Marco, that most people did agree with you, but I think all of them are suffering from the symptoms described in Kieran's blog post here.
Marco:
Well, and also I think one other valid point to make here – I'm not going to even try to address all that because I'm not qualified really, and I have to save my words tonight so I don't end up coughing all night.
Marco:
But – And it's science.
Marco:
Yes, and science is always right.
Marco:
So I think –
Marco:
Another thing to consider here is when trying to apply lessons learned from someone else's success to general cases or to your case.
Marco:
During the great Gruber and Merlin South by Southwest 09 talk – what year?
Marco:
Was that 09?
Marco:
God, we're old.
Marco:
Yeah.
Marco:
I'll put it in the show notes.
Marco:
It's when Gruber and Merlin talked, and the title is like How to Supercharge Your Blog, and that's, of course, a sarcastic title.
Marco:
And it's a fantastic talk.
Marco:
There's audio recordings of it.
Casey:
It was 2009.
Marco:
Yeah.
Marco:
Okay.
Marco:
So South by Southwest, 09, Gruber and Merlin's talk –
Marco:
And one of the points they make in there is like, you know, you can't... I don't know if they use Gruber as an example.
Marco:
I forgot the details.
Marco:
But they basically are like, you know, if you go out today and try to be Daring Fireball, it's not really going to work because we already have a Daring Fireball.
Marco:
And Daring Fireball got big in an environment that didn't have a Daring Fireball.
Marco:
And the environment back then was different.
Marco:
And then he succeeded in that environment.
Marco:
Yeah.
Marco:
But if you try to do the same thing today, you're in a completely different time, a completely different set of conditions, and the same lessons don't always work more than once because they have this context that let them work or that they thrived within.
Marco:
So everyone's going to make all these flappy clone games now and try to replicate this, but this succeeded in part because of the environment and the time and the fact that something like this hadn't really done this before, so it was this novelty.
Yeah.
John:
No, no, no, not something like this hadn't done it before.
John:
Something like this hadn't done it before that people had seen.
John:
And it's why people saw it as the interesting thing.
John:
But like that, that's why when people brought up the floppy bird clones, like, you know, lots of there was lots of debate that sort of at mentioned me that I didn't participate in on Twitter.
John:
And some of them were like,
John:
uh well just look at all the flappy bird clones why aren't they succeeding well that is obvious you know like they're not succeeding because flappy birds already exist like that the reason that's the reason i came up with the time travel scenario you can't you can't say well if i make a bird just like flappy birds now but better it doesn't succeed therefore you know what i was describing that's that's not a valid example you know by the way the flappy bird clones are succeeding
John:
Well, you know, they succeed the same way that domain squatters succeed, you know, typos and the wonders of the app store search ensure that they have success that far outweighs.
John:
No, look at the top charts.
John:
They're like the clones are still up there.
John:
Well, you know, it's also the fact that now you can't get Flappy Bird.
John:
So the market's wide open for Flappy Bird clones.
John:
But you know what I mean?
John:
Like none of those clones is going to be Flappy Birds because Flappy Birds already exist.
John:
So that is that's not a relevant thing to talk about.
Marco:
We are sponsored this week by our friends at Ting.
Marco:
Ting is mobile that makes sense.
Marco:
They're a no-BS, simple-to-use mobile service provider from the people at 2Cows, the company behind Hover.
Marco:
Ting is a reseller of a sprint network in the U.S., so they have a great, solid network behind them.
Marco:
So go to our special URL to learn more, atp.ting.com.
Marco:
It's T-I-N-G, very simple.
Marco:
Ting has great rates.
Marco:
There's no contracts, and there's no early termination fees.
Marco:
You own your device outright from the start, and then you just pay for what you use every month.
Marco:
So here's how it works.
Marco:
You get any compatible Sprint device.
Marco:
You can get it through them.
Marco:
You can get it new.
Marco:
You can get it used.
Marco:
You can buy it yourself on eBay or whatever.
Marco:
You can ask a friend if they have an old Sprint device, including the Sprint iPhone device.
Marco:
So check them to see exactly which models are compatible.
Marco:
They have all this stuff up.
Marco:
Go to atp.ting.com to see.
Marco:
So anyway, you get your phone somehow.
Marco:
It doesn't really matter how.
Marco:
Any Sprint-compatible phone that they list in their site.
Marco:
And then you just pay a base price of $6 a month to get it connected.
Marco:
And then on top of that, there's all these buckets.
Marco:
There's a bucket set for data, a bucket set for talk minutes, a bucket set for SMS.
Marco:
And you just pay for whatever you use.
Marco:
Whatever bucket is the cheapest that will encompass what you use, they pick that one and they bill you for it.
Marco:
And there are a few bucks each, so you can see.
Marco:
So, for example...
Marco:
if you just use 100 megs of data this month on a device, you'll just pay for that bucket.
Marco:
If you use a gig next month, you'll pay for that bucket next month.
Marco:
And the next month after that, if you use Switch goes back down, they'll ratchet you back down.
Marco:
So you never really pay for... You don't have to remember to...
Marco:
Go to their site or call them and get it increased for when you go on a trip and then get it decreased when you go back home.
Marco:
None of that.
Marco:
You just pay for what you use.
Marco:
Simple as that.
Marco:
Their prices are actually recently even lower.
Marco:
They discounted a bunch of their data prices especially.
Marco:
So 500 megs is $12.
Marco:
Two gigs is just $29.
Marco:
So really, really cheap data here.
Marco:
That data includes tethering, too.
Marco:
So really great.
Marco:
So you can see how much you can save by going to Ting.
Marco:
Go to atp.ting.com.
Marco:
Check out the savings calculator.
Marco:
You can enter in your last few bills from a carrier, and they will show you, based on your usage...
Marco:
how much you will save with Ting and over time they can show you okay well let's say you gotta buy a device up front then you'll pay for it in three months with the savings or whatever so really great stuff here they also have this cool program where if you're stuck in a contract with someone else and have to pay an early termination fee to get yourself to Ting they will even give you 25% of that early termination fee in service credit up to $75 to help get you over to Ting as quickly as possible
Marco:
They have great customer support, just like Hover.
Marco:
No hold, no wait telephone support during the business day.
Marco:
So you can just call them between 8 a.m.
Marco:
and 8 p.m.
Marco:
Eastern, and a human being will pick up the phone who is ready and able to help you.
Marco:
No waiting on hold forever.
Marco:
No transfers to a million different departments.
Marco:
Great setup here.
Marco:
And they have tons of features I don't even have time to talk about today.
Marco:
You can pool devices to manage a fleet of devices.
Marco:
All this crazy stuff.
Marco:
Great stuff here.
Marco:
It's also really good for developers if you want test devices on different platforms like Android.
Marco:
You can get a test device, have it connected with a great data plan.
Marco:
You can even buy a Nexus 5 from the Google Play Store at a great rate and then bring it over to Ting.
Marco:
Great stuff here.
Marco:
So to find out more, go to atp.ting.com and I believe that's it.
Marco:
I don't think you have to enter a coupon code or anything.
Marco:
Yep, that's it.
Marco:
Go to atp.ting.com and learn more about this.
Marco:
Great company.
Marco:
Thanks a lot to Ting for sponsoring the show once again.
John:
So powerful is the Angry Birds brand that at least I'm continuing to refer to this as Flappy Birds when it's singular.
Marco:
I was not going to correct you on that.
Marco:
Everyone's doing this, by the way.
John:
Yeah, I know.
John:
And I have the opposite problem with Tiny Wings, where I always want to call it Tiny Wing, but it would make no sense if there was just one wing.
John:
Anyway, all these bird games, and I'm serious about that thing.
John:
I was serious about the thing with the birds, like things that contributed to the success of Flappy Birds.
John:
I have to think somewhere on the list of things that contributed to its success is the fact that it features a bird.
Marco:
Absolutely, yeah.
Marco:
I mean, and the fact that birds are common in the app store, there's been a lot of hit games with birds, and they're cute, and this game's about flying, and it's had good artwork.
Marco:
I mean, there's no question that was part of it.
John:
Like in terms of Kieran's experiment that he cited in his blog, like...
John:
What is the thing that caused Angry Birds to hit?
John:
Or go back in time, why is it that bird games are associated with mobile devices?
John:
Was Angry Birds the first one?
John:
Was it building on something else?
John:
It's such an incredibly complex situation, which I didn't think you could ever devise an experiment to try to isolate the things they isolated in this experiment.
John:
But even this experiment is much simpler than the actual app store because songs are sort of, I guess they have titles and maybe that contributes to it, but they don't have artwork.
John:
And I guess they have the entire history of music behind them.
John:
But it's kind of like you don't know what you're getting until you click on the thing and then you listen to it.
John:
Like what determines as they increase social signal, which one becomes a hit?
John:
It's one of those ones in the good group, but which one?
John:
And like, so they'd run the experiment a million times and it keeps becoming incredibly unpredictable.
John:
Which one will be the runaway success?
John:
There always is a runaway success, but you don't know which one out of the good group it is.
John:
And I think that would be the next phase in the experiment.
John:
Try to figure out, is it really completely random?
John:
Or what other variables contributing towards increasing or decreasing your chance of sort of being the lottery winner among the games that have these, among the songs that have these qualities to put them somewhere in the good group?
John:
Anyway, enough flapping.
Casey:
So we had a kind of monumental moment over the last week, and I don't remember exactly when it was.
Marco:
You mean when John was wrong?
Casey:
I'm going to choose to not engage on that one, but I will say – You have to choose, Casey.
John:
Mom or your daddy?
John:
Which one do you love?
Casey:
But I love both of you.
Casey:
Which one am I?
Casey:
Right.
Casey:
So we're professionals.
Casey:
So we had an interesting moment over the last week wherein we actually got a bit of not complimentary feedback about John, of all people.
Marco:
Which never really happens.
Marco:
This is very rare.
John:
That's not true.
John:
It doesn't come to the show.
John:
It comes directly to me.
John:
And believe me, it exists.
Casey:
It may exist, but hand on heart, I've seen maybe five less than complimentary things about John and about 500 for Marco and about 5,000 for me.
John:
I bet Marco gets a lot of them directly, too, because once they know where they can reach you, they don't need to go through the show feedback form to say mean things to you.
Marco:
Yeah, I usually get it on Twitter.
Marco:
The email has mostly stopped since I pulled my email address off my site.
John:
It's so hard to figure out, too.
Marco:
Yeah, exactly.
Casey:
Well, anyway, so, John, do you want to address what this person said?
John:
Yeah, I didn't put it in there because I thought it was such a big deal that, you know, I get hate mail because everyone gets hate mail, right?
John:
But because I thought, well, a couple aspects of it were interesting.
John:
I'm going to read a paragraph of it here, not the whole thing.
John:
It's sent from what they put in the feedback form was Goofball Jones, which is a fake name, obviously.
John:
And it says...
John:
throwaway account not really looking for this to be read on air and it probably won't so there's some good reverse psychology there like you know when they say I don't expect a reply I don't expect this to be read on air and if I say that they'll read it on air that's not why I'm reading it on air but in effect it worked laughing
Marco:
Let me just point out also, before you get into it, that somebody criticized John, and as a result, our notes file now has 15 links in it for this topic.
John:
You're going to put all them into the show notes.
John:
So anyway, continuing.
John:
I can't take listening to this podcast anymore.
John:
I mean, I know that Syracuse's shtick is to not like anything.
John:
After all, his old podcast was called Hypercritical.
John:
It wears thin after a while.
John:
The guy complains about everything.
John:
Well, it's okay once in a while.
John:
It's all the time, all in caps.
John:
It's not even funny anymore.
John:
It sounds more like a miserable person just whining about his miserable existence.
John:
What are we to do with this?
John:
Does it really offer any insight to anything?
John:
Are people actually entertained by this on a sustained level?
John:
Now, the reason I bring this up to the show is to put this in the show is two reasons.
John:
One, I'm fascinated by the idea that this person put in a fake email in the feedback form.
John:
Like, or used like a throwaway account or whatever.
John:
Like, I don't even know if there's, I think there's a real email.
John:
But why would you create a fake email?
John:
Can't you just type anything in the email field?
John:
It doesn't make you confirm that your email is real, right?
John:
I don't think so.
John:
Yeah, I think you can just put anything there.
John:
And, like, why wouldn't you put – just put your regular – like, either put, like, XX at XX.com or something or just a made-up thing or put your real email in.
John:
Like, is there a downside to having the real email?
John:
Like, I'm going to harass them by email or tell people their email?
John:
I don't know.
John:
Anyway, that confuses me, as does not using the real name.
John:
Who cares?
John:
Like, if you don't like it, you know, put your real name.
John:
Like, it's not – it's not like I'm going to put you on an enemy's list.
John:
Anyway –
John:
So what I put in the show notes, because are a whole bunch of links to me being not critical about things or talking about things that I mostly like or that I like a lot.
John:
Mostly.
John:
Yeah.
John:
And like I put these in here.
John:
Not to convince anybody of anything, because I just want to provide context.
John:
Now, I'm going to preface this by saying that if your state of being requires some elaborate explanation, there's already a problem.
John:
Like, this person is never going to like me, right?
John:
No matter how much context, I was like, oh, you don't understand.
John:
Here's the context for me complaining about things.
John:
I'm going to be like, oh, yeah, now I find it much more enjoyable.
John:
Like, I'm not winning this person over.
John:
This person's not listening to the podcast anymore, whatever.
John:
But I thought it was worth talking about because it's easy for me to assume and easy for all of us to assume, I think, that
John:
Everybody already knows where we're coming from, that they know all of our context.
John:
They've read our blog for years.
John:
They've read everything we write on the web.
John:
They listen to all our old podcasts.
John:
They know everything about us.
John:
And that's just not true.
John:
We kind of feel like, you know, of course, everybody knows who these people are, except for Casey, obviously.
John:
And, you know...
John:
And where they're coming from, and what opinions they've had before, and what other podcasts they've been on, and what things they like, what things they don't like, and stuff like that.
John:
I mean, I find myself doing it, too.
John:
Like, I assume that, you know, everyone who listens to the show has listened to Hypercritical, and I find someone who listens to the show and has never heard of Hypercritical, and I'm surprised, and I shouldn't be, right?
John:
So...
John:
I think it's worthwhile providing context to the people who do actually enjoy the show.
John:
I think they would enjoy it more, understand it better with a little bit of context.
John:
So to that end, the main thing I object to in this person's email is not so much that they don't like the show.
John:
Fine.
John:
You don't like it.
John:
You don't like it.
John:
Whatever.
John:
You don't like me.
John:
You don't like me.
John:
That's fine.
John:
But the idea that I'm a miserable person and I have a miserable existence.
John:
uh that's easily refuted by the long list of podcasts i've been on where i talk about things that i almost you know unabashedly love almost everything about uh and i put tons of links in there i'm not going to read off what they all are marco will copy and paste them into the show notes uh but suffice it to say that
John:
I talk about some podcasts.
John:
I mostly just talk about things that I like.
John:
And the one link that I want to put in here for the people who want some context of this is the original thing that I posted to the internet in 2009 with the title hypercritical, which is sort of my explanation of my shtick, as he put it, like, what's the deal with this guy who complains all the time?
John:
Here's my attempt at explaining
John:
And again, this explanation is not going to convince anyone that they, oh, now suddenly I like hearing, complaining all the time.
John:
No, obviously it's not going to win anyone over.
John:
But I think it does provide context.
John:
And again, I always just assume everyone who reads my blog or listens to this podcast or listens to my old podcast, of course they read this article.
John:
How could they be listening to this?
John:
You know, they wouldn't know where I was coming from.
John:
But that seems to not be the case.
John:
uh so anyway and also we did an episode of atp by the way of where we talk about how we deal with criticism and all that stuff which again some new listeners may not have heard so there will be a cornucopia of show notes links this week for people who want to hear me liking things
Casey:
You know, I think the most obvious example of this, which is the first one you listed, is you and Dan Benjamin doing your 5x5 with the movies.
Casey:
Is that still the only edition of 5x5 with the movies?
Casey:
No, I think there's a second one, isn't there?
Casey:
It doesn't matter.
Casey:
Well, the point is there's not many.
Casey:
And this podcast, which you did with Dan, if you don't know listeners, and you should listen to this,
Casey:
Dan and John took the movie Goodfellas and you literally spent something to the order of 150% of the length of the movie discussing the movie.
Casey:
I remember you being extremely effusive and...
Casey:
and it it's how do you spend three hours talking about a two-hour movie even if you love it like that that to me is the just seminal example of you being extremely positive and effusive about something i mean it's one thing to spend an hour talking about a two-hour movie and liking it it's another thing to spend two hours talking about a two-hour movie and liking it but you spend something to the order of three hours discussing this two-hour movie and how phenomenal it was in every frame and
Casey:
that's pretty darn complimentary and i loved it and i love goodfellas and i've seen that movie thank you very much and i'd seen it before you had done that podcast thank you very much good job casey i know you're proud but um but no truly the podcast is wonderful and and you know it reminded me a lot of the the really fantastic ones that uh that john gruber and dan did about the bond series but either way the point is
Casey:
It was extremely effusive.
Casey:
And to me, one of the things I love so much about the work that you do and why I'm so lucky to be on the show with you is because a lot of the times when you tear something apart, to me, it's so clearly out of love, not out of hate.
Casey:
And that's what makes it so enjoyable because if it really was negative, I wouldn't want to be on the show.
Casey:
I don't know.
John:
As the saying goes, the opposite of love is not hate, it's indifference.
John:
And if I'm indifferent to something, you don't hear me talk about it at all.
John:
Other good examples, I know I said I wasn't going to list these, but we did, The Incomparable covered the first three Star Wars movies, which I really like.
John:
And we did two episodes on each movie.
John:
So that's six total episodes for the original trilogy of Star Wars.
John:
And of course, the video game that I could not stop talking about.
John:
you know since it was released and still haven't talked journey we did an episode of the incomparable about that as well so anyway there's tons of me liking things if you want to hear that uh which you may or may not
Casey:
I was expecting a much better rant.
Casey:
I'm a little disappointed now because I sent an IM to Marco a day or two ago saying, hey, man, have you looked at the show notes lately?
Casey:
Because we're in for a good show this week.
John:
What am I going to do?
John:
I try to convince someone who doesn't like me that they should like me.
John:
This section was not for that person who presumably is not listening to the show anymore, but for the people who are listening and do enjoy it and might enjoy it more with more context and background.
Marco:
Fair enough.
John:
I'm a little disappointed.
Marco:
It's okay, though.
Marco:
We are also sponsored this week by our friends at Squarespace, the all-in-one platform that makes it fast and easy to create your own professional website or online portfolio.
Marco:
For a free trial and 10% off, go to squarespace.com and use offer code Casey, that is C-A-S-E-Y, in case no one knows how to spell Casey's name like all the people who email us.
Marco:
Squarespace is always improving their platform with new features, new designs, and even better support.
Marco:
They have beautiful designs to start with, but then you can also customize them with all their cool tools online that are really easy to use, and also you can inject custom HTML, CSS, and JavaScript if you so desire.
Marco:
They also have mobile layouts for all their sites.
Marco:
They're fully responsive layouts, so they look great on any device, any screen size.
Marco:
If you need any help doing all this stuff, they have an amazing support team with over 70 employees right here in New York City.
Marco:
They work 24 hours a day, seven days a week on support.
Marco:
Their customer support team has won numerous awards, as have their designs and many other things about Squarespace because they are just that awesome.
Marco:
Squarespace starts at just $8 a month and includes a free domain if you sign up for a whole year up front.
Marco:
And they have a couple new things, in case you've heard this same read over and over again, because they sponsor the entire podcastosphere, which we love them for, of course.
Marco:
They have a couple of new things.
Marco:
So they have this new thing called Squarespace Logo.
Marco:
In addition to building your website, they now have this thing where it actually lets you create a logo for your site, business card, shirt, whatever you want.
Marco:
You can go check out squarespace.com slash logo.
Marco:
also every Squarespace plan now includes, they built this cool commerce functionality.
Marco:
And, uh, before it was limited to only certain accounts.
Marco:
Now all accounts include the commerce functionality.
Marco:
So you can have, you can now have, you can make your own store, uh, online, uh, online goods or offline goods.
Marco:
If you want to like sell shirts or anything, or if you want to sell like, you know, eBooks, anything electronic or physical, you can sell through their store, uh,
Marco:
Full integration, full storefront, carts, all this crazy stuff.
Marco:
They have all this built for you.
Marco:
Comes with every Squarespace plan now at no additional charge.
Marco:
And a really cool thing now is if you want to work at Squarespace, so go to beapartofit.squarespace.com.
Marco:
Be a part of it.
Marco:
They are hiring, and they're really rolling out the red carpet here.
Marco:
If you interview for an engineering or design position before March 15th, they will invite you and your partner to be New Yorkers for a weekend.
Marco:
They'll fly you out to New York, put you up at one of the city's best hotels, and give you a long weekend of checking out some of their favorite attractions, cultural icons, and restaurants in the city.
Marco:
And Squarespace picks up the tab for the whole thing.
Marco:
They've been voted one of New York City's greatest places to work for two years running.
Marco:
So put them on your shortlist if you're looking for a job.
Marco:
They're looking to hire 30 engineers and designers by March 15th.
Marco:
So go to beapartofit.squarespace.com to learn more about that.
Marco:
Anyway, thanks a lot to Squarespace for sponsoring our show.
Marco:
Once again, go to squarespace.com.
Marco:
Use offer code Casey for 10% off.
Marco:
Thanks a lot to Squarespace for sponsoring our show again.
Casey:
Do we have any thoughts on WhatsApp?
Casey:
What's up?
Casey:
I don't even know how to phrase this.
Casey:
I don't really, to be honest.
Casey:
This is kind of unimportant and boring to me, which I know is making friend of the show Ben Thompson pull his hair out.
Casey:
But I don't know.
Casey:
To me, it's just very unremarkable other than the cost because it doesn't mean anything to me.
Casey:
I've never seen the app
Casey:
Outside of a screenshot, I think, on one of Strategory's posts.
Casey:
Nice.
Casey:
Does this matter to you two?
Marco:
I think what's interesting is that we don't know that much about it.
Marco:
And it's this, right.
Marco:
You know, like I think this shows more than anything recently that, you know, there were, there were always, you know, there's the consumer tech stuff that we all see.
Marco:
And then there's, there was always like the kind of business side of enterprise tech stuff.
Marco:
That was this mostly invisible world to those of us outside of it.
Marco:
Um, that, you know, we don't really care.
Marco:
Like if SAP bought Oracle, like that would be a major deal to a lot of people, but consumers wouldn't know who these people are and wouldn't care.
Marco:
Um,
Marco:
This, I think, shows that the consumer tech world is now so big.
Marco:
You know, WhatsApp is, as far as I know, and again, I know very little about it.
Marco:
I really shouldn't even be talking about it.
Marco:
But as far as I know, it is huge in lots of places, but North America is not one of them.
Marco:
And so, as far as I know.
Marco:
At any rate, it's really massive everywhere else at least.
Marco:
And so...
Marco:
I bet a lot of Americans aren't that familiar with it.
Marco:
And the fact is, it got so big to be a major threat to Facebook.
Marco:
And Facebook also, you know, so WhatsApp is basically a replacement for SMS.
Marco:
And there's a few other apps that do this.
Marco:
Like there's Line and there's a couple other ones.
Marco:
But I think this was the biggest worldwide thing.
Marco:
I'm not sure about that.
Marco:
But what this really shows, you know, SMS is extremely valuable, and Facebook has wanted to own that.
Marco:
They want everyone to use Facebook Messenger, and not everyone uses Facebook Messenger.
Marco:
And I think that's pretty much the reason for this, that Facebook saw this major market.
Marco:
This is worth a ton of money because it replaces SMS for so many people.
Marco:
And...
Marco:
Facebook wants in on that.
Marco:
And if Facebook is not a part of that, and it's not some kind of standard protocol like SMS was, then they're kind of locked out, and it could actually work against them to not own this in the future.
Marco:
If all this socialization is happening on something that someone else controls, and that someone else could lock up and could keep Facebook out of, that's pretty bad for them.
Marco:
So I think there's no question why Facebook would want this.
Marco:
No question that is clear.
Marco:
As for the finances, I have no idea.
Marco:
People who are more knowledgeable about this stuff than us seem to think this is actually not a terrible price for this.
Marco:
But I think it just really shows that the tech world is so big now.
Marco:
It's such a massive...
Marco:
collection of multiple industries even this isn't even just one industry anymore it's so big that extremely major things like this can happen in it and most of us don't know anything about it and you know the idea of having like a tech show that comments on everything in the world of tech is completely outdated now because the world of tech is too big and like one show not only doesn't have enough time for that kind of thing but even the hosts on the show like you can't you can't get enough hosts on a show to make them experts in all these areas where big news is happening anymore
Casey:
Yeah, I agree.
Casey:
The only reason I think that maybe we don't understand this is how many friends do you have, Marco, that you communicate with on a regular basis, regular enough that you would desire to send them text messages that do not live in the United States?
Casey:
Exactly.
Casey:
How about you, John?
John:
Well, we live in the United States, but if you lived in another country, you'd be communicating with your friends in that country as well.
Casey:
Well, but the thing of it is is that the United States lives in a very – I don't know if sheltered is the right word, but we live in our own little igloo.
Casey:
Insular.
Casey:
Thank you.
Casey:
That's the word I'm looking for.
Casey:
And so –
Casey:
Looking at Europe, for example, in Europe it's very easy to go to another country because all the countries in Europe are the size of Rhode Island.
Casey:
And so – I'm going to get – just email Marco.
Casey:
But anyway, the point is – Yeah, good luck with that.
Casey:
But the point is, all kidding aside, is that there's a lot more international contact in Europe and – or from everything I've gathered anyways.
Casey:
And so it would not be surprising to me –
Casey:
If it was a much more important thing to have international text messaging between countries – and I know I have a friend that lives in Wales, and he happens to be American, but he lives in Wales.
Casey:
And about a year and a half ago, maybe two years ago, he begged me to install Viber, which was some equivalent to WhatsApp.com.
Casey:
That would let us exchange text messages for free, and that was before iMessage or it was around the time that iMessage was a thing.
Casey:
And I know that I wouldn't talk to, for example, Mike Hurley nearly as much as I do if it wasn't for the fact that he and I can iMessage back and forth.
Marco:
And iMessage was doomed to never be this thing because you couldn't do it on Android.
Casey:
Yeah, exactly.
Casey:
And the advantage of WhatsApp and Viber and all these other things is that they are cross-platform.
Casey:
So by virtue of them being international and being cross-platform, which are two things that don't matter that much to the three of us, the cross-platform part anyway, and certainly don't matter that much to us in the international part, I don't think we were ever really –
Casey:
In a position that Americans would understand this.
Casey:
Plus, most American cell phone plans, it's a fee to get unlimited text messaging, but nearly everyone that I know pays it.
Casey:
In fact, I was one of the big holdouts to not get an unlimited text messaging plan.
Casey:
And even I eventually caved, I don't know, three years ago, four years ago, something like that.
Casey:
So...
Casey:
So it's not surprising to me that Americans don't understand it, but it's also not surprising to me that it is a pretty big deal.
John:
I still don't have an unlimited texting plan, which will surprise me.
John:
You barely have a cell phone.
John:
I know.
John:
That's right.
Marco:
Well, I don't have one either because I've been holding on.
Marco:
AT&T – one of the reasons why everyone has these unlimited plans in the US now is because the carriers have removed most of the other sensible options.
Marco:
to force you to pay more money.
Marco:
It's just like the triple play deals that every cable company and Fios pushes extremely hard on anybody who doesn't have all of their services.
Marco:
It's similar with text message plans where...
Marco:
I'm still using this grandfathered $5 a month for a few hundred text message plan because I just don't need anything more than that.
Marco:
But if you had to start a new line today, your only choice basically is no texts and pay for each one, which usually ends up being a lot, or unlimited.
Marco:
In the US, there's almost no other options.
John:
This WhatsApp thing, when I look at it, it looks like more useless churn in the market for things that we all know that people want, but that we can't seem to get in a...
John:
in a nice pleasant way like people want to talk to each other like the telephone was a nice way for people to talk to each other but it had both real and artificial barriers the real barriers were that you know the other person had to be there when you called them and then international calling is like a quarter second delay for you know the distances traveled and that was weird for real time and then the artificial barriers well they're kind of real too with like a long distance fees because oh it costs more money to call farther away because we had to pay for the infrastructure to get there but then the long distance fees
John:
Yeah, yeah.
John:
you know the terrible security decisions led to spam but at least there's only sort of one email but instant message there was tons of instant message clients and it was all surrounding us wanting to talk to each other in real time and all that stupid churn between icq and aim and yahoo instant messenger and msn and skype and like all these different networks each sometimes getting critical mass and nothing will ever be as big as icq and i'll remember my icq number till the day i die and then it just goes away and then aim is big and everyone's on aim and all my friends are on aim and then
John:
sms comes and everyone's texting like all these things are churning around the basic desire we have to communicate to each other in more or less real time with maybe a little bit of asynchronous stuff allowed like but you know shorter than an email not a phone call text to and from each other and
John:
WhatsApp was taking advantage of, like, oh, SMS is an artificial thing where they charge you 10 cents for these stupid things that they're piggybacking on analog cell signals anyway back in the day.
John:
It was free for the carriers, and they would say, we can charge people 10 cents for these things.
John:
We'll make a mint, and they did.
John:
But that was an artificial – even people started to realize that was artificial.
John:
That's another reason I hate SMS.
John:
It always struck me as, like, you are charging money for something that should not cost as much, but people found it valuable, so they paid.
John:
And then as soon as people could bypass that –
John:
with WhatsApp and Vibe and Line and iMessage and all these other apps that say, we have access to the public internet over the data networks that these same cell providers give us.
John:
Why would I pay 10 cents or pay for a texting plan?
John:
Well, because all my friends are on text, because everyone texts from each other or whatever.
John:
Well, WhatsApp and the other apps like it got enough people to say, hey, come over here.
John:
It's cheaper or free, and we don't charge you 10 cents per message, and you can do it across countries, and we can eliminate all these other artificial barriers, and everything will be good.
John:
But really, that was just another private company now being swallowed up by another private company.
John:
Like, I don't feel like we're making progress there.
John:
It's just shifting around.
John:
It's just like this big, you know, it's like a pile of chips on the table and we're shoving the chips towards this corner.
John:
Okay, now towards that corner, now towards that corner.
John:
And it never is landing in a place where you feel like...
John:
Is there a sustainable way that we can all talk to each other in semi real time where we're all in the same network and we can all text each other?
John:
And it's, you know, it maybe it's not free, but it's sustainable with some pricing structure.
John:
It's on a standardized protocol or anyone can implement or like it's so hard to get to even a solution as crappy as email where we kind of all agree on the protocols, even though the protocols are terrible and lead to the scourge of spam.
John:
Even that, sometimes I think, well, at least we got email.
John:
At least there's one email system, and we don't have to deal with every single day or every single decade or so some new email service coming up.
John:
Like, oh, I can't send you email because I'm on the Gmail email, and you're on the Hotmail email, and we can't send email.
John:
Of course we can send email to each other.
John:
There's competition for the front-end clients and everything, but the back-end is all interoperable.
John:
And we have not achieved that with...
John:
ways to send little bits of text to each other.
John:
And I think Facebook buying WhatsApp doesn't bring us any closer to that goal, which makes me sad.
Marco:
And there's also, you know, I think, I mean, I've, I've been beating the storm a little bit recently, but I think this is kind of creepy or like just kind of negative news to me because it's such a massive acquisition.
Marco:
Like it,
Marco:
It looks to me like Facebook is just taking out a competitor.
Marco:
That's all this was, is Facebook got freaked out and has now neutralized a competitor.
Marco:
Which they've done before.
Marco:
That's what Instagram was.
Marco:
And it just seems like the web giants are so giant these days that...
Marco:
they can afford to buy pretty much anyone else besides one of the other web giants.
Marco:
Even then, sometimes they might be able to do that.
Marco:
But they can afford to buy pretty much anybody, whoever becomes a threat to their business.
Marco:
And this has to be limiting the amount of true innovation and progress that we're seeing in our industry because it's pretty much impossible.
Marco:
Most big tech startups who are doing very well
Marco:
are going to have a really hard time turning down a multiple-billion-dollar offer of a buyout.
Marco:
And so it basically gives Facebook and Google and pretty much anybody who has enough money and willpower to buy a multi-billion-dollar company, it gives them all assurances that they're not going to really be messed with by anybody.
Marco:
Yeah.
Marco:
And occasionally something will break out and not take that route, like Twitter did that most recently, where they just went for the IPO instead.
Marco:
So far.
Marco:
Right.
Marco:
Yeah, that's a good point.
Marco:
But I can't help but be sad at...
John:
what this actually does to the big picture where there's so much less competition and progress once everyone gets so big they can just buy anyone who's a threat if your business is based on like everybody being on your platform like if you're trying to be a protocol like email didn't have a company behind it but facebook is a company behind it and has so many people on facebook that it's like their their goal is you know everyone should be on facebook and so you
John:
If they perform well in their business plan, it's like we have to find the other thing that is going to get enough critical mass that we can never compete with it no matter how good we make our product and buy it before it gets that critical mass and becomes so expensive.
John:
And I think they waited a little bit too long on WhatsApp because they want to buy it like –
John:
They want to be sure that it would be something that we, that they couldn't compete with.
John:
Like, look, you know, Instagram's got too much mass.
John:
Like we, no matter how good we make our pictures features, we're never going to pull those Instagram people away.
John:
They've gotten too big.
John:
We need to snap them up now.
John:
And maybe they waited a little bit too long on Instagram too, but you don't want to buy all these companies like, Oh my God, they're a threat.
John:
They're going to, and you buy them for like $500 million and they never would have been a threat and they never would have gone anywhere.
John:
It's so hard to tell again, getting back to the unpredictability of success.
John:
Once you cross some threshold of value, uh,
John:
And in WhatsApp, it's that type of situation where it's like, look how big they are.
John:
And there's no way Facebook messaging is ever going to pull those people away.
John:
They've got their critical mass in the same way that we did.
John:
We got critical mass.
John:
Our only option is to buy them because that's what you do.
John:
That's the final play.
John:
And you would hope that they would go for that from there, again, from the perspective of the strategy.
John:
If they're doing well, they do that before they cost $16 billion.
John:
But it's actually worse to say, well, they're too big now.
John:
I'm not going to pay $16 billion.
John:
Let's just let them go.
John:
Because they're never going to make a messaging product that dethrones WhatsApp.
John:
WhatsApp will be dethroned by something else, but probably not Facebook.
John:
So yeah, the strategy when you've got all this money is maybe we waited too long, but late is better than never.
John:
Because if we just ignore them, then they'll be there undoing.
John:
Like...
John:
What if MySpace, I don't even know the timings of this workout, but what if MySpace had the wherewithal to offer a newly born Facebook before it was anything, enough money to eliminate it as a competitor?
John:
We'd all be talking about MySpace buying WhatsApp now, or obviously we wouldn't because of the...
John:
Those darn butterfly wings flapping.
John:
But anyway, you get the idea.
John:
If you're one of those companies where the only way we succeed is if we get every single person in the world.
John:
If we offer a feature, that's the feature that everybody in the world has to use for that.
John:
You want to show somebody pictures and tell them about your kid's birthday?
John:
You have to do it on Facebook.
John:
And if someone's using something other than Facebook to do that, and those somebodies are hundreds of millions of somebodies, we've screwed up and we need to buy that company.
John:
And yeah, that's...
John:
From a consumer's perspective, that's terrible.
John:
But if you are acting as Facebook, that's their strategy.
Marco:
Our final sponsor this week is lynda.com.
Marco:
L-Y-N-D-A dot com.
Marco:
Lynda.com helps anyone learn creative software and business skills to achieve personal and professional goals.
Marco:
They have over 2,000 high-quality, engaging video courses taught by industry experts with new courses added every day.
Marco:
These courses span a huge range of difficulty and complexity and skill levels from beginner to advanced.
Marco:
The videos are very well produced.
Marco:
They have animations and diagrams.
Marco:
And then they even have, as Casey pointed out last time, they even have the scrolling transcript on the side so that you can see what's being said.
Marco:
You can scroll around.
Marco:
You can even click on a point in the transcript, and it'll seek to that point in the video.
Marco:
Really cool stuff.
Marco:
Here's the deal.
Marco:
You pay $25 a month flat rate for unlimited access to their entire catalog.
Marco:
Over 2 million people worldwide are doing this, and it's really great.
Marco:
So...
Marco:
the teachers of these things are experts in their field, working professionals, not just like some random person on YouTube.
Marco:
They're actually like working professionals in this field that are experts and can, and know what they're talking about.
Marco:
Um, and they have all sorts of stuff that they tell you about business strategies, uh,
Marco:
all the way down to like you know you know management and then all the way down to like development stuff you can learn ios development web development uh you can learn creative cloud apps if you want to brush up on photoshop learn how to use in design stuff like that uh if you want basic office stuff how you know advanced stuff in excel or how to use quickbooks how to use powerpoint effectively um even media production stuff you know
Marco:
videography, podcasting, photography, all this sorts of stuff.
Marco:
They have an amazing course library here.
Marco:
I went on there and learned a lot about how to use logic better to edit this show and just kind of get better at this whole field that I've never had any training as an audio engineer.
Marco:
Well, now I have, kind of.
Marco:
So check out lynda.com, L-Y-N-D-A.com.
Marco:
They really have an amazing range of video courses here.
Marco:
And again, $25 a month gets you access to the entire catalog.
Marco:
And what's best is that you don't even have to pay up front to see.
Marco:
If you go to lynda.com slash ATP, that's lynda.com slash ATP, you can get a seven-day trial for free.
Marco:
So before you pay anything, you go there, lynda.com slash ATP, and start a seven-day trial, and then watch some videos.
Marco:
See, you know, anything, browse the whole catalog.
Marco:
You will be shocked how many videos they have.
Marco:
It's really quite impressive.
Marco:
So once again, check out lynda.com at lynda.com slash ATP.
Marco:
Thanks a lot to Lynda for sponsoring our show once again.
Marco:
They're really a great service and I personally have used them and recommend them.
Casey:
When I looked at them a couple weeks back when they first sponsored, I saw this really long list of videos.
Casey:
And I was like, you know, that's a lot but not overwhelming.
Casey:
And then I realized I was only looking at the new videos area.
Casey:
And come to find out there were 11 gajillion videos waiting for me.
Casey:
I just hadn't navigated away from the new videos section.
Marco:
Yeah, like if you just look at any of the categories, you know, like pick an application you want to learn how to use better or pick a programming language that you want to learn.
Marco:
And you can see like it's pretty deep.
John:
The pricing plan is so nice because when you have a huge selection like that, if you had to pay like even like a dollar a video, you'd worry like, oh, is this the right video out of the umpteen million that I could pick?
John:
Like even if it was just a dollar a video, you'd spend all this time fretting.
John:
It was just a flat fee.
John:
Just like sit there and watch videos.
John:
It doesn't matter how many you watch.
Casey:
Exactly.
Casey:
Yeah.
Casey:
All right.
Casey:
So we put this off last week, and I think we should talk about it this week before it becomes so stale that it's not worth talking about.
Casey:
It seems like it's that time of year.
Casey:
And it's that time of year when everyone in the iOS development community says, oh, Objective-C sucks, and we really need to get over it.
Casey:
We need to get away from it.
Casey:
We need to move on to something better.
Casey:
Apple, why won't you help us?
Casey:
Yeah.
Casey:
And this was originally, well, in my exposure, originally posited by John's piece called Copeland 2010.
Casey:
And I guess, John, would you like to describe simply what Copeland 2010 was saying?
Casey:
Can you summarize that for us?
John:
Yeah, I think – I don't have a link in here, but when did I write that?
John:
2005 or something?
Casey:
The Stone Ages.
Casey:
It was a long time ago.
John:
But anyway, the point is it was before 2010.
John:
And the point of my blog post is that I was worried about what Apple was going to do with its language and API going forward because it seemed like all of its competitors were moving to sort of memory-managed, higher-level languages, and Apple was not.
John:
They were sticking with a C-based language, Objective-C.
John:
Uh, this was all, yeah, it was 2005.
John:
This was all before the iPhone and before all that stuff or whatever.
John:
And Copeland is a reference to one of Apple's many failed attempts to get a next generation operating system.
John:
They had the classic Mac OS, which is a really old school operating system where any application could write to any part of memory, including the parts that are used by the OS and everything like that.
John:
And so, which meant that a badly behaved app that, uh,
John:
started writing memory to a bad pointer, would just scribble over random parts of memory and bring your whole machine down.
John:
And that was just archaic, and everyone else was getting protected memory and preemptive multitasking where the OS could take the CPU away from a process.
John:
That wasn't true in the old Mac operating system unless the process yielded.
John:
So it had these technical problems with its OS, and it could not figure out a way to get a next-generation operating system.
John:
And Copeland was the highest-profile failure.
John:
I have a book on my shelf to my right that's –
John:
Copeland was going to be Mac OS 8, and it's called Mac OS 8 Revealed.
John:
And it's a book published by Apple with an Apple logo from Apple Press describing the next generation operating system that would be Mac OS 8.
John:
And, you know, it's Copeland, basically.
John:
That operating system never shipped.
John:
Apple shipped something called Mac OS 8, but it was not Copeland.
John:
There were other failed attempts and other weird partnerships, and this was all the dark times of Apple's existence.
John:
But the Copeland 2010 thing was...
John:
Me saying if Apple doesn't get its act together and come up with whatever it's going to plan for its next generation programming language and API, it could find itself in the distant future, like the year 2010.
John:
I'm writing this in 2005.
John:
I've read Arthur Clarke as a kid, so of course I'm going to pick 2010.
John:
If they don't get their acts together, they could find themselves in a situation just like they were with Copeland where everyone else has something, they don't have it, and they don't have a viable plan to get it because it's not so easy to snap your fingers and get a new app.
John:
modern language runtime and uh and api to go with it uh i also wrote another article in 2010 called copeland 2010 revisited explaining what i got wrong and why about you know about particularly about the year 2010 because people are expecting well here we are in 2010 and apple's not having any problems because they don't have a memory language and api and there are lots of other
John:
uh reasons for that but in general the major failing is like anytime you try to predict the future you just pick some round number in the future that seems so distant it's been really it's only five years away and that's just you know bad thinking and a common mistake when trying to deal with the future but anyway as casey said the topic topic came back up again and i'm not sure why it came back up again and i'm not sure what people are saying about it that's different than what's been said before maybe casey can enlighten me
Marco:
Well, there were these two posts.
Marco:
There was one by Ash Furrow and one by Steve Streza, which we'll put in the show notes.
Marco:
And basically with the, you know, just saying we need to replace Objective-C and with a few things that we need that would be better.
Marco:
And then our friend Guy English wrote a post in response to these that basically said, and forgive me if I'm butchering the argument, but basically said, like,
Marco:
It's easy to hand wave and say we need something better, but we need more specifics.
Marco:
What exactly needs to be better and how would that work?
Marco:
It's easy to just say, oh, well, we need something that's higher level.
Marco:
Okay, well...
Marco:
Does that mean garbage collection?
Marco:
Does that mean reference counting in a different way?
Marco:
Does that mean a dynamic type?
Marco:
All these decisions about higher-level languages, and it seems like not a lot of the arguments contain answers to questions like that.
Marco:
It's just like, oh, we have to have something that's newer, and that will by default be better, which I think is itself a flawed argument.
Casey:
Yeah, it seemed like – it's tough because I have tremendous respect for Ash and for Steve.
Casey:
But it seemed very hand-wavy.
Casey:
And this argument tends to go around regularly in the iOS development circles.
Casey:
And it seems like every year or two, everyone gets all upset about the fact that we're still writing in Objective-C.
Casey:
But the problem that Guy seemed to have, and I concur with it, is, okay, that's lovely that you think that Objective-C is bad, but tell me what's bad about it, or tell me why we need something new.
Casey:
And, you know, before ARC, Automatic Reference Counting, and before Grand Central Dispatch and BLOX, I would have probably said the same thing.
Casey:
And I probably would have said that, you know, not having closures...
Casey:
In 2012, 2013, that's a problem.
Casey:
But I don't remember when blocks became a thing, but it was – I want to say 2012.
Casey:
But so up until 2012, I probably would have agreed.
Casey:
And in summary, there were a couple of really big advancements, really big and important advancements in the last couple of years that I really think brought Objective-C to a position where it's –
Casey:
It's relatively modern in its own archaic ways.
Casey:
And so I don't really see what's so terrible about it.
Casey:
And I can tell you that Coco and Coco Touch, which are the frameworks, they are –
Casey:
They are unbelievably good.
Casey:
They're truly amazingly good.
Casey:
And I love me some C Sharp.
Casey:
I really do.
Casey:
But the .NET framework, while very solid, is nowhere near as good as Coco and Coco Touch.
Casey:
And so I don't really see what the urgent burning need is to get rid of Objective-C.
John:
Considering I've had the urgent burning need to get rid of Objective-Z since 2005, you won't be surprised to learn that I still feel it.
John:
And really what I was writing there, the audience of that was not so much developers trying to tell them that the language they're using is bad or something, but it was really Apple.
John:
And I think that by the time I was getting a little bit panicked about this, well, part of it is kind of like how someone who's...
John:
grew up in the depression is always panicked about money and worried about not having enough food and stuff like that.
John:
If you live through the whole Copeland disaster, obviously, you're going to be a little bit more panicky about Oh, my God, what is what is Apple's plan for its next generation, whatever, because I don't want to see that thing that and you know, the Apple today is so different than the Apple then that it's a little bit ridiculous.
John:
But that a lot of that is that's where that's coming from as someone who experienced their
John:
you know a company that they admired and thought should be successful almost die because they failed to think about stuff like this ahead of time but as the years pass i don't get more relaxed about this it just you know i i continue to worry about it and my my point would be like if i was in charge of apple i would have had starting and like starting basically when java say you were totally asleep at the wheel and java comes on the scene i would have had
John:
Multiple teams, multiple small teams of the fanciest, you know, computer science, PhD, whatever.
John:
Maybe these teams don't know about each other.
John:
Maybe they're on different continents, you know, whatever.
John:
Working on the next generation language, runtime, and API, all those things.
John:
And most of those teams, I imagine, would fail and produce nothing useful.
John:
But, you know, your Apple, you have all this money.
John:
I'm talking about the modern Apple budget.
John:
You know, like maybe the old Apple could only afford to have one or two teams with a few people who aren't that good.
John:
But at this point, Apple could have 10 teams with, you know, the 10 best people money can buy all working on this.
John:
And the reason I bring this up is not so much that, oh, we need to replace Objective-C next year.
John:
If at WWDC 2016, Apple doesn't replace Coco and Objective-C, they're doomed.
John:
Of course not, right?
John:
It's because doing this, making a new language and an API...
John:
is so incredibly difficult and takes so long to ring out.
John:
And you have to ring it out, not just in these little labs and these competing teams, but then you actually have to build real apps with it.
John:
And you have to sort of, like, it's just so hard to do this transition, so hard to make.
John:
I would say the API is harder to make than the language and runtime.
John:
People focus on the language and runtime so much.
John:
But that's kind of like, you know, that's basically basically just picking from, you know, what do you want?
John:
What features do you want?
John:
And they can do experiments with that.
John:
But making the API that matches up with the language, because I've always said that you can't just have the new language.
John:
You have to have the API and the language to go with it.
John:
And Coco has been in development basically since like the 80s.
John:
And it's taken that long for Cocoa to get from where it was in the 80s to where it is now.
John:
So assume whatever thing you're going to make to replace Cocoa is going to take at least as long to get at least as good, you know, in terms of relative, you know, so you're not going to jump from, okay, Objective-C is done.
John:
Now everyone try this new language in this new API.
John:
Uh,
John:
And it will be better than Coco.
John:
It won't be out of the gate.
John:
It'll be worse in the beginning, just like OS X was worse than classic Mac OS in almost every respect for years.
John:
And it took years to develop, and it was false starts with the whole Rhapsody project and everything like that.
John:
I know how long it takes to do this, and I know how badly wrong it can go.
John:
I mean, like...
John:
Think of every other company that's tried to do this.
John:
Even Microsoft with C Sharp and Common Language on time, which I would say is the biggest success story, hasn't been a clean win in terms of getting ready to win 32 and now win 64, if you want to call it that, and all this other stuff.
John:
And that also took years to be adopted widely for developers.
John:
yeah and like it just and they they put tons of money and tons of like you can't wait you can't say like objective c is fine now and it's going to be fine for five years therefore we need to do nothing assume that it's going to take you 10 15 years to get this crap figured out and assume you're going to fail a couple times before you do because i think those are safe bets
John:
Someone in the chat room posted, well, maybe Apple's just holding its cards close to its vest.
John:
That's entirely possible.
John:
As with anything in Apple, you have no idea what the hell's going on over there.
John:
They could have 17 teams full of people who they kill after their three years are up if they don't produce something useful.
John:
And they hide the bodies and we have no idea what's going on.
John:
So that's where I'm coming from with this.
John:
Not so much from the perspective of like I'm developing today and I think this is ridiculous because I do think a lot of that stuff is ridiculous.
John:
But I feel like I understand how incredibly hard it's going to be to make something that's better than this.
John:
And the second part of this is that I think a lot of people don't want to sign up for and maybe is not relevant to them is that.
John:
This day will come.
John:
And I think a lot of people are either are of the opinion that this day will not come in their lifetime, which may be a very safe bet, in which case, you know, they feel justified in saying, look, I'll be dead or retired when this happens.
John:
So I don't have to worry about it.
John:
So it's not on my radar at all.
John:
And how maybe the current leaders of Apple think I'll be dead or retired by the time this happens.
John:
But
John:
I'm thinking longer term, like, yes, I and everyone I know I'm going to die.
John:
But if Apple wants to live on or if we as humans want to live on, there will come a day when it is unacceptable to have a pointer that you can scribble all over the memory.
John:
Yes, just of your own process.
John:
Sure.
John:
But that's barbaric.
John:
That's going away.
John:
We all agree it's going away.
John:
It's just a question of the timing.
John:
And a lot of people think, well, the timing is not in my lifetime.
John:
Therefore, I don't care about it.
John:
But someone's got to care about it.
John:
Otherwise, Apple's going away.
John:
And if you don't care if Apple goes away...
John:
you know, then fine.
John:
But someone at Apple, presumably, should care if Apple goes away, even if they're retired when it happens.
John:
I don't know.
John:
Maybe I'm thinking too long term.
John:
Maybe this is not how human beings think, and I just have to accept that Apple's going to go under in 75 years because they're never going to get away from Objective-C, and someone else is going to replace them, and that's the way of the world, and I should just be okay with it.
John:
But
John:
That's where I'm coming from with this.
John:
And that's why I think calls for like, what specifically do you want or whatever?
John:
As many people pointed out, that's what Apple is supposed to figure out.
John:
It's not our job to come up with Apple's next generation language in retirement.
John:
It's their job.
John:
And how do they do it?
John:
It's going to take them a whole bunch of tries and it's going to be really hard.
John:
And they should have been started working on it two decades ago when it was obvious that this is the way that the world is going.
John:
And it should have always been obvious.
John:
This is the way it always goes to higher level languages.
John:
So that's what I'm fretting about.
John:
And it's kind of an esoteric concern that no one really cares about.
John:
But the rank and file people who have to deal with Objective-C every day, they see what other languages are like.
John:
And those other languages have features that everyone agrees are good, that they wish they had an Objective-C.
John:
And it's like, well, you can't just have that feature.
John:
You can't just have the native regular expressions or nicer strings or memory protection, not memory protection, but managed memory and not having to deal with pointers and stuff like that.
John:
You can't just tack them on, right?
John:
Yeah.
John:
But they see them in other languages.
John:
They see them in contemporary languages that are doing similar things.
John:
And they say, well, everyone agrees that's good.
John:
Why do I have that here?
John:
And that kind of discomfort is maybe how this type of stuff begins.
John:
But this is not something that can begin from the outside.
John:
It can't be a bunch of developers complaining about Objective-C.
John:
It can't be developers leaving the platform because they don't like Objective-C because that's not going to happen as long as they continue to sell apps.
John:
It has to be from within.
John:
So this is something that Apple needs to undertake.
John:
And that's always been my thrust with the whole Copeland 2010 thing.
John:
It's not telling developers what to do.
John:
It's trying to tell Apple what to do.
John:
And we know how successful that usually is.
Casey:
Right.
Casey:
But the problem is that as someone who has a leg in two worlds, there are definitely things about Objective-C and Coco that I wish I had when I do my day job of writing C Sharp.
Casey:
Like Grand Central Dispatch is a great example.
Casey:
It is unbelievably easy to just throw things onto random cues and to throw things onto the main thread without even having to think twice about it.
Casey:
And C Sharp has gotten better with that over the years.
Casey:
But
Casey:
Apple did a great job.
Casey:
Now, granted, the syntax is unbelievably bad.
Casey:
And there is an entire website whose URL I can't mention without having a horn go off.
Casey:
But there's an entire website based on the syntax for how to write blocks properly.
Casey:
And that's probably not a good sign.
Casey:
But nevertheless, there are things about COCO, this antiquated language that we all want to throw away that I – well, COCO is the framework.
Casey:
But there's things about Objective-C and COCO as a pair that is supposedly so antiquated that I would love to have in Objective-C.
Casey:
And it doesn't mean that you're wrong, John, but it –
Casey:
I don't see the urgency that perhaps a lot of other people see.
Casey:
I concur that it needs to be being worked on, but I don't know that we're at the day where they need to flip the switch.
Casey:
And I don't think you're saying that either, but it seems like it's still a little bit down the road to me, as long as there's continued improvements to both Coco and Objective-C, which there are.
John:
Well, like the urgency should be at Apple.
John:
And I understand the anti-pattern they're defending against is if you spend all your time worrying about your stupid next generation thing, then you take your eye off the ball, which is people making Objective-C better, people working on Cocoa.
John:
Like Apple is so about focus.
John:
I can totally understand.
John:
Well, that's a sucker's bet.
John:
You do not want to spend all your time coming up with these crazy new APIs and these crazy new languages.
John:
You're taking your eye off the ball.
John:
You should be making the products that you have now better.
John:
Like what they're doing with Objective-C and LLVM, like that's exactly what they're supposed to be doing.
John:
Yeah.
John:
and any effort they spend so they might think any effort they expend on like what is the next generation pie in the sky architecture astronaut crappy thing that we're supposed to be doing that is just like that's not in our dna we don't worry about that or whatever and i understand the urge not to fall into that trap but the other trap is we will never have to do that we will get there by increments starting from c we will have pointers forever
John:
until we don't, and that will somehow make that transition.
John:
How do you get from point A to point B?
John:
It's kind of like what they tried to do with the classic macOS.
John:
Copeland was like, we can try to keep some kind of compatibility, and old-style Mac apps will be able to scribble all over memory, but we'll make these new-style apps that run on this new kernel that...
John:
are protected from each other.
John:
And eventually all the old apps will go away.
John:
It was an idea to transition into protected memory and preemptive multitasking, maintaining backward compatibility with existing classic apps by allowing them to still have free RAM of memory, but just like the device drivers and the new apps wouldn't.
John:
It was a hybrid-type incremental solution, and they could never pull it off.
Yeah.
John:
It's not to say they couldn't pull off because it was incremental.
John:
It's just to say that I think history has shown that the next generation thing will be very different from the previous thing.
John:
It won't be the previous thing just improved in small increments.
John:
It will be something entirely – very often something entirely different from a different company, which is not what you want.
John:
Apple managed to do it to itself by saying –
John:
Well, sort of, like we sent our CEO away in 1985, and he made another company, and now he made a new OS, and we're just going to bring that back.
John:
And that's our new OS, convenient.
John:
That was all secret plan all along.
John:
You see, it was very clever.
John:
Anyway, it was a complete replacement.
John:
People objected on Twitter, citing OS X as a complete rewrite of the Mac operating system.
John:
From the perspective of the op, it is a different operating system.
John:
It has a compatibility layer that was, you know, to, you know, virtualize for classic apps and everything like that.
John:
But holy cow, is it different than classic Mac OS?
John:
It's Unix, for crying out loud.
John:
So incredibly different.
John:
I know this.
John:
That was the thing.
John:
Exactly.
John:
that was the thing that worked right there most often the thing that replaces you is radically different and also from a different company so if apple doesn't want that to happen if they don't want the next thing to be radically different and also from a different company they need to balance their desire not to take their eyes off the current ball which i agree with with the reality that eventually like eventually you got to come you got to go away from pointers not this year not this decade like but it's like
John:
Whenever you think it is in the future, I've never met anyone who says, nope, pointers are going to be forever.
John:
7,000 years from now, people will be writing programs, and if they dereference a bad pointer, they're going to scribble all over memory.
John:
Like, that is not going to happen, right?
John:
And, well, Apple will be gone, then it doesn't matter.
John:
Like, I guess it just depends on...
John:
what time horizon you consider fruitful to think about.
John:
And I'm thinking about time horizons that I myself would have to say are perhaps not fruitful for me to be thinking about.
John:
But those are the type of things I think about.
John:
And I think someone at Apple somewhere should be high-minded enough to realize this is concern and to start doing something to help with that.
Marco:
See, I'm a lot less convinced that this is inevitable, that a progression like this has to happen even within a time span of like 20 years, 30 years.
John:
How about 200, 300?
John:
Pick your time scale.
John:
Everyone agrees it's going to happen, right?
John:
Well, sure, but I think... So we're just arguing over the number then.
Marco:
That's it.
Marco:
I think objective C, modern objective C, and the tools that we have for it,
Marco:
are so much more advanced than where it was five or ten years ago.
Marco:
And, you know, I think that we...
Marco:
I don't think modern Objective-C is as far away from what people want as they think when they write blog posts like this.
Marco:
If you look at a lot of the complaints or a lot of the things people say it needs, a lot of them are APIs, not part of the language.
Marco:
A lot of them are really fairly minor cosmetic details almost.
Marco:
And a lot of it, it already has.
Marco:
Looking at the history of programming languages, there's this assumption that you've said that most of these posts are based on, which is that everything always moves higher level as time goes on.
Marco:
But that's not necessarily true.
Marco:
Stuff moved higher level at the beginning.
Marco:
It's true with bumps.
Marco:
Obviously, it's not a straight line, but it's true the trend line.
Marco:
Sure, but there are certain things that kind of settle in and become kind of locked in, and I think one of the greatest examples of this is C. C has been around forever.
Marco:
No part of it is new, except blocks, but that's about it.
Marco:
No part of C in general use is really that modern, and yet it's been around forever, and it's everywhere.
Marco:
And every language, usually languages are written in C. Usually languages have tons of C modules that can be added on.
Marco:
Anything that high performance is required is usually written in C. Historically, I would not bet against C.
John:
But you have to.
John:
You know it's going – like, it's not going to go away in the same way Assembler didn't go away.
John:
I mean, hell, even machine code didn't go away.
John:
Like, people were running game consoles.
John:
Someone's writing some hexadecimal numbers that they know are machine code, right?
John:
Like, it's obviously like a layer cake, but C will lose its primacy eventually, the same way Assembly lost its primacy as the way you program computers, the same way that machine code did.
John:
C is just having a much longer life than –
John:
I don't know.
John:
Has C had a longer life than assembly?
John:
I'd have to look up the numbers to see.
John:
But certainly assembly had a longer life than writing a machine code because it was so incredibly unfriendly.
John:
But like all you're arguing about is timescale.
John:
You think like, oh, this is a long plateau.
John:
You're right.
John:
It is a longer plateau.
John:
How long is the plateau going to be?
John:
But I think the systems that we have now that do use higher level languages are out there enough to sow a little bit of discontent, even in just the regular rank and file people who...
John:
find it like so much less verbose, like to get sort of the same operation done in a higher level language like Python or Ruby or something like, boy, I have to do so much less typing and it's so much more clear what I'm doing.
John:
It's just more concise.
John:
It's a higher level language.
John:
I can do more with less typing.
John:
I could be more clear with my intent.
John:
Even things like Go or implicit parallelism and other abstractions that allow you to express yourself in a way that would not be possible in C,
John:
uh even in a language that's not particularly higher level than c because go is very similar to c but with like better libraries and built-ins and stuff like because of all the existing high level languages that people do other kinds of development in it allows them to see what the future might look like even if we're not quite ready for it today and i think that's i mean that's that's the beginning of the writing on the wall for c-based languages and you know you're saying i wouldn't bet against c and it's locked in like those are all relative terms like you know
John:
If I start throwing out big year numbers, eventually you agree with me, but you don't want to agree with them in any year number that you can envision either being alive during or envision anyone you know being alive during.
John:
Maybe that's just human nature, but everything just depends on what the timescale looks like.
John:
There are discontinuities where suddenly you make a great leap forward because of some reason, because an earthquake wipes out Apple and Google and some new company has to rise from the ashes and it bases everything on Erlang or something and we enter the new Erlang age or
John:
I'm trying to think of a crazy language.
John:
But yeah, I think your desire not to think about anything beyond C may be well-founded because for your entire career, you'll never have to think about that.
John:
But your grandkids probably will.
Marco:
Yeah, I mean, and I think...
Marco:
I totally agree that given a long enough timescale, you're right, that given a long enough timescale, this will have to be replaced.
Marco:
But I think it's pretty likely that by the time that happens, Apple might not be that relevant or we might not be running the same OS even.
Marco:
Well, if they don't listen to me, of course they don't.
Marco:
I think there's a lot of things that keep Objective-C as it is in power.
Marco:
And part of it is that there's the whole tool chain that kind of requires it.
Marco:
But even the reasons why things that are compiled down to Objective-C and various toolkits and stuff haven't really been huge is mostly because...
Marco:
Objective C, as I said before, it's close enough in a lot of ways to what people actually want.
Marco:
And you can say, oh, look, the brackets are ugly.
Marco:
And that's mostly people who are unfamiliar with it who say that.
Marco:
And then once they get familiar with it, it just stops mattering because every language looks weird when it's unfamiliar to you.
Marco:
And I think...
Marco:
So I think it's close enough to a lot of what people want.
Marco:
I think a lot of the alternatives are not clear-cut.
Marco:
Like, if you say, okay, well, you shouldn't even have to think about memory ever again.
Marco:
Okay, well, then, you know, which memory management model do you pick?
Marco:
And that's not an easy question.
Marco:
You know, the question of types and how they're implemented, that's not an easy question.
Marco:
But also, we got this great, like, reset with the rise of mobile where efficiency is suddenly a lot more important than it was...
Marco:
2005.
Marco:
Because in 2005, if you're building a desktop app, the CPUs were so powerful back then for desktop apps for most types of use that you could do anything with the language.
Marco:
You could have the language having tons of overhead and tons of dynamic safety stuff, and it'd be fine.
Marco:
Whereas in mobile, that was a great reset.
Marco:
Obviously, mobile's getting faster.
Marco:
It will keep getting faster, and eventually this will become a lot less of an advantage, but
Marco:
It sure has helped iOS so far that most of the apps people use are written in a very low-level language, or at least are compiled down to a very low-level language, so that they have a lot less overhead than, say, Android apps.
Marco:
And there's different things like just-in-time compilation that have been very advanced in recent years, but still...
Marco:
the compiled C-based language that is mostly static and fast has a lot of advantages in mobile.
Marco:
And what's different in mobile is that the power budget is so much tighter that it actually matters not only for speed but for battery life.
Marco:
And so this will continue to matter for a while.
Marco:
And you're right, eventually it won't over a long enough timescale.
Marco:
But I think...
Marco:
I'd say we probably have a good 10 years at least where this will continue to matter and where it would be unwise.
John:
You're just picking around numbers.
Marco:
That's true.
Marco:
I think we have another 7.2 years.
John:
Yeah, I know.
John:
I know.
John:
It's the same thing I did with Pickwood 2010.
John:
Yeah, in the revisited article, I basically said, like, in 2005, what I didn't see coming in 2005 was, you know, the iPhone.
John:
I mean, who did, right?
John:
But, like, the prominence of mobile, right?
John:
And that – I wouldn't call it a reset.
John:
It's a delay, and it could be a massive delay.
John:
I forget what I said in the revisited article.
John:
Like, is it a 12?
John:
20-year delay it has at least a decade you know because yeah all the things you said are true like mobile being low level is such a massive advantage in mobile like that's why apple was able to do these like so everyone thought the iphone was fake because you know you can't do that they were like the java apps that were running on the stupid smartphones then there's no way you could do stuff like that in those jobs like you you need to have a crazy desktop powered cpu in there well if you have a language that's more efficient than java on your phone you can do pretty amazing stuff and yeah so this
John:
This has been an advantage and it's a sustainable advantage.
John:
And Apple's investing in that advantage and making Objective-C better and everything.
John:
So I don't know how long that delays things.
John:
It delays things for a long time.
John:
You're right.
John:
But on the other side of the like, yeah, it's going to happen eventually, but not in my lifetime.
John:
I always think about like we were just talking about WhatsApp or think about any, you know, think about MySpace.
John:
Things move faster in this industry than most of us are comfortable with.
John:
uh, like even just reflecting on it was every time I see like the timeline of, of something that like, Oh, this happened a long time ago, way back in 2004.
John:
Like, you know, how long was it before Facebook even existed?
John:
How many years ago?
John:
How old is his Facebook even?
John:
How old is Instagram?
John:
How old is Twitter?
John:
Like all these things that we accept as institutions, how old is WhatsApp that just costs $16 billion?
John:
Like in some respects, uh,
John:
things have a lot of momentum and mobile is going to going to keep us to keep apple's advantage of trajectory relevant for a really long time but in other respects that's what i'm talking about the discontinuities like the graph is not smooth there's long plateaus where nothing changes and there's a big spike where crazy things change and you never know what's coming down the pike so it could be that we are all stuck with c-based languages for our entire lives and careers um
John:
But it could be that 20 years from now, something dramatic happens that we didn't predict.
John:
And suddenly all C-based languages are swept under the carpet because the amazing new company that is becoming to prominence uses a language that's super high level that everybody loves.
John:
And everyone looks down at the barbaric people slinging pointers and relegates them to writing device drivers for whatever.
Yeah.
Casey:
Well, you know, I'm really upset at Marco because I was going to make the same point about mobile kind of resetting everything.
John:
I already made it in the revisited article in 2010.
Casey:
I know, I know.
Casey:
Well, okay, so I'm upset.
Casey:
Hopper did it first.
Casey:
I'm upset at both of you then.
Casey:
But the other thing to consider is if this supposed iWatch is really a thing, I mean, that kind of does this whole being near the metal.
Casey:
It makes being near the metal a huge advantage all over again.
John:
Well, do you think the power constraints of the watch are that much different than a phone?
John:
I mean, they're probably like 2x, but maybe not 10x less.
John:
I don't know.
Casey:
Yeah, but do you think you'd be in a position that running a just-in-time compiled or a common language runtime kind of setup is really going to be a good call on a watch?
John:
I don't think it's as big a delay as going from a laptop or a desktop to a phone.
John:
I think it's a smaller jump going from a phone to a wearable.
Casey:
Well, that's probably true.
John:
But yeah, you're right.
John:
The continuation of mobile and battery-powered stuff is going to be a substantial delay in making any kind of high-level language.
John:
It may end up being a disadvantage to anybody who doesn't have a C-based language.
John:
It already is.
John:
Talk to the Windows.
John:
I mean, it's hard to say because...
John:
Again, it's kind of like working backwards from success.
John:
It's like, well, the iPhone is so awesome.
John:
And as I said, the iPhone couldn't have existed probably without this type of language.
John:
But if Microsoft had not been so incompetent in its mobile strategy and had come up with an OS like iOS years before the iPhone using C Sharp,
John:
it would have had terrible performance and been like everyone would have looked at it and said why the hell are you doing this you're making everything so slow cpus can't handle this there's no mobile gpu that can sling this many pixels it's embarrassing and it would have reminded me of os 10. all that was 100 true of os 10 10.0 a composited gui
John:
running all in the cpu it was slow as balls you couldn't even scroll windows full of text it's like this is your next generation operating system i can't scroll a window full of text without it stuttering forget it and apple was like no no no we think this is the right way to do things eventually the hardware will catch up uh and it did so if microsoft had had
John:
Fielded, you know, sort of Windows Phone 7 or whatever the hell number they're up to way back in the day or done something like iOS on C Sharp and it was slow.
John:
That may have, you know, and they became successful.
John:
They became, you know, the iPhone because they did it first and they got they and they made this amazing product.
John:
And, you know, eventually it got good enough.
John:
And Apple was like the, you know, Johnny come lately, you wouldn't be able to make the argument that like, oh, well, the only way you can do this type of thing is with a low level language.
John:
I think something like C sharp and the common ground time now are good enough to make something kind of fast on a phone.
John:
It probably would have taken longer to be as fast as the iPhone is, and it wouldn't have been as good, but we wouldn't have the iPhone to compare it to, so we would be like, oh, this is as good as it can possibly be.
John:
The whole idea that the way things currently are is the only way they could possibly be, I have very big objections to that.
John:
And it's human nature to just assume that that's the case.
John:
So while I think that Objective-C has been such a big advantage to Apple, I don't think you can say, well, you could never have a phone-type device with C Sharp because C Sharp is not that slow.
John:
No.
John:
It's slower, you know, but like, I mean, hell, people can do amazing things with stupid JavaScript, which is crazy.
John:
Like, you know, we have those classic Mac emulators and stuff inside a browser window, and JavaScript, talk about a slow language.
John:
It's not designed to be fast at all.
John:
So I'm not convinced that...
John:
c sharp that objective c is the only way that we could have iphone like devices in our lifetime and i think even the current state of windows phone which yes i know uses code that you know quote unquote native code to do its things that have to actually be fast and the same thing with android but it's native code and i understand all these these things that they have to do to be faster but i don't think c sharp is necessary to have you know smartphones for example or objective c is necessary to have smartphones
Marco:
Right.
Marco:
I don't think anyone's making that argument.
Marco:
I think it's more that, you know, if you can have something that's this fast and this efficient, it's an advantage.
Marco:
It's not a requirement, but it's an advantage for sure.
Marco:
And as time goes on, it becomes less of an advantage proportionally, but still, you know, it still is significant now.
Marco:
And...
Marco:
And again, I just think, Casey, you are very qualified to talk about .NET.
Marco:
I would say C Sharp and the .NET framework are a very good example of the kind of thing that we might be moving towards, although we'd probably go, hopefully, another evolutionary step because that's now 15 years old or whatever.
Marco:
But based on what you know with .NET and what you know with modern Objective-C development...
Marco:
Are they really – like is .NET really that much easier to use for mobile app development?
Casey:
If you had asked me a year or two ago, maybe two, three years ago actually, I would have said yes.
Casey:
It is considerably easier.
Casey:
Ref counting is not that conceptually difficult, but it's still a hell of a lot more difficult than just writing the new keyword all over the place.
Casey:
But –
Casey:
Given the advances of ARC, given the advances of having closures in Objective-C, no, I don't think it's really that different.
Casey:
And that's kind of what I was driving at earlier.
Casey:
You know, there are things in Objective-C that I love and that I miss when I write C-sharp.
Casey:
There are things that are in C-sharp that I love that I miss when I write Objective-C.
Casey:
But...
Casey:
The first thing that jumps to mind of something that I really miss in Objective-C that I enjoy so much in C-sharp is something silly like reflection or introspection, which really is not necessary and is completely ancillary to the conversation we're having.
Casey:
By the way, a lot of that's there.
Casey:
No, it is there, but it absolutely is there.
Casey:
It's just comparatively a royal pain in the butt compared to how easy it is in C-Shop.
John:
But it changes the ways you write programs, though.
John:
If you think of writing an actual very high-level language, it's not just like an incremental step.
John:
If you have those features and they're kind of built into the language in a convenient way...
John:
It informs how you write APIs for that language.
John:
Absolutely.
John:
Think of all the Ruby people writing their stupid DSLs by making their little... Because it's so easy to just add methods to classes and extending the number class so they can put one.times and three.days.ago and all this.
John:
Not I'm saying all this stuff is good, but language features change what the API looks like.
John:
And another thing that changes what the API looks like is success.
John:
And I think a lot of these sort of
John:
The narrowing gap between Objective-C and C Sharp is based on the success of the companies that shepherd them.
John:
The relative success over the past decade of Apple versus Microsoft, it's a pretty stark contrast.
John:
And although Microsoft has been improving C Sharp and everything, they have not had the dominant, thriving, big new platform as a tractor to pull their language and API.
John:
They have had the kind of fizzling, not really doing well in the mobile market platform itself.
John:
And the old legacy Windows platform and a bunch of other confused APIs, you know, pulling them along.
John:
And so, yeah, the gap is narrowing because Apple's firing on all cylinders with Objective-C and Microsoft is – I don't know what they're doing with C Sharp.
Casey:
Well, you say that, but I mean C Sharp is making considerable strides on a regular basis.
John:
The language, yes, but the API –
Casey:
That's a fair point.
Casey:
The API has gotten a little better with parallel programming, for example.
Casey:
I would argue it's not as clean and as simple as Grand Central Dispatch, but it's better.
Casey:
But C Sharp as a language, I really, really, really, really like it a lot.
Casey:
A lot, a lot.
Casey:
And I'm not saying I love Microsoft.
Casey:
I mean, Microsoft has its own woes.
Casey:
But C Sharp as a language is really, truly incredible.
Casey:
And I really, really like it.
Casey:
And some of the things you can do with C Sharp, like...
Casey:
Someone brought up in the chat a minute ago, link, language integrated query.
Casey:
You can do some of that with predicates in Cocoa, but it's not as nice.
Casey:
It's not as easy.
Casey:
And like I said, reflection earlier, some of those things are really incredible.
Casey:
And having easy access to introspection, having easy access to writing SQL-esque queries against objects,
Casey:
It makes the way you write code very different, just like you said, John.
Casey:
And so I see both sides of this coin and it's so tough.
Casey:
I want to be more definitive and come down with a particular perspective.
Casey:
But I don't know.
Casey:
I don't know.
Casey:
I don't know what I would do if I was Apple other than put some really big nerds on it and see what they come up with.
John:
I think Link is a good example because this whole thing of like, you know, higher level language with managed memory and these other features and native strings and all these other things from high level language that we think we want.
John:
And it providing you the ability to like, let's try this experiment.
John:
Let's do this, you know, Link is yet another attempt to sort of
John:
make it easier to deal with big buckets of data in a language like we want to get the data out and we want to get the data into like variables essentially in our language so we can deal with them we want to take whatever structures we have in our language whether they be objects or something else and put them into some other big bucket of data probably a database like how many times has have we taken a run at this problem with object relational mapping and direct sql queries and link was yet another example and it just goes to show that like
John:
the features of language that we're talking about being higher level will become a necessity it will be necessary to have to be to you know to be memory managed to not be able to have a seg fault to have things that we all expect to have like you know name parameters native strings and maybe regular expressions and native implicit parallelism baked into the runtime like all these things those will be necessary but they will not be sufficient to be a better language
John:
because link many people link many people hate because they're like you know everyone hates all realms right but then link people like oh this is a great idea and then you use link for a while and you're like no link's not that great either and some people go back to just writing the sequel queries like just because you have these features doesn't mean you're going to make an awesome api gcd is a great example the people who made that had had a better idea of what would make a good easy api for do parallels and they shoehorned into just c for crying out loud right you know it
John:
Just because you have memory management doesn't mean you're going to come up with an API as good as GCE.
John:
It doesn't mean that you're going to come up with a way of dealing with databases that's better than length, that's better than ORMs, that's better than writing direct queries.
John:
Like, it doesn't automatically make you the winner, but it will eventually be necessary.
John:
And if eventually you get to the point, like Apple was with Copeland, where...
John:
No matter how good your stuff is, if you don't meet this minimum bar, if you do not have memory protection, you become a non-entity.
John:
You can't play in the game anymore.
John:
No matter how awesome your stuff is, you're like, oh, look at this, we have this and we have that and our UI is nice or whatever, it's like, I'm sorry.
John:
You spent a long time over there dicking around, and the bar has moved, and now you are just not a player anymore.
John:
And that's the scenario that we're trying to avoid here.
John:
It doesn't mean that if you make a memory-managed language, then it will be better than Objective-C.
John:
In fact, chances are very great that it will not be, and your API will not be as good as Coco.
John:
That's why I was saying make 17 teams, put them against each other, don't tell them each other exists.
John:
It's going to be difficult to do.
John:
It's not even guaranteed that you're going to be successful, but if you don't try, you are guaranteed long-term that you're doomed.
Casey:
Yeah, I agree.
Casey:
It's just, I don't know, it's so tough.
Casey:
And one thing I should point out is that Link is about more than just hitting databases.
Casey:
I mean, what's really powerful about Link is if you have a dictionary or a hash table in memory, you can write really expressive queries against that hash or that dictionary.
Casey:
And you can do it either in a format that smells a lot like SQL.
Casey:
Literally, within code, you can...
Casey:
You can write, you know, from dictionary, where blah, select blah, or you can do it in a more traditional way.
Casey:
But Link is extremely powerful.
Casey:
And it's things like that that make me think you're right, but...
Casey:
I don't know.
Casey:
I think the most prescient thing you said was that it takes a long time to develop a really solid API, a really long time.
Casey:
And I don't think the .NET framework's there.
Casey:
I would take Coco over the .NET framework.
Casey:
As much as I would miss link, as much as I would miss reflection in the easy-peasy form that it is in .NET, I would probably take Coco over it.
Casey:
And that's saying a lot.
John:
Even if you have an awesome API, and even if you have an awesome language, and everyone agrees your API is better than everything else in the market, and everyone agrees your language is better than everything else in the market, if it's not attached to a successful product, that will also doom it all.
John:
The things that have to come together, that's how we end up with C and Objective-C.
John:
It's like...
John:
In the end, no matter how great a thing you make in terms of the underlying things, if it doesn't get attached to a successful product, it's gone.
John:
And whatever is attached to a successful product, provided it meets some pretty low minimum bar of suitability, it will be wildly successful and will be stuck with it for decades anyway.
John:
So that's the other theme of this show.
John:
Just because everyone uses it and it's attached to successful products, it doesn't mean that it is the best thing that we could ever possibly have and it's successful.
John:
And Objective-C would be nowhere if Apple didn't buy Next, right?
John:
Is it because Objective-C is bad?
John:
No, Objective-C is better in many, many ways than a lot of its contemporary languages.
John:
But it would be nowhere if Apple hadn't bought them.
John:
And so, like, Apple has – when you have the successful product and you have the ability, as Microsoft sort of had, to try to prevent yourself from becoming irrelevant by revving your technology stack –
John:
trying to do it at the same time as also making successful products i don't know maybe it's impossible maybe apple's maybe apple's lifetime is limited by the lifetime of objective c if it's institutionally incapable incapable of ever making anything good enough to replace it then it will be apple as a company will live as long as it takes your objective c to become like a disqualifier where now like just like memory protection was like memory protect lack of memory protection preemptive multitasking became a disqualifier for the desktop pc market
John:
And Apple had to do something and they almost went out of business.
John:
Well, that if that's Apple strategy, we should see if we ever get Tim Cook on the show.
John:
I would ask him this super esoteric question.
John:
It's like I think this is like, you know, it's probably he'll be retired.
John:
Like he doesn't have to worry about this like personally.
John:
But I wonder if you're a CEO of a company, if you ever think about things like this, like.
John:
three ceos from now that guy might have to worry about this do i care at all and if i do am i planning for it now or am i just content to say we're going to make complete improving objective c as long as hard as we can if it ever becomes a disqualifier success well that's the end of apple but that'll be so long from now nobody alive cares so good job
Casey:
So what I keep wondering is right around the time that I think all of us were getting completely fed up with the fact that we needed to perform our own reference counting in Objective-C, that's when ARC came out.
Casey:
And at the last possible moment, the biggest issue that all of us had – or I would say the biggest issue all of us had with Objective-C –
John:
suddenly wasn't an issue anymore if apple continues down that road and at the 11th hour finally fixes whatever the current issue is is that a is that a long-term plan that'll work do you think well it took them two tries to do that because the first try was garbage collection right and that and that was a multi-year effort that ended in failure because like it it wasn't widely adopted by anybody except i think i think they made the xcode guys do it i forget who they had dog food the garbage collection but like
John:
it didn't work out because it wasn't nicely compatible with the c-based language so they found a better solution that had better characteristics it was a better fit for their language that is more of a compromise in many senses than garbage collection but it is so much better fit for a c-based language and also garbage collection has many disadvantages on mobile that arc doesn't have so arc was the right solution at the right time for apple no question but it's not really the right solution if you're ever if you're going to try to incrementalize your way from where we are now to a higher level language
John:
I guess if you're phenomenally successful, you can use that to extend your life for a really long time.
John:
But eventually, we're going to kind of get to the point where we are like with HFS Plus, where there we go, bingo board, where you kept tacking stuff on to something for as long as you possibly could.
John:
And as long as you're still successful, you know, hey, all those iPhones, I got HFS Plus on them.
John:
It must be pretty awesome, right?
John:
Like you can keep adding features for a pretty long time if you have successful products.
John:
You're just really delaying the inevitable, though, and I have a hard time seeing a path from something like Objective-C.
John:
The difficult transition is when do the pointers go away?
John:
There's always a chasm.
John:
You can keep making things better, improving the syntax, dot notation, string literals, object literals.
John:
You can do lots of awesome things, especially with the LLVM, their new compiler infrastructure.
John:
They have a lot of runway out in front of them.
John:
They can do lots of awesome things.
John:
Again, long enough probably for everyone who works at Apple to get old, retire, and die.
John:
But eventually the Runaway does run out, and you're left with this crazy-ass mongrel, like the Runaway, I think, has run out on HFS+, that you can tell has had tons of stuff modified and tacked onto it.
John:
And some other successful product will come along and will be successful, not because of the language, but just incidentally also happens to have a language where you can express yourself consistently.
John:
concisely you know in a so much nicer manner that people will in addition to saying i'm going to write for the whatever contact lens os because that's awesome in the year 20 whatever uh and by the way the programs are awesome and you don't have to you know maybe they'll just say square brackets again because that's all people can see is a stupid syntax even though it's not the most important thing uh but yeah like there there will be a better way to program and it will be attached to some other product if apple doesn't make it
Marco:
Yeah, and I think this conversation – the conversation of like, oh, Apple needs to do this, I think if you're going to make that point, I think it needs specifics.
Marco:
And it's easy to say, oh, well, Apple needs to do – they need to move in this direction in general terms.
Marco:
And I agree that they do need to move in the direction of higher level eventually.
Marco:
But –
Marco:
There's a big question mark there of what exactly that means.
Marco:
And you said earlier, John, that you think it's Apple's responsibility.
Marco:
I don't necessarily think that's the case.
Marco:
I think they should have smart people thinking about it, but I think it's up to the world of developers, really, to figure out what the heck we want.
Marco:
And that, I think, is a much harder question.
Marco:
I definitely think that the whole platform and all developers benefit substantially by there only really being one canonical language that you write apps for these platforms in.
Marco:
There's one language with the official API, and yeah, there's fringe efforts to use other languages, but I think...
Marco:
I think overall everyone benefits from there being one agreed-upon default language.
Marco:
So the question is, if something's going to replace that language, what changes and what decisions are good enough to replace it?
Marco:
Because if you try to have it both ways and try to maintain both, you had two whole shows on bridges.
Marco:
It doesn't really work very well.
Marco:
So...
Marco:
What choices would they make?
Marco:
Right now, Objective-C is pretty good at most stuff, really good at some stuff, and really rough at some other stuff.
Marco:
But overall, I would say it's pretty good, right?
Marco:
And I think overall people who are familiar with it enough to look beyond the brackets would probably agree with that.
Marco:
It's pretty good.
Marco:
So what...
Marco:
What new thing would be at least that good to at least as many people or applicable to as many circumstances?
Marco:
And I think that's a really hard question.
Marco:
And this is like a design question.
Marco:
This is not as much a technical question.
Marco:
This is a design choice.
Marco:
And design is hard because a lot of times with design questions, there is no good answer.
Marco:
It's a lot like politics.
Marco:
There is no...
Marco:
good policy in some cases where everyone's going to be happy or where it's universal win or even everyone can agree that it's a net win at all.
Marco:
And so I think Objective-C replacements are going to face a big problem there which is like there's this huge API that has to be
Marco:
ported over or converted or rethought.
Marco:
There's this huge install base.
Marco:
There's all these developers who know what it is.
Marco:
For the most part, it works really well.
Marco:
All the problems of C that make it hard to use or clunky or hard to maintain if it's badly written, Objective-C tackles a lot of those and severely reduces the impact of a lot of those.
Marco:
And
Marco:
So a lot of the problems of C aren't really problems in Objective-C or are so much smaller that it's basically irrelevant.
Marco:
And so to make something that's substantially better is technically, yeah, you're right.
Marco:
It's a lot of work.
Marco:
It's going to take a lot of time.
Marco:
But I think the much bigger question is what is just deciding what exactly that should be and how it should work and all the decisions that go into designing a language and the associated frameworks.
Marco:
Yeah.
Marco:
Just the technical implementation details, that's a really big question, and I don't see any consensus forming among developers who are suggesting that it should be different.
Marco:
I don't see any consensus forming to say like, oh, it should move from where it is to X. Yeah.
Marco:
And, you know, what exactly X is?
John:
There's a little bit of consensus because of all the other high-level languages that are out there.
John:
Because so much development these days is done not on, you know, native platforms, quote-unquote, you know, server-side programming.
John:
Like, there's all these other languages like Python and Ruby and even PHP and all that stuff out there.
John:
And JavaScript, giving people a taste of the things they don't have in native languages.
John:
And there's some consensus on things that I think everyone would agree that a modern language has to have.
John:
I'm thinking more like you mentioned the transition before.
John:
Transition is going to be terrible because you can't just wake up one day and say, okay, everybody write in this new API and this new language, go.
John:
But luckily, Apple has some experience in this area.
John:
It transitioned everybody from a C, C++ API system for writing, whether it's the Mac Toolbox or PowerPlant or whatever.
John:
It transitioned them from that to a language that almost looks like a lateral move to Objective-C, also C-based, but totally different API, totally different language.
John:
They managed that transition perhaps not as well as they could have, but for a long time they had things in carbon and cocoa and you'd make a new control and this control is only available in cocoa and this one's in carbon.
John:
People would complain, why can't I get that control?
John:
I want a drawer in my carbon app and they had quickdraw still in there and the quartz light.
John:
It was a hairy mess, and that move was such a tiny move.
John:
You're saying you need a language that's so amazingly better in this consensus.
John:
Was there consensus that Objective-C and Cocoa was better than Carbon?
John:
Definitely not among old-school Mac developers.
John:
Definitely not among Adobe and Microsoft and stuff like that.
John:
I'm not going to say it's going to be easy, but I think the Carbon to Coco transition is evidence that it is possible to do that in a way that doesn't totally destroy your platform, which I don't think it was a given because I don't think anyone else has ever pulled off a transition like that.
John:
Microsoft still hasn't managed, I think, to pull it off with C Sharp because nowadays if you're writing a Mac app, you're writing a Coco app.
John:
But nowadays if you're writing a Windows app, are you writing a C Sharp app in whatever the hell API they're pushing these days for the GUI?
John:
Who's writing Windows apps?
John:
Yeah, I mean, that's the question, too.
John:
But yeah, it's, it's going to be really difficult.
John:
And the transition is almost as difficult.
John:
But I think the thing you're transitioning to, like, I don't think you need all that much consensus.
John:
And I don't think it needs to be that fantastically better.
John:
Because Apple has kind of shown that you can do it sort of by fiat.
John:
And eventually people will come around if the things that you can program in Objective-C are popular enough, like the iPhone.
John:
And, you know, you manage to bring along, like, Microsoft and Adobe eventually kind of kicking and screaming, like, what was the first Cocoa version of Photoshop, like, two versions ago or something?
John:
Something like that.
John:
It's taken a long time, but you've managed not to lose them, and they've basically completely transitioned.
John:
If you're writing an application for Apple's platforms, you're doing it at Objective-C and Cocoa, despite the fact that they're not all that different from C, C++ APIs that preceded them.
Casey:
What I don't see, though, is, Marco, you said a minute ago, you know, it's up to the developer community in order to kind of, I don't know, dictate is a strong word, but kind of help figure out what the way forward is.
Casey:
I mean, how do we do that as a community?
Casey:
Do we just write blog posts?
Casey:
Do we write our own coffee script kind of equivalent that transcompiles into Objective-C?
Casey:
How can we influence that change?
Marco:
I would say that's exactly it.
Marco:
We do it by both discussion and by example.
Marco:
Again, though, I think the biggest challenge is that this is a really hard problem.
Marco:
It's a really hard question to figure out what should be next.
Marco:
Most of the posts have said that
Marco:
No one's saying, oh, you should switch to Python.
Marco:
No one is putting a specific language in place to say, this specific thing is what you should switch to.
Marco:
It's just this very hand-wavy, like, oh, well, it needs to solve these criteria, or it needs to change this list of my personal nitpicks about the language.
Marco:
And
Marco:
And as I said earlier, a lot of those things could just be solved by API changes, not language changes.
Marco:
And a lot of those things do require language changes, but are superficial, like the brackets.
Marco:
And so I don't want to beat this too much into the ground further, but I just think that...
Marco:
One of the biggest reasons why we don't have something like this yet is because what that next thing should be is really not obvious to anybody as far as I can tell.
Marco:
No one's clamoring for something specific that is widely considered a good idea.
John:
Well, there's never going to be consensus outside Apple.
John:
And if Apple waits for consensus, the form that consensus would take would be all their developers leaving to develop for a more popular platform.
John:
And then the only thing Apple could take away from that was, well, everybody's leaving to develop for whatever the new, you know, pinky ring platform is that's become amazingly popular.
John:
And then they would decide whatever the hell API and language that the Pinky Ring platform uses, that's what they should use.
John:
And I don't even know if that would be the case, because all it would mean is they just move to a more successful platform.
John:
The same way that people would say Objective-C is the best language ever, because look at all these developers who want to develop in it.
John:
It's not really because of language.
John:
They learn the language because it's the way they can get apps into the iPhone.
John:
So the signals from outside...
John:
all you can get from it kind of is like a big fuzzy noise if you wait for a clear signal the clear single will be a sign that you waited too long and you're doomed and it's probably not a good signal anyway because you would again look at the thing that they're moving to and say that's what we should have done not necessarily you could have done something entirely different 10 years ago and been and prevented this from happening but you didn't and so now you've lost the opportunity to dictate what the next language and api is going to be that's why i think apple has to do it because they they have to do it now when they're in their position to
John:
be masters of their own destiny, if they wait, there's never going to be a consensus outside them.
John:
All they can look at is sort of the fuzz of noise of high-level languages and pick and choose the features they think.
John:
Like, what are the biggest pain points?
John:
I mean, they're kind of doing that with Ark and everything now, but, like, how can we transcend those pain points?
John:
Not just patch over them, not just make them a little bit better, not just find...
John:
a solution to those things that's a better fit for our current language than, for example, garbage collection was.
John:
But say, what is the next leap in languages?
John:
And they have to look at everything across the entire world, all the different ways you can write software, and maybe come up with some new ideas of their own.
John:
It's a big responsibility, but when you're the biggest technology company in the world, that's what you have to do.
Marco:
Thanks a lot to our three sponsors this week, Ting, Squarespace, and lynda.com.
Marco:
And we will see you next week.
John:
Now the show is over.
Marco:
They didn't even mean to begin.
Marco:
Because it was accidental.
Marco:
Accidental.
Marco:
Oh, it was accidental.
John:
Accidental.
Marco:
John didn't do any research.
Marco:
Marco and Casey wouldn't let him because it was accidental.
Marco:
It was accidental.
John:
And you can find the show notes at ATP.FM.
Marco:
And if you're into Twitter, you can follow them at C-A-S-E-Y-L-I-S-S.
Marco:
So that's Casey Liss.
Marco:
M-A-R-C-O-A-R-M-E-N-T.
Marco:
Marco Arment.
Marco:
S-I-R-A-C-U-S-A Syracuse.
Marco:
It's accidental.
Marco:
Accidental.
Marco:
They did it.
Casey:
I don't know if anyone else enjoys it, but I freaking love when we nerd out like that.
Casey:
I think we did it all the time.
Casey:
It'd be terrible.
Casey:
And I would hate the show.
John:
Software methodologies, Casey.
Casey:
I know.
Casey:
One of these days, guys.
John:
It'll be an even longer show.
Casey:
One of these days.
John:
We'll talk about why Link and ORMs are not solutions.
John:
Nice.
Casey:
See, but you keep associating Link with Link to SQL, which is one piece of Link.
John:
I know, I know, I know.
John:
I didn't bring up like, oh, I can create my database using XPath.
John:
It'll be awesome.
John:
Nor did I bring up the database drivers for in-memory things and comma-separated files and all the good stuff that Perl was doing decades ago.
John:
DVD CSV, man.
John:
Oh, God, here we go.
John:
DVD memory.
John:
Yeah, Opera did it first.
John:
Perl, yeah.
John:
Now, I think Link is awesome.
John:
I think it's amazing.
John:
I just think that, like...
John:
the ability to try something like that is the important thing the actual success like once you try it you're like well it has strengths and weaknesses versus all the other things we tried before and then someone else tries again but you can't even try something like link if the language doesn't provide support for it so you know we we'll keep trying like i don't know what the solution is to the problem that link and orms and everything else we tried to
Casey:
You know, see, but here again, you keep associating link with ORMs and it's so much more than that.
John:
I know, but it's a way to get a data doesn't have to be in a database.
John:
It's basically a way to bridge the world of like, I want to get this information.
John:
It's in some place, like to be able to view everything through a certain lens.
John:
What if I could query a dictionary the same way I can query a database?
John:
Now they're unified under the single API.
Casey:
And yes, that's a much better way of looking at it.
John:
There are advantages to that.
John:
And then sometimes you're like, but that's not really a good fit for this type of thing.
John:
Maybe I want to get it in a different way.
John:
And in the same way that people will say, I don't want to view my database as a database.
John:
I want to view it as a bunch of objects.
John:
And I like ORM better.
John:
Or maybe I have an object database.
John:
Because then the database actually will be like the objects that I'm getting.
John:
But then object databases suck.
John:
And we keep trying to figure this out.
John:
I give it full marks for being an interesting and novel approach to a familiar class of problems.
John:
aided by the abilities of the language.
Casey:
Yeah, and the thing that I love so much about Link is I use it against objects constantly, and not just dictionaries.
Casey:
I'll use it against arrays.
Casey:
Give me all the items where such and such property is greater than such and such value.
Casey:
Give me all the people where age is greater than 21.
Casey:
And yeah, that sounds a lot like a database query, and that's where Link got its start, but I can do that against an array in memory, and that's what makes it so powerful.
Casey:
And I very, very rarely, in fact, almost never use Link against SQL
Casey:
I almost exclusively use Link Against Objects, and it's so powerful.
Casey:
And again, you can do a lot of that with NS Predicate, but it's not quite so clean.
Casey:
It's not quite so transparent, although perhaps I'm saying that because I'm just used to Link.
John:
But you would love Perl because Perl is – the big thing about Perl is that you're comfortable speaking in that sort of –
John:
You know, not dialect, but like I want to get things out of an array and I think of it.
John:
I can think of it in the same way as I would think of getting out of a dictionary.
John:
It's comfortable.
John:
Yes.
John:
Pearl is, you know, the poster child for giving your way to express the same sentiment in whatever way you're the most comfortable thinking about it.
John:
So if you're more comfortable thinking about getting information out of a ray is phrasing it in that way, then that's a way that will work.
John:
And, you know, like.
John:
Not just more than one way to do it, but more than one way to say it.
John:
And like people would argue, why do you want to say it in these two different ways?
John:
Well, sometimes people's brains work at a certain way and they think of it in this manner.
John:
Other times people brains think of the same exact task in a totally different way with everything switched around in a different order.
John:
They should be able to express that as well.
Marco:
Yeah, that makes sense.
Marco:
I also want to bring up one more quick thing.
Marco:
That's famous last words.
Marco:
And that's concurrency.
Marco:
And a lot of the posts and thoughts about the next big language revolve around concurrency, which is a valid concern.
Marco:
The problem is that what a lot of people seem to want...
Marco:
is for concurrency to be hand-waved away.
Marco:
Oh, we'll just make everything concurrent at the language level, and it'll make concurrency easier.
Marco:
And the reason why concurrency is hard is not because of the language.
Marco:
The reason why concurrency is hard is because it's complicated.
John:
But there are language aspects of it, though.
John:
You think of something like Erlang, where if you design the language around the idea of concurrency, a lot of the code that we have to write now to do things safely and concurrently, like implicit concurrency, where even Go has a little bit of this and lots of things where you can express something in a high enough level way where...
John:
not only do you not care about the details of how it's done, you don't have any control over the details of how it's done, and there are invariants that are provided by the language in runtime that you can guarantee.
John:
All that does is just move your set of problems up to a higher level, because you're never going to get rid of, like... But at least it gets rid of, like, the super low-level concerns and the medium-low-level concerns, and now you deadlock on much higher-level concerns than you were previously, right?
John:
But that's progress, you know, because, like, you don't, like...
John:
you want to have some sort of primitive like semaphores and, you know, atomic operations on CPUs.
John:
And that lets us stop thinking about that particular problem and think one level up.
John:
And it's, it's never going to be easy, but what people want is like, look, I'm tired of thinking about concurrency at this level.
John:
I would love it.
John:
If simple things, I could do simple concurrent operations on sets of data where I didn't care about the parallelism.
John:
And that was like built into the language.
John:
And I would just implicitly express something like do all this on all these, uh,
John:
And GCD goes away towards that, where it's like, I don't want to worry about those details.
John:
The language itself can provide you lots of ways of worrying about things at a slightly higher level of concern.
John:
And I think everyone would see that as a big win.
John:
And that's what they're mostly talking about concurrency.
John:
Maybe they have fantasies where there's not going to be any problems.
John:
Really, they're just going to reduce the number of deadlocks or deadlock on higher level things.
Marco:
But again, so many of these wishlist items, this included, isn't this much more of an API problem than a language problem?
John:
But it can be a language problem if you design a language with a concurrency in mind, even if it's just part of the standard library.
John:
I don't know enough about Go to know whether their concurrency things are part of the language or whether they're just a library that comes with the language, and that line is fuzzy to begin with.
John:
I mean, Objective-C, technically, is basically a C library.
John:
It's not like, is there an Objective-C language where this is?
John:
trajectory runtime which is a c program that runs your you know what i mean like it's a fuzzy line but i think erlang and haskell and other kind of things where you express operations at such a high level that there's no way to control any sort like the parallelism may either be non-existent or like pervasive and you you just you know you know sort of the preconditions and the post conditions and the language guarantees that and you're not concerned with how
John:
how it performs those things if you can get that kind of implicit parallelism built into the language whole classes of problems that people like that regular sort of run-of-the-mill programmers are afraid to tackle with concurrency now even though they totally have the tools to do it uh
John:
become open to them in the same way the gcd has opened up parallelism to people who otherwise wouldn't try it but now you're like oh i got this great library gcd previously i would just run that on the main thread but it's so easy for me not to run that on the main thread i'll just throw it off and then those people learn that actually you can screw yourself doing that too you know but like it's it's all about lowering the bar to what type of parallelism am i willing to attempt and feel confident is going to work and if you can bake things like that into the language or into a library that's so much part of the language that it seems like the language
John:
It lets more people do parallels and more easily.
Marco:
Yeah, I don't know.
Marco:
I guess I'm much more of an optimist that there's still tons of room for improvement with libraries and APIs with the same language and that you don't need to throw out the entire language and the entire existing API to get progress on a lot of these fronts that people are asking for.
Marco:
And I think you're right that if you make it part of the syntax and part of the native way of doing things, then it certainly can go deeper.
Marco:
But I just think there's so much more we can do
Marco:
And I think that's one of the reasons why Objective-C has stuck around all this time and probably has a pretty long future because there is so much more you can do with just libraries and API changes and maybe a little help from the editor and the tools.
John:
We didn't even bring up Core Data, speaking of like Link and ORM and all other ways.
John:
Core Data is yet another way to try to deal with like...
John:
large troughs of data that you can rummage through and they have they have a different model which is kind of like orm not really like link like you don't call it a database you mentioned ns predicate it's an object store it's not a data that's you know that problem would have been run at many different times never i think at the language level i think maybe link is as close as you've gotten even though it's not language level it's like relies on language features but
Casey:
It's language integrated.
Casey:
That's what it says in the damn name.
John:
You know what I mean?
John:
But it's language integrated.
John:
I know what you're saying.
John:
I know what you're saying.
John:
Like, yeah, that's – problems, yeah.
John:
Having more tools to run at a problem, having the language help you in that regard can let you try new solutions.
John:
Those solutions may not be better or worse than what came before, but at least opens up the door.
John:
And I think –
John:
I don't know enough about these highly parallel languages to know, like if you had an Erlang expert on here, they would explain what it is specifically about Erlang that makes it so much better than doing the same things in any other language because language was designed with concurrency in mind.
John:
But I'm convinced enough from things that I read about language that that is the case.
John:
It's just that Erlang is so much worse at everything else that people want to do with programs that it hasn't really caught the world on fire.
John:
But who knows if the eye pinky ring was programmed only in Erlang and everyone on Earth bought 10 of them, then we'd all learn Erlang.