En ce début d’année 2011, il me semble essentiel sur ce blog de parler des technologies Web et les tendances à surveiller pour cette année. Votre avis sur ce sujet m’intéresse vraiment. De plus, votre avis m’intéresse vraiment. En 2010, nous avons vu la montée en puissance d’HTML5, la maturation des feuilles de styles en CSS3 et l’adoption généralisée des sélecteurs de police (@font-face selector
) (partie de CSS3) entre autres. En bref, l’année 2010 a été chargée sur l’avancement des technologies de développement Web. Aujourd’hui, nous allons regarder vers l’avenir, et jetez un œil sur certaines technologies émergentes et aux tendances fascinantes.
Que peut-on attendre de 2011 ? Les outils et technologies que nous, développeurs Web, utilisons, sont en constante évolution, un peu comme toutes les autres industries. Ce qui nous sépare du reste, c’est que nous avons à apprendre, désapprendre et réapprendre de nouveaux développements à un rythme beaucoup plus rapide et surtout plus fréquent. L’émergence des technologies énumérées ci-dessous n’est pas tout récente. En fait, certaines sont même très anciennes et en sont restées à un stade embryonnaire pendant un certain temps. Cela dit, j’estime que c’est l’année où elles doivent gagner encore plus de terrain sur le grand public.
NoSQL
Pourquoi les gens sont enthousiasmés par la technologie NoSQL ? Et par gens, je veux dire quelques uns des gros acteurs du Web tels que Google, Facebook et Twitter. La notion de NoSQL, Not only SQL, mouvement très récent datant de 2009, a redéfini la façon dont nous percevons les bases de données et les interactions correspondantes. Est-ce une vraie révolution ? Je pense qu’il y a quelques années, lors de mes cours d’ingénierie logicielle il aurait été inconcevable d’imaginer ce concept,
Ce qu’est NoSQL
Historiquement une base de données est presque toujours assimilée à la mise en œuvre du modèle relationnel et pleinement compatible ACID (Atomicité, Cohérence, Isolation, Durabilité). Il y a encore peu de temps, si vos transactions n’étaient pas compatibles ACID, ou que votre base de données n’était pas relationnelle, vous étiez considéré comme un gamin des bases de données.
La question du modèle relationnel n’est pas vraiment nécessaire partout, même si beaucoup de mise en œuvre du NoSQL mettent en application une sorte d’intégrité des données et de cohérence. Parfois, vous voulez simplement stocker et avoir accès à vos données, avec une faible latence et une excellente évolutivité. Si vous voulez bâtir des applications avec des quantités massives de lecture/écriture, NoSQL est un excellent choix.
Un autre facteur important pour moi, c’est la simplicité qu’il apporte à votre schéma. Effectivement vos modèles de données peuvent maintenant être beaucoup plus « visibles » dans votre esprit. Il est ainsi plus facile de concevoir une schéma de base de données en NoSQL. Le NoSQL est un concept de simple association clé-valeur et d’accès PUT/GET.
Les différentes implémentations de NoSQL
Le NoSQL regroupe de nombreuses bases de données, récentes pour la plupart, qui se caractérisent par une logique de représentation de données non relationnelles et qui n’offrent donc pas une interface de requêtes en SQL. Les projets NoSQL sont très actifs en ce moment. Leur communauté s’élargit et leur nombre de « commiteurs » augmente.
Il n’y a peut-être pas de meilleur exemple que Facebook quand il s’agit d’analyser la façon de gérer un énorme trafic. Il n’est pas surprenant que les méthodes traditionnelles ne marcheront pas tout à fait pour Facebook.
Faisant maintenant partie de la fondation Apache, Cassandra, une mise en œuvre NoSQL, a été développée en interne pour aider à la recherche de données. Actuellement, il est utilisé pour la recherche dans la boîte de réception Facebook. Ce système conçu pour la gestion de base de données de type NoSQL peut supporter des quantités massives de données.
Note : Facebook a été le développeur initial de ce projet. Désormais, Cassandra est utilisé par Twitter et Digg, parmi d’autres acteurs majeurs du Web social et participatif.
Facebook permet également l’utilisation d’une autre solution NoSQL, Hbase, pour sa plate-forme de messagerie.
Autre système utilisant la gestion de base de données de type NoSQL est Twitter. Vous avez tous déjà entendu parlé de la fiabilité de Twitter, tristement célèbre. Les principales raisons de cette fiabilité sont que leur configuration n’est pas vraiment adaptée aux besoins du service. Désormais, Twitter utilise un mélange de SQL et NoSQL pour gérer leurs données.
Tout comme Facebook, Twitter utilise un mélange de Cassandra et Hbase. Cassandra est utilisé pour toutes les applications en front office, celles faisant face aux demandes. Quant à Hbase, il est utilisé pour l’exploration de données, d’analyse et analytique.
D’autres bases de données ont attirées l’attention récemment, citons : Google’s Big Table, Amazon’s Dynamo et MongoDB.
JavaScript
JavaScript est, sans doute, le langage le plus important pour les prochaines années, et pour de bonnes raisons. Une grande partie des difficultés et des particularités sont plus liées aux bizarreries du navigateur, et moins à la conception du langage lui-même.
Depuis longtemps JavaScript est un langage de programmation de scripts principalement utilisé dans les pages Web interactives. Cependant, cette tendance évolue. Les mises en œuvre et l’intérêt côté serveur ont été de plus en plus fréquents au cours des dernières années. En effet, il peut également être utilisé comme langage de programmation sur un serveur HTTP à l’image des langages comme PHP, ASP, etc… Je m’attends à une explosion encore plus forte cette année, pour exécuter de manière sûre votre code grâce aux différents moteurs.
Peu importe le langage utilisé en back-end, vous allez pouvoir enfin de compte revenir à JavaScript pour votre serveur frontal (front-end) HTTP. Ne serait-il pas plus facile de simplement utiliser JavaScript universellement ?
Node JS
Le site Node.js le décrit comme un evented I/O for V8 JavaScript. Node JS permet de créer en temps réel et en haute performance, des applications évolutives comme un jeu d’enfant. Essentiellement, c’est une boîte à outils pour l’écriture axée sur les serveurs d’événements dans JavaScript. Qu’est-ce que cela signifie ? En termes simples, cela veut dire pas d’attente pour ralentir les opérations I/O lentes avant de passer à d’autres opérations.
Précisément pour Node JS, cela signifie qu’il fait tout en JavaScript côté serveur, pour des choses comme le temps-réel sur des applications Web, des robots Web, le téléchargement de fichiers, le streaming, etc, là où la vitesse est primordiale. Node JS représente le début de ce que j’attends en terme de diffusion plus large sur l’adoption de JavaScript côté serveur en 2011.
Ce qui rend Node JS passionnant ?
- JavaScript est extrêmement bien adapté à la programmation avec des fonctions de rappel (callbacks)
- Un
Node
représente une liste vide - Un
Node
est petit - Un
Node
est rapide - Facile à démarrer
Je vais couvrir ce sujet au cours des prochains semaines, alors restez branchés !
Utilitaires JS
Même s’il existe un très grand nombre de bibliothèques JavaScript qui permettent de réaliser de banales tâches, comme la manipulation de la DOM et AJAX, un grand nombre de fonctionnalités ne sont pas encore couvertes. Nous avons vu un certain nombre de bibliothèques utilitaires, tels que Modernizr qui a gagné une immense popularité l’année dernière. Cette dernière permet de détecter les aptitudes spécifiques du navigateur. Son support est extrêmement étendu et concerne autant HTML5 (Geolocation, localstorage, drag&drop, SVG, web sockets, audio, vidéo,…) que CSS3 (@font-face, border-radius, transitions, animations, opacity, text-shadow, flexible box model,…).
Modernizr est un signe que les développeurs sont toujours à la recherche de bibliothèques astucieuses permettant de les utiliser dans leurs projets. Cette année devrait être encore prolifique en terme de fonctionnalités proposées par différentes librairies. Voici quelques outils qui pourraient piquer votre curiosité.
jQuery Mobile
jQuery est devenu pratiquement synonyme de JavaScript, en grande partie en raison de son extensibilité, sa facilité d’utilisation et son leadership solide. Avec l’objectif d’être un framework Web optimisé pour le tactile, tablettes et smartphones, jQuery Mobile est l’un des projets les plus visibles visant à être multi-plateformes, multi-dispositifs dans le développement Web pour les navigateurs mobiles de futures générations.
Comme de plus en plus de développeurs envisagent de développer des applications avec HTML5, un solide framework mobile JavaScript devient de plus en plus attrayant. jQuery Mobile a le pedigree de devenir de facto le framework JavaScript pour mobile.
Head JS
Cette bibliothèque est une vraie bombe. Elle va vous permettre d’accélérer le chargement de vos pages Web à l’aide de quelques kb de Javascript… Head JS
charge les fichiers JavaScript en les traitant comme des images, sans bloquer le chargement de la page. La page est donc plus rapide, même avec un seul fichier combiné. De plus, elle imite Modernizr en ajoutant des classes spécifiques à votre document et beaucoup plus encore… Certainement une bibliothèque à suivre !
Mustache JS
Il s’agit d’une simple bibliothèque de gabarits (templates) qui devrait rendre le traitement des données beaucoup plus simple. Il vous suffit de créer un modèle (template) personnalisé, mapper vos données et exécuter le code.
Underscore JS
Enfin, cette bibliothèque de pure utilité, apporte un ensemble puissant de méthodes utilitaires au langage JavaScript sans étendre les types natifs ci-dessous. Semblable à la façon de mapper en jQuery les caractères « $ » par défaut, il vous suffit de rajouter un caractère « _ ». Vous pouvez consulter le site pour avoir la liste complète des fonctions utiles qu’elle contient.
Conclusion
Voilà les tendances qui j’espère vraiment, continueront d’émerger durant cette année 2011.
Ai-je oublié quelque chose d’important ? Quelles sont vos prévisions ?
Faites-moi savoir dans les commentaires vos prédictions sur ce que 2011 peut apporter au monde du Web et du développement mobile. Et si vous êtes en désaccord avec les prédictions ci-dessus, faites le moi savoir également.