Guide

2 technologies you can’t ignore: JavaScript and blockchain

Abe Burnett
Learn something new. Take control of your career.
Sign up

Technology evolves at a breakneck pace. This has felt true for decades, but the reality is, the pace of change today is unprecedented and accelerating. Never before has it been so challenging to stay current on which technologies are in demand, which are on the horizon, and which are fading.

As technology becomes more and more critical for every organization to compete, leaders need to set their teams up for present and future success by knowing which skills are becoming stale and which are worth an investment.

Enter the Pluralsight Technology Index.

The index enables tech leaders to grasp the relative popularity of different technologies versus one another, so they can make more informed decisions on what to adopt, avoid or abandon. (Learn more about the methodology behind the index.)

And it’s with that lens that we want to dive deep into two insights from the index: the dominance of JavaScript and the rapid rise of blockchain. Why these two? Because for different reasons, they are two of the most challenging technologies to keep pace with today.

For JavaScript, the language and ecosystem are evolving so fast, developers are overwhelmed by all the new language conventions, tools, frameworks and libraries they need to understand.

Blockchain, by JavaScript standards, is a brand-new technology, invented by Satoshi Nakamoto in 2008 for use in Bitcoin. Blockchain is still in its infancy, but the hype around it makes it feel massive. It’s important for teams to understand its scaling issues, trade-offs and appropriate use cases.

For both technologies, we’ll dive into details on what they’re all about, what their rankings on the index mean, and the challenges and opportunities each of them face.

Why JavaScript dominates

It’s unsurprising that JavaScript is consistently in the top five on the index. While it began (primarily) as a desktop-constrained browser-only language launched by Netscape in 1995, it has conquered virtually every internet-connected platform on Earth: phones, tablets, desktop, servers and thousands of devices in the Internet of Things—the works. JavaScript is everywhere.

As Pluralsight author Jonathan Mills puts it: 

“As a JavaScript developer, I can write code that runs anywhere, not just the web. Backend code with Node and Electron, desktop with Electron, and mobile with React native. That flexibility makes JavaScript skills incredibly valuable.”

Cross-platform applications are often built using “headless” versions of browsers (i.e., the browser minus the GUI front-end we interact with). So mobile, desktop, or other device applications developed this way are essentially built and displayed via browser technology—with the creators controlling every aspect of the UI to make it look like a “native” app. Though other technologies existed once upon a time (remember Microsoft Silverlight?), JavaScript is now the only practical way of building desktop-like web applications with lots of interactivity.

The complexity of JavaScript makes it harder to learn, and harder to use effectively, which has created a lot of demand for knowledge around it.

Interest in JavaScript continues to grow

On our platform alone, the data we see indicates continued demand for learning JavaScript—roughly 3X more than other Pluralsight content is viewed. Here’s the latest snapshot of consumption of this material on our platform:

javascript graph

The JavaScript ecosystem is broad, including front-end development, command-line interface (CLI) applications, desktop (GUI) applications, mobile applications, back-end development and combinations of all the above. This complexity is what drives its dominance.

Pluralsight author Cory House explains:

“Thanks to innovative projects like Node.js, Electron, and React Native, developers can write web apps, native mobile apps, web APIs, server-side processes, and even desktop apps using JavaScript. They say software is eating the world. For all these reasons, much of that software is written in JavaScript. It's not just for the web anymore.”

Dependencies drive demand for JavaScript

In the past, more custom “vanilla” JavaScript code would be written to support each individual website, but these days being a JavaScript developer requires a mastery of a wide range of tools, libraries and frameworks.

One recent job posting for a “Sr. Full-stack JavaScript Developer” asked for candidates to have the following experience and knowledge: ECMAScript (the underlying JavaScript standard) 2015/2016 (ES6/7), JavaScript transpilers (Babel, TypeScript), and JavaScript build tools (WebPack, Browserify, Grunt, Gulp); Expertise in Node.js, NPM package ecosystem, and Node.js web frameworks such as Express.js, Hapi.js, Sails.js; Experience with modern JavaScript UI & web frameworks such as React, Angular, or Ember; Experience writing unit tests using Karma/Jasmine/Mocha/Protractor/Jest or other JavaScript testing frameworks.

This job post neatly illustrates one of two issues facing JavaScript today: the explosion of frameworks, libraries and tools has created brittle lists of dependencies and made it nearly impossible for developers to keep up.

Statistics from JavaScript package manager NPM show that, on average, 561 new JavaScript packages are uploaded every single day. The next highest, Packagist, comes in at 139 per day, barely a fourth that of JavaScript. Not only does a developer need to keep up on the changes made to his or her chosen frameworks and libraries, but they also need to keep up with the latest developments in order to stay competitive in the job market.

The other major issue for JavaScript is the language itself. Its combination of loose typing and semantics is the bane of many a developer’s existence. This has given rise to languages which transpile (or compile) to JavaScript. These languages, including TypeScript, Scala.js, Elm, and ClojureScript, help manage JavaScript and make it more reliable. But they’re yet another thing developers who want to have a competitive skillset have to know. While a developer’s current role may not require much proficiency in JavaScript, it’s no guarantee that a future desirable role will not.

JavaScript’s dominance isn’t going anywhere. And the development of languages and frameworks that keep developers away from the sharp edges and “gotchas” of the language will continue to expand. Ironically, these tools may lead to JavaScript itself slowly declining on the index, as more and more focus moves to those tools, frameworks, packages and languages which make JavaScript development productive, efficient and pleasant.

Given the dominance of JavaScript, proactive leaders should recognize they need to provide their team members with resources that enable them to keep up with rapid changes of its ecosystem.

Blockchain’s explosive emergence

For most of the world, blockchain (No. 5 on the index as of April 2018) is synonymous with Bitcoin. But the applications of blockchain—the public transaction ledger—are far broader than cryptocurrencies like Bitcoin. Industries like financial services, healthcare, media, government, supply chain and logistics, IoT, asset management, and remittance services are natural applications for the technology.

According to Pluralsight author Jan-Erik Sandberg

“Blockchain… is already affecting our lives in ways we never could imagine only a few years ago, with everything from smart city implementations, to ensuring trust in medical transactions. Even more important to understand is that blockchain technology is only the first step of building trust between strangers outside of the legal and financial realm.”

This is the core value add of blockchain: the idea that once a transaction is appended to the blockchain, it cannot be altered. It doesn’t solve all issues of trust, but it does make it harder to fudge the numbers especially if it is implemented correctly.

Appropriate use cases for blockchain today

The key for technology leaders is to understand the right and wrong uses for blockchain within their business. As Dan Appleman, Pluralsight author of Building an Enterprise Private Blockchain on Salesforce, puts it: 

“Blockchain technology offers new approaches for sharing, validating and securing data, approaches that will revolutionize some businesses and become a useful tool for many others. And the technology will find a good home for those types of applications long after today’s hype has died down. The greatest challenge today is figuring out which of those use-cases are real and worthy of your time and attention.”

So what are some of those use cases?

In supply chain and logistics, blockchain technology will eventually be deployed to track how goods move—where they came from, where they’re going, and all the hands they passed through from origin to destination. The implications for piracy and counterfeiting are huge.

In finance, blockchain could reduce data tampering. Data, once entered on the blockchain, would present auditors with a clear, traceable audit trail, making it immune to corruption from any source.

In government, voting is an obvious application (among others). Once a vote is cast, it would be entered on the blockchain, where it couldn’t be tampered with.

In quality assurance, blockchain may someday assist with identifying the source of defects or contamination.

blockchain

But with blockchain in its infancy, with few viable real-world use cases, why is it so popular? To put it simply, there’s a lot of content out there about it, but not a lot of answers on what it means for a business. It’s a hot topic, it’s relatively novel, and technologists are scrambling to understand it.

So what does blockchain mean for your business. And what doesn’t it?

Blockchain is not, inherently, a panacea for every security issue. In order to realize the benefits of blockchain, supporting systems must be designed in complementary ways. After all, a system is only as strong as its weakest link. If blockchain is implemented in a voting system, but the data stored on the blockchain is tampered with up-stream (between the blockchain and the voter) then all the blockchain will track is voting that has been tampered with.

Similarly, if blockchain is used in farming and agricultural applications but sensors are not calibrated correctly, the blockchain will simply store incorrect data that can’t be updated. In a nutshell: the blockchain cannot verify the accuracy of the data it stores. Like any database, the blockchain lacks intelligence. It can only store data—securely and immutably—and share those transactions with the other participants on the blockchain. That’s why application of the blockchain requires verification of data before storage on the blockchain, rather than after.

Blockchain also is not suited to every application. To recognize an appropriate use of blockchain technology, consider if the problem you’re attempting to solve benefits from the use of what is, essentially, a shared database. If not, use a regular database and not blockchain.

If your use case does not need to support multiple non-trusting writers (i.e., writers who inherently mistrust each other) who might modify the data, then you do not need blockchain. Consider that writers who mistrust each other don’t have to be strangers; they could also be different units within a business. Here mistrust means that the writers are not willing to let other writers modify their transactional records.

In order for blockchain to make sense, you also need some level of transaction- level dependency, like one user sending funds to another user who then sends funds to yet another user. It follows that for blockchain to make sense, we also need some explicit set of rules in place which constrain the allowable transactions.

One crucial aspect of blockchain is its decentralized nature. This comes into play, particularly, in the need for validators (agents or nodes) which confirm transactions are valid before they are added to the blockchain. In order for this to occur, consensus must be found. In a public blockchain (versus a private blockchain), this consensus is achieved via a confirmation from a set number of nodes that the proposed transaction is valid.

For those familiar with trading cryptocurrencies, this is where the “confirmations” on the receiving exchange come from. It’s essentially the exchange verifying the transaction with a certain number of nodes to ensure that it’s correct. Rules can be specified, which allow for fewer confirmations required when transactions come from highly trusted sources, or more confirmations required for less-trusted addresses. If you don’t need validating entities (nodes), then you don’t need blockchain.

Be aware of these blockchain trade-offs

It’s easy to see from the above how the buzz around blockchain is causing some level of irrationality. Organizations and individuals are adopting blockchain for purposes for which it’s poorly suited.

While blockchain presents an ideal solution for certain use cases, it’s not without those all important trade-offs. There are three: size, time to enter a transaction on the blockchain, and the time it takes to reach consensus.

Blockchain doesn’t scale particularly well.

Blockchain size can become an issue as records are entered. Bitcoin’s blockchain, for example, at the end of December 2017 was 149 gigabytes in size. As additional transactions are entered on the blockchain, it continues to grow. Even more critical is the time it takes for a miner (who requires a fee to do the work) to enter the transaction. The more you’re willing the pay, the more likely your transaction is to find a willing miner; the less you’re willing to pay, the longer you have to wait for a miner to pick up your transaction.

And then there’s the time to reach consensus. In order for the network to know a transaction occurred, the gossip protocol is applied. This means that one node tells another who tells another who tells another—until all the nodes in the network agree your transaction has occurred. As you can imagine, it takes some time to share your transaction with the whole network. In the case of Bitcoin, this confluence of factors results in a transaction speed of 7 transactions a second. Yes, seven. For comparison sake, VISA can process 24,000 transactions a second. Ripple claims to process 1,500 transactions a second.

Clearly there is a cost associated with blockchain. This cost may be tenable in appropriate use cases, but for poor use cases it is likely a deal-breaker.

The important thing to remember is that we’re just at the beginning of the blockchain story, in spite of everything we’ve seen. We have yet to really see the impact of blockchain on our daily lives.

Pluralsight author on ethical hacking Dale Meredith puts it this way: 

“I feel like we're on the verge of what this technology will end up providing us. Kind of like the phone, I'm sure Alexander Bell had no vision that one day his device would be carried around in your back pocket.”

While few would disagree that blockchain is here to stay, what does this look like in the context of the Pluralsight Technology Index?

The current strong showing from blockchain on the index appears to be primarily driven by enthusiasm for the technology, and as such, we expect that in order for the technology to retain its ranking we’ll need to continue to see substance—in terms of practical applications of the technology—materialize to support the hype. Since many of the promising applications of blockchain are still very much in their infancy, it’s likely we’ll see blockchain move down in the index (though precisely how far, and how fast, is difficult to predict). We expect this decline will persist until we see more successful blockchain-based product launches that demonstrate real-world value.

2 trends that aren’t going away anytime soon

Bottom line: JavaScript and blockchain are two dominant technologies today and will remain so for the foreseeable future. Knowing this, organizations can can take appropriate action to maintain their competitive edge.

JavaScript’s dominance is a signal of a mature and robust technology with numerous practitioners and an exceptionally diverse ecosystem, which can be deployed to solve problems across a wide array of platforms.

Blockchain’s dominance is different. While there’s enormous enthusiasm for the technology, there are few blockchain developers, and the technology isn’t remotely mature—yet. This represents an opportunity for leaders to get ahead of the curve by: First, identifying if they have a viable use-case for blockchain; and second, acquiring (or upskilling) the necessary talent to begin building a blockchain solution. Leaders who are ahead of the curve on blockchain will be well-positioned to reap the rewards as the technology matures.

While it’s never been easy to know what’s coming and going with technology, it’s only getting harder to filter signals from the noise. That is why we built the Pluralsight Technology Index: to make it easy to understand the landscape of technology. With the speed of tech accelerating, now’s the time to better understand where to focus for the future.

Learn something new. Take control of your career.
Sign up

Abe Burnett

Abe Burnett has always wanted to be a wizard, but as a data scientist at Pluralsight he'll settle for creating cutting-edge, transformative... See more