we focused on frameworks such as React, Angular, Ember, Vue, and Backbone. This year, we are going to take at look at all the same frameworks, save Backbone. If there is anyone less hot than Ember, that would be backbone. Here are the frameworks and libraries we'll be taking a look at.
We'll also look at Kendo UI. We certainly aren't biased because we make it and hope it does well, certainly not. 😉 Looking back can help us determine how each of these frameworks impacted web development in 2017, as well as where they are likely headed.
Open Source Predictions for 2018
We all know that Google is the driving source behind Angular and Facebook is the creator and maintainer of React. In 2017, we predicted that open source software, controlled by large corporations (AKA, "corporate open source") would become more prevalent. While no new huge contenders have entered the ring in 2017, open source projects that started in 2016 or earlier remain strong (like .NET and UNIX). Whereas others have really taken root and spread, like Visual Studio Code, TypeScript, and Swift.
As you can see in this Google Trends chart over the past 5 years, all three of those open source projects were on the increase in 2017.
I made a nifty list of open source goodies and the earliest dates I could find on their Github repos:
"[Apple's iOS and macOS kernels] are now available on GitHub, representing the first time that Apple has released such integral code into the public domain."
— The Inquirer (October 2017)
For this girl's opinion, Angular is still pretty hot *cough cough* *points to Tesla's hiring page*. Many large companies made the switch from AngularJS to Angular. It would take something just shy of a miracle to switch them off this robust
In January 2018 the latest version, Angular 5.2, was released (replacing 5.1, which came out in November 2017). Stephen Fluin, Angular's Developer Advocate, wrote about all the juicy deets in this blog post.
I pinged Stephen on Slack and asked what he thought Angular's biggest feat was in 2017. Here is what he had to say:
"In 2017 we've successfully balanced stability and innovation. making your applications smaller and faster without making you rewrite your code.
It can go much further, like imagine in 3 years Web Assembly is good enough that we want to use it. Because we are a full platform, we could start shipping part of your apps as Web Assembly for you, without you having to do anything. Or ES2015 modules, or web components, or any of the 'modern web'."
I'm extremely pumped to see what Angular has in store for 2018, 19, and beyond. It feels like we are finally getting past those awkward teenage years, where we are still figuring out who we are and how we fit into the world. Now we know what kind of framework Angular is and needs to be and we are well on our way.
As Rob Wormald put it:
"Angular is ideal for building complete applications and our tooling, documentation and infrastructure have been primarily aimed at this use case..."
For one thing, I think Angular elements are going to be HUGE. Rob gave a talk on them in November at Angular Connect and Pascal Precht just gave a keynote on them @ngbeconf.
Angular elements are simply Angular Components wrapped in Custom Elements. These will bridge the gap and allow you to use Angular Components anywhere, without the full Angular environment. Need an Angular Component included in your React project? No problem, Angular Elements have you covered!
Not only is the Angular team looking to solve these issues in 2018, but we also have so much to look forward to in the coming years. They hope to have a solution for everything you could possibly need in a typical Angular development environment. The end of 2018 should not look too strange from its beginning for Angular. Since Sep. 2016 they have started a release cycle that allows time for breaking changes to be deprecated, before they are officially changed. This friendlier system means developers have time now to work on updating (approximately 6 months, sometimes longer) before breaking changes become official. We foresee some cool things from Angular Elements (expect more on that at this years ng-conf), as well as some updates to the CLI and Angular Material. The Angular team is also in cahoots with the new in-browser editor team, "StackBlitz". We predict that all of the Angular Material and Angular doc examples will be switched from Plunkr to StackBlitz in 2017.
Stack Overflow Dev Survey 2017
"Node.js and AngularJS continue to be the most commonly used technologies in this category."
— Stack Overflow Dev Survey 2017
The Current State of AngularJS
At the last Google Developer Expert Summit that I attended, they again expressed their plans to continue updating AngularJS, only so long as the traffic to its docs outnumbered the traffic to the Angular.io docs. That day has come and gone here in 2018, and AngularJS's days are numbered.
That being said, there are still so many companies using AngularJS, without any plans of upgrading. Why, you might ask? Some just do not have the resources needed to dedicate dev hours towards upgrading all the directives to components and then
make the massive swap over to Angular. Let's be real peeps, this is no simple upgrade. For others, they are hesitant (still) to adopt TypeScript.
At first, the Angular team said they would support multiple languages, not just Typescript. However, a few months into Angular being released, they swiftly backtracked and removed any references to other languages in their docs. So for some companies, believe it or not, they won't upgrade because they cannot give up their beloved CoffeeScript. 😉
So where does that leave you? If Angular is too large of a change for your company to swallow, and AngularJS is bound to be deprecated one of these days, where does that leave your company, clients and code? Some companies are still biding their time, while they don't have to make a decision just yet, while others are choosing to jump to VueJS.
VueJS has been on the rise and mentioned as the next hot new thing, even NASA is hiring VueJS devs! It is VERY similar to AngularJS, and does not require a compiled language change like TypeScript. (Yay, the people can still have their CoffeeScript and the dev world shudders).
AngularJS *cough* I mean, Vue.js Features
- Reactive Interfaces
- Declarative Rendering
- Data Binding
- Template Logic
- Event Handling
- Computed Properties
- CSS Transitions and Animations
No surprise there though, Vue was created by an ex-Googler, Evan You, who after using AngularJS on a number of projects, was just playing around, seeing if he could strip down AngularJS to the core parts he liked. Thus, in 2013, VueJS was born.
"For me, Angular offered something cool which is data binding and a data driven way of dealing with a DOM, so you don't have to touch the DOM yourself. It also brought in all these extra concepts that forced you to structure the code the way it wanted you to. It just felt too heavy for the use case that I had at that time.
I figured, what if I could just extract the part that I really liked about Angular and build something really lightweight without all the extra concepts involved? I was also curious as to how its internal implementation worked. I started this experiment just trying to replicate this minimal feature set, like declarative data binding. That was basically how Vue started."
— Evan You from "Between the Wires"
You can read more about Vue's origin story here.
The Vue.js 2 core library is very small (17 kB). This means that using Vue in your site should be pretty fast and load in browser quickly. This ALSO means, that learning Vue should be relatively easy and it shouldn't take you long to get started with the framework.
"I read thru it's docs and knew everything i needed to know in less than 30 min. I couldn't finish the first page of Angular in 30 min." — Anonymous Dev
Here's to 2017 👩💻👨💻🥂
We here on the Kendo UI team understand that all of these surveys and tracking trends are not the full picture. If we have misrepresented or even forgotten your favorite framework ping me or my colleagues on the twitters! We'd love to hear your thoughts and promise to keep an open mind, now, in 2018, and forever more! We hope you've enjoyed our summary of 2017 and wish you all the best of luck in your coding endeavours in 2018!