<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Langages de programmation</title>
		<link>https://www.developpez.net/forums/</link>
		<description>Forum général sur les langages de programmation, sur la POO, opinions, choix, ...</description>
		<language>fr</language>
		<lastBuildDate>Mon, 13 Apr 2026 19:14:57 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - Langages de programmation</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title>Créer une couche de lisibilité humaine par dessus les expressions régulières</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181535&amp;goto=newpost</link>
			<pubDate>Sat, 17 Jan 2026 09:07:31 GMT</pubDate>
			<description><![CDATA[Bonjour.  
 
J'ai eu l'idée...]]></description>
			<content:encoded><![CDATA[<div>Bonjour. <br />
<br />
J'ai eu l'idée d'une amélioration des expressions régulières utilisées en programmation, et je cherche si elle existait déjà.<br />
<br />
Nulle intention de remettre en question les expressions régulières, qui se sont instaurées en tant que standard, mais sont complexes, encore plus pour le débutant et surtout source d'erreurs du fait de leur faible lisibilité dans le cadre d'un travail en équipe. <br />
<br />
Mon idée : <br />
<br />
Décrire ce que l'on souhaite &quot;matcher&quot; dans un langage intelligible humain dans un langage dédié et conçu pour cela.<br />
Ensuite, un logiciel prend la demande en entrée, et génère en sortie l'expression régulière, logiciel qui pourra être agrémenté d'option pour définir des constantes selon tel ou tel langage. <br />
<br />
Vous me direz que cela n'a pas d'intérêt maintenant avec l'IA, car on exprime son besoin à l'IA, l'IA génère, ou prend une expression régulière existante et la modifie selon vos désirs, même plus besoin d'apprendre la syntaxe des expressions régulières. <br />
<br />
Mais malgré tout, la syntaxe de l'expression régulière demeure peu lisible, un peu comme du code assembleur comparé à du langage impératif, où bien qu'en commentant beaucoup on puisse faire une erreur. Il y a les tests unitaires pour parer à ces mégardes me direz-vous.<br />
<br />
Néanmoins, je reste déterminé sur l'intérêt de cette idée, qui est tout à fait intégrable en tant que code source dédié, automatisable dans un makefile ou autre, afin d'avoir une définition intelligible de ce qui est matché, et le respect du standard des expressions régulières en sortie. <br />
<br />
Alors, avant de me lancer dans le développement, j'ai cherché si cela existait déjà. Oui.<br />
<br />
Il y a &quot;Human2Regex&quot;  <a rel="nofollow" href="https://human2regex.com/tutorial.html" target="_blank">https://human2regex.com/tutorial.html</a> qui correspond le mieux à cette idée. Seul regret : le langage dans lequel il est concu, écrit en C/C++ aurait assuré une meilleure portabilité.<br />
<br />
Il existe d'autres projets, mais beaucoup moins &quot;human&quot; : <a rel="nofollow" href="https://github.com/crdoconnor/simex" target="_blank">https://github.com/crdoconnor/simex</a> et <a rel="nofollow" href="https://dottxt-ai.github.io/outlines/1.2.5/features/utility/regex_dsl/" target="_blank">https://dottxt-ai.github.io/outlines...ity/regex_dsl/</a><br />
<br />
En espérant que ce partage vous sera utile.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f41/general-developpement/langages-programmation/">Langages de programmation</category>
			<dc:creator>Access_to_folder</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181535/general-developpement/langages-programmation/creer-couche-lisibilite-humaine-dessus-expressions-regulieres/</guid>
		</item>
		<item>
			<title>Index TIOBE de novembre 2025 : C# connaît la plus forte croissance et menace de ravir la 4e place à Java</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2180512&amp;goto=newpost</link>
			<pubDate>Mon, 17 Nov 2025 21:16:41 GMT</pubDate>
			<description>*Index TIOBE de novembre 2025...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Index TIOBE de novembre 2025 : C# connaît la plus forte croissance et menace de ravir la 4e place à Java, tandis que Go quitte le top 10</font></b><br />
<b><font size="1">Python reste en tête, mais semble avoir atteint un plateau</font></b><br />
<br />
<b>TIOBE publie la dernière mise à jour de son classement des langages de programmation les plus populaires. En novembre 2025, C#, le langage orienté objet, multiplateforme et open source de Microsoft pour la plateforme .NET, est devenu le langage qui connaît la plus forte croissance dans l'index, réduisant l'écart avec Java à moins d'un point de pourcentage. TIOBE estime que C# pourrait finir par dépasser Java en matière de popularité. Les langages établis de longue date restent présents : Perl fait son retour, SQL occupe la 10e place et Go quitte le top 10. Python reste le leader du classement, C consolide sa position de numéro deux et C++ perd du terrain.</b><br />
<br />
Selon le dernier classement TIOBE, le langage C# de Microsoft connaît une croissance remarquable. Sa popularité atteint environ 7,65 %, soit une augmentation de 2,67 points de pourcentage par rapport à 2024. Avec son taux de croissance élevé, il pourrait devenir le langage de l'année 2025 de TIOBE, une distinction attribuée au langage ayant enregistré la plus forte augmentation de notes au cours de l'année. C# a remporté ce prix pour l'année 2023.<br />
<br />
Cette dynamique place désormais C# très proche de Java. C# n'a jamais été mieux classé que Java dans l'indice TIOBE. Mais actuellement, la différence entre les deux langages est inférieure à un point de pourcentage (0,89 %), Java occupant la 4e place avec une note de 8,54 %. C# pourrait bien supplanter Java.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Citation:</div>
	<div class="bbcode_quote printable">
		<hr />
		
			<div>
				Envoyé par <strong>Paul Jansen, PDG de TIOBE Software</strong>
				
			</div>
			<div class="message"><br />
Comment C# a-t-il réussi cela ? Java et C# se livrent bataille depuis longtemps dans les mêmes domaines. À l'heure actuelle, il semble que C# ait éliminé toutes les raisons de ne pas utiliser C# à la place de Java : il est désormais multiplateforme, open source et contient toutes les nouvelles fonctionnalités linguistiques souhaitées par les développeurs. Si le monde financier reste dominé par Java, tous les autres domaines affichent des parts égales entre Java et C#. De plus, Microsoft est en pleine forme et C# reste le langage de programmation le plus soutenu par Microsoft.<br /></div>
			
		<hr />
	</div>
</div><a href="https://dotnet.developpez.com/actu/372078/" target="_blank">C# 14</a>, la dernière version à support à long terme (LTS) du langage .NET, a été lancée récemment dans le cadre de <a href="https://dotnet.developpez.com/actu/377608/" target="_blank">.NET 10</a>. Il est actuellement en cinquième position dans le classement TIOBE. TIOBE mesure la popularité relative des langages de programmation. Ainsi, le fait que C# 14 ait fait l'actualité avec ses versions bêta et préversions successives avant sa sortie officielle a peut-être contribué à faire grimper son pourcentage au cours des derniers mois.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p671862d1763414195/general-developpement/langages-programmation/index-tiobe-novembre-2025-csharp-connait-plus-forte-croissance-menace-ravir-4e-place-java/index-tiobe-novembre-2025.png/" border="0" alt="Nom : index-tiobe-novembre-2025.png
Affichages : 62958
Taille : 80,8 Ko"  style="float: CONFIG" /></div><br />
Paul Jansen, PDG de TIOBE Software, souligne que le langage de Microsoft est là pour rester. « C# grignote des parts de marché à Java et devient de plus en plus populaire dans des domaines tels que les back-ends d'applications Web et les jeux (grâce à Unity). C# peut être utilisé gratuitement et évolue à un rythme soutenu, ce qui rend le langage plus expressif à chaque nouvelle version. C# est là pour rester et pourrait même bientôt dépasser Java ».<br />
<br />
<b><font size="3">C# mérite-t-il de dépasser Java en matière de popularité ?</font></b><br />
<br />
Les avis sont partagés sur cette question. Pour certains, la réponse est un « oui » retentissant. « En tant que langage relativement jeune, lancé pour la première fois en 2000, il n'est pas alourdi par le bagage qui entrave l'illustre Java. Maintenant qu'il est open source, C# n'est plus entaché par son association avec Microsoft. Au contraire, il tire profit de cette association, car Microsoft soutient la communauté open source », a commenté un internaute.<br />
<br />
Il a poursuivi : « C# est désormais indépendant de la plateforme, tout comme Java, et il est sans doute plus facile à utiliser, car il nécessite beaucoup moins de code standard pour effectuer des tâches simples ». Il faut toutefois souligner que, malgré son nom, il n'a pas grand-chose en commun avec le C ou le C++.<br />
<br />
Il s'agit d'un langage structuré par blocs. C# est orienté objet et, plutôt que d'être une extension rajoutée comme le C++, « il s'agit d'une implémentation moderne des concepts orientés objet purs ». Pour certains, les changements introduits par C#14 contribuent également à en faire un concurrent encore plus redoutable à Java. Quant à sa position vis-à-vis de Python, son gros inconvénient était autrefois qu'il était orienté objet dès le départ.<br />
<br />
Il était impossible pour de se familiariser avec C# en évitant ses constructions orientées objet. Aujourd'hui, cela est plus facile, car il est possible d'écrire du code C# qui ressemble beaucoup à un langage de script, même cette approche n'a pas connu le même succès que Python. Enfin, que C# finisse par supplanter ou non Java en matière de popularité, d'autres internautes affirment que le choix du langage dépendra des besoins et d'autres facteurs.<br />
<br />
Est-ce que je pense que C# dépassera Java en termes d'utilisation et d'emplois ? Cela dépend davantage de la quantité de code hérité, de systèmes et de programmeurs Java existants. C# n'a tout simplement pas le même héritage, même si l'on tient compte du fait qu'il était autrefois le langage numéro un de Microsoft.  <br />
<br />
<b><font size="3">Les leaders conservent leur avance, mais l'écart se réduit</font></b><br />
<br />
En novembre 2025, Python conserve toujours la tête du classement TIOBE avec 23,37 % de parts (contre 24,45 % en octobre 2025). En revanche, sa progression ralentit nettement : à peine +0,52 % en un an. Ce léger recul confirme un ralentissement amorcé depuis plusieurs mois. Après plusieurs années de règne incontesté, le langage semble avoir atteint son pic de croissance. Pour certains, la popularité de Python ne fait que se stabiliser. <br />
<br />
Juste derrière, C remonte à 9,68 % et conserve la deuxième place du classement, reflétant un regain d'intérêt à mesure que C23 gagne du terrain. C++ et Java perdent tous deux un peu de terrain, mais restent au coude à coude avec respectivement 8,95 % et 8,54 %. C# ferme la marche du top 5.<br />
<br />
Java, dépassé par Python en 2021, est en déclin depuis lors. « Jusqu'à récemment, personne ne pouvait rivaliser avec les chiffres de croissance de Python. Mais aujourd'hui, Python semble avoir atteint un plateau. À la place de Python, c'est désormais le langage C# qui connaît la croissance la plus remarquable. Si C# parvient à maintenir ce rythme, il pourrait même devenir le langage de programmation TIOBE de l'année 2025 », a écrit Paul Jansen.<br />
<br />
<b><font size="2">Les classiques occupent les places inférieures</font></b><br />
<br />
Au-delà du top 5, le classement reste dominé par les langages de programmation traditionnels plutôt que par les nouveaux venus. JavaScript conserve la sixième place avec 3,42 %, tandis que Visual Basic remonte à la septième place avec une note de 3,31 %. Delphi/Object Pascal remonte à la huitième place avec 2,06 %, tandis que Perl revient dans le top 10 à la neuvième place avec 1,84 % après une forte progression d'une année sur l'autre.<br />
<br />
SQL complète la liste à la dixième place avec 1,80 %, conservant une position qui témoigne de l'importance durable des bases de données relationnelles. Go, qui occupait la huitième place en octobre 2025, sort complètement du top 10. <a href="https://programmation.developpez.com/actu/373759/" target="_blank">Le langage Ada</a>, vieux de 40 ans, qui a surgit à la 9e place de l'index TIOBE, est redescendu à la 17e place. Il est porté par un regain d'intérêt pour les langages robustes, fiables et adaptés aux systèmes critiques.<br />
<br />
<b><font size="3">Pourquoi Python est-il toujours en tête de l'index TIOBE ?</font></b><br />
<br />
Même si Python est plus lent que des langages comme C++ ou Rust, sa popularité n'est pas uniquement liée à la vitesse. Paul Jansen explique que la capacité d'apprendre rapidement un nouveau langage est un facteur crucial. Python est simple, polyvalent et dispose d'une vaste gamme de bibliothèques, ce qui en fait un choix idéal pour les débutants et les ingénieurs non spécialisés dans les logiciels qui souhaitent se lancer dans la programmation.<br />
<br />
Outre l'index TIOBE, le constat est le même dans les autres index qui évaluent la popularité des langages de programmation. Il est néanmoins également important de souligner que Python est un langage très populaire parmi les ingénieurs non informaticiens qui souhaitent se lancer dans la programmation.<br />
<br />
<a href="https://programmation.developpez.com/actu/368270/" target="_blank">La popularité de Python a tellement augmenté qu'il a été désigné « langage de l'année 2024 »</a>. Il s'agit d'une réussite importante, car il a connu la plus forte augmentation de notes au cours de l'année écoulée. En 2024, la popularité de Python a augmenté de 9,3 %, contre 2,3 pour Java et 1,4 pour JavaScript.<br />
<br />
<b><font size="3">Les index TIOBE et PYPL : une comparaison des deux classements</font></b><br />
<br />
<ol class="decimal"><li style="">Python (23,37 %) ;</li><li style="">C (9, 68 %) ;</li><li style="">C++ (8,95 %) ;</li><li style="">Java (8,54 %) ;</li><li style="">C# (7,65 %) ;</li><li style="">JavaScript (3,42 %) ;</li><li style="">Visual Basic (3,31 %) ;</li><li style="">Delphi/Object Pascal (2, 06 %)</li><li style="">Perl (1,84 %) ;</li><li style="">SQL (1 8 %).</li></ol><br />
<br />
L'index PYPL présente quant à lui le top 10 suivant pour novembre 2025 :<br />
<br />
<ol class="decimal"><li style="">Python (27, 3 %) ;</li><li style="">Java (12, 47 %) ;</li><li style="">C/C++ (11, 5 %) ;</li><li style="">Objective-C (9,65 %) ;</li><li style="">R (5,7 %) ;</li><li style="">JavaScript (5,6 %) ;</li><li style="">C# (3,62 %) ;</li><li style="">Swift (3,41 %) ;</li><li style="">PHP (3, 04 %) ;</li><li style="">Rust (2,62 %).</li></ol><br />
<br />
<b><font size="3">Ces tendances ne sont pas représentatives du paysage français</font></b><br />
<br />
Comme souligné plus haut, l'index TIOBE Programming Community est un indicateur de la popularité des langages de programmation. L'index est mis à jour une fois par mois. Les notes sont basées sur le nombre d'ingénieurs qualifiés dans le monde, les cours et les fournisseurs tiers. Les moteurs de recherche populaires tels que Google, Bing, Yahoo!, Wikipédia, Amazon, YouTube et Baidu sont utilisés pour calculer les notes.<br />
<br />
Il est important de noter que l'index TIOBE ne concerne pas le meilleur langage de programmation ou le langage dans lequel la plupart des lignes de code ont été écrites. L'index peut être utilisé pour vérifier si vos compétences en programmation sont toujours à jour ou pour prendre une décision stratégique sur le langage de programmation à adopter lors du démarrage de la construction d'un nouveau système logiciel.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p671861d1763413795/general-developpement/langages-programmation/index-tiobe-novembre-2025-csharp-connait-plus-forte-croissance-menace-ravir-4e-place-java/popu.png/" border="0" alt="Nom : Popu.png
Affichages : 7962
Taille : 887,0 Ko"  style="float: CONFIG" /><br />
<b>Popularité des langages dans les offres d'emploi</b><br />
</div><br />
:fleche: <a href="https://emploi.developpez.com/actu/356753/" target="_blank"><b>Emploi informatique : les langages les plus demandés et les mieux payés</b></a><br />
:fleche: <a href="https://emploi.developpez.com/" target="_blank"><b>Portail Emploi de Developpez.com</b></a><br />
<br />
Sources : <a rel="nofollow" href="https://www.tiobe.com/tiobe-index/" target="_blank">classement TIOBE de novembre 2025</a>, <a rel="nofollow" href="https://pypl.github.io/PYPL.html" target="_blank">classement PYPL de novembre 2025</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Quel est votre avis sur le sujet ?<br />
:fleche: Que pensez-vous de la progression de C# dans l'index TIOBE ?<br />
:fleche: Selon vous, C# finira-t-il par supplanter Java en matière de popularité et d'usage ?<br />
:fleche: Que pensez-vous de la popularité des langages de programmation dans le nouveau classement TIOBE ?<br />
:fleche: Quelle comparaison faites-vous entre les classements TIOBE et PYPL ?<br />
<br />
<b>Voir aussi</b><br />
<br />
:fleche: <a href="https://programmation.developpez.com/actu/376112/" target="_blank">Langages les plus utilisés en 2025 : Python règne en maître, SQL revient en force, JavaScript perd du terrain, selon IEEE.<br />
L'impact du vibe coding IA commencerait-il à se faire ressentir sur les index ?</a><br />
<br />
:fleche: <a href="https://programmation.developpez.com/actu/373759/" target="_blank">Le langage Ada, vieux de 40 ans, resurgit à la 9e place de l'index TIOBE, porté par un regain d'intérêt pour les langages robustes, fiables et adaptés aux systèmes critiques, Object Pascal est classé 10e</a><br />
<br />
:fleche: <a href="https://programmation.developpez.com/actu/369202/" target="_blank">Les langages de programmation rapides sont-ils de plus en plus populaires ? L'index TIOBE indique que les langages rapides tels que C++, Go et Rust gagnent du terrain grâce à l'IA et le traitement de données</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p671861d1763413795/general-developpement/langages-programmation/index-tiobe-novembre-2025-csharp-connait-plus-forte-croissance-menace-ravir-4e-place-java/popu.png/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p671862d1763414195/general-developpement/langages-programmation/index-tiobe-novembre-2025-csharp-connait-plus-forte-croissance-menace-ravir-4e-place-java/index-tiobe-novembre-2025.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f41/general-developpement/langages-programmation/">Langages de programmation</category>
			<dc:creator>Mathis Lucas</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2180512/general-developpement/langages-programmation/index-tiobe-novembre-2025-csharp-connait-plus-forte-croissance-menace-ravir-4e-place-java/</guid>
		</item>
		<item>
			<title>Développement petite application restauration</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179754&amp;goto=newpost</link>
			<pubDate>Thu, 09 Oct 2025 11:52:33 GMT</pubDate>
			<description>Bonjour à tous, 
 
Je...</description>
			<content:encoded><![CDATA[<div>Bonjour à tous,<br />
<br />
Je souhaiterai avoir vos conseils car je m'apprête à développer une petite application pour une petite entreprise de restauration.<br />
<br />
Je dois faire une petite application qui sera responsive (smartphone, tablette et PC).<br />
<br />
Elle doit service à enregistrer des prestations chez des clients et envoyer l'information à des personnes qui personnes qui interviendront pour faire le service.<br />
<br />
j'ai pensé au combo power apps/SharePoint mais le cout des licences est très important car il risque d'y avoir une 100ène de personne inscrite.<br />
<br />
J'ai cherché et je m'orienterai bien vers &quot;Flutter&quot; pour la partie DEV et &quot;Airtable&quot; pour le stockage de la base de données.<br />
<br />
Avez vous des conseils à me donner ou des astuces qui pourront m'aider à faire un choix éclairé.<br />
<br />
Mille merci pour vos précieux conseils.<br />
<br />
Belle journée à vous.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f41/general-developpement/langages-programmation/">Langages de programmation</category>
			<dc:creator>Oliver4551</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179754/general-developpement/langages-programmation/developpement-petite-application-restauration/</guid>
		</item>
		<item>
			<title><![CDATA[Le langage de programmation Ada, vieux de 40 ans, réapparaît dans le top 10 de l'index TIOBE]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2178065&amp;goto=newpost</link>
			<pubDate>Tue, 15 Jul 2025 09:32:42 GMT</pubDate>
			<description>*Le langage Ada, vieux de 40...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Le langage Ada, vieux de 40 ans, resurgit à la 9e place de l'index TIOBE, porté par un regain d’intérêt pour les langages robustes, fiables et adaptés aux systèmes critiques</font></b><br />
<b><font size="1">Object Pascal est classé 10e</font></b><br />
<br />
<b>TIOBE souligne un retour en grâce des langages de programmation anciens et matures comme Ada, Fortran, Perl, Delphi et Visual Basic. En particulier, Ada se distingue en atteignant la 9e place du classement TIOBE de juillet 2025. Cette résurgence serait portée par l’utilisation croissante d’Ada dans des secteurs où la sécurité et la fiabilité sont cruciales, comme l’aéronautique et l’automobile. <a href="https://microsoft.developpez.com/actu/360467/" target="_blank">La fiabilité des systèmes critiques redevient une priorité après la panne informatique mondiale provoquée par CrowdStrike</a> et les déboires techniques de Boeing. En février, TIOBE a signalé que les langages rapides tels que C++, Go et Rust ont le vent en poupe.</b><br />
<br />
Le classement TIOBE de juillet 2025 suscite un grand débat dans la communauté technologique. La discussion est centrée sur le retour en force du langage de programmation Ada, vieux de 40 ans, dans le top 10 de l'index. Certains remettent en cause le classement, mais le PDG de TIOBE, Paul Jansen, rapporte que la remontée du langage Ada est liée à l'importance qu'il accorde à la sécurité, en citant son utilisation dans les systèmes hautement critiques.<br />
<br />
Ada est un langage de programmation orienté objet dont les premières versions remontent au début des années 1980. La dernière version publiée est Ada 2022. Ada a été à l'origine conçu en réponse à un cahier des charges établi par le ministère de la Défense des États-Unis. Ce dernier voulait rationaliser et sécuriser le développement logiciel de ses systèmes embarqués, souvent complexes, coûteux, et déployés dans des contextes de mission critique.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p668749d1752571757/general-developpement/langages-programmation/langage-programmation-ada-vieux-40-ans-reapparait-top-10-l-index-tiobe/162914of17j5wlnh949k90.png/" border="0" alt="Nom : 162914of17j5wlnh949k90.png
Affichages : 51788
Taille : 170,9 Ko"  style="float: CONFIG" /></div><br />
Le nom « Ada » a été choisi en l’honneur d’Ada Lovelace, première informaticienne de l’histoire. Ada ne bat pas des records en matière de vitesse brute, mais il est reconnu pour ses excellentes performances en matière de fiabilité, de sécurité et de prédictibilité dans les systèmes embarqués et temps réel.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Citation:</div>
	<div class="bbcode_quote printable">
		<hr />
		
			<div>
				Envoyé par <strong>Paul Jansen, PDG de TIOBE</strong>
				
			</div>
			<div class="message"><br />
Les 7 premiers langages de l'indice TIOBE sont les mêmes depuis deux ans. On ne peut pas en dire autant des langages classés entre la 8e et la 12e place. Ils changent de position chaque mois. C'est une bataille permanente entre les anciens : Visual Basic, SQL, Fortran, Ada, Perl et Delphi. Et chaque fois que l'on pense que l'un d'entre eux va rester dans le top 10, il est remplacé par un autre langage. Plus remarquable encore, d'autres nouveaux langages devraient entrer dans le top 10 à la place de ces anciens. Où sont Rust, Kotlin, Dart et Julia ?<br />
<br />
Apparemment, les langages établis ont la cote. Mais lequel l'emportera ? Honnêtement, c'est très difficile à dire, mais je parierais sur Ada. Avec des exigences toujours plus strictes en matière de sécurité, Ada, en tant que langage de programmation système dans le domaine critique pour la sécurité, est probablement le mieux placé pour survivre.<br /></div>
			
		<hr />
	</div>
</div>Les secteurs de l'avionique et de l'automobile seraient en train de revenir à Ada. L'inclusion d'Ada dans le top 10 pourrait donc être un signe de la pertinence durable du langage dans ces secteurs. Nvidia, le géant des accélérateurs d'IA, teste également le langage Ada dans certains projets liés à la sécurité critique, notamment via le langage SPARK pour du firmware fiable. Il est important de noter que cela n'a aucun lien avec les GPU « Ada Lovelace » de Nvidia.<br />
<br />
Ada remporte la palme de la remontée la plus spectaculaire dans l'index TIOBE en un an, passant de la 24e place en juillet 2024 à la 9e place en juillet 2025. Il est suivi par Delphi/Object Pascal, à la 10e place. <a href="https://programmation.developpez.com/actu/271830/" target="_blank">Le langage de programmation Pascal continue de déjouer les pronostiques sur sa mort</a>. Alors que certains membres de la communauté technologique le considèrent comme mort, sa place dans le classement TIOBE suggère qu'il est toujours très sollicité.<br />
<br />
<b><font size="3">L'index TIOBE révèle une popularité croissante des langages jugés rapides</font></b><br />
<br />
Outre la fiabilité, la vitesse est une autre exigence majeure des systèmes modernes. TIOBE souligne l'importance croissante des langages de programmation rapides pour des tâches telles que l'exploration de données, le traitement vidéo et le commerce. Python occupe toujours la première place avec une note de 26.98 %, suivi par les langages comme C++ (9,80 %), C (9, 65 %) et Java (8,76 %). C# de Microsoft ferme le top 5 du classement de juillet 2025.<br />
<br />
JavaScript (3, 66 %) est classé à la 6e place et Go (2, 04 %) à la 7e place. Selon le classement TIOBE de février 2025, les langages C++, Go et Rust gagnent en popularité en raison de leurs performances en matière de vitesse pour le traitement rapide de grandes quantités de données.<br />
<br />
TIOBE indique que ces langages deviennent essentiels dans les industries qui exigent des performances en temps réel et une puissance de calcul élevée. TIOBE avait également mis en avant Mojo et Zig, deux langages rapides qui gagnent en popularité. Si Python reste très populaire, les développeurs dans des domaines tels que l'IA, l'analyse de données et le trading financier se tournent vers des langages plus rapides pour obtenir de meilleures performances.<br />
<br />
<b><font size="3">Pourquoi Python est-il toujours en tête du classement de l'index TIOBE ?</font></b><br />
<br />
Même si Python est plus lent que des langages comme C++ ou Rust, sa popularité n'est pas uniquement liée à la vitesse. Paul Jansen explique que la capacité d'apprendre rapidement un nouveau langage est un facteur crucial. Python est simple, polyvalent et dispose d'une vaste gamme de bibliothèques, ce qui en fait un choix idéal pour les débutants et les ingénieurs non spécialisés dans les logiciels qui souhaitent se lancer dans la programmation.<br />
<br />
Outre l'index TIOBE, le constat est le même dans les autres index qui évaluent la popularité des langages de programmation. Il est néanmoins également important de souligner que Python est un langage très populaire parmi les ingénieurs non informaticiens qui souhaitent se lancer dans la programmation.<br />
<br />
La popularité de Python a tellement augmenté qu'il a été désigné « langage de l'année 2024 ». Il s'agit d'une réussite importante, car il a connu la plus forte augmentation de notes au cours de l'année écoulée. En 2024, la popularité de Python a augmenté de 9,3 %, contre 2,3 pour Java et 1,4 pour JavaScript.<br />
<br />
<b><font size="3">Les index TIOBE et PYPL : une comparaison des deux classements</font></b><br />
<br />
L'index TIOBE évalue la popularité des langages de programmation en tenant compte de facteurs tels que le nombre d'ingénieurs qualifiés, les cours en ligne et les fournisseurs tiers. En revanche, l'index PYPL de popularité des langages de programmation se concentre sur la fréquence des recherches de tutoriels pour chaque langage sur Google. Pour juillet 2025, l'index TIOBE classe les 10 premiers langages de programmation les plus populaires comme suit :<br />
<br />
<ol class="decimal"><li style="">Python (26,98 %) ;</li><li style="">C++ (9,8 %) ;</li><li style="">C (9,65 %) ;</li><li style="">Java (8,76 %) ;</li><li style="">C# (4,87 %) ;</li><li style="">JavaScript (3,36 %) ;</li><li style="">Go (Golang) (2, 04%) ;</li><li style="">Visual Basic (1,94%) ;</li><li style="">Ada (1,77 %) ;</li><li style=""> Delphi/Object Pascal (1,77%).</li></ol><br />
<br />
L'index PYPL présente quant à lui le top 10 suivant pour juillet 2025 :<br />
<br />
<ol class="decimal"><li style="">Python (31,47 %) ;</li><li style="">Java (15,22 %) ;</li><li style="">JavaScript (7,65 %) ;</li><li style="">C/C++ (7,05 %) ;</li><li style="">C# (5,81 %) ;</li><li style="">R (4,88 %) ;</li><li style="">PHP (3,55 %) ;</li><li style="">TypeScript (2,76 %) ;</li><li style="">Objective-C (2,76 %) ;</li><li style="">Rust (2,72 %).</li></ol><br />
<br />
<b><font size="3">Ces tendances ne sont pas représentatives du paysage français</font></b><br />
<br />
Comme souligné plus haut, l'index TIOBE Programming Community est un indicateur de la popularité des langages de programmation. L'index est mis à jour une fois par mois. Les notes sont basées sur le nombre d'ingénieurs qualifiés dans le monde, les cours et les fournisseurs tiers. Les moteurs de recherche populaires tels que Google, Bing, Yahoo!, Wikipédia, Amazon, YouTube et Baidu sont utilisés pour calculer les notes.<br />
<br />
Il est important de noter que l'index TIOBE ne concerne pas le meilleur langage de programmation ou le langage dans lequel la plupart des lignes de code ont été écrites. L'index peut être utilisé pour vérifier si vos compétences en programmation sont toujours à jour ou pour prendre une décision stratégique sur le langage de programmation à adopter lors du démarrage de la construction d'un nouveau système logiciel.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p668751d1752571893/general-developpement/langages-programmation/langage-programmation-ada-vieux-40-ans-reapparait-top-10-l-index-tiobe/3.jpg/" border="0" alt="Nom : 3.jpg
Affichages : 16331
Taille : 89,9 Ko"  style="float: CONFIG" /></div><br />
Sources : <a rel="nofollow" href="https://www.tiobe.com/tiobe-index/" target="_blank">classement TIOBE de juillet 2025</a>, <a rel="nofollow" href="https://pypl.github.io/PYPL.html" target="_blank">classement PYPL de juillet 2025</a><br />
<br />
:fleche: <a href="https://emploi.developpez.com/actu/356753/" target="_blank">Emploi informatique 2023 : les langages les plus demandés et les mieux payés</a><br />
:fleche: <a href="https://emploi.developpez.com/" target="_blank">Portail Emploi de Developpez.com</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Que pensez-vous des classements des index TIOBE et PYPL de juillet 2025 ?<br />
:fleche: Que pensez-vous de la position des langages comme Ada, Fortran, Perl, Delphi, Visual Basic et Object Pascal dans l'index TIOBE de juillet 2025 ?<br />
:fleche: Le PDG de TIOBE estime que la résurgence du langage Ada est portée par l'accent mis par l'industrie sur la sécurité et la fiabilité des systèmes critiques. Qu'en pensez-vous ? <br />
<br />
<b>Voir aussi</b><br />
<br />
:fleche: <a href="https://programmation.developpez.com/actu/369202/" target="_blank">Les langages de programmation rapides sont-ils de plus en plus populaires ? L'index TIOBE indique que les langages rapides tels que C++, Go et Rust gagnent du terrain, grâce à l'IA et le traitement de données</a><br />
<br />
:fleche: <a href="https://programmation.developpez.com/actu/368270/" target="_blank">Les langages de programmation les plus populaires : les données de 1958 à 2025 en vidéo, Python est le langage de programmation de l'année 2024</a><br />
<br />
:fleche: <a href="https://programmation.developpez.com/actu/357999/" target="_blank">Entre modernité et tradition : FORTRAN et COBOL réintègrent le classement de TIOBE sur la popularité des langages de programmation, un retour aux sources ou un frein à l'innovation ?</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p668749d1752571757/general-developpement/langages-programmation/langage-programmation-ada-vieux-40-ans-reapparait-top-10-l-index-tiobe/162914of17j5wlnh949k90.png/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p668751d1752571893/general-developpement/langages-programmation/langage-programmation-ada-vieux-40-ans-reapparait-top-10-l-index-tiobe/3.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f41/general-developpement/langages-programmation/">Langages de programmation</category>
			<dc:creator>Mathis Lucas</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2178065/general-developpement/langages-programmation/langage-programmation-ada-vieux-40-ans-reapparait-top-10-l-index-tiobe/</guid>
		</item>
		<item>
			<title>Langage de programmation</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177280&amp;goto=newpost</link>
			<pubDate>Mon, 02 Jun 2025 20:39:43 GMT</pubDate>
			<description>Quel est le langage de...</description>
			<content:encoded><![CDATA[<div>Quel est le langage de programmation le plus facile à utiliser pour un débutant ??</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f41/general-developpement/langages-programmation/">Langages de programmation</category>
			<dc:creator>Onesime Longo</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177280/general-developpement/langages-programmation/langage-programmation/</guid>
		</item>
		<item>
			<title>« Home » : réflexions sur un nouveau langage</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177740&amp;goto=newpost</link>
			<pubDate>Thu, 22 May 2025 20:26:00 GMT</pubDate>
			<description>NdlM : discussion...</description>
			<content:encoded><![CDATA[<div><font size="1"><font color="#A9A9A9">NdlM : discussion initialement ouverte depuis <a href="https://www.developpez.net/forums/d2176784/c-cpp/cpp/mamadou-babaei-cpp-n-besoin-d-nounou-verificateur-d-emprunts-rust/" target="_blank">ce fil</a>.</font></font><br />
<br />
Je suis ce fil de discution, car <b>le sujet m'intéresse</b>.  Il m'intéresse parce que pour projet &quot;perso&quot;, je suis en train de définir <b>un nouveau langage et un compilateur pour ce langage</b>.<br />
<br />
Je précise de suite que <b>je n'ai pas d'ambition particulière pour ce langage</b>, il ne vise pas a remplacer telle ou telle langage, et ne sortira certainement jamais de chez moi.  C'est plus par plaisir.  J'ai toujours voulu &quot;écrire un compilateur&quot;, mais le faire pour un langage existant ne m'interesse pas du tout.  <b>D'où la création d'un langage.</b><br />
<br />
Je précise aussi, par honnêteté, que j'ai abandonner le C++ il y a <b>plus de 15 ans</b>, car sa &quot;syntaxe&quot; devenait de plus en plus imbuvale.  C'est un avis personnel.  Je n'ai pas abandonné le C++ pour les raisons qui sont discutées ici (<b>la sécurisation de la mémoire</b>).<br />
<br />
Je voulait que mon langage reste <b>simple a lire et a comprendre</b>.  Je pourrai développer pourquoi, mais ce n'est pas le sujet.<br />
<br />
Je ne pratique pas Rust non plus, car je n'ai pas eu l'occasion d'y regarder de près, car dans mon domaine, <b>c'est le C et rien d'autre</b>.<br />
<br />
Ces petites précisions étant faites, je vais aborder le débat tel qu'il est posé ici.  C'est à dire, <b>faut-il passer du C++ à Rust</b>.  <br />
<br />
Je n'ai pas d'avis tranché sur la question, car <b>si Rust apporte une sécurité de la gestion mémoire</b>, j'ai du mal a comprendre pourquoi l'équipe de Rust a fait certains choix.  Je pense que ces choix ont été fais car <b>Rust ne voulais trop s'éloigner de la syntaxe &quot;de base&quot; du C++</b>, afin d'attirer à lui ces derniers.  C'est certainement <b>un choix plus &quot;marketing&quot; que &quot;technique&quot;</b>.  Mais je ne veux pas rentrer dans ce débât.<br />
<br />
Bref, je suis conscient que Rust apporte un plus au niveau sécurité, mais je pense qu'il aurait pu faire cela plus &quot;simplement&quot; (même si la solution Rust est tout à fait correcte, pertinante, utilisable et qu'on peut faire <i><b>avec</b></i>).<br />
<br />
Je vais tenter d'expliquer mon point de vue.  Si je commet une erreur dans mon raisonnement, je suis tout à fait capable d'entendre les arguments contre &quot;ma petit réfexion&quot;.<br />
<br />
Allez, je me lance.  Le premier principe (pour la sécurisation de la mémoire) est l'Ownership.<br />
<br />
1./ Que le scope où est fait une allocation soit &quot;propriétaire ET responsable&quot; de cette allocation, je trouve cela tout à fait normal.<br />
2./ Que l'on désalloue la mémoire à la fin de ce scope, est tout aussi normal.<br />
<br />
Là où <b>je pense que Rust a commis une erreur</b>, c'est dans la 3ème règle, qui &quot;transfert&quot; la propriété au scope de la fonction appelée.<br />
<br />
Il <b>&quot;transfert&quot;</b> la propriété, <b>mais si</b> <b><font color="#FF0000">&quot;on ne la lui rend pas&quot;</font></b> (ce qui est &quot;possible&quot;, puisque non imposé), il ne vas pas permettre de compiler le code, car cela pourrait, si le scope la fonction appelée étant maintenant &quot;propritétaire&quot; déssalouait la mémoire à la sortie de son scope, provoquer un <b>after-free-bug</b> au niveau de l'appelant.<br />
<br />
Donc, pour réssoudre se problème, intervient le second principe de Rust, <b>le &quot;Borrowing&quot;</b>.  <b>Borrowing signifie &quot;emprunt&quot;</b>, et &quot;dans ma petite tête&quot;, <b>emprunter ne veut pas dire donner</b>.  Cette notion de &quot;Borrowing&quot; utilise des &quot;références partagés&quot;, mais non &quot;mutable&quot;, ou une référence &quot;mutable&quot;.  Logiquement, on ne peut pas avoir les 2 en même temps, on peut utiliser <b>soit une seule référence mutable</b>, <b>soit plusieurs référence &quot;immutable&quot;</b>.<br />
<br />
Mon &quot;analyse&quot; est-elle correcte jusqu'ici ?  Il me semble que oui.  Il est dit que <b>cela n'est pas gênant</b>, car tout les scénarios possibles peuvent fonctionner en utilisant ce &quot;système&quot;.  Je veux bien le croire, même si je n'ai pas vérifié que cette affirmation était vraiment valable.<br />
<br />
Mais pour vérifier tout cela, <b>Rust nécessite un &quot;Borrow Checker&quot;, qui va &quot;surveiller&quot; que ces règles sont bien respectées</b>.  Et refuser la compilation si ce n'est pas le cas.<br />
<br />
Suis-je toujours dans le vrai ?  Il me semble que oui.<br />
<br />
Mais la cause, <b><font color="#FF0000">la racine de toute cette infrastucture</font></b>, est la notion de <b><font color="#FF0000">&quot;tranfert&quot;</font></b>, et le fait que de fil en aiguille, <b><font color="#FF0000">il faut un &quot;BorrowChecker&quot; pour que l'ensemble fonctionne</font></b>.<br />
<br />
L'équipe qui a développé Rust est très certainement d'un niveau supérieur au mien, je n'en doute pas.  <b>Je ne suis pas un théoricien</b> et certainement <b>pas un spécialiste des compilateurs</b> (c'est le premier compilateur que j'écris, entièrement à la main) mais je suis un <b>pragmatique</b> il me semble que j'ai trouvé une &quot;solution&quot; plus simple et pratique pour le même résultat, que je suis en train d'implémenter dans mon petit langage perso.  Je suis comme ça, j'aime simplifier.<br />
<br />
<b>Pour que cette &quot;solution plus simple&quot; puisse être utilisée, il faut 1 condition.</b><br />
<br />
3./ <b>Puisse qu'emprunté signifie &quot;rendre à un moment donné&quot; ce qui a été emprunté</b>, <b>il faut que le compilateur puisse obliger une fonction qu'on appel et qui a &quot;emprunté&quot; la &quot;propriété&quot; de la rende au &quot;propriétaire d'origine&quot;</b>.  <font color="#FF0000">Ce qui n'est pas possible en Rust</font>, me semble-t-il.  Ce n'est pas possible, selon moi, mais dites-moi si je me trompe, parce que Rust ne fait pas la distinction entre ce que je nomme <b>des paramètres d'entrées</b> (qui sont contant par défaut), et <b>des paramètres de sortie</b> (variable par défaut, ce qui est somme toute logique) mais qui sont &quot;obligés&quot;, par la syntaxe même d'une fonction d'être retournés à l'appelant, ce dernier ne pouvant pas ignorer ces dernier, <b>ce qui est toujours le cas dans le type de fonction que j'ai implémenter dans mon langage</b>.<br />
<br />
Voici comment on déclare une fonction dans mon langage :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0">
fct addition(int8 a, b) &lt;- int16 result:
    result := a + b
end</pre></td></tr></table></code><hr />
</div><b>a</b>, et <b>b</b> sont des <b>entiers 8 bits constants</b>, <b>intialisé lors de l'appel de la fonction</b>.  Ce sont des <b><font color="#FF0000">&quot;paramètres d'entrées&quot;</font></b>.<br />
<br />
<b>result</b>, placé après le symbole <b>&lt;-</b> est lui un <b><font color="#FF0000">&quot;paramètre de sortie&quot; variable</font></b>.<br />
<br />
Cette <b>disctintion</b> est un des points clef de ma méthode.<br />
<br />
Voici comment &quot;on doit utiliser&quot; cette fonction :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0">
int16 add
add := addition(10, 30)</pre></td></tr></table></code><hr />
</div>3./ add est un entier 16 bits.  Lors de l'appel de la fonction, il est donné en argument par le compilateur comme étant un troisiéme paramètre, utilisé sous le nom de &quot;result&quot; dans le corps de la fonction.<br />
<br />
4./ On ne peut pas, de la sorte, ignorer la valeur de retour, puisque <b>cette valeur de retour est la variable qui est assignée</b>.  Le troisième paramètre <b>est la valeur de retour</b>.<br />
<br />
Si on applique le même principe lorsque l'on &quot;prête&quot; un &quot;pointeur&quot;, cette méthode &quot;assure par la syntaxe&quot; que ce &quot;pointeur&quot; qui est emprunté est obligatoirement rendu à l'appelant.<br />
<br />
Conclusion:<br />
<br />
Il n'y pas besoin de &quot;tranfert&quot;, il y a juste besoin &quot;un prêt&quot;, dont on est assuré qu'il soit &quot;rendu&quot;, et donc, pas besoin de &quot;BorrowChecker&quot; pour surveiller cela, puisqu'il est impossible, &quot;par la syntaxe d'une fonction&quot;, d'ignorer que ce qui est rendu.<br />
<br />
On peut écrire:<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td valign="top"><pre style="margin: 0">
fct allocation(int8 size) &lt;- 'ptr' int8 result:
    result := alloc(size)
end

'ptr' int8 mem
mem := allocation(250)</pre></td></tr></table></code><hr />
</div>Il n'y a même pas besoin de parler d'Onwnership, de Borrowing et de BorrowChecker pour utiliser correctement, et sans erreur possible une fonction.<br />
Le compilateur sait que result est un paramètre de sortie, <b>et qu'il ne DOIT PAS le désallouer en fin de scope</b>.<br />
<br />
Si l'allocation est 'interne' à la fonction, il le sait aussi, et DOIT le désallouer en fin de scope.<br />
<br />
Voilà voilà, j'attend vos critiques et/ou rélexions sur le sujet.<br />
<br />
BàV et &quot;Peace &amp; Love&quot;.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f41/general-developpement/langages-programmation/">Langages de programmation</category>
			<dc:creator>OuftiBoy</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177740/general-developpement/langages-programmation/home-reflexions-nouveau-langage/</guid>
		</item>
		<item>
			<title>Qui est le plus recruter ? Flutter vs Kotlin</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2176579&amp;goto=newpost</link>
			<pubDate>Fri, 02 May 2025 14:25:31 GMT</pubDate>
			<description>Bonjour, 
 
Je suis un...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je suis un développeur Junior (bientôt sortie des études), et j'habite en Vendée. Il n'y a pas beaucoup de travail en Vendée. J'envisage donc de déménager dans la régions des pays de la Loire.<br />
<br />
Je veux être développeur mobile, mais j'hésite entre plusieurs techno, et je me demande avec lequel j'aurais plus de facilité de trouver un travail et d'évoluer.<br />
<br />
Est-ce qu'il vaut mieux que je me spécialise en tant que Développeur Flutter ? Full-stack ou non ? ou alors Développeur Kolin ? Java ? Full stack ou non ? <br />
<br />
Je suis assez perdu et j'ai peur de faire le mauvais choix<br />
<br />
Est-ce qu'un développeur mobile pourrais m'éclairer ?<br />
<br />
Merci d'avance :D</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f41/general-developpement/langages-programmation/">Langages de programmation</category>
			<dc:creator>IxemGod</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2176579/general-developpement/langages-programmation/plus-recruter-flutter-vs-kotlin/</guid>
		</item>
		<item>
			<title>La version 15.1 de GCC est disponible avec un compilateur COBOL et de nombreuses autres améliorations</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2176475&amp;goto=newpost</link>
			<pubDate>Mon, 28 Apr 2025 09:46:15 GMT</pubDate>
			<description>*La version 15.1 de GCC est...</description>
			<content:encoded><![CDATA[<div><b><font size="4">La version 15.1 de GCC est disponible avec un compilateur COBOL et de nombreuses autres améliorations</font></b><br />
<br />
<b>GCC 15.1 vient d'être publié en tant que nouvelle version annuelle de la GNU Compiler Collection. Cette première version stable de GCC 15 apporte un compilateur COBOL frontal, de nombreuses améliorations dans le support des langages C et C++, le support de nouveaux processeurs et de nouvelles capacités ISA, un meilleur support du langage de programmation Rust, des améliorations dans le débogage, et bien d'autres choses encore.</b><br />
<br />
GCC est une collection de compilateurs du projet GNU qui prend en charge différents langages de programmation, architectures matérielles et systèmes d'exploitation. La Free Software Foundation (FSF) distribue GCC en tant que logiciel libre sous la licence publique générale GNU (GNU GPL). GCC est un composant clé de la chaîne d'outils GNU, utilisée pour la plupart des projets liés à GNU et au noyau Linux. Avec environ 15 millions de lignes de code en 2019, GCC est l'un des plus grands programmes libres existants. Il a joué un rôle important dans la croissance du logiciel libre, à la fois comme outil et comme exemple.<br />
<br />
La nouvelle version GCC 15.1 propose une interface pour le langage COBOL, diverses améliorations de la convivialité, de nombreuses améliorations du langage de programmation Rust pour gccrs, le passage de la version par défaut du langage C à C23, des améliorations de la cible AMD Zen 5 « znver5 » parmi d'autres nouvelles optimisations de la cible AMD Zen, le ciblage des Intel Xeon 7 Diamond Rapids, la prise en charge de l'Intel AVX10. 2 pour la nouvelle révision de 512 bits seulement, plus d'activations Intel Advanced Performance Extensions « APX », la suppression du support Xeon Phi, des améliorations OpenMP offloading, et beaucoup d'autres changements du support matériel aux caractéristiques du langage.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p666902d1745833550/general-developpement/langages-programmation/version-15-1-gcc-disponible-compilateur-cobol-nombreuses-autres-ameliorations/gcc-15.1.png/" border="0" alt="Nom : gcc 15.1.PNG
Affichages : 55231
Taille : 347,8 Ko"  style="float: CONFIG" /></div><br />
Le back-end AMDGPU pour les processeurs graphiques AMD prend désormais en charge la bibliothèque C++ standard (libstdc++), la prise en charge expérimentale des périphériques génériques et le retrait de la prise en charge du GPU Fiji. De même, le back-end NVIDIA NVPTX avec GCC15 prend également en charge libstdc++.<br />
<br />
Les interfaces des langages D et Modula-2 de GCC, dont on parle moins, ont également fait l'objet d'un travail considérable, tout comme l'interface Fortran.<br />
<br />
<b><font size="3">Fonctionnalités de C++26</font></b><br />
<br />
Les fonctionnalités C++26 de GCC 15 comprennent l'indexation des paquets, les attributs pour les liaisons structurées, la prise en charge améliorée des fonctions dont la définition consiste en <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">=delete</span>, et plus encore.<br />
<br />
<b><font size="2">Indexation des paquets</font></b><br />
<br />
C++11 a introduit les modèles variadiques qui permettent au programmeur d'écrire des modèles qui acceptent n'importe quel nombre d'arguments de modèle. Un paquet peut représenter une série de types ou de valeurs. Par exemple, pour imprimer des arguments arbitraires, on peut écrire :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td valign="top"><pre style="margin: 0">template&lt;typename T, typename... Types&gt;
void print (T t, Types... args)
{
  std::cout &lt;&lt; t &lt;&lt; '\n';
  if constexpr (sizeof...(args) &gt; 0)
    print (args...);
}

int main ()
{
  print ('a', &quot;foo&quot;, 42);
}</pre></td></tr></table></code><hr />
</div><br />
Cependant, il n'était pas possible d'indexer un élément d'un pack, à moins que le programmeur n'ait recours à diverses astuces récursives qui sont généralement lentes à compiler. Avec cette fonctionnalité du C++26, pour indexer un paquet, on peut écrire <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">pack...[N]</span> (où <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">N</span> doit être une expression constante). L'index d'un paquet se comporte alors exactement comme si l'expression résultante était utilisée. Un paquet vide ne peut pas être indexé. Le programme suivant imprimera <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">a</span> :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td valign="top"><pre style="margin: 0">template&lt;typename... Types&gt;
void print (Types... args)
{
  std::cout &lt;&lt; args...[0] &lt;&lt; '\n';
}

int main ()
{
  print ('a', &quot;foo&quot;, 42);
}</pre></td></tr></table></code><hr />
</div><br />
<b><font size="2">Attributs pour les liaisons structurées</font></b><br />
<br />
Cette proposition permet d'ajouter un attribut à chacune des liaisons structurées introduites, comme dans l'exemple suivant :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td valign="top"><pre style="margin: 0">struct S { int a, b; };

void
g (S&amp; s)
{
  auto [ a, b [[gnu::deprecated]] ] = s;
}</pre></td></tr></table></code><hr />
</div><br />
<b><font size="2">=delete avec une raison</font></b><br />
<br />
Le C++11 prend en charge les fonctions supprimées, c'est-à-dire les fonctions dont la définition consiste en <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">=delete</span>. Les fonctions supprimées participent à la résolution des surcharges, mais leur appel constitue une erreur. Cela remplace l'ancien mécanisme qui consistait à déclarer les fonctions membres spéciales comme <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">private</span>. <br />
<br />
En C++26, il est possible de fournir un message expliquant pourquoi la fonction est marquée comme supprimée : <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">=delete(« reason »)</span>. Le programme suivant :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td valign="top"><pre style="margin: 0">void oldfn(char *) = delete(&quot;unsafe, use newfn&quot;);
void newfn(char *);

void g ()
{
  oldfn (&quot;bagel&quot;);
}</pre></td></tr></table></code><hr />
</div><br />
provoquera l'émission par le compilateur du message suivant :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td valign="top"><pre style="margin: 0">q.C: In function ‘void g()’:
q.C:7:9: error: use of deleted function ‘void oldfn(char*)’: unsafe, use newfn
7 |   oldfn (&quot;bagel&quot;);
  |   ~~~~~~^~~~~~~~~
q.C:1:6: note: declared here
1 | void oldfn(char *) = delete(&quot;unsafe, use newfn&quot;);
  |      ^~~~~</pre></td></tr></table></code><hr />
</div><br />
<b><font size="2">Amis variadiques</font></b><br />
<br />
La fonctionnalité suivante permet d'utiliser une déclaration <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">friend</span> avec un paquet de paramètres :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0">template&lt;class... Ts&gt;
class Foo {
  friend Ts...;
};</pre></td></tr></table></code><hr />
</div><br />
Un exemple où cette fonctionnalité peut être utilisée en pratique est l'idiome <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">Passkey</span> :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br /></div></td><td valign="top"><pre style="margin: 0">template&lt;typename... Ts&gt;
class Passkey {
  friend Ts...;
  Passkey() {}
};

class A;
class B;

struct Widget {
  // Only callable from A and B.
  void secret (Passkey&lt;A, B&gt;);
};

class A {
  void doit (Widget&amp; w) {
    w.secret ({}); // OK
  }
};

class B {
  void doit (Widget&amp; w) {
    w.secret ({}); // OK
  }
};

class D {
  void doit (Widget&amp; w) {
    w.secret ({}); // won't compile!
  }
};</pre></td></tr></table></code><hr />
</div><br />
<b><font size="2">Placement constexpr new</font></b><br />
<br />
Le C++20 a ajouté la possibilité d'utiliser <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">new</span> dans un contexte <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">constexpr</span> :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td valign="top"><pre style="margin: 0">
constexpr void use (int *) { }

constexpr int
foo ()
{
  auto *p = new int[]{1, 2, 3};
  use (p);
  delete[] p;
  return 1;
}

int main ()
{
  constexpr auto r = foo ();
}</pre></td></tr></table></code><hr />
</div><br />
GCC a mis en œuvre la proposition dans GCC 10. Cependant, <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">constexpr placement new</span> n'était pas encore possible. Le C++26 rectifie cette situation et permet au programmeur d'écrire du code comme :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br /></div></td><td valign="top"><pre style="margin: 0">#include &lt;memory&gt;

constexpr int foo ()
{
  std::allocator&lt;int&gt; alloc;
  auto p = alloc.allocate (16);
  new (p) int(42);
  alloc.deallocate (p, 16);
  return 1;
}

int main ()
{
  constexpr int r = foo ();
}</pre></td></tr></table></code><hr />
</div><br />
<b><font size="2">Déclaration de liaison structurée en tant que condition</font></b><br />
<br />
La fonctionnalité des liaisons structurées a été ajoutée en C++17, et GCC la supporte depuis longtemps. GCC 15 implémente P0963R3, qui permet la déclaration de liaisons structurées dans les conditions <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">if</span>/<span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">while</span>/<span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">for</span>/<span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">switch</span> ; auparavant, ce n'était pas possible. <br />
<br />
Si une liaison structurée est utilisée dans un contexte de condition, sa variable de décision est la variable artificielle sous-jacente créée par le compilateur. Cette variable doit être convertible en <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">bool</span> (sauf lorsqu'elle est utilisée dans une instruction <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">switch</span>). En voici un exemple :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td valign="top"><pre style="margin: 0">struct S {
  int a, b;
  explicit operator bool () const noexcept { return a != b; }
};
void use (int, int);

void g (S s)
{
  if (auto [ a, b ] = s)
    use (a, b);
}</pre></td></tr></table></code><hr />
</div><br />
Dans l'exemple précédent, <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">use</span> sera appelé lorsque <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">a</span> et <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">b</span>, décomposés à partir de <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">s</span>, ne sont pas égaux. La variable artificielle utilisée comme variable de décision a un nom unique et son type est ici <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">S</span>.<br />
<br />
<b><font size="2">Suppression d'un pointeur sur un type incomplet</font></b><br />
<br />
Le C++26 a clairement indiqué que les fonctions <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">delete</span> et <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">delete[]</span> sur un pointeur vers un type de classe incomplet ne sont pas valides. Auparavant, cela invoquait un comportement indéfini à moins que la classe n'ait un destructeur trivial et pas de désallocateur personnalisé. Par conséquent, GCC 15 émettra une erreur en mode C++26, ou un avertissement dans les modes plus anciens pour cet exemple :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td valign="top"><pre style="margin: 0">struct S;

void foo (S *p)
{
  delete p;
}</pre></td></tr></table></code><hr />
</div><br />
<b><font size="2">Virgule variadique d'Oxford</font></b><br />
<br />
L'utilisation d'une ellipse variadique sans virgule précédente en C++26 est dépréciée dans cet article. Cela signifie que GCC 15, lorsqu'il compilera le cas de test suivant de la proposition, émettra trois avertissements en mode C++26 :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td valign="top"><pre style="margin: 0">void d_depr(auto......); // deprecated
void d_okay(auto..., ...);  // OK

void g_depr(int...);     // deprecated
void g_okay(int, ...);   // OK

void h_depr(int x...);   // deprecated
void h_okay(int x, ...); // OK</pre></td></tr></table></code><hr />
</div><br />
Les utilisateurs peuvent activer l'avertissement dans les modes plus anciens en spécifiant <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">-Wdeprecated-variadic-comma-omission</span>.<br />
<br />
<b><font size="2">Suppression de la comparaison de tableaux dépréciée</font></b><br />
<br />
Le programme suivant comparant deux tableaux est mal formé :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0">int arr1[5];
int arr2[5];
bool same = arr1 == arr2;</pre></td></tr></table></code><hr />
</div><br />
La comparaison était dépréciée en C++20, mais GCC 14 n'émettait un avertissement que lorsque <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">-Wall</span> était spécifié. GCC 15 émet une erreur en C++26, et un avertissement dans les modes plus anciens même sans <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">-Wall</span>.<br />
<br />
<b><font size="3">Résolution des rapports de défauts</font></b><br />
<br />
Un certain nombre de rapports de défauts ont été résolus dans GCC 15. En voici quelques exemples. <br />
<br />
<b><font size="2">Redéclaration des using-declarations</font></b><br />
<br />
Le DR 36 clarifie le fait qu'il est valide de redéclarer une entité via une <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">using-declaration</span> si la redéclaration a lieu en dehors de la portée d'une classe. En conséquence, le programme suivant se compile avec GCC 15. GCC 14 signalerait une erreur de « redéclaration ».<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td valign="top"><pre style="margin: 0">enum class E { Smashing, Pumpkins };
void foo() {
  using E::Smashing;
  using E::Smashing;
  using E::Pumpkins;
}</pre></td></tr></table></code><hr />
</div><br />
<b><font size="2">Corrections mineures</font></b><br />
<br />
GCC 15 corrige les DR 1363 et DR 1496. Certaines classes qui étaient auparavant considérées comme triviales ne le sont plus. <br />
<br />
<b><font size="2">Bit-fields et conversions de rétrécissement</font></b><br />
<br />
La résolution du DR 2627 signifie que GCC 15 n'émet plus l'avertissement <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">narrowing conversion</span> ici :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td valign="top"><pre style="margin: 0">#include &lt;compare&gt;

struct C {
  long long i : 8;
};

void f() {
  C x{1}, y{2};
  x.i &lt;=&gt; y.i; // OK
}</pre></td></tr></table></code><hr />
</div><br />
<b><font size="2">Fonctions surchargées et contraintes</font></b><br />
<br />
Le DR 2918 traite de la déduction à partir d'un ensemble de surcharges lorsque plusieurs candidats réussissent et ont le même type ; la fonction la plus contrainte est sélectionnée. Le cas de test suivant illustre ce nouveau comportement :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td valign="top"><pre style="margin: 0">template&lt;bool B&gt; struct X {
  static void f(short) requires B; // #1
  static void f(short);            // #2
};
void test() {
  auto x = &amp;X&lt;true&gt;::f;     // OK, deduces void(*)(short), selects #1
  auto y = &amp;X&lt;false&gt;::f;    // OK, deduces void(*)(short), selects #2
}</pre></td></tr></table></code><hr />
</div><br />
Le téléchargement de la version stable du compilateur GCC 15.1 est disponible sur gcc.gnu.org.<br />
<br />
<b>Source :</b> <a rel="nofollow" href="https://gcc.gnu.org/gcc-15/" target="_blank">GCC 15.1</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Quel est votre avis sur le sujet ?<br />
:fleche: Que pensez-vous de ces améliorations apportées à GCC, les trouvez-vous utiles et intéressantes ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://programmation.developpez.com/actu/370108/GCC-15-arrive-COBOL-et-Itanium-sont-integres-tandis-qu-ALGOL-68-est-juge-inadapte-a-l-ere-moderne-les-langages-modernes-doivent-allier-solidite-technique-et-reponse-aux-besoins-concrets/" target="_blank">GCC 15 arrive : COBOL et Itanium sont intégrés, tandis qu'ALGOL-68 est jugé inadapté à l'ère moderne, les langages modernes doivent allier solidité technique et réponse aux besoins concrets</a><br />
<br />
:fleche: <a href="https://c.developpez.com/actu/344272/GCC-13-se-dote-de-nouvelles-fonctionnalites-dans-la-partie-frontale-du-langage-C-pour-le-rendre-plus-proche-du-Cplusplus-et-faire-en-sorte-que-la-programmation-en-C-soit-plus-facile-et-plus-sure/" target="_blank">GCC 13 se dote de nouvelles fonctionnalités dans la partie frontale du langage C pour le rendre plus proche du C++, et faire en sorte que la programmation en C soit plus facile et plus sûre</a><br />
<br />
:fleche: <a href="https://programmation.developpez.com/actu/313088/A-plus-de-60-ans-le-langage-COBOL-est-encore-utilise-par-des-Etats-americains-les-laissant-face-a-un-manque-de-programmeurs-et-des-couts-de-developpement-enormes/" target="_blank">À plus de 60 ans, le langage COBOL est encore utilisé par des États américains, les laissant face à un manque de programmeurs et des coûts de développement énormes</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p666902d1745833550/general-developpement/langages-programmation/version-15-1-gcc-disponible-compilateur-cobol-nombreuses-autres-ameliorations/gcc-15.1.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f41/general-developpement/langages-programmation/">Langages de programmation</category>
			<dc:creator>Anthony</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2176475/general-developpement/langages-programmation/version-15-1-gcc-disponible-compilateur-cobol-nombreuses-autres-ameliorations/</guid>
		</item>
		<item>
			<title>Les propriétés de DELPHI</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2176345&amp;goto=newpost</link>
			<pubDate>Tue, 22 Apr 2025 12:59:14 GMT</pubDate>
			<description>Bonjour ! 
 
Je suis nouveau...</description>
			<content:encoded><![CDATA[<div>Bonjour !<br />
<br />
Je suis nouveau sur Developpez.com. Si je me suis trompé de forum veuillez m'excuser. En fait je cherche depuis longtemps la signification en Français de chaque propriété de Delphi.<br />
Y-aurait-il une personne pouvant me renseigner. Tous les ouvrages concernant Delphi n'en parlent pas. Par exemple, la propriété &quot;constraints&quot; ou encore &quot;Bidimode&quot; sont deux exemples<br />
de propriétés Delphi.<br />
J'essaie d'apprendre  le langage Delphi mais n'arrive pas à trouver en plus un PDF allant droit au but sans trop de théories. Je remercie quiconque pourrait me renseigner.<br />
<br />
Cordialement,</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f41/general-developpement/langages-programmation/">Langages de programmation</category>
			<dc:creator>Le Banni</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2176345/general-developpement/langages-programmation/proprietes-delphi/</guid>
		</item>
		<item>
			<title><![CDATA[SimpleBLE.org: Que pensez vous de cette démarche après signalement d'un bug critique]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2176255&amp;goto=newpost</link>
			<pubDate>Thu, 17 Apr 2025 13:53:47 GMT</pubDate>
			<description><![CDATA[Brj à vous, 
 
J'utilise la...]]></description>
			<content:encoded><![CDATA[<div>Brj à vous,<br />
<br />
J'utilise la bibliothèque SimpleBLE <a rel="nofollow" href="https://github.com/simpleble/simpleble" target="_blank">https://github.com/simpleble/simpleble</a>, qui est très facile d'utilisation et dont j'ai écrit un wrapper pour FreePascal<br />
<br />
La version 0.9.0 de cette bibliothèque fonctionne très bien sur beaucoup de PC Windows 10 mais plante sur d'autres.<br />
<br />
J'ai signalé ce bug comme CRITIQUE sur le forum correspondant.<br />
<br />
J'ai aussi mis à disposition mon wrapper avec un projet Lazarus exemple qui n'a été publié que sur leur Github<br />
<br />
J'ai posté 4 issues sur le github de SimpleBLE et envoyé 9 emails. Comme je ne recevais pas de réponse, j'ai haussé le ton (<b><u>FN inside since 1988</u></b>), l'équipe de SimpleBLE veut me facturer 3.625 dollars pour la correction du bug, qui a déjà été faite. Je les ai envoyer se faire f*** à ma manière, puisque ces travaux sont factorisables et de toutes façons prévus.<br />
<br />
Il existe une licence commerciale. Elle ne concerne pas les particuliers ni les TPE, et interdit la commercialisation des applications utilisant la bibliothèque SimpleBLE. Or GHTopo est un logiciel libre<br />
<br />
Que pensez-vous de çà ?<br />
<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Citation:</div>
	<div class="bbcode_quote printable">
		<hr />
		
			oici un message traduit. Le texte original est en anglais ci-dessous.<br />
<br />
Bonjour Jean Pierre,<br />
<br />
J’ai passé les derniers jours à enquêter sur le problème de plantage que vous avez signalé avec les DLL SimpleBLE préconstruites. J’ai le plaisir de vous confirmer que nous avons identifié la cause principale et que nous avons une correction prête à être déployée. Ce problème ne se produit que dans des circonstances spécifiques, que votre environnement déclenche.<br />
<br />
Cependant, en raison du ton non constructif de vos 9 emails, de votre absence de réponse à notre email du 11 avril proposant une collaboration, et de vos publications répétées sur GitHub (4 discussions et 3 tickets sur le même sujet), nous avons décidé de facturer ce travail et de prioriser la publication de la correction après réception du paiement. Les 25 heures, couvrant le débogage, les tests et le développement de la correction pour votre environnement, sont facturées à notre tarif standard de 145 USD/heure. Je joins une facture à votre nom et les détails de paiement: <a rel="nofollow" href="https://app.mercury.com/pay/t37407jp27jt5vsp" target="_blank">https://app.mercury.com/pay/t37407jp27jt5vsp</a><br />
<br />
De plus, votre projet, lié sur le forum de discussion SimpleBLE le 11 avril, distribue SimpleBLE sous une licence MIT sans licence commerciale, en violation des termes de notre BSL 1.1. Pour distribuer sous une licence MIT, vous devez acheter une licence commerciale ou cesser la distribution, car vos actions actuelles constituent une violation de la propriété intellectuelle.<br />
<br />
Je regrette cette issue et vous encourage à résoudre ces problèmes pour avancer de manière constructive.<br />
<br />
Cordialement,<br />
Kevin
			
		<hr />
	</div>
</div></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f41/general-developpement/langages-programmation/">Langages de programmation</category>
			<dc:creator>JP CASSOU</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2176255/general-developpement/langages-programmation/simpleble-org-pensez-cette-demarche-apres-signalement-d-bug-critique/</guid>
		</item>
	</channel>
</rss>
