There are numerous leading-edge topics that are featured in the news and are mentioned over and over on technology Web sites. Rather than define what has already been defined, I'm going to give my perspective on why you should pay attention to some of the stated technologies. Although some of these topics might not directly impact you, the concepts within them might. Additionally, you never know what future impact could happen to you as a result of these technologies.
A half dozen core topics worth watching are presented, followed by a list of several others that have either been around for a while or that deserved an honorable mention. Feel free to post to the comments if you believe a technology has been missed, or if you have additional reasons some of these are important for fellow developers to be watching!
Yes, I started with Quantum Computing! This is in the early stages; however, it is starting to get traction. Even though Quantum Computing won't impact a lot of today's development, it will impact computational and analytics solutions. As such, it is likely that future applications will call services running on quantum computers. The quantum services will provide calculations at what seems infinitely faster than today's computing would allow.
A key reason, however, to watch quantum computing is because the approach to programming will be different. Just as programming in a language like C# is different from Assembly, you can expect that the initial approaches to coding Quantum computers will be different as well. Companies such as Microsoft have already started developing new languages, such as Q#, to address quantum computing.
Despite the fact that quantum computing isn't likely to impact you in the near future, it is worth watching because it could add new paradigms to existing programming models.
The Edge: Computing and Analytics
Computing has been moving away from the center of a company's network towards the Cloud for many years now. In the ever-changing world of technology, a new shift is occurring that is now moving processing away from both the center of a company's network and from the heart of the Cloud. With the increase in remote devices, especially IoT devices, there has also been a deluge of data. Although some IoT devices have some ability to do preprocessing of data, that is generally not the case. Transmitting and analyzing data from devices can require a huge amount of bandwidth and processing power. Rather than push this to a company's primary servers or to Cloud resources, devices are being built that can process, analyze, and otherwise reduce the amount of data that needs to be passed along. These intermediary devices are placed at the edge of the network or Cloud to be closer to the devices that are providing the data.
Edge computing and analytics emphasizes and helps drive the idea of decentralizing processes. As future solutions are being built, there could become more value in moving the processing closer to the source. As a developer, if you are architecting solutions, knowing the options on distributing the processing and the data are important. In the case of edge computing, there is also the potential to help reduce the overall cost and security as well.
By doing processing nearer to the source and at the edge of existing networks and the Cloud, there are a number of benefits. These benefits include the ability to react to real-time data faster while reducing the transmission costs by prefiltering and organizing data. There is also the ability to process and secure data before transmitting it further. In situations where long-range connectivity is an issue, edge devices can help by storing data until it can be sent.
Edge computing and analytics are already being used in many areas. As mentioned, IoT devices are a key area where huge amounts of data can be generated, so it is one of the more natural fits for edge computing. ATMs are a common example used for edge computing as well. ATMs can do prescreening and other analysis to help reduce the chance of fraud. Home automation devices are another example that can tap edge computing. Yet another scenario often used with edge computing is within retail where edge computing device connected to IoT sensors throughout a store can allow for fast and personalized response and prompts to customers. In situations where IoT devices are being used with low latency or limited communication, options also can be viable for using edge computing.
Blockchain is a method of tracking transactions from beginning to end. This applies whether the tracking is of a financial transaction or the life of a product. Blockchain uses in immutable ledger that is transparent to anyone. Transactions are synchronized across the entire network.
Like a regular ledger, a blockchain is a sequence of transaction records (blocks). Each transaction is put into a block. When a new block is added, a copy of the previous block's ID is included and the overall blockchain is updated. The IDs are done using cryptographic hashes that include time stamps as well as information from the previous block, thus making spoofing near impossible.
Three key features of blockchains are that they are distributed, permissioned, and secure. Because they are shared, nobody owns the block records. A single person can't change the data without being tracked and having everyone linked to the chain being aware. Because adding new blocks requires confirmations to be added, the level of trust increases, and accidental changes are less likely to happen. Because of the way the changes are build and information is linked, the technology is considered secure.
Blockchains are best known for their association to cybercurrencies such as Bitcoin and Ethereum; however, any sort of transactional system can potentially benefit from the use of blockchains. In many cases, blockchains are being used in transactional systems where middle men are needed to help with ensuring clean, safe, and accountable movement one from system to another. By using blockchain technology, the middle men and systems can be eliminated, thus reducing costs, time, and potential security gaps.
XR—Augmented, Mixed, and Virtual Realities
It is ironic to list a technology that has been around for decades in a list of leading edge topics. The reality, however, is that this time the hardware and software are more capable of actually delivering usable augmented, mixed, and virtual realities.
As with Quantum Computing, you might not expect to ever touch XR solutions; however, there are a lot of concepts worth watching that might impact applications you are building. XR solutions are incorporating new interfaces that are 3D, that overlay existing solutions, and that accept additional forms of interaction, such as gestures.
Web Services, APIs, and other features have been bantered around for years. Serverless Functions falls into a similar category; however, with serverless functions a developer focuses on the solution trying to be created rather than architecture, platforms, and such. Rather, serverless functions focus on the solution.
In general, serverless functions are an approach that are applied to a single process that is kept concise in its execution. The effort should be to focus on a single process that is stateless. The value of serverless functions includes the ability to deploy quickly as well as the ability to scale.
Cognitive Computing includes the ability to incorporate thought and interaction into computer-based solutions. This can be both hardware and software based.
Cognitive computing overlaps with many other technologies that are gaining attention, ranging from artificial intelligence (AI) to virtual reality. It is also associated to machine learning, natural language processing, speech recognition, emotion detection, vision, and more.
The ability to incorporate cognitive computing features into your solutions can increase the chances you'll be better able to respond to what your users need or are trying to do. Cognitive services can improve your solutions' interfaces or provide the tools to determine if your users are confused, so you can offer help.
There are a lot of technologies that I've written about, as have others, that are also worthy of the attention of developers. Hopefully, you've already studied many of these. I'll not provide the details of these here, but rather provide a quick mention:
- Bots: Not robots, but service bots, which are automated services that can interact with customers or people in a conversational or leading way to conduct business. Some of the most popular uses are chatbots online that help as a first line of defense for customer service.
- Digital Twins: Gaining popularity in the world of IoT (the Internet of Things), a digital twin is a representation of a process, system, or asset. The digital representation operates in a manner similar to the real-world item.
- Intelligent Things/Internet of Things: This was mentioned earlier with edge computing and impacts other areas as well. Using sensors and other hardware to gain intelligence can be a means to extend existing solutions you are building. Even htough many developer solutions don't need external sensors, within industries like retail and manufacturing, the placement and gathering of sensor data can be extremely advantageous.
- Machine Learning, Business Intelligence, Informatics, and Big Data: These are all technologies that center on data and getting smarter by using existing data. In the case of Machine Learning, it also is the application of AI into the mix.
- Web Assembly: Web assembly is a standard that provides a means to execute code on the Web in a manner that is almost as fast as running code natively. The compacted code is executed within a sandbox, thus allowing it to maintain security.