1 points par GN⁺ 2024-04-20 | 1 commentaires | Partager sur WhatsApp

Programming -- Principles and Practice Using C++ (3rd Edition)

  • « Programming -- Principles and Practice Using C++ (3rd Edition) », publié par Addison-Wesley, est prévu pour avril 2024
    • ISBN : 978-0-13-830868-1
    • Achat direct possible sur le site de l’éditeur

Présentation du livre

  • Ce livre aidera toute personne prête à fournir des efforts à apprendre les principes fondamentaux de la programmation et à développer les compétences pratiques nécessaires à la programmation réelle
    • Les éditions précédentes ont été utilisées avec succès par des milliers d’étudiants
  • Cette édition révisée présente les caractéristiques suivantes :
    • Elle part du principe que l’objectif du lecteur est d’écrire des programmes suffisamment bons pour être utilisés et maintenus par d’autres
    • Elle met l’accent sur les concepts et techniques fondamentaux plutôt que sur des détails techniques obscurs du langage
    • Ce n’est pas une simple introduction à un langage de programmation, mais une introduction à la programmation en général, incluant la programmation procédurale, orientée objet et générique
    • Elle couvre à la fois les techniques de bas niveau nécessaires pour utiliser efficacement le matériel et les techniques modernes de haut niveau
    • Elle fournit une base solide pour utiliser des types utiles, précis et sûrs, et pour écrire du code maintenable et efficace
    • Elle est principalement conçue pour les personnes sans expérience en programmation, mais même des programmeurs expérimentés ont trouvé les éditions précédentes utiles comme introduction à des concepts et techniques plus efficaces
    • Elle couvre largement les concepts essentiels, la conception et les techniques de programmation, les fonctionnalités du langage et les bibliothèques
    • Elle utilise les versions récentes de C++ (C++20 et C++23)
    • Elle traite de la conception et de l’utilisation des types intégrés et des types définis par l’utilisateur, avec l’entrée, la sortie, le calcul et des graphiques/GUI simples
    • Elle propose une introduction aux conteneurs et algorithmes de la bibliothèque standard C++

Présentation de l’auteur

  • Bjarne Stroustrup est le concepteur de C++ et son premier implémenteur, ainsi que l’auteur de « The C++ Programming Language », « A Tour of C++ » et de nombreuses publications grand public et universitaires
  • Il est professeur d’informatique à l’université Columbia, à New York
  • Le Dr Stroustrup est membre de la National Academy of Engineering des États-Unis et fellow de l’IEEE, de l’ACM et du CHM
  • Il a reçu le Charles Stark Draper Prize 2018, le Computer Pioneer Award 2018 de l’IEEE Computer Society et la Faraday Medal 2017 de l’IET

Présentation de PPP3

  • « Programming: Principles and Practice using C++ (3rd Edition) » (PPP3) est un manuel d’introduction à la programmation destiné aux personnes sans expérience en programmation
  • Il sera aussi utile à ceux qui ont déjà un peu d’expérience en programmation et souhaitent améliorer leur style et leur technique, ou simplement apprendre le C++ moderne
  • Il a été conçu pour une utilisation en classe, mais rédigé dans une optique d’auto-apprentissage
  • Les versions précédentes de ce livre ont servi de base au premier cours de programmation pour des étudiants en génie électrique, en génie informatique et en informatique à Texas A&M University et dans de nombreux autres établissements
  • Ceux qui ont vu PPP2 remarqueront que PPP3 fait environ la moitié de sa taille. Voici ce qui a été fait pour l’alléger :
    • Exploiter les parties essentielles de C++20 et C++23 pour renforcer les chapitres de base généralement traités en un semestre, et réécrire le code des chapitres graphiques/GUI sur la base de Qt pour la portabilité (par ex. navigateurs et téléphones)
    • Mettre sur le web les chapitres plus spécialisés (appelés « broadening the view » dans PPP2) afin qu’ils puissent être utilisés selon les besoins
    • Supprimer les documents de référence pure. On peut désormais trouver sur le web davantage de ressources, et plus à jour (par ex. cppreference.com)
  • Les ressources d’accompagnement de PPP2 restent disponibles (diapositives de cours, code, etc.)

Exemples de PPP3

  • Préface : ce que ce livre promet et ne promet pas
  • Table des matières
  • Chapitre 0 : quelques mots au lecteur. Quelques remarques sur l’approche adoptée dans ce livre
  • Chapitre 10 : modèle d’affichage. Chapitre d’exemple. Si vous êtes un débutant complet, ne lisez pas ce chapitre tout de suite. Il est publié pour montrer aux enseignants et aux lecteurs expérimentés jusqu’où ce livre va après environ 5 semaines (en supposant deux chapitres par semaine). C’est aussi l’occasion d’afficher un peu de C++ moderne

Informations de support

  • Liens vers des implémentations C++ et des environnements de développement logiciel (avec quelques conseils pour bien démarrer)
  • Comment utiliser les modules (y compris une explication sur la manière de construire le module PPP avec PPP_support.h)
  • Le module PPP pour quand les modules peuvent être utilisés
  • L’en-tête « PPP.h » pour utiliser le plus facilement possible les modules std et PPP
  • L’en-tête « PPPheaders.h » pour les cas où il faut revenir à l’usage des fichiers d’en-tête
  • Support GUI incluant la bibliothèque d’interface utilisateur graphique/GUI de PPP3 (dans les chapitres 10 à 14). Il faut installer Qt pour exécuter ce code. Voir le manuel utilisateur
  • Exemples de code de plusieurs chapitres (TBD)
  • Errata
  • Diapositives de cours mises à jour pour PPP3 sur la base de PPP
  • Guide de style de codage PPP
  • Supports d’exercices (TBD)

Chapitres de PPP2

  • Ces chapitres ont été écrits en C++14 et non en C++23, mais restent corrects et introduisent les sujets de manière raisonnable
    • Chapitre 1 : ordinateurs, humains et programmation
    • Chapitre 11 : personnalisation des entrées/sorties
    • Chapitre 22 : idéaux et histoire
    • Chapitre 23 : traitement de texte
    • Chapitre 24 : calcul numérique
    • Chapitre 25 : programmation des systèmes embarqués
    • Chapitre 26 : tests
    • Chapitre 27 : langage de programmation C
  • Glossaire

Traductions

  • Aucune pour le moment. Pour les traductions des éditions précédentes, voir la page de couverture des livres de l’auteur

L’avis de GN⁺

  • PPP est un livre bien connu pour l’initiation à la programmation, et cette 3e édition, qui exploite C++20/23 tout en réorganisant et condensant fortement le contenu, est une bonne nouvelle.
  • Le remaniement complet de la partie GUI sur une base Qt montre notamment que Qt s’est imposé comme le framework GUI de facto dans l’écosystème C++.
  • L’intégration active de technologies C++ récentes comme les modules, ainsi que le renforcement du lien avec le web, donnent envie. Le fait qu’il existe une version exécutable directement dans le navigateur paraît particulièrement adapté à l’enseignement.
  • Cela dit, l’usage du C++ récent pourrait aussi dérouter les débutants. Pour un public novice, commencer avec un C++ de style plus C peut encore sembler préférable.
  • Comme Bjarne, l’auteur, est le créateur de C++ et a mené sa normalisation, cela en fera probablement un ouvrage de référence particulièrement autorisé. Les débutants comme les experts pourront y apprendre les best practices et conseils d’utilisation qu’il a sélectionnés.

1 commentaires

 
GN⁺ 2024-04-20
Avis Hacker News
  • Des inquiétudes sont soulevées sur le fait que import std; ne fonctionne pas, car la fonctionnalité de modules de C++20 n’est pas encore entièrement prise en charge par la plupart des compilateurs. Cela peut semer la confusion chez les débutants.

  • Le remplacement de FLTK par Qt dans le chapitre GUI constitue un changement majeur, qui devrait être bien accueilli car Qt est largement utilisé dans l’industrie. En revanche, son impact sur la courbe d’apprentissage reste incertain.

  • Dans le code de Stroustrup, using namespace std; est utilisé, ce qui permet d’omettre le préfixe std:: et améliore ainsi la lisibilité du code.

  • Des interrogations sont soulevées sur l’absence d’utilisation cohérente d’un espace après #include dans le code de Stroustrup.

  • Autrefois, le C++ servait à presque tout faire, comme l’UI ou l’analyse d’API, mais aujourd’hui sa place est descendue plus bas dans la stack de développement.

  • Quelqu’un raconte avoir étudié en profondeur une version précédente de ce livre, ce qui l’a beaucoup aidé à mieux comprendre le C++. Mais beaucoup écrivaient aussi du code C++ sans lire ce type d’ouvrage.

  • Un livre intitulé "C++ Annotations", qui contient des informations à jour sur le C++, est présenté.

  • Le nombre de pages et le poids de la 3e édition ont été réduits d’environ moitié par rapport à la 2e édition.

  • Le volume a diminué parce que la section « Part IV: Broadening the View » de la 2e édition a été supprimée, mais ce contenu reste consultable en ligne. Les sujets utilisant C++11/14 restent toujours pertinents.

  • Quelqu’un demande des conseils face à la difficulté de trouver un IDE ou un compilateur prenant en charge C++20, ce qui empêche import std; de fonctionner.