“Companies in
every industry need to assume that a software revolution is coming”, says Marc
Andreesen, the co-founder and partner of the venture capital firm
Andreesen-Horowitz in his book “Is software eating the world” in 2011. This
statement will prove to be accurate as we will further discuss new software
development trends in platforms like Cloud Computing, Internet of thing (IoT) and
Single-Page Applications (SPAs) into further detail.

I will give a
brief history of these trends, how we are currently applying these technologies
and new developments. In the information age that we find ourselves it is fair
to say that software development and the internet are two of the front running
technologies that pushes the advances of technology itself, the way we
communicate, the way we do business and the way we live our lives day to day.

Furthermore I
will evaluate these new trends to the current ways of software development and
in conclusion I give my own opinion on these trends based on the research that
was done.

Cloud Computing

Although the
concept of cloud computing dates back to the 1960’s it only became a practical
reality for the masses in the 1990’s as the internet started offering
significant bandwidth. Using a website to deliver enterprise applications was
developed and pioneered by Salesforce.com – founded in 1999. In 2002 the Amazon
Mechanical Turk developed cloud based services such as storage, computation and
human intelligence.

Browse-based
applications such as Google Apps were further developed by companies like
Google in 2009. This is as we know it Software as a Service or SaaS whereas a
third-party hosts the application and makes it available to users via the
internet. Saas, infrastructure as a service (IaaS) and platform as a service
(Paas) are the three main categories for cloud computing.

The most
familiar cloud services used by consumers are SaaS with applications, software
suites and storage solutions like Salesforce, Google Apps and Dropbox. Companies
and organizations save costs as no technical staff are needed to manage,
install and upgrade software. PaaS provides a platform for software to be
developed and deployed. Here users can freely focus on the business side of
scalability and application development of their product or service as PaaS
providers gives the users an environment where operating systems and server
software are already taken care of. Heroku and Google App Engine are examples
of PaaS providers. IaaS is a flexible cloud computing model that can be
outsourced to build virtual data centres in the cloud. Here organizations will
find that the exact capabilities and technologies of normal or traditional data
centres are offered by service providers without having to invest in the
physical maintenance and management of it.

These models
are set to grow continually for the near future because of financial benefits
of SaaS as well as the growth in IaaS and Paas respectively. With an estimated
storage capacity growth to 1.1ZB in the year 2018 (double the space of 2017)
businesses will take advantage of that space to further their business
objectives – storing large data sets, analytics, insights into customer
behaviour and strategic financial investments. With the development of Internet
of Everything (IoE) systems to simplify all online interactions, could
computing are set to play a significant role as IoE relies on how humans
communicate, data and processes, as well as machine to machine communications.
Moving from gigabyte LTE speeds to full 5G networks will increase expectations
for fast-loading services and apps. Businesses will upgrade whichever cloud
platforms they use to be more responsive.

Security
challenges will be high on the agenda for 2018 as 2017 is known for the more
cyber-attacks in history than ever recorded before. Security information and
event management (SIEM) and malware detection systems to defend against
cyber-attacks will become a necessity for businesses. Here cloud services could
play a role with managed security service providers implementing full security
measures.

Internet of Things (IoT)

IoT, being a
concept also as early as the 1960’s was officially named in 1999. With the
development of IPV6 which remarkably expanded the address space given to
devices the functional development of IoT increased tremendously.

The evolution
of IoT, coupled with faster processing and increasing network speeds, reached
new heights by 2013 with systems now using technologies from Internet, wireless
communication and micro-electromechanical systems (MEMS). Any device connected
to the internet with an on/off switch can basically be an ‘IoT device’, from
cell phones, maintenance on engines of an airplane, biopic transponders, a
doorbell that links to a smart phone, to an alarm clock that links to your
coffee machine.

The Executive
Director of Auto-ID Labs at MIT, Kevin Ashton, states in his speech in 1999
while making a presentation for Procter & Gamble:

“Today computers, and, therefore, the Internet, are
almost wholly dependent on human beings for information. Nearly all of the
roughly 50 petabytes (a petabyte is 1,024 terabytes) of data available on the
Internet were first captured and created by human beings by typing, pressing a
record button, taking a digital picture or scanning a bar code. The problem is,
people have limited time, attention, and accuracy. All of which means they are
not very good at capturing data about things in the real world. If we had
computers that knew everything there was to know about things, using data they
gathered without any help from us, we would be able to track and count
everything and greatly reduce waste, loss and cost. We would know when things
needed replacing, repairing or recalling and whether they were fresh or past
their best.”

While
IoT provides endless possibilities for interconnected devices and being a
technology ripe for new creative ideas, it can and will be exploited as much as
it is explored. The risk it poses to customer privacy and organizational
security is great, with things like video cameras in the public space becoming
a more common place and business faced with storing large amounts of data the
these devices are producing.

Industrial
Internet of Things (IIoT) fast is becoming a new reality in industries, such as
oil and gas with innovations such as connected drills and intelligent gas
pumps, the automotive industry using smart infrastructure for improved safety
and electronics manufacturers creating sophisticated smart home appliances, meaning
the enterprise version of IoT is maturing fast. Connected machines are expected
to move at speed and scale as required and this can be achieved by a practice
known as infrastructure as code (IaC).

IaC
shift processes to automation from manual, and empowers contributors across the
business, including developers and operations to collaborate more efficiently
with flexible workflows that at the same time protects the company’s
intellectual property (IP). This framework for building IT architectures allows
businesses to respond to customers’ feedback in real time (which translates to
faster time to market), automate testing and deployments cycles, and spin up
new servers quickly. IaC is not a hardware or software package implemented by
businesses; it is a model that streamlines and automates different areas in the
data centre and production pipelines. At every level of the enterprise
operations will be automated and programmable.

The
ultimate scalability, flexibility and velocity can be met by giving the power
to development and operations teams to manage environments the same way as
their applications. With this in mind in the growing industry and all
enterprises moving in this direction, all enterprises are to become hyper-agile
to compete. Again, security concerns will be a top priority as enterprises
tracks movements and changes at the most granular level. This way intellectual
property is kept safe and secure.

Companies
are able to update their products multiple times a day if needed with more
agile infrastructures. Without spending time on manual collaboration and
security processes, new code can go into production because of flexible
collaboration paradigms and security checks which allows developers to
contribute at anytime from anywhere.

Single-Page Applications (SPAs)

Since the
development of the internet up until recent years (and even today) a webpage is
widely understood to be the page that the wed server sends to your browser. It
consists only of what is in the view of your browser at that, or any given
time.

The traditional
way of developing websites and web applications, using multi-page applications
(MPAs) consist of opening a website via your browser – this web page will then
have various hyperlinks that the user navigates and searches through for
whatever purpose the user need to. Using the basic components, such as HTML
(the language describing basic text documents and can contains links to each other),
HTTP (the protocol to transfer HTML documents) and URLs (the addressing
convention to search and locate HTML documents), users can navigate through the
website or use the application.

SPAs are
designed to only have a single page load in the web browser – meaning that the
user only navigate somewhere once. Using techniques like templating, routing,
and view-to-model binding, JavaScript performs all severs interactions that
modifies the view as needed. This means that the browser does not have to reload
web pages and navigate to different websites as the user navigates through the
application or website. SPAs are largely dependent on Javascript to load all
the content because the user is only visiting one webpage. Development on the
client end is more in depth, but it runs faster because only data is
transmitted back and forth while other resources such as HTML, CSS and Scripts
are only loaded once throughout the lifespan of the application.

Although SPAs
is still not the most common used practise most apps on the market are now
migrating to this model. The usage of applications across multiple devices and
the advancement of smartphones and other mobile devices, coupled with the increasing
internet speeds makes web applications more attractive and common practise. The
advantages of SPAs make it the more favoured model in this case.

SPAs offer more
advantages in production deployment and, even more attractively, the user
experience. Deploying just one index.html file, with a CSS and Javascript
bundle makes the deployment of SPAs much simpler than the traditional
server-side rendered applications. With that the server for the SPA can be
configured with a parameter which specifies the version of the frontend
application to be built. As for the advantage of the user experience it goes
without saying that without constant page reloads and back and forth trips to
the server to fetch HTML, the user has a faster and more efficient experience
when browsing a website or using the application.

It would be
safe to say that SPAs will be much more frequently used and become common
practise in the not too distant future. It offers technical benefits with
mobile and search engine optimized SPAs – less bandwidth being used and no full
page refreshes makes it feel faster on the client end.

Evaluation

Looking at
trend one – in this case cloud computing – of all the advantages it presents,
the most appealing to businesses would be the cost cutting factor. From storage
and management to maintenance and power consumption, cloud computing offers the
most efficient solutions for organizations and businesses that are serious
about staying competitive in their respective industries.

IoT (trend
two), have been pegged as the next internet or industrial revolution by many
industry experts because this is the way businesses, consumers and governments
will interact with the physical world. Many benefits it holds for businesses
includes increased productivity, cutting operating costs, developing new
product offerings etc. Governments will also see benefits in increased
productivity, improving quality of life for their citizens etc. Finally, the
more mainstream IoT becomes, consumers will invest significantly in these
devices.

Trend three
(SPAs) is a user friendly solution, and with multiple devices using
applications and searching through websites all the time it is a faster and
easier way to navigate and improve the user experience. With single time file
load of each HTML, CSS and JS, SPA users experience an improvement in
performance. Other than the functional use of the application, the user
friendliness or experience when using an application or navigating through a
website would most likely be the second most important factor when developing
an application or website. This is what makes SPAs a good and attractive option
for developing applications and websites.

Conclusion

As much all
these developing and growing trends (as discussed above) are the future of
internet development, it is a reality right now in the present tense. The ideas
and knowledge about cloud computing, IoT and SPAs have been around for many
years but its practicality was marginalized due to a lack of infrastructure.

With the steady
increase in network speed (including wireless networks), faster processing with
state of the art hardware these technologies and much more is now a reality. The
evolution of these technologies will give birth (and already have given birth)
to newer and better technologies and ways of doing things.

The massive
amounts of data collected by IoT devices mean that it co-exists in harmony with
cloud computing, as this provides the much needed storage space for the data
collected by these devices. Hence IoT technology providers are now promoting a
model called edge computing (AKA fog computing) whereas IoT devices transmit
data to a nearby edge computing device (a network router or switch) that
analyse the data, as opposed to sending it back to the cloud. This in itself
bares testament to the constant evolution of these technologies.

The
sophistication of internet security plays a major role in the development of
new internet technologies for obvious reasons, and with more users and
organizations using the technologies the risk and threat of cyber-attacks
becomes bigger. It is fair to say that not any of these technologies threatens
the existence of the other. They all exist, and are thriving in their
respective spaces, whether it be isolated or in harmony.

Businesses will
have to decide which technology serves their needs and meet their requirements
best. Whether it one or a combination of many, it is clear that businesses
cannot remain competitive in their respective industries without adopting new
technologies.