Moi, expert C++, j’abandonne le C++

Posté par (page perso) . Édité par Ysabeau, Davy Defaud, ZeroHeure, palm123, Pierre Jarillon, Nicolas Casanova et Benoît Sibaud. Modéré par ZeroHeure. Licence CC by-sa.
Tags :
54
6
juin
2019
C et C++

Ma carrière professionnelle de développeur C a débuté en 1994 et j’ai naturellement adopté avec enthousiasme le C++ en 1999. J’étais un développeur C++ heureux et j’avais considéré la nouvelle version du standard C++11 juste comme une évolution tant attendue. En 2015, je réalise enfin à quel point, il a révolutionné l’écosystème C++ et ses bouleversements dans l’état d’esprit de la communauté. Je me passionne alors pour C++11, C++14, puis C++17, je m’implique beaucoup, je deviens un référent pour mes collègues, je donne des conférences sur ce langage, j’organise des meet‐ups à Paris, je publie de nombreux articles C++ sur LinuxFr.org

En 2018, une expérience change radicalement ma façon d’appréhender le développement logiciel.

Sortie de LLVM, Clang, lld, lldb 8.0.0

Posté par (page perso) . Édité par Ontologia, Benoît Sibaud, Sylvestre Ledru, tankey, Davy Defaud, palm123 et Bruno Michel. Modéré par patrick_g. Licence CC by-sa.
Tags :
35
21
mar.
2019
C et C++

Après cinq versions candidates, l’étiquette finale a été apposée sur la branche 8.0.0 de la famille LLVM.

Cette dépêche reprend les points importants des notes de sortie associées. C’est une sélection totalement biaisée, libre à vous de lire les journaux des modifications respectifs pour avoir tous les détails !

Quelques cadriciels Web C++ (2/2)

Posté par (page perso) . Édité par Davy Defaud, Benoît Sibaud, ZeroHeure, tankey, Xavier Claude et palm123. Modéré par patrick_g. Licence CC by-sa.
Tags :
38
12
déc.
2018
C et C++

Actuellement, il existe de nombreux langages et cadriciels intéressants pour le développement Web back‐end. Dans ce domaine, le C++ n’est pas le langage le plus à la mode, mais il possède cependant des atouts intéressants. En effet, le C++ possède de nombreuses bibliothèques (dont des cadriciels Web), il est réputé pour ses performances et, enfin, ses dernières normes le rendent plus agréable à utiliser.

L’objectif de cet article est de donner un aperçu des outils C++ disponibles pour le développement Web back‐end, à partir d’un exemple d’application. Les codes sources présentés ici sont disponibles sur ce dépôt Git. Les différents cadriciels utilisés sont résumés en annexe (partie 2). Enfin, une liste de bibliothèques C++ est disponible sur Awesome C++.

Partie 2 : les cadriciels Web.

Quelques cadriciels Web C++ (1/2)

Posté par (page perso) . Édité par Davy Defaud, ZeroHeure, Julien Jorge, palm123, Benoît Sibaud, tankey et Xavier Claude. Modéré par ZeroHeure. Licence CC by-sa.
Tags :
34
9
déc.
2018
C et C++

Actuellement, il existe de nombreux langages et cadriciels (frameworks) intéressants pour le développement Web côté serveur. Dans ce domaine, le C++ n’est pas le langage le plus à la mode, mais il possède cependant des atouts intéressants. En effet, le C++ dispose de nombreuses bibliothèques (dont des cadriciels Web), il est réputé pour ses performances, enfin ses dernières normes le rendent plus agréable à utiliser.

L’objectif de cet article est de donner un aperçu des outils C++ disponibles pour le développement Web back‐end, à partir d’un exemple d’application. Les codes sources présentés ici sont disponibles sur ce dépôt Git. Les différents cadriciels utilisés sont résumés en annexe (partie 2). Enfin, une liste de bibliothèques C++ est disponible sur Awesome C++.

Partie 1 : exemple d’application, génération de HTML et accès à une base de données.

E.T. téléphone Meson

Posté par . Édité par Julien Jorge, Davy Defaud, tankey, Benoît Sibaud, ZeroHeure et Bruno Michel. Modéré par Pierre Jarillon. Licence CC by-sa.
75
7
oct.
2018
C et C++

Meson est une technologie récente de la catégorie des systèmes de configuration et de gestion de la compilation de projets, à l’instar d’Autotools et de CMake. Nous proposons dans cette dépêche un tour de Meson, avec une explication des technologies en jeu, puis des comparaisons et quelques tests de rapidité et performance. En aucun cas nous ne tomberons dans le cassage des autres technologies et nous essaierons de comparer de manière la plus neutre possible.

Meson a été initié par Jussi Pakkanen en 2013. Frustré par Autotools, insatisfait par CMake, il a décidé de s’attaquer au problème et défini les buts à atteindre. Meson est le fruit de son travail, aidé de la communauté de contributeurs qui s’est formée.

Bien entendu, nous ne sommes pas omniscients et attendons des commentaires pertinents des lecteurs de LinuxFr.org pour corriger toute erreur, dans la joie et la bonne humeur.

Profileurs mémoire MALT et NUMAPROF

Posté par (page perso) . Édité par Pierre Jarillon, Davy Defaud, palm123 et Xavier Claude. Modéré par Pierre Jarillon. Licence CC by-sa.
Tags :
48
2
sept.
2018
C et C++

Outils de profilage

En calcul à haute performance — HPC (High Performance Computing) —, les problèmes liés à la mémoire deviennent de plus en plus critiques, qu’il s’agisse du contrôle de la consommation mémoire des applications, de la limitation des interactions avec le système d’exploitation (trop nombreuses allocations, trop petites allocations…) et de choix de placement (NUMA) ; et relativement peu d’outils libres permettent de profiler les applications sur ce terrain. Deux outils récemment mis en ligne apportent une part de réponse à ces questions.

La suite de l’article présentera MALT et NUMAPROF plus en détails…

Faut‐il continuer à apprendre le C++ ?

58
27
juil.
2018
C et C++

Le C++ est un langage qui a vu ses spécifications s’amonceler et se stratifier au cours des années. Il est encore très utilisé. Mais face à des concurrents comme Rust ou Go, quelle est sa place dans un environnement qui évolue ?

Cette dépêche qui a nécessité beaucoup de discussions, aura, vous le verrez, une forme un peu particulière.

vcpkg, un gestionnaire de bibliothèque pour C++

Posté par . Édité par Davy Defaud, Nÿco et Benoît Sibaud. Modéré par tankey. Licence CC by-sa.
20
25
avr.
2018
C et C++

Depuis 2016, Microsoft développe vcpkg, un outil bien sympathique qui permet de télécharger et compiler un ensemble de bibliothèques et leurs dépendances. Jusqu’à présent, cet outil était disponible uniquement pour la plate‐forme Windows. Depuis le 24 avril 2018, cet outil prend également en charge les plates‐formes GNU/Linux et macOS. vcpkg est publié sous licence MIT.

Une limite cependant est que la compilation des bibliothèques sur GNU/Linux est uniquement statique. La raison invoquée est qu’il est plus compliqué d’utiliser des bibliothèques sur GNU/Linux (LD_LIBRARY_PATH, rpath, etc.) que sous Windows, où l’on peut tout mettre dans un seul répertoire.

Quoi qu’il en soit, c’est une bonne nouvelle. Même si les paquets des distributions resteront une source privilégiée pour obtenir les fichiers de développement d’une bibliothèque, vcpkg offre une alternative intéressante pour ceux qui voudraient tout construire en statique de manière à fournir un seul binaire pour toutes les variantes de GNU/Linux.

C++17 libère size(), data() et empty()

Posté par (page perso) . Édité par David Marec, Benoît Sibaud, Oliver, Davy Defaud, palm123, gbdivers, whity, Xavier Claude, audionuma et kp. Modéré par Davy Defaud. Licence CC by-sa.
Tags :
36
17
mar.
2018
C et C++

Cette évolution est dans la continuité de la libération de begin() et end() en C++11. Ces trois nouvelles fonctions, size(), data() et empty(), avaient été oubliées lors des deux dernières évolutions. Le C++17 corrige le tir.

Tout d’abord, nous allons revenir sur les raisons de cette évolution. Puis, nous détaillerons ce qu’apporte chacune de ces trois fonctions. Et, pour conclure, nous verrons comment on va pouvoir les utiliser.

Les fonctions empty(), data() et size() sortent de la prison « class » et rejoignent les fonctions begin() et end() qui les accueillent. Ces deux dernières fonctions accueillent également string_view. Derrières les barreaux de la prison des spécifications techniques, Unified-Call-Syntax va devoir y rester trois ans pour tenter de sortir avec C++20

Sortie de gfast-copy et de fast-copy sur www.open-source-projects.net

11
28
oct.
2017
C et C++

Icône de gfast-copy

Copier un unique (gros) fichier d’une source vers une destination donnée n’est pas une tâche pour laquelle les systèmes sont toujours optimisés.

Selon la philosophie UNIX, un programme doit accomplir une unique tâche précise et l’accomplir du mieux possible. C’est ce qui a donné naissance à gfast-copy et à fast-copy. Ces programmes font une chose banale mais le font bien.

Sortie d'it-edit version 3.0

18
3
juin
2017
C et C++

La version 3.0 de l'éditeur it-edit (Integrated Terminals Editor) est disponible.

La principale amélioration de cette nouvelle version est l'intégration optionnelle de la correction orthographique à l'aide de la bibliothèque de Sébastien Wilmet (mainteneur de gtk-sourceview3 - sur laquelle se base it-edit - et auteur de Texilla entre autres) gspell-1.

Mais c'est loin d'être le seul changement dans le code d'it-edit, et pas le seul ajout non plus.

Capture d'écran

Il s'agit de la 4e version majeure d'it-edit, et vous pouvez en voir une description plus détaillée dans l'annonce de la version 1.0.1.

Outils utiles pour développeur

58
3
mar.
2017
C et C++

Le but de cette dépêche est de recenser quelques outils utiles pour les développeurs (pas uniquement C et C++) et de donner accès à des ressources intéressantes pour leur prise en main.

Tout d’abord comment définit‐on un « outil utile » ? Ce sont des logiciels (libres, c’est mieux) qu’il n’est pas obligatoire d’utiliser mais qui permettent de gagner en productivité (ou de moins se prendre la tête avec un bogue). Ces outils sont utilisables indépendamment, mais utilisés ensemble peuvent former un tout qui donne les fonctionnalités d’un environnement de développement intégré.

Il est fort probable que pour certains cette dépêche vienne enfoncer des portes ouvertes. Mais pensez aux nouveaux pour qui elle sera, peut‐être, profitable.

C++17 garantit le court-circuit de copie (suite de la précédente dépêche)

Posté par . Édité par Oliver, Davy Defaud, David Marec, Snark, Benoît Sibaud et lmg HS. Modéré par tankey. Licence CC by-sa.
Tags :
28
13
déc.
2016
C et C++

Le calendrier de l’Avent du C++ continue son bonhome de chemin. Chaque jour, ou presque, une nouvelle surprise est offerte aux lecteurs de LinuxFr.org. La dépêche sur l’élision de la copie nous a mis l’eau à la bouche :

Comment résoudre le dilemme entre cette optimisation et le fait de ne pas pouvoir en bénéficier dans un code portable ?

Alors, entrons dans les entrailles de la spécification technique P0135 guidés par cette dépêche pédagogique, et découvrons comment le C++ s’améliore de version en version.

Une fille nerd s’électrocute en touchant la nouvelle tour C++17 de sa voisine avec garantie de court-circuit de copie

C++ se court-circuite le constructeur de copie

Posté par . Édité par Oliver, Davy Defaud, lmg HS, gbdivers, gipoisson, Benoît Sibaud, palm123 et Storm. Modéré par tankey. Licence CC by-sa.
Tags :
38
11
déc.
2016
C et C++

Le calendrier de l’Avent du C++ continue. Après quelques trous dans le calendrier, aujourd’hui une nouvelle surprise : le court-circuit du constructeur de copie.

Cette fonctionnalité est présente dans le C++ depuis la nuit des temps et pourtant peu connue, alors que ses effets de bords peuvent être redoutables. Cette dépêche très pédagogique explique tous les détails d’une optimisation ultime.

Une nerd s’électrocute en touchant la vieille tour C++ de sa voisine à cause des effets de bords du court-circuit du constructeur de copie (C++98 copy elision)

C++17 exprime la virgule flottante en hexadécimal et offre des cadeaux aux lecteurs de LinuxFr.org

Posté par . Édité par Davy Defaud, Oliver, ZeroHeure et Storm. Modéré par Benoît Sibaud. Licence CC by-sa.
Tags :
30
7
déc.
2016
C et C++

Chaque jour (ouvré) de décembre a droit à sa surprise. Après le if constexpr, aujourd’hui, le calendrier de l’Avent du C++ présente la spécification technique P0245 concernant le littéral pour exprimer la virgule flottante en hexadécimal.

Les Nerdettes s’entraînent pour le concours des littéraux hexadécimaux sur LinuxFr.org

C++17 branche à la compilation (`if constexpr`)

Posté par . Édité par Oliver, Davy Defaud, Benoît Sibaud et Xavier Claude. Modéré par Benoît Sibaud. Licence CC by-sa.
Tags :
28
5
déc.
2016
C et C++

Chaque jour de décembre a droit à sa surprise. Après la fixation de l’ordre d’évaluation des expressions, aujourd’hui, le calendrier de l’Avent du C++ présente la spécification technique P0292 concernant les conditions à la compilation, grâce à if constexpr.

Logo C++FRUG représenté par un gros "C++" au centre du cercle de la Francophonie

C++17 indique la disponibilité des en‐têtes (header)

Posté par . Édité par Davy Defaud, Benoît Sibaud, Xavier Claude, ZeroHeure, Bruno Michel et Nils Ratusznik. Modéré par tankey. Licence CC by-sa.
Tags :
38
2
déc.
2016
C et C++

Chaque jour de décembre a droit à sa surprise. Après l'ordre d'évaluation, aujourd'hui, le calendrier de l’Avent du C++ présente la Spécification Technique P0061 concernant une macro magique : #define __has_include.

Une personne déprime de ne plus rien comprendre au C++ et son collègue le rassure que LinuxFr.org publie le calendrier de l'Avent du C++ avec des explications pédagogiques

C++17 fixe l’ordre d’évaluation des expressions

Posté par . Édité par Oliver, Davy Defaud, Benoît Sibaud et palm123. Modéré par Xavier Claude. Licence CC by-sa.
Tags :
56
1
déc.
2016
C et C++

Le C++ est un langage bien présent et depuis longtemps dans les logiciels libres (environnements de bureau, outils bureautiques, navigateurs Web…). L’an 2017 approche à grands pas avec la promesse d’un tout nouveau C++17.

Pour finir l’année, voici le calendrier de l’Avent du C++ avec des dépêches pédagogiques sur ce qui nous attend en 2017. Après deux dépêches de mise‐en‐bouche, nous entrons enfin dans le vif du sujet avec deux spécifications techniques concernant l’ordre d’évaluation des expressions. Allez, c’est parti !   ᕕ(ᐛ)ᕗ

Bjarne propose de changer le C++ pour corriger son livre qu'il tient dans ses mains

C++17, Genèse d’une version mineure

Posté par (page perso) . Édité par Benoît Sibaud, Davy Defaud, cracky, palm123, Lucas, Adrien Dorsaz, M5oul, ZeroHeure, Storm, RyDroid et Martin Peres. Modéré par tankey. Licence CC by-sa.
Tags :
61
2
oct.
2016
C et C++

La série de dépêches C++ continue. Cette seconde dépêche nous amène dans les réunions du comité de standardisation en vue de publier la prochaine version C++17 et nous permettra de vérifier ce titre provocateur (comment ça mineure ?). Cette dépêche peut intéresser tous les lecteurs de LinuxFr.org, pas seulement les développeurs. Les prochaines dépêches seront plus techniques.

Deux collègues discutent : « C++ est enfin sorti », « Trop top », « Va falloir se palucher les 1700 pages du nouveau standard », « Gloups ». Une note repositionnable sur le dessin indique : « Il y en a qui ne connaissent pas encore LinuxFr.org »

Les coulisses du standard C++

Posté par (page perso) . Édité par Davy Defaud, Benoît Sibaud, ZeroHeure, tankey, M5oul et Anthony Jaguenaud. Modéré par Pierre Jarillon. Licence CC by-sa.
99
20
août
2016
C et C++

Le C++ a bientôt la quarantaine et pourtant très actif en ce moment avec la finalisation de la prochaine version C++17. Profitons‐en pour faire le point avec une série d’articles sur le C++. Cette première dépêche nous dévoile la face cachée du C++, et donc peut intéresser tous les lecteurs LinuxFr.org. :-)

Évolution du langage C++

Douzième rencontre parisienne C++ mercredi 27 avril 2016

Posté par (page perso) . Édité par Benoît Sibaud, ZeroHeure et tankey. Modéré par tankey. Licence CC by-sa.
16
24
avr.
2016
C et C++

L'association C++FRUG organise la douzième rencontre parisienne C++ Francophone avec pour nom de code : decltype(new event).

Horaires Programme
19:00 Accueil
19:30 Présentations éclairs (Lightning talks)
20:00 Pause dinatoire, pizzas et bières offertes par Mobiskill Partner
20:30 Révolution des <algorithme> en C++17
21:15 Informations générales et fin de la rencontre

Onzième rencontre C++ francophone jeudi 31 mars 2016 à Paris

Posté par (page perso) . Édité par Nils Ratusznik, Xavier Teyssier, Benoît Sibaud, eggman et palm123. Modéré par Benoît Sibaud. Licence CC by-sa.
13
16
mar.
2016
C et C++

Le C++ FRUG vous convie à leur onzième rencontre francophone. Cette édition a pour nom std::move(meetup) car elle se tient à l'école 42.

Informations pratiques :

Le programme :

  • de 19:00 à 19:30 : accueil ;
  • de 19:30 à 20:15 : fonction passée en argument template, par Martin Morterol (LRI) ;
  • de 20:15 à 21:00 : pause dinatoire, pizzas et bières gratos ;
  • de 21:00 à 21:45 : système de fichiers dans les nuages, par Quentin Hocquet (Infinit).

IT-Edit 2.0, un éditeur de texte avec terminaux intégrés

31
15
mar.
2016
C et C++

IT-Edit (Integrated Terminals Editor) est disponible en version 2.0. Cette nouvelle version apporte de nombreuses améliorations par rapport à la 1.0.1. Il s'agit d'un éditeur de texte doté de multiples fonctionnalités. Il est écrit en C et utilise GTK+3, gtksourceview3.0, ainsi que libvte-2.90.

logo du logiciel IT-Edit

IT-Edit gère la coloration syntaxique de nombreux langages de programmation. Il intègre des terminaux bien placés, de façon à ne pas perdre de vue la ligne de commande pendant l'écriture de code.

Bibliothèque de génération et de manipulation de formes libsdl2_gfxutils

Posté par (page perso) . Édité par tankey, Benoît Sibaud et palm123. Modéré par patrick_g. Licence CC by-sa.
16
1
fév.
2016
C et C++

J'annonce de part ce présent message, la réécriture de la bibliothèque de génération et de manipulation de formes libSDL2_gfxutils. Elle est publiée sous GPLv3.