A New Hope

The Future of Application Platforms

Image: Mr Hasgaha (CC BY-NC 2.0)

We’re currently living in a prison of centralized control. This prison enables privileged access for a few at the expense of the rest. But technology has the potential to change that.

If you’re a software developer living in the world today, you have the potential to be a part of the biggest global revolution the world has ever seen. A revolution that will transform the lives of billions of people, and create new economic opportunities that will save lives and include billions more people in the digital economy.

Centralized Platforms

In 2011, I was a member of a startup team working on the most popular music app on Facebook with over 30 million monthly active users. We were growing like crazy, integrating with other great music services like Spotify, Bands in Town, Google Search, and Billboard Magazine. Half a million bands used the platform to manage their profiles, tour dates, music streaming, and merch.

Then one day, Facebook switched off the “default landing page” setting for artist profiles. Overnight, traffic was decimated. That day, hundreds of other companies were gutted by that single tech choice. Facebook flipped one feature flip and hundreds of developers lost their jobs as a result. Hundreds of useful, interesting apps ceased to exist. An exciting ecosystem of creative possibilities was snuffed out of existence.

But Facebook isn’t the only company recklessly wielding that kind of destructive power. Google search is notorious for generating big business for companies who rely on search traffic, and then decimating those same companies with a search algorithm update.

The problem is not that Facebook, or Google, or Apple are evil. The problem is that so much power is centralized under the control of a handful of big companies to begin with. The health of your future app could be outside your control. Control over your destiny could belong to somebody else.

What if we could build apps on top of architectures that are controlled and governed by communities, rather than the whims of a self-interested mega-corporation? Imagine a global network of computers, all linked together, with developers cooperating to build a more inclusive, decentralized application platform.

When the web was born, the idea was to empower anybody, anywhere to publish documents that could freely link to each other. It was built on top of a network that no central entity controlled. In the 1990’s, several competing proprietary services emerged. Companies like AOL and Compuserve launched their own content networks in direct competition with the World Wide Web: but the web won.

Microsoft and Apple also battled to own the platform for mobile devices. If we stopped time in 2010, you might assume that Apple won that war. But today, an open-source Linux operating system powers Android devices, which command 86% of the global mobile smartphone market.

In the 1990’s, commercial software libraries which charged license fees (and sometimes royalties) dominated the library landscape. Today, if somebody created a closed-source GUI toolkit and tried to charge license fees for it, very few people would be compelled to abandon the open source React ecosystem.

But we still write applications that depend on centralized entities like Facebook, Google, or Twitter for survival. There’s a Tsunami approaching that is going to change all of that.

In the late 1990’s, people began to share MP3 files on the internet, at first over the File Transfer Protocol (FTP) located on central servers. But soon, the centralized servers came under attack from the record companies. The community fought back with Napster, the first popular decentralized music sharing service, but the record companies argued that even though Napster wasn’t hosting the music directly, it was enabling people to break the law.

Napster was a company owned and operated by a centralized company, and in 2000, Metallica sued Napster and got them shut down.

But if you think the peer-to-peer (P2P) story ended there, you’re sorely mistaken. From the ashes of Napster rose Gnutella, Bittorrent, and IPFS. All open protocols with open source implementations. All decentralized with no controlling company to sue, and so far, nobody has been able to shut them down.

Centralized Capital

In 2008, the housing market crashed. Too much unsecured mortgage debt concentrated in a handful of very large banks. When the loan default rate started to catch up with them, the dominoes started to topple, leading to multiple bank collapses and bailouts totaling in excess of $7.7 trillion dollars in the United States alone. Similar collapses and bailouts echoed across Europe, threatening the entire global economy and launching the world into the deepest recession since the great depression.

On January 9th, 2009, the Genesis block was mined on the Bitcoin blockchain. Embedded within the block was the following message:

“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”

The world’s trust in the banking institutions hit a crisis-inducing low, and the public, shattered by two years of financial crises, job losses, and home foreclosures, came together to form the occupy wall street demonstrations that spread around the globe in 2011. The bankers who caused the crisis floated away on golden parachutes while the middle class evaporated. The public was enraged.

In the time since, the banks have gone back to playing the same games, Facebook, Google, and Apple have even more power, and the world has come under escalating attacks on our freedoms.

Our Only Hope

Decentralized architectures have exploded. Bitcoin was the spark that set investor imaginations on fire, and as the money poured rocket fuel into cryptocurrencies, developer communities began to form and grow, and grow, and grow some more.

Since 2011, the Bitcoin network hash power has grown by 8 orders of magnitude, and the price has grown with it.

Bitcoin Hash Power graph by Hans HODL: 2011–2018

Bitcoin transactions work because of the Bitcoin blockchain: The first large-scale demonstration of digital scarcity and decentralized consensus. By 2013, a critical mass of developers were wondering what else could be accomplished with digital scarcity and Decentralized Ledger Technology (DLT).

It turns out, the answer is “a lot”. A developer by the name of Vitalik Buterin was frustrated when the centralized World of Warcraft game he’d invested 3 years playing changed the rules. Buterin got involved in Bitcoin, and wanted to explore what else a blockchain could do. The idea of a decentralized world computer started to form in his mind.

In 2015, Vitalik Buterin, Gavin Wood, and Joseph Lubin launched Ethereum, and a large developer community gathered around it. By 2017, the ICO big-bang launched thousands of alternative cryptoassets, mostly on top of Ethereum, providing an alternative to traditional venture funding, and minting a few new billionaires in the process.

By the end of 2017, the investment frenzy hit a peak, and for most of 2018, prices have been falling back to reality. The 2018 price drop is a phenomenon that has historically recurred every time the price of Bitcoin reaches another order of magnitude in growth. Believe me, there’s a lot more growing ahead of us than behind us.

In the meantime, the first generation of scalable dApps are beginning to arrive, including Sliver.tv’s partnership with Tencent Games which rewards esports viewers and streamers with cryptocurrency which can be spent on the Sliver platform and used for in-game purchases.

Meanwhile, the Waves Platform makes it easy for anyone to create a cryptocurrency. It runs its own blockchain based on Leased Proof of Stake (LPoS) consensus — a faster base-layer scaling solution than the Proof of Work (PoW) models used by Bitcoin and Ethereum. The wallet software features a built-in Decentralized EXchange (DEX) where users can trade the tokens. The Waves wallet has over 100,000 downloads in the Android store.

If you’re curious about joining the revolution, most crypto apps are built using JavaScript on the front-end. Blockchain node implementations (the software that communicates with the blockchains themselves) are built on a wide range of technologies, including C++ (Bitcoin Core), Go (Ethereum), and JavaScript (Lisk).

Blockchain applications usually depend on smart contracts, which provide consensus not only for the data being recorded in the ledger, but the algorithms that process that data.

Most Ethereum development is currently done in Solidity, and it is by far the most used smart contract programming language to date.

Bitcoin has Bitcoin Script. Waves has an intentionally turing-incomplete functional programming language called RIDE, and Cardano has Plutus, a Haskell-inspired functional programming language designed by none other than Philip Wadler, the man who brought Monads to Haskell and inspired a generation of functional programmers across all modern programming languages.

But in spite of all these blockchain programming languages, the bulk of crypto and blockchain programming in the world is conducted in JavaScript. JavaScript is the defacto standard for the user interfaces that power the crypto revolution.

“The bulk of crypto and blockchain programming in the world is conducted in JavaScript.”

A New Blog

Before I wrote my first post about JavaScript, I’d been programming in JavaScript professionally for more than 10 years.

Before I wrote my first blog post about crypto, I’d been using, building, and following decentralized architecture for more than 10 years.

I’ve been watching, learning, building, leading teams, and waiting for the right moment. Technology doesn’t usually explode the first time anybody hears about it. It builds slowly at first, and then it hits an inflection point and really begins to explode into mainstream adoption.

Crypto is about to explode. 2019 is going to be the year that the first multi-million user dApps hit the market, and non-blockchain geeks start to transact for the first time in cryptocurrencies.

Once in a while, I may blog here on JavaScript scene about decentralized architecture if it will be of strong interest specifically to JavaScript developers. However, most of my crypto writing will find a home on a new blog called The Challenge.

The inaugural blog post on The Challenge was written by the influential Cryptoasset analyst, Hans HODL. I’m proud to introduce you to him.

If you want to learn more about why crypto is such a big deal, take a breath, grab a snack, and then read our walk out fight song, “The Challenge”.

Eric Elliott is a distributed systems expert, and author of “Programming JavaScript Applications”. As co-founder of DevAnywhere.io, he teaches developers the skills they need to work remotely and embrace work/life balance. He builds and advises development teams for crypto projects, and has contributed to software experiences for Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC, and top recording artists including Usher, Frank Ocean, Metallica, and many more.

He enjoys a remote lifestyle with the most beautiful woman in the world.