Hey there DEV.to community!
As I was recently wandering around on the internet (as always :D) I got to see a few articles about web trends in 2021. They made me think about some stuff and how web dev is progressing. Is it actually needed to be this way? Is it good or not? So I am writing this article to share with you my opinion. Feel free to tell me if you think otherwise and/or you agree with me. Keep that in mind this is mostly a personal opinion and I do not intend to ruin anything XD (as if I ever could :D).
The way I believe SPAs have affected the web dev community was both good and bad. The good side resides in using newer, faster technologies and achieving things that weren't possible using older technologies, or at least it wasn't that easy to do it. So it brought up a huge opportunity for developers to create really cool stuff that helped people get engaged with a web app more easily. And of course, they made developers lives easier. But the bad side is so dark! Using SPAs made obsessed with this technology as if there isn't anything to be used. I mean look at all the good stuff on the internet that isn't SPA. Billions of websites! Do we really need to use SPA for everything? Although SPA technologies are super cool and so, but let's face the fact that they don't always fit everything.
Me myself and I think that I am a huge SPA fan XD. But given the fact that SPA is overused, I think this way of web development should be a little bit more controlled. I don't mean that SPAs are bad or anything of such matter. It is just that I want to inform people that classic websites are doing great as well and not everything needs to be a SPA.
The main issue about SPAs rise when some devs don't know how to properly design and maintain a SPA. This includes but not limited to, the apps being error-intolerant, poorly designed structure and other stuff that makes using such a website sufferable for a user. We have to accept the fact that a normal user who just wants to surf the net doesn't know anything about programming and developing. So considering this fact, despite how cool our used technologies are we should be thinking about how the user feels when using a website/web app. It has happened to me countless times when I tried to navigate inside a website and saw the page freezes with no errors or anything, then I opened the dev console on my browser and saw that there has been an error with the request sent and since the response isn't there the page got frozen. I know this is not a downside of SPA but if it was a simpler website at least the browser would notify the user of the resource they are trying to access being unavailable or other stuff. With great power comes great responsibility.
All in all, don't get over your head if you don't know how to design a SPA or even if you know how, but you don't want to! Just don't let the hype get over your head and conquer you.
Well! This is a great subject! Even if you are not a programmer you should've heard of the terms AI and ML. Standing for Artificial Intelligence and Machine Learning respectively. These days everyone is trying to get into these subjects and get a grasp of them. Even web developers!
AI/ML is good, no doubt in it for sure. But does every website/web app need to feature an AI? Or use ML just for simple stuff? The answer is clearly no! I've seen my friends who are web developers get into AI/ML and I was really happy to see them seeking a new thing to learn. But when I asked them about the reason, most of them answered we are web developers, we should learn AI/ML. That clearly bounced me off for a few seconds. Should web developers know AI/ML in order to be able to create a cool website, with great features? NO!
If you are an AI/ML person, don't get me wrong. This field is super interesting. Someday I might also hop into it but not a need for my web development. Can you use AI/ML in a web app for good? Of course, you can and probably you should do it sometimes when there aren't any better solutions. But just to design a simple e-commerce app you clearly don't need AI/ML.
Blockchains have been a well-known technology during the past few years even to non-dev people (we should really think of a new word for non-dev people just as the word civilian that indicates non-army people XD) thanks to Bitcoin.
I am not a blockchain expert but I know a few basic concepts about it and I am aware of how it works all in all. Blockchains are superb for decentralized data and when the integrity of data is important for people. But this is as well one of the technologies I think is subject to be overused. Devs are getting hyped by the features of blockchains but in the meantime, they ignore the fact that this technology comes with problems as well as other technologies and it might not be suitable for every situation. Fortunately, blockchains aren't as much overused as SPAs currently and I believe devs should not get hyped about this one as well and use it everywhere and anytime.
Chatbots are virtual assistants that can help users throughout your application for simple issues they encounter. A chatbot is way better for users as they can reach them without waiting and also support people standing by to answer questions. Chatbots can reduce support answering traffic.
Chatbots are a wise choice if your app runs on a business that people might need help using it. A lot of websites have been adopting this feature recently and I am really glad of that. As a user, I sometimes feel more comfortable asking a simple (or tbh a stupid one :D) question from a bot rather than a real person and get my answer super fast as it doesn't need to think about it. Of course, bots aren't as intelligent as people are but they can handle a few small things for now.
Voice assistants are super cool and help us through our day. We can send messages and set up events on our calendar or even play some music to our taste without even touching our devices. One of the trends that have been discussed plenty of times on the net is the ascending number of web app feature such an option. A voice assistant might not be needed for every situation and might be hard to implement. But voice commands are way easier compared to assistants. This way people can use your voice commands to navigate through your app without needing to find buttons or go through frustrating menus and sub-menus. What I believe is more important is the fact that this option can make the use of your app easier for blind and low-sighted people and we'd be helping them a lot with the accessibility of the app for them.
This is a feature that I am really eager to see the growth of and I believe is a very good hype. Let's ride along with it if it's possible.
Mobile users are growing so fast and people are more comfortable with their mobiles sometimes compared to their PCs or laptops. This brings the urge for our web apps to be well-looking and usable on mobile phones' screens as well.
What is fortunate is that currently there are hundreds of UI frameworks designed for this matter and will help you to make your UI design path easier.
What we must pay attention to these days is the mobile-friendly-being of a web app. Though there are some concerns about these which I learnt during my experience as a web dev. Sometimes devs and clients (especially clients XD) focus on mobile so much that they forget about the desktop users as well. Well, this is not good. As much as we should focus on mobile users, we shouldn't forget about desktop users meantime. There are still lots of lots of users using desktops and laptops. So pay attention to not losing one side and sacrificing it in the way of the other one.
To begin with this part, I really don't like the word serverless :D. It literally is a server as it serves something but you don't have to worry about the background. Anyways! Servless is becoming a huge thing among developers. In the past, the websites were mostly using PHP or ASP.NET and deploying them would usually require a host that supports these technologies and uploading the files, creating a database and done. But with the appearance of other technologies like Node.js, Ruby, and etc, and by devs adopting these technologies, deploying applications became a problem that would usually require configuring a VPS for just a simple application. Installing and configuring a server isn't that easy and it might even be necessary for a web dev to learn how to!
The PaaS are to the rescue! Services like AWS, Azure and other ones are providing a simple solution for devs! Just upload it and you are done! You have your application ready and your database set up. No hassle needed for setting up DNS and FTP or even installing an SSL certificate.
Although devs can choose their own way of deploying their application, I believe this is such an easier way that no one should pass by without testing it.
Some devs are complaining about the lack of access to their actual deployment environment when using such services and platforms. This is a true concern and you should take that into account as well. But as much as you are only concerned about your app running, you shouldn't be focused on that stuff yet.
Here were my thoughts and I hope you enjoyed the article. Let me know of any ideas that appear in your mind.
BTW! Check out my free Node.js Essentials E-book here:
Top comments (2)
The problem with SPA is not actually with SPA, it with SPA frameworks. SPA itself is great for its niche: instead of sending over HTTP whole HTML page - send a small JSON with data.
But then arises a problem with indexing and instead of writing a traditional multi-page app framework enthusiasts take whole SPA to the server and execute it there, which is kind of idiotism (i have looked for a better word but cannot find it). This way app loses all benefits of SPA, all that remains is the comfort of using the known framework.
Thanks for reading my article. I appreciate it and I agree with you.