# Développement No code

No-code est une approche du développement de logiciels permettant de créer et de déployer des logiciels (le plus souvent des applications web ou mobiles) sans écrire de code informatique, grâce à l'utilisation de plateformes de développement No Code. La plupart de ces plateformes permettent aux entreprises et aux particuliers de concevoir et de déployer des logiciels via une interface graphique reposant sur le principe de « glisser-déposer », sans nécessiter de connaissances en programmation informatique.

## Origines de l'approche No-Code

L'approche No-Code tire ses origines des systèmes de gestion de contenu et des éditeurs HTML WYSIWYG tels que WordPress et Adobe Dreamweaver, deux logiciels apparus dans les années 2000 facilitant la création de sites web pour les non développeurs. Le terme No-Code est cependant apparu plus tard, dans les années 2010, avec l'arrivée de plateformes toujours plus nombreuses promettant de démocratiser toujours plus le développement logiciel et se commercialisant sous la bannière « No-Code ». Cette recrudescence de plateformes diverses intervient dans un contexte de pénurie sur le marché du travail : en manque de développeurs, de plus en plus d'entreprises se tournent vers le No-Code pour créer des applications plus rapidement et à moindre coût. Preuve de la croissance du marché : sur la seule année 2021, les acteurs du No-Code ont levé plus de 4 milliards d'euros. L'approche est également de plus en plus soutenue par les grandes entreprises technologiques telles que Google, Microsoft, Salesforce, Oracle ou SAP.

## Le No-Code en France

Le No-Code s'est particulièrement développé en France à partir de 2019, avec l'émergence d'entreprises pionnières tel que Contournement, Ottho ou Alegria.academy sur la formation; Cube, Evodev, Alegria.group ou encore Tinkso (ex Ideable) en tant qu'agence de développement. On note par exemple le Syndicat Français des Professionnels du No-Code (SFPN) qui a organisé en septembre 2022 à Paris le No-Code Summit, évènement rassemblant près de 1200 participants ou la communauté No-Code France. À noter, l'une des principales plateformes de développement No-Code à l'échelle mondiale (plus de 3 millions d'utilisateurs), Bubble, a été fondée par un français, Emmanuel Straschnov.

## No-Code et Low code

En parallèle du No-Code existe la notion de développement Low code (littéralement « peu de code » en anglais) qui combine la facilité d'utilisation des plateformes No-Code avec la possibilité d'intégrer des lignes de code informatique pour personnaliser ou complexifier davantage l'application développée. Parmi les entreprises fournissant une plateforme de low code, nous pouvons notamment citer OutSystems, Mendix ou encore MuleSoft. Une étude de 2022 estime le marché combiné du développement No-Code et Low code à une valeur de 25 milliards de dollars et projette une valeur de 45,5 milliards de dollars en 2027 à l'échelle mondiale.

## Avantages et inconvénients

Le No-Code présente un certain nombre d'avantages qui le rendent particulièrement attractif, mais qui s'accompagnent nécessairement d'inconvénients. Dans l'ensemble, le paradigme No-Code est plutôt adapté à des projets simples, fournissant peu de fonctionnalités, peu consommateurs de puissance de calcul, et qui subiront peu d'évolutions futures.

### Avantages

Si l'approche No-Code est plébiscitée par les entreprises ces dernières années, c'est parce qu'elle présente des avantages certains. D'abord, la simplicité d'utilisation des plateformes de développement No-Code et l'absence de lignes de code à écrire rendent la création d'applications accessible à tous. Cette accessibilité permet aux entreprises de soulager leurs équipes techniques et de confier, par exemple, la conception aux équipes commerciales, marketing ou produit. On peut donc y voir une économie sur les coûts liés au recrutement d'une équipe technique. Les coûts d'abonnement ou de fonctionnement des plateformes No-Code sont par ailleurs généralement bien moins élevés que les coûts de déploiement (serveurs, bases de données etc.) liés au développement traditionnel.
La simplicité des plateformes No-Code rend également la création d'applications beaucoup plus rapide, ce qui est avantageux pour livrer par exemple des prototypes d'application, développer des logiciels internes dits « métier » ou pour co-construire une application avec un client grâce à des cycles d'itération courts. À ce titre, le No-Code est une approche parfaitement adaptée à la création de MVP telle que recommandée par la méthode Lean Startup.
La grande diversité des plateformes No-Code permet également d'appliquer cette approche pour développer de nombreux types d'applications différentes tels que des sites web, des applications web ou mobile, des applications de vision par ordinateur, d'intelligence artificielle$^,$, d'automatisation des processus commerciaux voire des NFT.

### Inconvénients

L'approche No-Code repose sur des blocs programmatiques effectuant des actions prédéterminées, sans accès à leur contenu (« boîtes noires »). Elle place donc les développeurs No-Code dans une situation de dépendance accentuée vis-à-vis de leur plateforme, puisqu'ils ne peuvent accéder qu'aux fonctionnalités offertes, tant qu'elles sont offertes, et sans possibilité d'apporter leurs propres extensions (ou des extensions tierces). Les problèmes liés aux dépréciations d'API n'ont par exemple pas de solution de mitigation, là où le logiciel classique peut simplement recourir à la rétrogradation de librairie, au moins temporairement.
L'enfermement dans des boîtes noires élimine toute possibilité d'optimisation bas niveau du code, ce qui limite les performances des logiciels No-Code et peut poser des problèmes dans les applications de traitement de données, de création multimédia, d'intelligence artificielle ou de jeu vidéo, qui sont de grosses consommatrices de puissance de calcul.
Si l'utilisation des plateformes No-Code peut grandement accélérer les phases de développement et de déploiement d'un logiciel, la phase de conception, elle, reste la même et ne doit pas être sous-estimée au risque de représenter une dette technique importante. La phase de conception d'un logiciel nécessite par exemple des compétences en expérience utilisateur, en modélisation de données ou encore en règles de gestion. Il peut donc parfois être trompeur de considérer que le No-Code rend réellement la création d'un logiciel accessible à tous sans expertise préalable.
De plus, les possibilités de personnalisation sont nécessairement limitées aux fonctionnalités proposées par les différentes plateformes de développement No-Code. Il n'est donc pas possible de créer des applications aussi complexes avec une approche No-Code qu'avec un ou plusieurs développeurs expérimentés. Pour les mêmes raisons, les applications développées via une plateforme No-Code sont généralement moins performantes, moins stables et moins sécurisées que leurs équivalents développées par des développeurs professionnels de façon traditionnelle.
De nombreux outils d'aide à la gestion de projet et au déploiement continu (systèmes de versionnement Git, Subversion, etc.), conçus pour aider la maintenance à long terme et la scalabilité des projets de développement utilisant du code source, sont inaccessibles au No-Code. Les options de recherche de fonctions dans le projet sont également limitées, puisque les outils classiques (similaires à grep, basés sur la recherche de texte avec ou sans expressions régulières) sont inopérants en programmation visuelle. À mesure que les fonctionnalités se multiplient et que le nombre de collaborateurs du projet augmente, l'approche No-Code risque de devenir plus compliquée et plus coûteuse à gérer qu'une approche utilisant des langages de programmation.
Concernant la documentation du projet, l'utilisation de docstrings et docblocks est simplement proscrite, ce qui signifie qu'une documentation entièrement séparée des fonctionnalités doit être maintenue parallèlement, créant là encore des défis de maintenance à long terme, d'autant plus que le public cible du No-Code (les non-programmeurs) peut être tenté de sous-estimer l'importance d'une documentation structurée dès le début d'un projet.
La question de la pérennité se pose également à la disparition de l'entité commerciale fournissant la plateforme No-Code : les applications développées seront-elles toujours utilisables ? Les applications utilisant des langages de programmation classiques (et souvent libres) restent utilisables tant que les interpréteurs et compilateurs sont maintenus (par exemple, C est maintenu depuis 1972, Python depuis 1991, PHP depuis 1995, Javascript depuis 1997).

## Principales plateformes de développement No-Code

Il existe plus de 750 plateformes de développement No-Code et Low code recensées dans le monde dont les plus populaires sont :
* Webflow, Bubble, Glide, WeWeb ou Softr pour créer des sites & applications web$^,$ ;
* Zapier, Make et n8n pour la création d'automatisations, d'intégration d'API$^,$ ;
* Airtable, Smartsheet et Baserow pour l'administration de bases de données$^,$$^,$.
De très nombreuses autres solutions existent sur le marché, telles que Notion, Adalo, Memberstack, Stacker, Rintagi, Thunkable ou Joget.