Web development emerged at the beginning of the Internet Age, when we began to make faster, more powerful computers talk to each other over telephone lines.
As the Internet became more sophisticated; web development became more technical and more professional. Now, we are leaving behind the Internet Age and moving into the Internet of Things (IoT) Age, where devices that were never considered computers are able to talk to each other, to users and to servers in ways we are only just being able to imagine.
Today, we don’t necessarily head to websites on computer screens to buy things. Instead, we ask Alexa to buy something through our voice-activated Amazon Echo. We don’t simply wait until we’re home to change the thermostat. We link our Nest to our smartphone and tell it to turn on the heating when our phone senses we’re about 30 minutes away from the house.
Right now, we find this level of connectivity pretty comfortable, but as the Internet of Things Age progresses, we will find our devices syncing up across work, play and home in unprecedented ways. IoT will be so disruptive to our lives as we know them that it is hard to accurately imagine what the future will be like, but there is one thing we know for sure. IoT has already had a massive impact on web development, and its impact is only set to grow.
That means all web developers will need to consider IoT at some point. In the interest of getting ahead of the curve, we’ve set out everything web developers need to know about the Internet of Things.
Web Development and the Internet of Things Now
These are the Wild West days of IoT development. There is a lot of speculation and experimentation, with little standardization at the moment (at least five major organizations are working on IoT standards simultaneously). So we don’t know exactly how things will pan out. But we can see that certain areas crop up again and again when experts discuss the impact of IoT on web development today.
The Impact of IoT on Web Development Now
- The back end is all over the place: Right now, each device is built in its own little world. Each company has its own way for devices to connect and talk to each other. Each device gathers its own kind of data, and each device uses its own kinds of commands to function. That means a lot of app development centers on simply getting your app to mesh well with other already established apps. Node.js helps with this, as it has emerged as a leading framework for establishing communications between IoT devices. Still, the issue is hardly resolved.
- Interfaces need simplicity: No one has time to figure out complex commands when it comes to appliances, so there is no space for a lack of clarity in a coffee maker’s control panel. In other words, user interfaces have to be easy to pick up and responsive. All the tools in your usability belt will be put to use when designing the user interfaces for IoT devices, especially since most companies will want their products to be controlled from smart phones as well as from the devices’ own screens. The controls should be as obvious on the phone as they are on the machine. The complexity should only come in behind the scenes. What the user needs to see is a clean, logical design.
- Mitigate for network latency: When you press a button on your printer, you expect it to start printing right away. But with IoT devices, the command goes from the screen to the server to the device, rather than from the screen directly to the device. That extra step might create a buffer between the command and the action, especially with slow network connections. Users will see a product that is either slow or ineffective, neither of which they want in their lives. So IoT developers have to design apps that can and will handle slow and even interrupted connections, so users get what they want from their devices.
- Think about the power: We all love thinking about power, right? Hopefully the answer is ‘yes’ because IoT developers will have to think about how much computing power their apps take up at every point. Why? Because most IoT devices are battery powered, wireless and don’t have a lot of space for extensive memory chips. The more complex the app, the more power the chip will have to consume for longer, which will sap the battery and lead to disappointed customers who ask for their money back. In short, every part of an app’s design should use the absolute minimal amount of power.
- Privacy and security: This area is a bit difficult because privacy and security are so subjective. Ideas about what is safe and what should be kept private are constantly shifting, especially when we trade them for convenience. For instance, most of us feel uneasy about implantable sensors that allow our employers to track our movements, but employees at Swedish startup Epic entre willingly get the injections – and even host parties for others who volunteer to have implantable tech, too. They cite the convenience of implantable ID devices as their main motivator. Think, too, about all the fears around online shopping back in the early 2000s. Many of those fears have come true, including identity theft and widespread fraud, but most of us happily trade our security for the convenience of shopping from our homes. Still, criminals know that having more devices connected to penetrable networks means more opportunities to swindle and steal. That’s why identity theft protection as well as overall security and privacy need to be built into both the networks themselves and into the apps that the devices use. The more walls that need to be broken into, the less incentive and opportunity criminals have.
- Sticking to what you know won’t save you: Even if you decide you don’t want to work on IoT development, you’ll still have to consider IoT when you develop anything. Think of it this way: an estimated 35.6 million people have voice-enabled speakers in their homes. Right now, they tend to use them to access the company’s own websites (like Amazon Echo users ordering things from Amazon). But this capability will expand, and users will expect to be able to access any website from just about any IoT device. So it’s only a matter of time before, like responsive design before it, you have to assume that a large proportion of a website’s users will come from an IoT device and build accordingly.
The Languages You Need to Know Now
So the march of IoT development is basically inevitable, and you’ll need to start using certain languages when you begin developing for IoT. There are many programming languages that are being used today, but these are the ones most frequently employed by IoT developers.
- C: This is a common choice for now, just because it’s a streamlined language that works well with devices that have limited memory. Once devices get more advanced, however, the capabilities of C will be outstripped.
- C++:This is the most complex of the commonly used languages now, as it is powerful but still quite agile. Unfortunately, its complexity means it’s not being adopted too widely, as most IoT devices can’t handle it at the moment. So that may mean that it doesn’t get adopted in the future, either, as developers figure out ways to handle development problems with higher level and more commonly used languages.
- Java: Java is among the most commonly taught development languages, so just about everyone knows how to use it. Moreover, although not as powerful as C++, it nonetheless is easier for the limited memories of today’s IoT devices to handle. Combine these two things – its wide use and its appropriateness for most current development needs – and you have one of the most popular development languages.
- Python: This is the other big language in IoT development right now, for many of the same reasons as Java. It’s well established, widely taught and flexible. One big thing going for it is the Raspberry Pi. As the Pi’s main programming language, Python is central to IoT development. The Pi’s power, small size and low price point means it is ideal for learners and experimenters, and it is now used in everything from robotics research to building pretty simple motion-activated cameras.
The Future of IoT and Web Development
This might be a time of experimentation and wild speculation, but there are still some clear changes just on the horizon. Websites won’t be the only place consumers research and purchase products. Inventory controlling apps and sensors that track office worker efficiencies will become as common in people’s everyday activities as smart heaters and internet-accessible baby monitors. In the realm of IoT, Google and Apple will either have to learn to play together, or one will eat the other, because eventually this will all have to work seamlessly.
Experts are pretty sure, however, that the biggest challenge for web developers in particular will be the shift in mindset. Instead of thinking about individual devices and how they might use the internet, developers will need to use extensive user data to shape services, almost regardless of the product.
Where IoT Is Likely to Impact on Web Development In The Future
- Apps for networks, not just devices: Right now, apps for IoT devices act like bespoke solutions for those specific products. Developers think of a cool thing they’d like a device to do, and they set about building the instructions for that. In the future, however, IoT developers will have to start thinking more broadly. Instead of coming up with apps for single devices, you will need to be able to create apps that work across a network. Think of it this way: at the moment, networks like Wink connect all the IoT devices of a home together under one master remote control, but most of the apps that collect data, share information or carry out instructions are still within the individual devices. In the future, IoT connectivity will see the most powerful apps sitting within the network, not within the devices. In a sense, the network will become more intelligent, providing all the data analysis, coordination and instructions, and the devices and appliances will become dumber, reduced to simple data gatherers and instruction followers.
- Increasingly personalized websites: As devices are able to collect and share more data between each other, you will find that internet browsing experiences will change. Websites will automatically be able to provide customers with a tailored service, based on the data generated by their IoT devices and products. This could see their connected fridge, washing machine and other appliances sending data to their favorite online grocery store, so that when you opened the website up, it automatically showed them the staples they were low on. This would require some sophisticated back end development, of course, as the grocery store’s website would have to be able to communicate with every brand and kind of appliance on the market. And until industry standards are set, that will be a very tall order indeed.
- Integration at all levels: In the future, businesses will want to be able to respond instantly to customer demands. For example, productions lines will respond dynamically to an increase in website purchases. That means any apps you develop will have to integrate into entire production lines and supply chains. In fact, this extensive integration is why standardization is such a major challenge right now.
- Screens are not the only way: In the future, many devices may well talk to each other without much in the way of user interaction. As with Nest, users may only interact with a simple control panel, and the rest of the data will be collected by sensors and apps that users won’t interact directly with. That means front-end design will be simpler and everything else will be much more complicated.
- New testing considerations: When you test an IoT application, you’ll need to think about entirely new concepts. Will users be able to control their IoT device if the network lags? What if network connections, both between the user and the device and between the device and the server, slow or are interrupted? Is there a way to keep the app’s functionality but reduce the power usage? These are just a few of the things developers will have to constantly ask themselves in the testing stage.
The Languages, OS and Protocols You Might Need to Know
This is where predictions can get really fuzzy. If the development of programming languages in the past has taught us anything, it’s that we cannot assume tomorrow’s technology will have much in common with today’s. Still, we have a few reasons for thinking these tools will come in handy.
- JavaScript: It’s already popular and already being used, so many think JavaScript, and particularly the Node.js environment, will continue to grow in popularity. At the very least, it will be one of the most useful arrows in your IoT development quiver.
- Weave: Less a language a more a machine-to-machine communication protocol, Weave works with Google’s Brillo OS to allow devices to talk to each other cheaply and quickly. Brillo is basically a stripped down version of Android, making it more useful for devices with limited capabilities. It requires less power than Android, too, making it a cheaper and more attractive option for IoT development.
- Swift: This is Apple’s open source language. It works with iOS, MacOS and HomeKit (the operating system that Apple is using to connect all of its IoT devices). If you want to get in on the ground floor with Apple’s IoT universe, you’ll need to know this one.
- The languages that haven’t been invented yet: we can only speculate on what these will be, and if history is anything to go by, we’ll pretty much be wrong in all our predictions.
Conclusion
Entering the Internet of Things Age is exciting and challenging in equal measures. There are things we can learn and do now, but really, there is much more to learn and figure out in the future. We know that we are moving to a more seamlessly connected world, where masses of data and network connections shape every part of our lives, but what that actually looks like is anyone’s guess. We know JavaScript is useful now and could grow to form the backbone of IoT development, but that doesn’t necessarily mean that it will. We know that every new opportunity throws up new challenges, and every new solution creates its own opportunities and challenges, ones we can’t even begin to anticipate.
Of course, the challenge of learning and inventing new solutions is what draws most developers to the field, so there will be plenty to keep you interested – and employed – for decades to come. And that’s probably the most important thing for web developers to know about the Internet of Things.
Good post! I agree completely – it’s totally about the people. You will have
to start feeling that people who work along with you are smarter than you –
and if not, encourage them to become smarter.