// @NOTE: This was originally posted on Medium a year ago.
The world of web development is constantly changing and it is a challenge to keep a close eye on everything that is going on. Which frameworks will still be relevant in the coming year? And which programming language is most suitable for your web application? Let’s discuss six interesting technologies for web development.
In this article, we distinguish between front-end and back-end technology. We start with three front-end development frameworks and then discuss three back-end development frameworks.
With React.js, developers can build reusable components, each with their own “state”. If one component has to be updated on the page (for example the user clicks a like-button), only that one part is modified by React (the thumb goes up) without having to refresh the complete page.
React uses a ‘virtual DOM’ for this. This is a representation of a user interface that is stored in the memory and is constantly synchronized with the “real” DOM. It does not matter which browser you use, the virtual DOM of React will always render faster because it works in a more efficient way.
Large companies such as Airbnb and Netflix have been using React.js for a number of years now, and we see that the technology is being embraced by more and more companies. The interest in React among developers is huge and that makes it a technology that will only gain popularity in the coming years.
In addition to React there is also React Native, a framework that makes it possible to develop mobile apps for both iOS and Android with only one set of source code. The framework has the same technical basis as React and with that, it has suddenly become much easier for web developers to develop mobile apps in addition to websites and web applications and this has been an interesting development for companies.
Because of the resemblance to React and Angular in terms of architecture, it is an easy transition from other frameworks. Loved for its small size (only 20KB), speed and flexibility, Vue.js delivers even better performance compared to other frontend frameworks.
Vue.js currently still has a fairly small market share compared to React or Angular. Finding developers with experience in Vue.js can, therefore, be a little more difficult. Whether Vue will become as popular as React or Angular we’ll have to wait and see, but due to the positive opinions from the developer community and the growth in the use of Vue, it seems likely that Vue.js will continue to develop positively.
jQuery may not always be the first choice when starting a new project, with 300,000 downloads per day it still achieved a good 300% growth compared to the beginning of 2017. Perhaps even more surprising: 90% of the top 500,000 websites still make use of jQuery! This shows that a library does not necessarily have to be new and cool to remain relevant. The choice to use a particular library depends entirely on the type of project which you want to use it for.
The changes in front-end web development are occurring incredibly fast. It seems impossible to follow everything, but by monitoring and understanding the most important frameworks, we can gain an insight and make better choices at the start of a new project.
A programming language that has grown enormously in popularity in recent years is Kotlin. It’s a modern alternative to Java that is easy to learn. The open source language started to grow especially last year when Google announced that it was an officially supported language for Android. Many companies started writing their Android apps with Kotlin, such as Slack and Netflix. Rob Fletcher, a senior software developer at Netflix, wrote:
“Kotlin is not revolutionary, but it feels like a very careful merging of some of the best features of other languages.”
It is interesting to see, as a research by Pusher showed, that Kotlin was used mainly by experienced developers in the first years (since 2011), but since the announcement of Google, it’s the young developers, especially students, who are causing the enormous growth. In addition, it is not entirely surprising that most of the developers now use Kotlin to build Android apps, even though it can also be used for developing back-end or server-side applications.
Phoenix, built in the functional programming language Elixir, is a relatively new framework that is increasingly being talked about in the developer community. One of the reasons why developers are so interested in Phoenix is because it is known for its fast performance. For example, processing a large JSON request, which takes about 1.5 seconds in Rails, only costs 400ms in Phoenix.
It remains important to check whether a technology is suitable for the type of project in which you want to apply it. For example, Elixir and Phoenix are strong in real-time applications, in which many connections have to be processed simultaneously (for example chat applications). But for applications that require a lot of computing power, Elixir could be less suitable.
The number of Elixir developers is currently quite limited. Elixir and Phoenix are relatively new and there are not many companies that work openly with the framework. This can certainly change in the future and that is why you should keep a close eye on Elixir and Phoenix.
You may have heard of GraphQL, an open-source query language developed by Facebook, and one of the most modern ways to build APIs. The popularity of GraphQL is growing rapidly and large companies such as Twitter, Shopify and Amazon have already started working with the technology.
GraphQL offers solutions for some very real problems that developers wrestle with a lot because it makes loading and processing data much easier. One of the important differences between a REST API and GraphQL, is that GraphQL offers the possibility to specify exactly which data you want to get back from the API. It ensures that the software calling the API receives all the data it needs in a single request.
This comes in handy when the application contains many nested models and associations. GraphQL helps, for example when developing mobile apps, to only load the relevant data and thus reduce the load on the mobile network. GraphQL takes care of a lot of the overhead that REST APIs have and that delivers benefits to both the backend and frontend.
As a developer, it is important to stay up to date with current technological developments as much as possible. You should look at the opportunities, but also consider the possible risks that new technology entails. Experimenting regularly with different frameworks helps to experience the potential benefits, but also the limitations.
The work of a developer consists mainly of solving technical challenges and that is why it is of great importance to work with proven technology, which is productive to work with and has a large community behind it.
Thanks for reading! Will write a new post with 6 other technologies to follow in 2020. Got suggestions?
// @NOTE: You can find me on Twitter @jakeprins_nl.