I think computer viruses should count as life.
Aidan: Yes. You could write JS without a framework and in some cases if it is only a small application this may be the most efficient way to go, but as JS applications become larger using a framework can save you a lot of time and effort especially since a lot of frameworks have whole teams of people working on them. Some of them also try to encourage using good practices when developing JS. For example, AngularJS encourages services to be provided to your components through dependency injection. It also encourages you to break your application down into smaller modules and components. This can improve reuse and code quality.
Aidan: In the past with jQuery one of the reasons to use jQuery was to prevent issues with different browsers although I wouldn’t say this is as much an issue anymore, also the language has improved a lot since then. I believe that most of the frameworks now try to save you time and encourage doing things in a certain way. This can be good when working in a team as everyone can understand better how things are working and new members can get up to speed quickly.
Aidan: That is a hard choice I would encourage learning a bit about few of them as you never know which one you may need to use in the future. That being said I haven’t really looked at Vue.js yet.
In terms of frameworks I have looked at, I really like Angular and React. I think for front end web development, either of these could be used. Recently, I’ve been looking at mobile development with these frameworks. They both have frameworks to achieve this, even if they work in different ways. Ionic is the angular approach and can be used for building Hybrid mobile apps which run in a WebView on a mobile device. React-Native allows you to leverage React knowledge in creating native mobile apps.
In terms of server-side development, I like the express framework for quickly creating a RESTful API. I also like a framework called Socket.io which quickly allows me to spin up a web socket server. It’s awesome for real time applications for example creating a live chat or drawing application.
Another less known framework I looked at in the past was Meteorjs which was pretty quick to get a full blown real-time application up and running, although this has lost popularity due to some people having concerns about the performance.
Ekhor: Still on frameworks, does it even make sense to learn any framework since they change very quickly. For example, Angular has changed drastically through the versions.
Aidan: Haha! I was pretty annoyed when I’d spent time learning Angular 1 and then Angular 2 came along. They’d changed everything! I had to spend time learning it again. Although it is sometimes frustrating when this happens, I believe you should still spend a bit of time learning them as you learn other things not just the framework when you are learning and using them. Also, we work in the Software industry and everything changes at a fast pace so learning new things is part of our nature.
Aidan: I think Typescript is a good fix and I also think as new versions of ECMAScript are released most of the issues are being addressed.