Lors de la réalisation d’un projet digital, la question des langages et des techniques à utiliser finit par se poser rapidement. Suivant le type d’application ou de logiciel désiré, on n’utilisera pas les mêmes langages ou les mêmes systèmes d’exploitation, et l’énorme variété de langages informatiques ne rend pas les choses faciles. Heureusement, certaines technologies ont des affinités avec d’autres : c’est ce qu’on appelle la stack.
Vous savez maintenant distinguer les différentes spécialités du métier de développeur. Front-end, back-end, ou full-stack ne sonnent plus barbares à vos oreilles. Mais, cher porteur de projet, il faudra maintenant vous pencher sur la stack. Au sens propre, « stack » est un terme anglais désignant un empilement de différents éléments. En informatique, on utilise ce mot pour désigner un ensemble de technologies et langages que l’on utilise pour un même projet. Ils sont compatibles, et même davantage : ils sont particulièrement adaptés pour être utilisés ensemble.
Lors du développement d’une application, le développeur emploie des langages de programmation pour coder l’interface visuelle livrée au futur client. Toutes les données récoltées doivent être stockées dans des bases, qu’il faut gérer avec une autre technologie qui communique avec l’application. Et tout ceci se trouve installé sur un serveur, qui lui-même fonctionne avec un système d’exploitation précis. Pour que l’ensemble fonctionne bien, il faut que la magie opère entre les différentes technologies: qu’elles constituent une stack efficace et adaptée.
Les stacks les plus utilisées
On désigne couramment la stack par l’acronyme des technologies qui la composent. Par exemple, LAMP est un assemblage apprécié des développeurs web. Il est constitué du système d’exploitation Linux, sur lequel est installé le serveur Apache. MySQL (ou MariaDB) gère les bases de données. Et enfin, la plateforme en elle-même est codée avec le langage PHP. Citons aussi la stack MEAN, souvent utilisée pour les applications. Elle est composée de MongoDB pour la gestion des données, Express.js pour l’infrastructure, Angular.js pour coder l’interface, et Node.js en guise de serveur. Sa variante MERN remplace Angular.js par un autre framework JavaScript, React.js. Et nous pourrions citer de nombreux autres exemples de stacks courantes et appréciées des développeurs.
Un accès plus facile aux informations
L’avantage principal d’utiliser une stack commune est qu’elle est bien documentée. À la fois par la documentation officielle émise par les développeurs des différents outils et langages. Mais aussi par la communauté des développeurs qui alimente de très nombreux forums où elle partage ses bugs, mais surtout ses solutions. Un autre avantage est de pouvoir utiliser des outils supplémentaires interconnectés aux différentes technologies, comme des librairies qui renforcent par exemple les possibilités du langage de programmation, tout en faisant aussi un lien avec la gestion des données.
Rassurez-vous, il est inutile d’apprendre tous ces exemples par cœur. Le choix de la stack se fait suivant les besoins du projet, ainsi que les affinités du développeur. Car en pratique, si les développeurs peuvent changer de stack suivant les plateformes qu’ils conçoivent, il n’est pas rare qu’ils en choisissent une ou deux pour s’y spécialiser. De la même manière, il est plus facile de trouver un développeur si l’on s’intéresse à une stack répandue. Bien sûr, il n’est pas impossible de faire un assortiment personnalisé de technologies si le projet présente des besoins particuliers, et nécessite des choix ad hoc. Mais partir d’une stack existante et bien documentée n’est jamais une mauvaise idée.