<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Programmation on kenji.blog</title><link>http://kenji.blog/fr/tags/programmation/</link><description>Recent content in Programmation on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>fr</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 12 Jul 2025 12:30:35 +0900</lastBuildDate><atom:link href="http://kenji.blog/fr/tags/programmation/index.xml" rel="self" type="application/rss+xml"/><item><title>Avantages et Inconvénients de la Création de Programmes avec Win32API + C++</title><link>http://kenji.blog/fr/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/</link><pubDate>Sat, 12 Jul 2025 12:30:35 +0900</pubDate><guid>http://kenji.blog/fr/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/</guid><description>&lt;img src="http://kenji.blog/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/img_1.png" alt="Featured image of post Avantages et Inconvénients de la Création de Programmes avec Win32API + C++" />&lt;h1 id="lattrait-et-les-défis-du-développement-avec-win32api--c">L&amp;rsquo;Attrait et les Défis du Développement avec Win32API + C++
&lt;/h1>&lt;p>Pour ceux qui souhaitent maîtriser le développement d&amp;rsquo;applications Windows, &lt;strong>Win32API + C++&lt;/strong> reste une option puissante.
Cette combinaison, qui permet l&amp;rsquo;interaction la plus proche possible avec le système d&amp;rsquo;exploitation, offre à la fois vitesse et flexibilité.&lt;/p>
&lt;p>D&amp;rsquo;un autre côté, elle requiert de la détermination pour être maîtrisée, car elle diffère considérablement des styles de développement modernes.&lt;/p>
&lt;p>Sur cette page, nous expliquerons clairement les avantages et les inconvénients du &lt;strong>point de vue d&amp;rsquo;un développeur actif d&amp;rsquo;applications Windows&lt;/strong> .&lt;/p>
&lt;hr>
&lt;h2 id="avantages">Avantages
&lt;/h2>&lt;h3 id="exécution-native-ultra-rapide">Exécution Native Ultra-Rapide
&lt;/h3>&lt;p>Étant donné que C++ et Win32API fonctionnent sur la couche la plus proche du système d&amp;rsquo;exploitation, il n&amp;rsquo;y a presque pas de surcharge inutile.
L&amp;rsquo;utilisation du processeur et de la mémoire est extrêmement efficace, offrant une &lt;strong>vitesse d&amp;rsquo;exécution écrasante&lt;/strong> .&lt;/p>
&lt;h3 id="haute-flexibilité-et-liberté">Haute Flexibilité et Liberté
&lt;/h3>&lt;p>Vous pouvez &lt;strong>contrôler finement par vous-même&lt;/strong> tous les comportements de l&amp;rsquo;application, tels que le contrôle des fenêtres, le traitement asynchrone, l&amp;rsquo;intégration COM et la gestion des processus.
Il est également possible de créer des outils spécialisés et vos propres frameworks originaux.&lt;/p>
&lt;h3 id="facile-à-distribuer-sans-besoin-dexécution">Facile à Distribuer Sans Besoin d&amp;rsquo;Exécution
&lt;/h3>&lt;p>Comme aucun runtime externe tel que .NET ou Java n&amp;rsquo;est requis, il &lt;strong>peut être distribué sous forme de fichier exécutable unique&lt;/strong> .
Il est moins sujet aux problèmes lors de la redistribution et est facile à exécuter sans installateur.&lt;/p>
&lt;h3 id="peut-créer-des-applications-légères">Peut Créer des Applications Légères
&lt;/h3>&lt;p>Puisqu&amp;rsquo;il ne nécessite que la configuration minimale, sa caractéristique est d&amp;rsquo;avoir une &lt;strong>empreinte mémoire très petite&lt;/strong> .
Il fonctionne confortablement même sur des PC peu performants ou des environnements de machines virtuelles.&lt;/p>
&lt;h3 id="contrôle-avancé-au-niveau-du-système-dexploitation-possible">Contrôle Avancé au Niveau du Système d&amp;rsquo;Exploitation Possible
&lt;/h3>&lt;p>Vous pouvez également réaliser des &lt;strong>contrôles qui sont difficiles avec des langages et des bibliothèques normaux&lt;/strong> , tels que les crochets globaux de la souris et du clavier, le réglage fin des styles de fenêtres et les opérations du menu système.&lt;/p>
&lt;hr>
&lt;h2 id="inconvénients">Inconvénients
&lt;/h2>&lt;h3 id="faible-efficacité-de-développement">Faible Efficacité de Développement
&lt;/h3>&lt;p>Même la construction de l&amp;rsquo;interface graphique doit être entièrement réalisée en code, et parfois &lt;strong>des dizaines de lignes de code sont nécessaires juste pour créer un seul bouton&lt;/strong> .
La modification de la conception est également compliquée, et la productivité est plus faible par rapport au développement utilisant des frameworks d&amp;rsquo;interface utilisateur.&lt;/p>
&lt;h3 id="facile-de-réduire-la-maintenabilité">Facile de Réduire la Maintenabilité
&lt;/h3>&lt;p>Il y a beaucoup de &lt;strong>codes avec des structures spéciales&lt;/strong> , tels que les boucles de messages et les procédures de fenêtres, ce qui entrave la lisibilité et la réutilisation.
Il a également des aspects inadaptés au développement en équipe et à la maintenance à long terme.&lt;/p>
&lt;h3 id="difficile-de-supporter-linterface-utilisateur-moderne">Difficile de Supporter l&amp;rsquo;Interface Utilisateur Moderne
&lt;/h3>&lt;p>Il est &lt;strong>difficile de supporter l&amp;rsquo;UX requise ces dernières années&lt;/strong> , telle que la prise en charge des DPI élevés, les interfaces tactiles, l&amp;rsquo;accessibilité et le mode sombre.
Vous devez traiter chacun manuellement, ce qui demande beaucoup d&amp;rsquo;efforts.&lt;/p>
&lt;h3 id="ne-supporte-pas-le-multiplateforme">Ne Supporte Pas le Multiplateforme
&lt;/h3>&lt;p>Comme il s&amp;rsquo;agit d&amp;rsquo;une API entièrement exclusive à Windows, elle &lt;strong>ne peut pas être portée sur macOS ou Linux&lt;/strong> .
Si vous prévoyez un déploiement sur plusieurs plates-formes, vous devrez sélectionner d&amp;rsquo;autres technologies.&lt;/p>
&lt;h3 id="coût-dapprentissage-extrêmement-élevé">Coût d&amp;rsquo;Apprentissage Extrêmement Élevé
&lt;/h3>&lt;p>Vous devez comprendre des &lt;strong>concepts et des mécanismes rarement utilisés aujourd&amp;rsquo;hui&lt;/strong> , tels que les handles, GDI, COM et OLE.
De nombreux documents sont anciens, nécessitant du temps et de la patience pour apprendre.&lt;/p>
&lt;hr>
&lt;h2 id="utilisations-appropriées">Utilisations Appropriées
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Outils légers&lt;/strong> tels que les lanceurs de fichiers et les aides aux raccourcis clavier&lt;/li>
&lt;li>&lt;strong>Utilitaires système&lt;/strong> tels que la manipulation du presse-papiers et le contrôle de l&amp;rsquo;IME&lt;/li>
&lt;li>&lt;strong>Applications basées sur le contrôle natif&lt;/strong> telles que les crochets globaux et la capture de fenêtres&lt;/li>
&lt;li>&lt;strong>Outils de support de pilote&lt;/strong> étroitement liés au matériel&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="utilisations-inappropriées">Utilisations Inappropriées
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Applications destinées au grand public&lt;/strong> où les interfaces utilisateur et expériences utilisateur modernes sont importantes&lt;/li>
&lt;li>&lt;strong>Prototypage et développement de MVP&lt;/strong> conçus dans un souci de rapidité&lt;/li>
&lt;li>&lt;strong>Projets à grande échelle&lt;/strong> basés sur une exploitation à long terme et un développement en équipe&lt;/li>
&lt;li>&lt;strong>Produits multiplateformes&lt;/strong> qui doivent prendre en charge plusieurs systèmes d&amp;rsquo;exploitation&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="résumé-de-lévaluation">Résumé de l&amp;rsquo;Évaluation
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Point de Vue&lt;/th>
&lt;th>Évaluation&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Vitesse d&amp;rsquo;Exécution&lt;/td>
&lt;td>◎ Très Rapide&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Efficacité de la Mémoire&lt;/td>
&lt;td>◎ Excellente&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Vitesse de Développement&lt;/td>
&lt;td>× Lente&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Maintenabilité&lt;/td>
&lt;td>× Faible&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Support Multiplateforme&lt;/td>
&lt;td>× Non Supporté&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Support de l&amp;rsquo;Interface Utilisateur Moderne&lt;/td>
&lt;td>× Faible&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Liberté de Contrôle du Système d&amp;rsquo;Exploitation&lt;/td>
&lt;td>◎ Écrasante Haute&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="conclusion">Conclusion
&lt;/h2>&lt;p>&lt;strong>Win32API + C++ est un outil pour les développeurs qui &amp;ldquo;veulent tout gérer dans le système d&amp;rsquo;exploitation par eux-mêmes&amp;rdquo;.&lt;/strong>
Bien que sa puissance soit immense, l&amp;rsquo;apprentissage et le fonctionnement nécessitent une détermination correspondante.&lt;/p>
&lt;blockquote>
&lt;p>Le fait que cela vaille la peine de &amp;ldquo;choisir audacieusement&amp;rdquo; dépend de la nature de l&amp;rsquo;application que vous visez.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;p>Plonger dans le monde de &lt;code>#include &amp;lt;windows.h&amp;gt;&lt;/code> sans dépendre de frameworks GUI ou de langages modernes ――
Ce choix est toujours significatif aujourd&amp;rsquo;hui.&lt;/p></description></item><item><title>Collection de Polices pour la Programmation</title><link>http://kenji.blog/fr/p/collection-de-polices-pour-la-programmation/</link><pubDate>Sat, 30 Mar 2024 02:21:31 +0900</pubDate><guid>http://kenji.blog/fr/p/collection-de-polices-pour-la-programmation/</guid><description>&lt;img src="http://kenji.blog/p/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E9%9B%86/img.png" alt="Featured image of post Collection de Polices pour la Programmation" />&lt;h2 id="jetbrains-mono">JetBrains Mono
&lt;/h2>&lt;p>Il s&amp;rsquo;agit d&amp;rsquo;une police de programmation open source fournie par JetBrains.&lt;/p>
&lt;p>Télécharger : &lt;a class="link" href="https://www.jetbrains.com/ja-jp/lp/mono/" target="_blank" rel="noopener"
>https://www.jetbrains.com/ja-jp/lp/mono/&lt;/a>&lt;/p>
&lt;h2 id="hackgen">HackGen
&lt;/h2>&lt;p>Hakugen (HackGen) est une police de programmation qui combine la police anglaise orientée programmation Hack avec GenJyuu Gothic, une police dérivée de Source Han Sans.&lt;/p>
&lt;p>Télécharger : &lt;a class="link" href="https://github.com/yuru7/HackGen/releases" target="_blank" rel="noopener"
>https://github.com/yuru7/HackGen/releases&lt;/a>&lt;/p>
&lt;h2 id="ricty-diminished">Ricty Diminished
&lt;/h2>&lt;p>&lt;code>Ricty Diminished&lt;/code> est une police sœur de &lt;code>Ricty&lt;/code>, créée en combinant &lt;code>Inconsolata&lt;/code> et &lt;code>Circle M+ 1m&lt;/code> avec le script de génération &lt;code>Ricty&lt;/code>, plutôt que &lt;code>Inconsolata&lt;/code> et &lt;code>Migu 1M&lt;/code>. Comme elle n&amp;rsquo;inclut pas les glyphes de la police IPA Gothic, elle comporte moins de glyphes kanji utilisables, mais en contrepartie elle peut être distribuée sous la &lt;code>SIL Open Font License&lt;/code>.&lt;/p>
&lt;p>Télécharger : &lt;a class="link" href="https://rictyfonts.github.io/diminished" target="_blank" rel="noopener"
>https://rictyfonts.github.io/diminished&lt;/a>&lt;/p>
&lt;h2 id="cica">Cica
&lt;/h2>&lt;p>Les caractères alphanumériques et les symboles utilisent &lt;code>Hack&lt;/code> + &lt;code>DejaVu Sans Mono&lt;/code>.
Pour les autres caractères, c&amp;rsquo;est une police de programmation qui utilise &lt;code>Rounded Mgen+&lt;/code>.&lt;/p>
&lt;p>Télécharger : &lt;a class="link" href="https://github.com/miiton/Cica/releases" target="_blank" rel="noopener"
>https://github.com/miiton/Cica/releases&lt;/a>&lt;/p>
&lt;p>Référence :&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://sourcefoundry.org/hack/" target="_blank" rel="noopener"
>Hack&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://dejavu-fonts.github.io/" target="_blank" rel="noopener"
>DejaVu Sans Mono&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="http://jikasei.me/font/rounded-mgenplus/" target="_blank" rel="noopener"
>Rounded Mgen+&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="migu">Migu
&lt;/h2>&lt;p>Il s&amp;rsquo;agit d&amp;rsquo;une police composite de M+ et IPA.&lt;/p>
&lt;p>Télécharger : &lt;a class="link" href="https://itouhiro.github.io/mixfont-mplus-ipa/migu/" target="_blank" rel="noopener"
>https://itouhiro.github.io/mixfont-mplus-ipa/migu/&lt;/a>&lt;/p>
&lt;h2 id="osaka">Osaka
&lt;/h2>&lt;p>C&amp;rsquo;est une police qui permet d&amp;rsquo;utiliser la police standard de Mac OS, &lt;code>Osaka&lt;/code>, sur Windows.&lt;/p>
&lt;p>Télécharger : &lt;a class="link" href="http://ifs.nog.cc/osakattf.hp.infoseek.co.jp/" target="_blank" rel="noopener"
>http://ifs.nog.cc/osakattf.hp.infoseek.co.jp/&lt;/a>&lt;/p>
&lt;h2 id="plemoljp">PlemolJP
&lt;/h2>&lt;p>C&amp;rsquo;est une police de programmation qui combine la police japonaise open source &lt;code>IBM Plex Sans JP&lt;/code> publiée par IBM avec &lt;code>IBM Plex Mono&lt;/code> de la série Plex d&amp;rsquo;IBM.&lt;/p>
&lt;p>Télécharger : &lt;a class="link" href="https://github.com/yuru7/PlemolJP/releases" target="_blank" rel="noopener"
>https://github.com/yuru7/PlemolJP/releases&lt;/a>&lt;/p></description></item><item><title>[Par langage] Résumé des environnements d'exécution de code en ligne</title><link>http://kenji.blog/fr/p/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83%E3%81%BE%E3%81%A8%E3%82%81/</link><pubDate>Sun, 09 Apr 2023 14:01:00 +0900</pubDate><guid>http://kenji.blog/fr/p/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83%E3%81%BE%E3%81%A8%E3%82%81/</guid><description>&lt;img src="http://kenji.blog/p/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83%E3%81%BE%E3%81%A8%E3%82%81/img.png" alt="Featured image of post [Par langage] Résumé des environnements d'exécution de code en ligne" />&lt;h2 id="python">Python
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://colab.research.google.com/#create=true" target="_blank" rel="noopener"
>Google Colaboratory&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Google Colaboratory est un environnement d&amp;rsquo;exécution Python disponible en ligne.&lt;/p>
&lt;ul>
&lt;li>L&amp;rsquo;utilisation de GPU est également possible.&lt;/li>
&lt;li>Avec les notebooks Colab, vous pouvez écrire du code exécutable et du texte enrichi (images, HTML, LaTeX, etc.) dans un seul document.&lt;/li>
&lt;/ul>
&lt;p>Il est basé sur Jupyter Notebook.&lt;/p>
&lt;h2 id="rust">Rust
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://play.rust-lang.org/?version=stable&amp;amp;mode=debug&amp;amp;edition=2021" target="_blank" rel="noopener"
>Rust Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="javascript">JavaScript
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://playcode.io/" target="_blank" rel="noopener"
>Javascript Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="java">Java
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://paiza.io/ja/projects/new?language=java" target="_blank" rel="noopener"
>paiza.IO Online Java compiler&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="haskell">Haskell
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://play.haskell.org/" target="_blank" rel="noopener"
>Haskell Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="swift">Swift
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://online.swiftplayground.run/" target="_blank" rel="noopener"
>Online Swift Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="c">C++
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.onlinegdb.com/online_c&amp;#43;&amp;#43;_compiler" target="_blank" rel="noopener"
>C++ 14&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="autres">Autres
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://aws.amazon.com/jp/cloud9/" target="_blank" rel="noopener"
>AWS Cloud9&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Un environnement de développement intégré en ligne fourni par Amazon AWS. Des outils pour plus de 40 langages de programmation tels que Node.js, JavaScript, Python, PHP, Ruby, Go, C++, etc. sont pré-emballés.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://vscode.dev/" target="_blank" rel="noopener"
>Visual Studio Code for the Web&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Un environnement de développement en ligne fourni par Microsoft. Cependant, les langages nécessitant une compilation ne peuvent pas être exécutés ou débogués.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://paiza.io/projects/CGAcQLfW-IOXYy8Dq2OHBw?locale=ja-jp" target="_blank" rel="noopener"
>paiza.IO&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Un environnement d&amp;rsquo;exécution en ligne prenant en charge 24 langages principaux tels que C, C++, Java, Ruby, Python, PHP, Perl, etc.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://codepen.io/" target="_blank" rel="noopener"
>CodePen&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Un environnement d&amp;rsquo;exécution en ligne pour HTML, CSS et JavaScript.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://codeanywhere.com/" target="_blank" rel="noopener"
>codeanywhere&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Un IDE en ligne. Permet le partage de code et le chat.&lt;/p></description></item></channel></rss>