Achieving App Longevity: React vs. Polymer
History has rarely presented a software shop with app longevity. I’d hazard a guess that you’re not handing out CDs with Windows desktop install binaries of your company’s latest app.
Pick any app, by any company, in any year, and chances are great that this app had to be abandoned and completely re-written when newer and better technology stacks come along — and better tech always comes along, as does customer’s higher expectations.
The hefty expense of rewriting an app from scratch is a competitive advantage that larger corporate dev teams use to their benefit. If I finance a better rewrite, I attract some of my competitor’s customers, and I win.
The human cost can be accounted for, too. Hire new devs that know the new stacks, and weed out the older devs as they become obsolete. Now the app always stays fresh, with each total rewrite. To heck with the millions in expense.
The smaller shop may not be able to think in such terms and at such scale. For this shop, it can be a one shot deal. Picking the wrong tech stacks might mean that I’ll never be able to compete in the first place, as my app just won’t meet expectations. “Anyone want a DVD?”
The Matrix: An Analogy
Think of it like Neo’s decision in The Matrix: Where the “Red Pill” is the bleeding edge. It might give you a chance to future-proof your app, but only IF you pick the winning technology stacks. But it could also bankrupt you: if it causes costs to balloon, or the tech just wasn’t ready, or you couldn’t find the necessary developers.
On the other hand, the “Blue Pill” stacks might provide you the stability you need to complete your project, yet too much of this stability might mean you are closer to obsolescence before your app is even complete. “Here’s your software CD back. Thanks anyway, though.”
It can be a tough decision with no clear right answer. However, we are now at a unique inflection point: 2019 presents us with a rare opportunity to develop in the Blue Pill technology stacks, controlling costs and launching your app in a stable and mature stack set, while your Red Pill stack set is being readied for you, with an easy conversion protocol when it’s mature as the next Blue Pill stack set.
How did this advantageous position come about? Good old market competition, where industry titans battled it out to your benefit.
What Facebook and Google Did Differently
What appeared to be competition between Facebook and Google (our friendly neighborhood corporate overlords) ended up more like an unintentional division of labor that ultimately benefits us.
Facebook’s primary product is its app, so it needed maturity — (think Blue Pill) — and it needed it fast. Facebook React is the result, and it is now so popular that it has earned 60% of the market.
Google has the world’s dominant browser, and it wasn’t going to settle on anything that wasn’t standards-based, super performant, and a part of every major browser — none of which applies to React.
Even though they each started with essentially the same Components idea, at the same time, Google will remain the Red Pill through the entire first decade. They would shift and lobby and copy and invent, until they could get something much faster loading and ubiquitous than React; and possibly something that was more performant, to boot.
Interestingly, at the time, React was more of leader, and Google’s products more the follower. So when React matured, Google mostly imitated (excepting within the evolving standards of the browser). And this, my lucky friend, is what makes you and I the benefactor of not one, but possibly two or three successive generations of Blue Pills moving forward.
The Benefit? Looking Forward…
Let me illustrate with the following, perhaps not-so-fictitious future:
1. You develop your app now, in React. It’s great stuff, and you’re in budget. Your devs are happy because they are doing the “cool” stuff.
2. By 2021, you’re replacing pieces of your app, one small component at a time, with next-generation Web Components, with almost no retraining of your dev staff. This stuff is so close to identical, it hurts. Now you’re back to being on top with the very latest stuff, but you did it with a maintenance budget, not a re-write budget! Win.
3. In 2023 or 2025, as the future migrates with newer stacks like Web Assembly, you STILL don’t have a total rewrite. You can now continue to replace one small component at a time. Your customers see you as always up-to-date, and your CFO likes your budgets. This is because you never had to go Red Pill to get the latest stuff or protect your investment.
All because Facebook and Google were competing for different objectives. Go, us.
**Note that I never even named Google’s stack. That’s because Google’s products in this space are so Red Pill that they keep re-emerging with different names. I’m sure it will settle down eventually. Just think “Web Components”, as that is the name of the standard the stack is supporting. Even though the standard itself is NOT a Google product. Yeah, I know, it hurts the brain. Google is like that.
A Note On Templates
This post wouldn’t be complete without a tech footnote to the lowly template. If you’re a business owner, you’ve read enough.
But all the real stuff happened because React hit the sweet spot with its template story. Even though it was surely the hundredth in a long line of such attempts, developers instantly recognized its value, hence React’s 60% market share.
What Google brought to the template story was the willingness to iterate, follow the market, and tweak the modest template to something even simpler and faster than React’s great lead. Just don’t expect this to be the end of the story, because the real story is in the Web Component standard itself, and any template engine will write to this spec.
A template engine has both a templating layer that the dev writes in, and a rendering layer, that does the transformation to the standards layer. Reading this, your eyes should begin to glaze.
The fact that the Web Components spec allows any combination of templating layers and rendering layers within its spec should confuse you at first read, so think of it as the aftermarket for car parts. As long as your car part bolts on the same way and functions the same way, you can improve your aftermarket part as much as you want.
So expect lots more cool stuff down the pike, even if it leaves you a bit confused (or, at least it confuses me) in 2019.
Victory is a hypernetic solutions consultancy. What does that mean? We use cross-functional expertise to solve the big, complex problems businesses and organizations face. We like to bring in smart people like Pete to help us do just that.