Préface du livre

De nos jours, l’informatique se retrouve au cœur du quotidien de milliards de personnes sur la terre, et un nombre de plus en plus grandissant de domaines d’application bénéficient des traitements automatiques programmés dans des logiciels ou systèmes informatiques de toutes sortes : la médecine, la finance, les télécommunications, la sécurité, la haute technologie, la bio-informatique, l’agriculture, la robotique, la domotique, la météorologie, la gestion, les jeux vidéo, l’ingénierie, le transport, l’aérospatial, l’intelligence artificielle, le marketing, la recherche scientifique, la réalité augmentée et bien d’autres domaines encore.

Avec le développement de l’intelligence artificielle et de l’industrie 4.0, de plus en plus de métiers pourraient disparaître au profit de systèmes logiciels et matériels automatisés et programmés pour effectuer diverses sortes de tâches autrefois manuelles. Ainsi, dans beaucoup de milieux il y a une incitation à orienter de plus en plus des personnes vers les métiers de l’informatique pour combler
les postes à pourvoir dans ce domaine, afin que les sociétés ou les états soient préparés pour affronter les défis technologiques des années futures, mais aussi pour qu’ils soient capables de faire face à la concurrence des autres sociétés ou états.

Au Canada et aux États-Unis par exemple, les métiers de l’informatique ont actuellement la cote. En plus des nombreux établissements d’enseignement qui offrent des programmes de formation en programmation informatique, il existe aussi de nos jours des plateformes d’autoformation en ligne comme Udemy qui permettent à des personnes d’acquérir des compétences ou d’approfondir leurs habiletés en codage informatique. Cependant, dans les activités d’écriture de code informatique, beaucoup développent des habiletés dans les technicalités de code (écriture des instructions, des tests conditionnels, des procédures, des classes, des structures répétitives, etc.) et développent moins l’art de l’écriture de code, qui consiste en l’application d’une rigueur rédactionnelle et méthodique dans l’écriture de code informatique. En fait, lorsque le côté rigoureux et méthodique est absent ou négligé, les codes qui en résultent peuvent être difficiles à lire, à maintenir et à comprendre, peuvent contenir des failles de sécurité, et ils peuvent également être inefficaces en termes de vitesse d’exécution ou d’utilisation des ressources de l’ordinateur ou de la machine exécutant le programme. 

Avec l’essor des outils d’intelligence artificielle générative comme Open AI ChatGPT, Microsoft Copilot et Google Gemini qui sont capables de produire du code informatique à la demande, il apparaît important pour les programmeurs de comprendre les aspects méthodiques et rigoureux de l’écriture du code informatique pour plusieurs raisons : premièrement, pour être capable de travailler très efficacement en exploitant ces outils évolués d’intelligence artificielle; deuxièmement, pour être capables d’avoir un regard critique sur les codes générés par ces outils afin de mieux les optimiser ou les affiner pour répondre à des exigences particulières; troisièmement, pour permettre à ces outils d’être plus performants dans la génération de code informatique de qualité; quatrièmement, pour ne pas être complètement à la traîne de la technologie ou totalement supplantée par elle.

Dans ce livre, nous présentons dans le premier chapitre plusieurs recommandations pour aider les programmeurs ou leurs formateurs à développer le côté méthodique et rigoureux de l’écriture de code informatique, et ce indépendamment du langage de programmation. 

Dans le deuxième chapitre de ce livre, nous abordons le concept de la « programmation écologique » ou « programmation écoresponsable » que nous définissons comme étant un style de programmation informatique visant à utiliser au mieux les ressources énergétiques d’un ordinateur ou d’un calculateur numérique dans le but d’éviter les gaspillages d’énergie et de réduire l’empreinte écologique des programmes informatiques. Alors que de plus en plus de gouvernements dans le monde adoptent des politiques environnementales diverses, à l’échelle des programmes informatiques, nous pouvons aussi adopter des politiques ou règles d’écriture de code pour limiter la surconsommation ou l’utilisation sous-optimale des ressources de l’ordinateur (processeur, mémoire, etc.) et des réseaux informatiques transportant les données gérées par les programmes. Dans ce livre, plusieurs recommandations sont présentées pour aider dans l’écriture de code écoresponsable. 

Afin de montrer de manière pratique l’application de nombreuses recommandations contenues dans ce livre pour l’écriture de code, nous proposons plusieurs exemples de code dans divers langages de programmation : C, C++, C#, Java, JavaScript, PHP, Python, Ruby, Scheme, WLangage. 

Que vous soyez un débutant en programmation informatique ou un programmeur junior ou de niveau intermédiaire ou expérimenté, ou même si vous êtes un formateur de programmeurs, et peu importe le langage de programmation que vous utilisez ou souhaitez utiliser pour écrire du code informatique, ce livre est pour vous.