La réponse est simple: ce n'est pas un problème de langage, mais un problème de conception. Il suffit de comparer avec l'électronique: pour le moindre composant électronique, il y a un cahier des charges précis, avec des courbes de fonctionnement en fonction de la température/humidité où je ne sais quoi, et autres nombreuses informations. En informatique, ça reste le bordel, chacun fait ce qu'il veut. Il suffit de lire les contrats quand on installe un logiciel: grosso modo, si votre disque dur est effacé après installation du logiciel, ce n'est pas la faute du logiciel.
Et quand un site web fonctionne parfaitement avec une interface ergonomique, un guignol décide qu'il faut tout changer, juste pour le principe de changer (exemple la scnf).
Sinon, je suis d'accord: Ada correspond le mieux à un langage destiné à l'ingénierie logicielle.
« Ils ont fait une suite à C », Tsoding s'attaque à C3 : C3 est-il l'avenir de C ? Ou de D ? Ou doit-on attendre C4 ?
Voici la présentation du langage de programmation C3. Puis, le développeur Tsonding explore les particularités du langage.
C3 est un langage de programmation qui s'appuie sur la syntaxe et la sémantique du langage C, dans le but de le faire évoluer tout en conservant sa familiarité pour les programmeurs C. Le langage de programmation C3 est une évolution, pas une révolution : un genre de C pour les programmeurs qui aiment le C. Le langage de programmation C3 se veut simple, rapide, sûr, compilé pour développer des logiciels faciles à maintenir.
Grâce à une compatibilité ABI complète avec C, il est possible de mélanger C et C3 dans le même projet sans aucun effort. Comme démonstration, vkQuake a été compilé avec une petite partie du code converti en C3 et compilé avec le compilateur c3c.
Voici quelques particularités du langage C3 :
- Compatibilité ABI C complète : C3 s'intègre directement dans votre application C/C++ avec une compatibilité ABI C complète : pas besoin de types ou de fonctions spéciales "compatibles C", pas de limitations sur les fonctionnalités de C3 que vous pouvez utiliser à partir de C.
- Système de modules : Un système de modules simple et direct qui n'entrave pas le travail avec des valeurs par défaut qui ont du sens.
- Macros sémantiques : Des macros qui sont aussi faciles à lire et à écrire que des fonctions normales. Avec beaucoup plus de puissance que le préprocesseur du C, elles sont délibérément équilibrées pour s'assurer que la lecture du code n'est pas rendue difficile.
- Contrats graduels : C3 apporte la programmation par contrat au grand public avec des contrats discrets qui sont utilisés pour exprimer les contraintes d'exécution et de compilation.
- Erreurs sans surcharge : La gestion des erreurs combine les meilleurs aspects des erreurs "Result" avec l'utilisation facile des exceptions et s'intègre de façon transparente avec le langage C.
- Tranches et découpage intégrés : Les tranches sont des types sûrs « pointeur + longueur » qui supportent nativement la copie et la comparaison.
- Modules génériques : Les modules génériques de C3 offrent une simplicité et une clarté supérieures pour la création de types génériques.
- Réflexion à l'exécution et à la compilation : L'introspection de type est disponible à la fois à la compilation et à l'exécution, alimentant des macros et des fonctions flexibles.
- Assemblage en ligne : Écrire de l'asm comme du code en ligne normal sans utiliser de chaînes ou de contraintes cryptiques.
- Débogage avec contrôles de sécurité : Soyez confiant dans l'exactitude de votre code : en mode débogage, le compilateur insère des contrôles de limites et des contrôles de valeurs étendus au moment de l'exécution, qui, avec les contrats, vous permettront de détecter les bogues rapidement.
- Traces de pile détaillées : Fini les erreurs anonymes de type « segmentation fault » : la bibliothèque standard de C3 permet d'obtenir des traces de piles détaillées pour vos constructions de débogage.
Dans la vidéo suivante, le développeur Tsoding explore les possibilités et les performances du langage C3 :
Et vous ?
Avez-vous utilisé ce langage pour votre usage ou le développement d'applications, et si oui qu'en pensez-vous ?
Voir aussi :
C3 : un langage de programmation système basé sur le C, permet un accès sécurisé aux tableaux, les conteneurs de haut niveau et manipulation des chaînes de caractères
Est-il possible de remplacer le C ? Le créateur du langage C3 donne des raisons pour lesquelles ce type d'initiative est voué à l'échec, au moment où le noyau Linux s'ouvre de plus en plus au Rust
C23 : un C légèrement meilleur. Le langage de programmation C continue d'évoluer, lentement et prudemment, par Daniel Lemire
Publication de communiqués de presse en informatique. Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités
ça fait penser plutôt à du C2S ou du C SE ... cheap non ?
C4 est stable mais reste dangereux ( https://fr.wikipedia.org/wiki/Composition_C-4 )
Partager