Web development in 2018: server or client?

Web development has undergone successive revolutions since the creation of the Internet, mainly due to new uses offered by innovative platforms that exploit the latest available technologies. Since the 2000s, the proportion of client-side and server-side development has tilted cyclically in favor of one or the other. We have drawn up this framework comparison with a view to understanding this evolution, so as to be able to project ourselves into the coming years and make the right technological choices.
Evolution of client-server development over the years
- Before 2000: Web 1.0. Personal computers were not very powerful, and usage consisted mainly of reading HTML pages and communicating via email and chat. Development is mainly server-side.
Uses: reading, browsing and e-mail
Sites : Yahoo, Lycos, Hotmail, Caramail - 2000 - 2010: Web 2.0. Fixed and mobile terminals become increasingly powerful. Web browsers are capable of running SaaS applications with a high level of interactivity. The development of client-side JavaScript frameworks.
Uses: instant discussions, videoconferencing, mobility, photo and video sharing, online software...
Sites: Facebook, Twitter, Salesforce, Airbnb - 2010 - 2020: Enriched Web 2.0: The huge amount of data collected from users of Web applications gives rise to massive reprocessing of this data to feed algorithms. The computing power required for this reprocessing is only available on the server side.
Uses: Retargeting, product recommendation, assistance, voice search
Platforms: Criteo, Amazon, Google Home, Siri
What about the years after 2020? We seem to be heading for Web 3.0, or the Intelligent Web. Thanks to the mass of data collected from conventional terminals and connected objects, we're entering the era of assistance: we're no longer searching, we're being recommended all kinds of products and services. More concretely, Web services will soon be able to recommend things we wouldn't think of, and assist us as a human with a wealth of knowledge would... on all subjects. From this point of view, server-side information processing is immense. The front end (client) retains its current role of capturing and rendering information.
The role of development frameworks in building the Web
Given the scope of development required to design a modern Web application, a framework is essential.
Framework: definition
A framework is a set of tools, a structure and ready-to-use templates that allow developers to structure their work. There are development frameworks for everything: creating e-commerce sites, mobile applications, web applications (SaaS), etc.
Best web development frameworks 2017
- Django: Django is an Open Source backend framework developed in Python. It was specially created to build powerful, high-level websites. Here are some sites made with the Django framework. Examples of user sites :
- liberation.fr
- instagram.com
- openstack.org
- mozilla.org
- AngularJs: AngularJs is an Open Source framework developed by Google in JavaScript. It offers a high level of interactivity, particularly appreciated in front-end development of Web applications (SaaS, comparators, interactive platforms). Examples of user sites :
- netflix.com
- upwork.com
- Youtube on PS3
- weather.com
- React: React is created and maintained by Facebook. React is not a full-stack framework like the previous two. It only provides views and callback functions to render HTML code. Examples of user sites :
- facebook.com
- instagram.com (which also uses Django for the server side)
- 6play
- Airbnb (also uses Ruby on Rails)
- Ruby on Rails (RoR): RoR is the most popular open-source MVC framework. It was designed to speed up the development of Web applications. It allows developers to create functionality with less code than other frameworks. Examples of user sites:
- shopify.com
- slideshare.com
- github.com
Django, AngularJs, React, RoR: what's the difference?
The curve below shows the evolution of the number of topics opened on Stack Overflow since the platform's creation on the 4 Frameworks Django, Angular, React and Ruby on Rails :
It's immediately apparent that Django has been a persistent technology since 2010, gaining the trust of developers. There has also been an increase in exchanges about this framework from 2014 to the present day. This trend is set to continue. As for JavaScript frameworks, they literally exploded in 2013. They should remain at high levels, provided new uses don't upset the balance. Last but not least, Ruby on Rails enjoyed its heyday, but has been in gradual decline since 2011.
Advantages and disadvantages of these frameworks
Here are the key points of these development frameworks:
Advantages | Disadvantages | |
Django |
|
|
|
|
|
|
|
|
|
|
|
Tip: get professional advice
To get started on a Django project, call on an expert like Pilot Systems, who can guide you towards the right service: architecture, support, fixed-price development or remote control.
Advantages and disadvantages of customer-oriented development
Customer-oriented web development offers a number of advantages. In 2017-2018, we can easily say that most development efforts are front-end oriented for the reasons below:
- A lot of business today is client-side: browsing, data sharing, video communication, etc. Websites have become platforms where usage takes precedence, because it builds user loyalty and therefore captures a lot of data.
- Front-end development offers a great deal of interactivity, hence the explosion of JavaScript frameworks.
- Front-end development means that the same language (JavaScript) can be used on both the Web and mobile devices. This means better performance and less server load (provided the terminal is recent).
- Moving the business to the client side leverages the power of Web browsers and modern terminals to quickly deliver information to the user. Avoiding exchanges with the server means greater speed;
- JavaScript technologies are developing fast. This means that there are many possibilities in terms of functionalities, and many developers to implement them. A shrinking technology makes it difficult to recruit these profiles.
- Browsers are becoming increasingly sophisticated (Chrome runs JavaScript particularly well, as do the latest versions of Firefox and Edge). They are designed for Web applications and SaaS.
On the other hand, here are a few disadvantages to note in client-side development:
- Front-end development is strongly constrained by many external elements that cannot be controlled: availability of the Internet connection, browser plug-ins, heterogeneity of browsers, heterogeneity of terminal power. It is therefore difficult to trust the customer. All the more so as an experienced user can easily find workarounds for front-end security.
- Client-oriented technologies have a short lifespan, as we saw above with JavaScript versus Django frameworks. Being "front-end savvy" requires regular training and monitoring. It also takes time to remove and rebuild a legacy with more modern technology.
- JavaScript frameworks are hardly compatible with SEO. They have to be backed up by third-party solutions that are no more than wooden legs in the face of Django or Wordpress sites.
- Front-end development is more complex and therefore more costly.
Advantages and disadvantages of server-side development
Server-side development offers greater simplicity and standardization:
- Server-side centralization of the business enables standardized development. This is particularly the case when there are several fronts (web app, mobile app, offline software, etc.).
- Moving the intelligence to the server side generally results in a simpler HTML front end, which is better crawled by Google bots. It's a good SEO bet.
- Above all, server-side development must make the most of the possibilities offered by APIs (Web services). It must enable a Web application to interconnect easily and securely with other Web applications.
- Data exchange between applications is a major trend. It allows you to concentrate on essential functionality and enhance it with third-party services.
- Server-side development makes it possible to exploit the infinite possibilities of data processing and reprocessing, thanks to the immense storage volumes and computing power of datacenters, combined with cutting-edge algorithms and software.
Here are the disadvantages of web development focused mainly on the Back-End:
- In 2017-2018, there is less and less business on the server side and more on the client side, thanks to JavaScript and modern browsers. This trend could be reversed, however, with Artificial Intelligence systems requiring less user interaction (apart from voice capture).
- Data exchange between client and server tends to slow down the user experience. End-users, however, are accustomed to fast experiences in all circumstances, and their demands are very high indeed.
Conclusion
We have seen in this article that the evolution of client-side Web development versus server-side Web development is not fixed, but cyclical. In fact, it's possible that server-side developments will regain importance thanks to Web 3.0, API rest and AI, although platforms will continue to use JavaScript frameworks for their interactivity. To keep pace with Web developments, you need a durable, flexible solution such as Django or a Java + Angular combination, so you can adjust your developments without finding yourself in a costly impasse.
Article translated from French