Une vision sur le futur du développement web

Une vision sur le futur du développement web

15 Jan 2015 |  Développement

Ce post est le dernier d’une série écrit suite à la présentation intitulée «l’avenir des applications webs, des développeurs et des D.S.I.» que j’ai donnée avec Frédéric G. Marand lors de l’événement Drupagora le 14 novembre 2014.

Il est toujours difficile de faire des prédictions objectives, c’est souvent le reflet d’une personne et cela dépend grandement de sa façon de travailler (méthodologie, environnement technique, environnement professionnnel…). Même si nous sommes impliqués dans l’écosystème de Drupal, avec Frédéric nous avons essayé de présenter notre vision future du développement web applicable aux développeurs du Web quelle que soit leur techno préférée.

5 technologies à surveiller

Les technologies classiques ne sont plus en vogue, JavaEE, Ruby on Rails où encore PHP, déclinent en terme de popularité. A l’inverse d’autres technologies progressent et montent doucement dans les différents classements. Si vous ne voulez pas être à la ramasse il vous faudra donc jeter un oeil à ces technos dans les mois à venir.

AngularJS

AngularJS est un framework Javascript MVC créé pour rendre le développement front-end le plus simple possible. Développé par Google, il a su s’imposer dernièrement pour créer des applications web dynamiques type SPA.

ReactJs

Créé par Facebook et Instagram, ReactJs est une librairie Javascript pour créer de interfaces utilisateurs. Vu comme le V de MVC, son unique but est de manipuler le DOM d’une page web pour laquelle l’affichage serait amené à changer en fonction de l’évolution des données. Pour faire simple, lorsque des données changent, ReactJs appuie sur le bouton refresh de votre navigateur.

Go

Go est un langage de programmation compilé créé par Google dont la force est de réaliser des opérations concurrentes. Le langage Go a été créé pour la programmation système et a depuis été étendu aux applications web. Il est maintenant possible de générer du code pour Android avec Go et certaines librairies. Notez aussi que ce langage dispose d’une bibliothèque de serveur HTTP permettant de se passer de Apache ou Nginx.

Rust

Langage de programmation compilé orienté bas niveaux, Rust a été conçu Mozilla pour être « sécurisé, concurrent et pratique », supportant la programmation purement fonctionnelle, procédurale et orientée objet. Rust est décrit comme l’un des successeurs potentiels de C++.

R

Pas vraiment relatif au web, R est un logiciel libre de traitement de données et d’analyse statistique. A l’heure du big data, il est intéressant d’avoir un regard sur ce genre d’outil afin de manipuler des données.

Pour 2015 j’ai parié sur Go et je m’amuse avec depuis quelques semaines. Son point fort réside dans le fait qu’il permet de créer des taches concurrentes de façon a créer plusieurs process en même temps. Personnellement, je pense que c’est un bon choix de technologie pour construire des applications distribuées.

Node.js

Très populaire, Node.js développé par Joyent n’est plus à présenter et c’est pourquoi il ne fait pas partie de ce top 5. Utilisant la machine virtuelle javascript V8, Node.js permet d’exécuter du javascript côté serveur. C’est un candidat idéal pour des applications où il vous faudra maintenir une connexion persistante comme pour faire du temps réel ou du push d’information.

Comme vous avez pu le constater, certains langages de programmation sont clairement orientés web alors que d’autres sont plus système (ne serait-ce que par la différence de design des sites webs). L’intérêt pour tout développeur sera de mixer entre ces langages pour créer de nouvelles applications.

Les tendances dans l’architecture d’application

En 2014 l’usabilité n’a jamais autant été à son apogée. Aujourd’hui une grande majorité de sociétés conçoit des applications capables de s’adapter sur tous les devices afin de toucher le plus grand nombre de consommateurs possible (si ce n’est pas le cas pour votre application vous avez certainement loupé quelque chose). Cela est en partie dû à l’effervescence de l’utilisation du mobile, rendant ainsi l’approche « mobile-first » au centre de tout projet. Ce profond changement dans la création d’applications web ou mobile a impacté la façon d’architecturer un projet, nous obligeant à créer des APIs pour permettre la consommation de données. Ces données qui sont les raisons d’être des applications peuvent maintenant être accessibles depuis n’importe quelle solution Front-end avec la consommation de web services REST. A l’ère du mobile, des objets connectés et du data-driven, les Web APIs sont devenues la colonne vertébrale des Web Apps et Mobile Apps.

Ainsi les solutions de type MBaaS ou SPA vont être de plus en plus courantes engendrant ainsi la création de plus en plus d’API.

L’avenir des développeurs

Terminé le temps où l’on réalisait tout une application avec une seule technologie, aujourd’hui on mixe les langages et on interconnecte des briques afin de former une application.

Qu’est-ce que cela veut dire pour nous développeurs ? Si l’on veut suivre la tendance, il faudra donc maîtriser plusieurs langages de programmation (c’est certainement le cas pour beaucoup d’entre nous) néanmoins il faudra être capable de passer de l’un à l’autre sans problème. Au vu du nombre grandissant des langages de programmation et de l’effervescence des Frameworks et Micro-Frameworks, il n’est plus possible de faire l’impasse sur de la veille technique. Il est impératif de découvrir leurs forces et faiblesses afin de les utiliser aux bons moments. Pour qu’une application soit performante il faut être ouvert et regarder ce qu’il se passe ailleurs, non pas pour implémenter les tendances ou le dernier framework à la mode mais tout simplement pour s’adapter plus vite en utilisant ce qui marche.

Au delà du développement pur, il y a une tendance qui aujourd’hui est inévitable pour un développeur, c’est le fait d’avoir une culture DevOps. Le temps des équipes en silo n’est plus, il est important de savoir comment fonctionnent des protocoles d’échanges tel que HTTP.

Bref, il faut sortir de sa zone de confort et s’auto-former!

L’avenir des D.S.I. et des directions techniques

Dans cette course permanente à l’évolution technique, le challenge sera surtout pour les D.S.I. qui bien souvent ne sont pas réactives face aux changements. Conservatrices, elles auront plus de mal que les directions techniques à essayer les dernières tendances. Pour autant il est important pour elles de connaitre le potentiel des différentes technologies existantes. Tout résidera dans l’adaptabilité et leur capacité à évoluer.

Avant qu’il ne soit question de changement, il faudra permettre aux équipes de tester, jouer et appréhender de nouvelles choses en dégageant du temps, du temps pour faire de la R&D. Une équipe qui a le droit de tester de nouveaux usages c’est une équipe qui est plus performante, plus intéressée et plus motivée.

Avec l’abondance de librairies et Frameworks, Frédéric évoquait à juste titre lors de la préparation de notre présentation le fait que les sociétés doivent dès maintenant prendre en compte et connaitre les différentes licences de logiciels libres. Il est important de savoir à quoi les DSI s’exposent en utilisant telle ou telle librairie.

En résumé, de gros challenges nous attendent. Il faudra à la fois se préoccuper des outils mis à notre disposition mais aussi voir en dehors du cadre pour penser et s’adapter plus vite.

Références et articles sur le sujet :

Julien Dubreuil

Vous avez une idée, un projet web à réaliser ?

Ensemble, mettons en oeuvre sa réussite. Je vous accompagne dans vos projets, depuis l'élaboration du cahier des charges jusqu'à la mise en production. Pour plus d'information n'hésitez pas à me contacter.

Contactez-moi