Programming/Why JavaScript Won

Why JavaScript Won

Tawanda
Tawanda Munongo Software Engineer Tue Jan 31 2023 | 15 min read
Why JavaScript Won

Many new technologies have emerged in the last 10-15 years, but few are as under-hyped as cloud computing. We all use platforms like Netflix, Dropbox, and Spotify, yet pay little thought to the technology that has made these platforms possible. Cloud providers have been offering businesses the ability to grow and scale without worrying about the cost and complexity of managing infrastructure to meet fluctuating demand. And, despite being a $500 billion industry, experts are projecting that this will likely double in the next five years. Hopefully, I can shed more light on why we should pay more attention to the cloud.

How it started

When Benjamin Black and Chris Pinkham first outlined the idea for what would later become AWS, they were driven by a desire to transform Amazon’s internal infrastructure into a collection of “standardized, completely automated” services. These would rely extensively on inter-connected web services. This transformation was necessary as Amazon, like many other dot-com era companies, had struggled with issues of scale. While solidifying their internal structures, the idea to sell virtual servers as a service popped up and piqued Jeff Bezos’ interest. I mention AWS here because its inception was ahead of its time and birthed this half-a-trillion-dollar industry. As Black puts it, Jeff envisioned a platform that would offer anyone, even “college kids in a dorm room”, the tools to start a company. And, so, in 2006, Amazon launched EC2 to little fanfare, offering access to virtual computers as a service. It took a while for their competitors to respond, giving AWS a seemingly unassailable lead in the market. The competition has since closed the gap, with various providers offering a wide range of services, from Big Data processing and analytics to Cloud SDKs for application development.

What is Cloud Computing

Cloud Computing is a computing paradigm that aims to provide access to computing resources over a network connection. These resources include storage, processing, and networking. While companies and individuals can set up private clouds, the market is mostly dominated by cloud providers like Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform. Their services can be split into three classes: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). They differ in the scope of services provided, with SaaS as the most comprehensive and IaaS as the least.

SaaS, also known as cloud application services, is the on-demand delivery of software over the internet. It is the most comprehensive and widely used type of cloud computing. Users can access the software via the browser and it is actively managed by the vendor. As it is often web-based, there’s no need for downloads or installations on the client side, and maintenance and support are handled by the vendor. Many SaaS products have risen to prominence in recent years, including Figma, Salesforce, and Google Docs. Others like Microsoft Office and Adobe Creative Cloud have switched to SaaS-inspired subscription models.

PaaS, on the other hand, provides developers with the infrastructure and tools needed to develop, test, and deliver applications. PaaS products are also browser-based and often target the development community. They provide mechanisms and components which developers can leverage to accelerate the development process and build robust and scalable products. This infrastructure can be servers and storage or an environment in which to deploy applications. Examples include Google App Engine, AWS Lambda, and Heroku.

Finally, IaaS focuses solely on the on-demand delivery of physical computing resources over the network. Compared to the other two types, IaaS gives users more control over their setup while leveraging the flexibility and elasticity offered by the cloud. Providers such as Linode, Rackspace, and Digital Ocean provide customers with nothing but the bare minimum, allowing them to build their environments as they see fit. As with the other two types, users still pay a fixed monthly fee and need not worry about hardware maintenance.

Why Cloud?

We can glean some insight into this by looking back at the web’s founding principles. The web was built to be a tool that finally liberated information, a space that fostered collaboration by eliminating the limitations of physical separation imposed on would-be collaborators. The other was to build a democratic platform that was as widely accessible as possible. In many ways, cloud computing offers robust solutions to these problems. Cloud-based tools for document editing, for example, offer a solution not only for teams scattered around the globe but also for modern users who find themselves constantly hopping between devices. The second problem has been addressed by the rise of SaaS - its key offering being software products designed to run on cheap hardware without compromising performance. The most obvious example is Google’s Chromebook line, a series of devices designed to run Google’s cloud-first operating system, ChromeOS. Chromebooks are notoriously cheap because they don’t need powerful processors and large storage devices as they rely on remote processing and storage.

On the other hand, cloud computing offers solutions for start-ups that need computing hardware like servers. Even with extensive market research, it is difficult for a young company to accurately estimate the demand for their product(s) and, therefore, the amount of computing hardware to purchase. Most businesses must also deal with fluctuating demand, which means equipment can be idle today and be overloaded and insufficient tomorrow. Server equipment is also expensive to purchase and maintain, and start-ups are always looking for ways to cut costs. Add on top of that the need for a team of experts to configure and maintain the infrastructure and it’s easy to see the need for an alternate solution. What cloud computing offers, then, is high availability, flexibility, and elasticity. In cloud computing terms, elasticity is the ability of a system to adapt to the workload by provisioning and de-provisioning instances to ensure efficient use of infrastructure. Cloud also eliminates the need for companies to purchase expensive equipment that will quickly become old and outdated. This responsibility falls on the cloud providers. Additionally, working with a public cloud provider allows an organisation to bypass all costs associated with purchasing, storing, and maintaining computing equipment. The cloud providers reap the benefits of the scale on which they operate, striking up deals with hardware suppliers for discounted purchases.

The last decade has demonstrated the role cloud computing plays in our increasingly technology-driven society. We produce and process vast amounts of data, increasing the need for massive storage and intensive computation. Whether it’s for our AI voice assistants, real-time speech translation, or advanced recommendation systems, these services require infrastructure that public cloud providers will gladly provide. What we get in return is unlimited media streaming, highly available web services, and seamless transitions between devices. Through the cloud, we can share the infrastructure and its costs, rather than each individual having to personally do so, like buying enough storage to hold the entire Netflix library. As a result, many people will gladly fork out a monthly subscription fee for the convenience of, for example, an infinite media library that they can access on-demand, wherever they are. As we will see in the next section, the effects of this now extend far beyond the world of software.

There’s Always a Dark Side

At the risk of sounding like a Debbie Downer, I must point out that it’s not all nice and rosy - there’s a dark side to cloud computing. The first issue is how cloud computing goes against one of the main principles of the web and early internet - decentralisation. Cloud computing facilitates a level of vendor lock-in and walled gardenism that many believe will negatively impact consumers. The recent release of Sony’s PlayStation 5 Digital Edition is a prime example of how quickly companies will move to take advantage of the side effects of our increasingly digital technological landscape. The rise of the cloud has made digital and networked software more prominent, with many applications today relying on remote servers for full functionality. While, historically, gamers could buy and trade their games (or other software), the push towards digital means that companies still maintain some level of control over the purchased software. When games are only available digitally, they are tied to a user’s account and cannot be shared or traded. Digital-only releases tie users down through a lack of cross-compatibility, meaning that after building a massive collection on one platform, one must give it up to switch to another. Admittedly, Sony did release a version of their latest console with an optical drive, but we’ve seen from smartphone manufacturers that OEMs will gladly remove hardware components to direct users in one direction or another.

For residents of the so-called Global South, the prominence of networked software presents a different set of problems. Internet access is much more expensive in poorer countries, and the speed and lack of reliability make the cost even harder to justify. Users must fork out more than their first-world counterparts to use (via a subscription) software which could be bought once and used for life. For businesses, it’s much harder to leverage cloud technologies (and the internet, in general) because of service disruptions, delays, and the fact that their primary market has limited access to the internet. Cloud-based software also puts a heavy strain on the already limited bandwidth provided by many third-world ISPs.

Our increased reliance on digital, networked software in recent years has brought to the forefront the importance of cybersecurity and data protection. Most of us use software that relies on remote servers for data processing and/or storage. This has raised questions about the measures taken to secure user data. Popular cloud-based note-taking app, Notion, for example, only offers at-rest and in-transit data encryption. This means that, despite the safeguards put in place by the company, it’s still possible for employees at Notion to access user data. The threat of unauthorised data access is even greater for secure apps like password managers. Recently, the password management service LastPass was the victim of a massive hack that may have exposed millions of users’ credentials, highlighting the danger consumers face in the age of cloud-based software. Besides that, many companies will gladly sell user data to their advertisers as long as it benefits their bottom line.

The rise of cloud computing has been facilitated, in part, by improvements in virtualisation technology. Virtualisation is crucial to cloud computing because it allows providers to have multiple tenants sharing physical hardware. One focus point for these improvements has been to ensure isolation between tenants sharing hardware inside a data centre, yet security breaches are still common. Sometimes it’s the callousness of one of the tenants which leaves everyone else exposed. It must be concerning, especially for corporate entities, how little control they often have over their infrastructure when they pass the buck to cloud providers. The lack of direct access to the hardware also makes it difficult, at times, for tenants to determine whether issues in their deployments are down to their product or poor hardware configuration.

As mentioned earlier, cloud computing has also popularised the “as-a-Service”, subscription-based model. A prominent, recent example is the introduction of Pantone Connect, a $15-a-month subscription for designers to use Pantone colours inside Adobe’s suite of design applications. Similarly, Mercedes announced ‘Acceleration Increase’, a $1200 subscription fee that unlocks paywalled performance in their $100k+ EQ electric models. Tesla has also, historically, limited the range of some of their cars via software, despite the different models having the same physical battery capacity. To be clear, this is not a critique of subscription models — there are times when they are necessary. When a company’s offerings require ongoing expenditure on computing infrastructure, it may be necessary to charge users a recurring fee to continue to provide the service. However, it is also clear that companies are shifting their business strategies to reap the benefits of a lifetime supply of recurring payments.

The Future of the Cloud

Most expert analysis shows that cloud computing will continue to grow because it is a powerful and popular technology that has benefited individuals and businesses. One potential source of growth for the public cloud sector will be its adoption by the Internet of Things (IoT) sector. The increase in IoT devices and the data they produce will force their manufacturers to find ways to scale their data processing capabilities, which is where the cloud shines.

Edge Computing is a new paradigm that can address some problems related to cloud computing. It aims to bring data processing architecture as close to the data source as possible. The hope is to solve what we can call the us-east-1 problem. This is especially prominent in web applications where data processing happens on remote servers that can be far from users. For all the improvements made in network connectivity, the ultimate barrier that we always come up against in increasing network speed is the laws of physics. The solution is to set up locations known as Points-of-Presence (PoPs) in areas closest to the users, reducing the need for every user action to make a round-trip to and from the main data centre. Additional benefits also include the reduced risk of data interception in transit and the bandwidth burden on the network between users and data centres.

We expect companies to adopt multi- and hybrid-cloud solutions to address security concerns and regain control. This way, companies can keep their most sensitive data on privately hosted cloud infrastructure while reaping the benefits of the flexibility and elasticity that the public cloud can offer. To counter this, public cloud providers will undoubtedly invest more in cloud security, especially with the help of advanced AI, to give their tenants more peace of mind.

In the software development space, Serverless Computing is likely to grow in stature. This paradigm allows developers and companies to build and run applications without worrying about server provision and building backend infrastructure. Popular examples include Google’s Firebase, Amazon Amplify, and Supabase. Placing the burden of provisioning, scaling, and maintaining hardware on the cloud providers allows developers and their teams to focus more on building and shipping products faster.

Conclusion

One simply cannot talk about influential technologies in the last decade without mentioning cloud computing. We use platforms that rely heavily on cloud services that are provided by a handful of companies, the most dominant being AWS. We enjoy access to almost infinite content, powerful software on limited hardware, and immense convenience thanks to cloud computing. For established businesses, start-ups, and lone entrepreneurs, cloud allows them to innovate and grow, comfortable in the knowledge that teams of trained experts will keep their infrastructure functional. For all its benefits, however, cloud computing does have its flaws. Its growth will continue to pose the risk of a much more centralised web as users get locked in by vendors. It will be interesting to see how public cloud providers will address some of the issues levied against cloud computing. Regardless, cloud computing will continue to offer many opportunities to those willing to harness its power.

About Me

I'm a fullstack developer focused on building digital experiences that harness the power of cutting-edge web and cloud technologies. My primary area of focus is building backend systems with a proficiency in TypeScript, Java, Go, and PHP.

Buy Me a Coffee