Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

débuter dans la programation

55 réponses
Avatar
-----------
Bonjour,

tout ce qui touche a l'informatique me passionne, aujourd'hui j'ai décider
de m'interresser à la programation.

Quelle conseil pouvez vous me donner ?

10 réponses

2 3 4 5 6
Avatar
Laurent DELEPINE
Bruno Desthuilliers wrote:

avec le C, qd ca marche, c'est que c'est pas si mal, sinon, ca plante.



Alors là, je me gausse.

Le propre d'un UB, c'est que tout peut arriver - même que le programme
*semble* fonctionner. Le fait que le programme semble fonctionner n'est
en rien une preuve de correction. Quant à 'pas si mal', c'est une norme
de qualité que j'ignorais jusque là...


A tord. Pas si mal semble etre une norme de qualité tres repandue en
informatique.En tout cas cette norme a été celle qui a gouverné ma
société jusqu'a ce que je me retrouve seul a developper en C et que par
paresse j'y remette de l'ordre.


A+

LD


Avatar
Stephane Legras-Decussy
"Bruno Desthuilliers" a écrit dans le
message news: 3f72084f$0$20645
Juste pour info : pour une appli Windows avec une interface graphique,
juste pour ouvrir une fenêtre blanche qui ne fait rien, compte une
centaine de lignes de code de C non standard.

En Python, tu peux obtenir la même chose en moins de dix lignes.


je comprend pas une chose :

pourquoi se faire ch*** à apprendre
un autre langage alors qu'il suffit de rester en C
et d'inclure des lib de fonctions
de haut niveau ?

avec une lib adequate, on fait une fenetre en
2 lignes de C...

Avatar
Marc Boyer
blc wrote:
Marc Boyer wrote:
Et vous y faisiez quoi ? Complexité ? Terminaison et preuve ?
Tout pleins de choses interessantes..;-)

Entre autres, algo des graphes, calculs de complexite, methodes algo...
Et franchement, pour faire 99% des programmes C que je connais, ca sert
pas a grand chose (ou alors, ca sert tellement que je ne m'en rends plus
compte...).


C'est pas ce que j'appelles les bases de l'algorithmique.
Après, ben, il faut différencier la culture et ce qui sert
au jour le jour. C'est bien de savoir la différence entre
une liste chainée et un arbre binaire équilibré. Même si
on le code pas souvent, il faut savoir choisir celui qui
est adapté à un problème donné.

Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(


Avatar
TheChameleon
Je ne suis pas tout a fait d'accord avec l'analogie.
void stat(int *min,int *max, int *moy,int valeur[]);
1. ne protege pas le contenu de valeur (contrairement ce que l'on pourrait
attendre)
2. protege min seulement dans ce cas min n'est que le contenant de ce qui
C'est a mon sens une "bidouille" pour modifier le contenu de min.
Si tu passe une adresse comme argument : dans le cas du tableau cette

adresse n'est pas modifiable alors que dans le cas du pointeur elle l'est.

exemple:
void test(char t[]) {
t[0]= 'A';
}

void test2(int *i) {
i = (int *) malloc(sizeof(int));


c'est une allocation de trop. Tu perds la reference du contenu de ta
variable et une perte mémoire en plus. imagine une boucle sur cet
fonction, tu es un killer toi!
essayes plutôt ça :
*i++;
printf("%pn",i);
}

int main () {
char t[1];
int *i;

t[0] = 'B';
printf("%cn",t[0]);
Tu test le contenu du tableau pas l'adresse de ce tableau. Le contenu

change mais pas son adresse utiliser dans l'appel de la fonction
test(t);
printf("%cn",t[0]);

i = (int *) malloc(sizeof(int));
on teste le NULL en principe sinon explosion ligne suivante de plus je

ne suis pas sur de ce que contient l'adresse retourner par malloc
Remarque que tu n'es pas obliger de travailler en dynamique.
int i=0, *iptr;
iptr=&i;

printf("%pn",i);
test2(i);
printf("%pn",i);

Et les free alors!

return 0;
}



Avatar
xav14
"Marc Boyer" a écrit dans le message de
news:bku3q6$sa4$

C'est pas ce que j'appelles les bases de l'algorithmique.
Après, ben, il faut différencier la culture et ce qui sert
au jour le jour. C'est bien de savoir la différence entre
une liste chainée et un arbre binaire équilibré. Même si
on le code pas souvent, il faut savoir choisir celui qui
est adapté à un problème donné.

Marc Boyer


Ha qu'est-ce qu'on a pu en bouffer à la fac de structures de données tordues
:o)

@+
Xav14

Avatar
Sinese
In article <3f7298af$0$2786$, TheChameleon wrote:
c'est une allocation de trop. Tu perds la reference du contenu de ta
variable et une perte mémoire en plus. imagine une boucle sur cet
fonction, tu es un killer toi!


Cet exemple etait pour illustrer que i etait conserve lors de la sortie
de la fonction. Ce programme perd evidement la memoire et JAMAIS il ne
doit etre utilise.

D'ailleur, de facon general je deconseille de faire des allocations sur
les arguments (evidement pas sur le contenu des pointeurs passes en
argument). Je trouve cela crade.

Le seul but de cette fonction est de montrer que i est conserve en sortie.
Lorsque tu ecris void test2(int *i);
Tu passe en argument une variable de nom i et de type int *
Et donc la VARIABLE passe en argument est protegee.
Son contenu evidement non car tu attaques directement l'@.

essayes plutôt ça :
*i++;
Ah bah oui mais la tu modifie pas la variable de ta fonction, desole,

mais le contenu de ce qui se trouve a l'@ pointee par ta variable ce
qui est totalement different.

printf("%pn",i);
Sans modification de i je ne vois pas l'interet de re-printer i.



int main () {
char t[1];
int *i;

t[0] = 'B';
printf("%cn",t[0]);
Tu test le contenu du tableau pas l'adresse de ce tableau. Le contenu

change mais pas son adresse utiliser dans l'appel de la fonction


Ah bah oui mais pour un programeur neophite ecrire void test(char t[]);
devrait proteger le tableau (c.a.d le contenu du tableau) or ce n'est
pas le cas.

on teste le NULL en principe sinon explosion ligne suivante de plus je
ne suis pas sur de ce que contient l'adresse retourner par malloc


Le but de se programme n'est pas d'etre utilise mais simplement d'illustrer
un propos. Je ne vois pas ce que tester le retour de malloc ajoute vu
que je ne met rien en i.

L'explosion arriverais si je faisait derriere un *i = 2;
Mais je ne vois aucune allocation de ce style dans mon programme.

Tu pourrais re-argumenter en disant que l'allocation memoire est inutile
car je n'utilise a aucun endroit la memoire allouee.

--
sinese


Avatar
Bruno Desthuilliers
Stephane Legras-Decussy wrote:
"Bruno Desthuilliers" a écrit dans le
message news: 3f72084f$0$20645

Juste pour info : pour une appli Windows avec une interface graphique,
juste pour ouvrir une fenêtre blanche qui ne fait rien, compte une
centaine de lignes de code de C non standard.

En Python, tu peux obtenir la même chose en moins de dix lignes.



je comprend pas une chose :

pourquoi se faire ch*** à apprendre
un autre langage


Effectivement, si tu pose le problème en ces termes, tu ne risque pas de
comprendre. Pourquoi apprendre à se servir d'un tournevis alors qu'on
peut enfoncer les vis avec un marteau ?

alors qu'il suffit de rester en C
et d'inclure des lib de fonctions
de haut niveau ?

avec une lib adequate, on fait une fenetre en
2 lignes de C...



10ème règle de programmation de Greenspun :

"Any sufficiently complicated C or Fortran program contains an
ad-hoc, informally-specified, bug-ridden, slow implementation of
half of Common Lisp."

Bruno


Avatar
blc
Bruno Desthuilliers wrote:

blc wrote:

C'est très vrai. C'est pour ça qu'après avoir appris Python, langage de
haut niveau multi-paradigme (imperatif/fonctionnel et procedural/objet,
les deux grands axes), l'OP n'aura pas de difficultés majeures à
apprendre le C, langage de bas niveau, purement impératif et purement
procédural, dont la syntaxe est l'une des plus simples qui soient.
Mais qui contient des choses compliquees qui apparemment ne font pas

partie de Python..enfin je pense...

Dis, tu connais Python ?
Ben non...mais je devrais, je sais...



Le fait qu'il excelle comme langage de script
ne l'empêche pas d'être un langage généraliste complet.
Je n'ai jamais dis qu'un langage de script etait forcement incomplet...


http://www.python.org
Merci, je vais regarder



1/ Combien peux-tu me citer de langages de programmation dans lesquels
la notion de variable n'existe pas ?
En fait, je voulais parler de la declaration de variable qui n'est pas

obligatoire dans la PLUPART des langages de script...

2/ Le typage en Python est beaucoup plus fort qu'en C.
??? Je voulais dire que tu peux utiliser des variables sans meme les

avoir declarees ce qui me gene un peu...Mais c'est peut etre faux pour
Python

3/ La gestion manuelle de la mémoire n'est en rien un 'concept
fondamental' de la programmation. Il y a d'ailleurs relativement peu de
langages - et aucun langage un tant soit peu récent - où la gestion de
la mémoire soit à la charge du programmeur.
En C/C++ tu peux faire un peu ce que tu veux je pense...


Avec un langage de script, on fait les choses vite et mal....



Ah bon ? Toi peut-être, mais ne généralise pas STP. Un programmeur
sérieux travaille sérieusement quelque soit le langage.
Mon idee c'est qu'un langage de script est trop permissif et "corrige"

des trucs sans meme nous le dire....encore une fois, ce n'est peut etre
pas le cas pour Python...


avec le C, qd ca marche, c'est que c'est pas si mal, sinon, ca plante.



Alors là, je me gausse.

Le propre d'un UB, c'est que tout peut arriver - même que le programme
*semble* fonctionner. Le fait que le programme semble fonctionner n'est
en rien une preuve de correction. Quant à 'pas si mal', c'est une norme
de qualité que j'ignorais jusque là...
Et pourtant, qd tu as une deadline et que l'on te demande de faire un

truc qui fait des choses..tu dis quoi a ton patron??
Desole, je pourrais effectivement le faire mais je prefere tout bien
coder propre et rendre mon truc dans 2 semaines quitte a perdre le
client?? Sincerement, je serais enormement etonne qu'a un moment ou a un
autre tu ne te sois pas surpris a coder comme un cochon pour gagner du
temps par manque de temps..;-)

De mon experience, qd ca marche trop vite, on ne retient rien du tout...
Par contre, si ca plante et que l'on passe du temps dessus, une fois
trouvee l'erreur, on ne la refait plus et c'est uniquement comme ca
que l'on progresse.



"Uniquement" ? C'est peut-être ton cas, mais n'en fait pas une
généralité. Tout le monde n'est pas adepte de l'éducation anglaise !-)
Connais pas desole...


Avant de décrire Python comme un langage "jouet",
Je parlais des langages de scripts en general Et tu conviendras que a

part python (que je ne connais toujours pas depuis le debut du post),
souvent il ressemble a ca...

utilise le pendant
quelques mois. On en reparlera à ce moment là. Ou va demander aux
développeurs de Zope pourquoi ils utilisent un langage "jouet" pour
développer un serveur d'application.

Quant aux mauvaises habitudes, on peut les prendre avec n'importe quel
langage. Encore une fois, c'est plus un problème de sérieux que de langage.
Si le langage ne te force pas a etre serieux....c'est plus facile de ne

pas l'etre, c'est uniquement ce que je voulais dire. Maintenant, si je
t'ai fait du mal en critiquant indirectement Python, je suis desole..,-)

Benoit


Avatar
TheChameleon
In article <3f7298af$0$2786$, TheChameleon wrote:

c'est une allocation de trop. Tu perds la reference du contenu de ta
variable et une perte mémoire en plus. imagine une boucle sur cet
fonction, tu es un killer toi!



Cet exemple etait pour illustrer que i etait conserve lors de la sortie
de la fonction. Ce programme perd evidement la memoire et JAMAIS il ne
doit etre utilise.

D'ailleur, de facon general je deconseille de faire des allocations sur
les arguments (evidement pas sur le contenu des pointeurs passes en
argument). Je trouve cela crade.

Le seul but de cette fonction est de montrer que i est conserve en sortie.
Lorsque tu ecris void test2(int *i);
Tu passe en argument une variable de nom i et de type int *
Et donc la VARIABLE passe en argument est protegee.
Son contenu evidement non car tu attaques directement l'@.


essayes plutôt ça :
*i++;


Ah bah oui mais la tu modifie pas la variable de ta fonction, desole,
mais le contenu de ce qui se trouve a l'@ pointee par ta variable ce
qui est totalement different.


printf("%pn",i);



Sans modification de i je ne vois pas l'interet de re-printer i.


int main () {
char t[1];
int *i;

t[0] = 'B';
printf("%cn",t[0]);


Tu test le contenu du tableau pas l'adresse de ce tableau. Le contenu
change mais pas son adresse utiliser dans l'appel de la fonction



Ah bah oui mais pour un programeur neophite ecrire void test(char t[]);
devrait proteger le tableau (c.a.d le contenu du tableau) or ce n'est
pas le cas.


on teste le NULL en principe sinon explosion ligne suivante de plus je
ne suis pas sur de ce que contient l'adresse retourner par malloc



Le but de se programme n'est pas d'etre utilise mais simplement d'illustrer
un propos. Je ne vois pas ce que tester le retour de malloc ajoute vu
que je ne met rien en i.

L'explosion arriverais si je faisait derriere un *i = 2;
Mais je ne vois aucune allocation de ce style dans mon programme.

Tu pourrais re-argumenter en disant que l'allocation memoire est inutile
car je n'utilise a aucun endroit la memoire allouee.



Evidemment l'intêrét d'une adresse c'est ce qui se trouve à cette
adresse pas l'adresse elle-même.
En théorie, oui, tu n'as pas besoin dans ton programme de tester le
retour de malloc si tu n'utilise que l'adresse, en pratique, un tel
programme, ne travaillant qu'avec les adresses, ne sert à rien et n'aura
aucune utilité, comme de tourner les pages d'un livre sans en lire le
texte, on ne connaitra pas l'histoire ni même une partie.

Dans un cas plus clair, j'ai une variable et une fonction :
int i;

Si je veux utiliser ou modifier la valeur de cette variable dans ma
fonction alors je dois la fournir en argument à cette fonction. si tu
fais un printf de son adresse dans la fonction, il sera different
test(i);

Par contre si je veux connaitre le resultat de cette modification dans
la boucle de programme appellant alors j'utilise son adresse.
test(&i);

dans tous les l'adresse n'est jamais modifier, uniquement son contenu.
Alors peut être faut il attirer l'attention des néophites sur le contenu
et non leur adresse, surtout lorsqu'il s'agit de pointeurs.



Avatar
Bruno Desthuilliers
blc wrote:
Bruno Desthuilliers wrote:

blc wrote:

C'est très vrai. C'est pour ça qu'après avoir appris Python, langage
de haut niveau multi-paradigme (imperatif/fonctionnel et
procedural/objet, les deux grands axes), l'OP n'aura pas de
difficultés majeures à apprendre le C, langage de bas niveau, purement
impératif et purement procédural, dont la syntaxe est l'une des plus
simples qui soient.


Mais qui contient des choses compliquees qui apparemment ne font pas
partie de Python..enfin je pense...


Les pointeurs et la gestion manuelle de la mémoire... A part ça, je ne
vois pas. Par contre, il y a pas mal de choses en Python qui n'existent
pas en C, et sont tout sauf évidente à mettre en oeuvre en C... sauf à
utiliser le C pour implémenter un langage de plus haut niveau !-)

Dis, tu connais Python ?


Ben non...mais je devrais, je sais...


Bin... disons que pour en parler, ce serait mieux !-)


Le fait qu'il excelle comme langage de script ne l'empêche pas d'être
un langage généraliste complet.


Je n'ai jamais dis qu'un langage de script etait forcement incomplet...


Je cite:
""" Les langages de script (la plupart) passent sous silence la plupart
des concepts fondamentaux de la programmation """


1/ Combien peux-tu me citer de langages de programmation dans lesquels
la notion de variable n'existe pas ?


En fait, je voulais parler de la declaration de variable qui n'est pas
obligatoire dans la PLUPART des langages de script...
La déclaration de variable n'a de sens que dans les langages à typage

statique. Une des caractéristique des langages de haut niveau - et le
moins qu'on puisse attendre d'un langage utilisé pour du script est
d'être un langage de haut niveau - est d'avoir un typage dynamique. La
déclaration des variables n'a donc aucun sens dans ce contexte.

2/ Le typage en Python est beaucoup plus fort qu'en C.


??? Je voulais dire que tu peux utiliser des variables sans meme les
avoir declarees ce qui me gene un peu...


Pourquoi ? Ca te fait peur ? L'expérience semble prouver que les bugs
dûs à des erreurs de typage sont non seulement parmi les moins courants,
mais aussi parmi les plus simple à repérer et à corriger. Le sage l'a
dit : "s'il suffisait de déclarer trois fois les variables pour avoir
des programmes corrects, je m'y plierais volontier".

Mais c'est peut etre faux pour
Python


Non, Python est un langage à typage dynamique. Donc pas de déclaration
préalable des variables. Moi aussi ça me faisait douter du sérieux de ce
langage quand je ne connaissais que des langages à typage statique. Une
fois qu'on comprend cette philosophie (typage dynamique *fort*), par
contre, on voit vite le gain de souplesse et de productivité qu'elle offre.

Attention, par contre, typage dynamique ne veut pas dire typage faible.
Le principe est que le type est lié à l'objet, pas à l'identifiant. On
peut donc effectivement lier n'importe quel type d'objet à un
identifiant. Par contre, on ne peut appeler sur un objet que des
opérations correspondant à son type.

Par contraste, en C, le typage statique n'empêche pas de forcer un
transtypage. Ce n'est donc pas un typage si fort que ça...

#include <stdlib.h>

typedef struct {
int num;
} Toto;

typedef struct {
char* num;
Toto *truc;
} Tata;

int main(void)
{
Tata *tata = NULL;
Toto *toto = malloc(sizeof *toto);
toto->num = 42;
tata = (Tata *)toto;
return 0;
}

pas d'erreur de compilation avec ça chez moi (gcc 3.2.2, compilé avec
gcc -Wall -ansi -pedantic -O2 )

Par contre, à l'exécution, ça segfault un peu...

3/ La gestion manuelle de la mémoire n'est en rien un 'concept
fondamental' de la programmation. Il y a d'ailleurs relativement peu
de langages - et aucun langage un tant soit peu récent - où la gestion
de la mémoire soit à la charge du programmeur.


En C/C++ tu peux faire un peu ce que tu veux je pense...


??? Pas compris, là ???

Avec un langage de script, on fait les choses vite et mal....


Ah bon ? Toi peut-être, mais ne généralise pas STP. Un programmeur
sérieux travaille sérieusement quelque soit le langage.


Mon idee c'est qu'un langage de script est trop permissif


Le C est un des langages les plus permissifs qui soit. Rien en C ne
t'empêche d'aller lire ou écrire n'importe quel segment de mémoire (avec
des résultats pour le moins imprévisibles), ni de faire passer un Toto*
pour un Tata* si tu le veux.

Si tu veux un langage peu permissif, c'est ADA qu'il te faut. Et même
avec un langage aussi strict, on peut crasher un fusée.

et "corrige"
des trucs sans meme nous le dire....


Corrige quoi ?-)

encore une fois, ce n'est peut etre
pas le cas pour Python...


Si tu pense aux entiers qui deviennent des chaines et réciproquement en
fonction du contexte, Python ne fait pas ce genre de choses. C'est un
langage à typage fort, et si tu tente d'additionner 'toto' et 42, tu
aura une erreur d'exécution. PHP le permet, et c'est AMHA une erreur
effectivement (je n'aime pas non plus ce genre de typages faibles).
Encore que pour le moment, ça ne m'ait pas causé de problèmes dans mes
scripts PHP. Je ne sais pas comment fonctionnent Perl et Ruby de ce
point de vue.

Le propre d'un UB, c'est que tout peut arriver - même que le programme
*semble* fonctionner. Le fait que le programme semble fonctionner
n'est en rien une preuve de correction. Quant à 'pas si mal', c'est
une norme de qualité que j'ignorais jusque là...


Et pourtant, qd tu as une deadline et que l'on te demande de faire un
truc qui fait des choses..tu dis quoi a ton patron??


Que c'est lui le patron, mais que c'est une connerie qui nous retombera
sur la gueule à un moment ou à un autre.

Desole, je pourrais effectivement le faire mais je prefere tout bien
coder propre et rendre mon truc dans 2 semaines quitte a perdre le
client??


J'aurais tendance à penser que tu perds plus facilement un client en
annonçant des délais ingérables et en lui livrant un paquet de bugs
qu'en annonçant un délai raisonnable et un livrant un code peut-être pas
100% bullet-proof, mais au moins décemment robuste et aisément maintenable.

A chaque fois que j'ai pu obtenir un délai raisonnable, même si un peu
supérieur aux désirs du client, le client a été finalement satisfait de
se voir livrer quelque chose de sérieux.

A chaque fois que le point de vue du patron et/ou du client a prévalu,
le temps passé à corriger les bugs et les erreurs de conception de la
version Q&D a été égal ou supérieur au temps qu'il aurait fallu pour
coder proprement dès le début. Le client n'a donc pas pu utiliser le
produit plus tôt, et en plus il était fâché.

Le problème est de faire l'éducation des patrons et des clients. Hélas,
ce n'est pas gagné :(

Sincerement, je serais enormement etonne qu'a un moment ou a un
autre tu ne te sois pas surpris a coder comme un cochon pour gagner du
temps par manque de temps..;-)


Je n'ai pas dit ça, et j'ai souvent hélas été obligé de livrer du code
malpropre - avec généralement les résultats évoqués ci-dessus.

Par contre, je ne considère pas ça comme une norme de qualité. Et avec
un langage comme le C, où il n'y a justement aucun garde-fou, le concept
de 'ça semble marcher' ne me satisfait guère, puisque je ne sais
réellement pas ce qui peut arriver en cas d'UB... bon, généralement on a
soit des résultats aléatoires, avec un bug dur à tracer, soit un
segfault franc et massif. Mais dans d'autres contextes - embarqué, par
exemple - ce pourrait avoir des conséquences plus lourdes.

Avant de décrire Python comme un langage "jouet",


Je parlais des langages de scripts en general Et tu conviendras que a
part python (que je ne connais toujours pas depuis le debut du post),


Tu devrais, pourtant !-) Allez hop, au boulot :
http://www.python.org

souvent il ressemble a ca...


A quels langages pense-tu ?

utilise le pendant quelques mois. On en reparlera à ce moment là. Ou
va demander aux développeurs de Zope pourquoi ils utilisent un langage
"jouet" pour développer un serveur d'application.

Quant aux mauvaises habitudes, on peut les prendre avec n'importe quel
langage. Encore une fois, c'est plus un problème de sérieux que de
langage.


Si le langage ne te force pas a etre serieux....c'est plus facile de ne
pas l'etre, c'est uniquement ce que je voulais dire.


Dans ce cas, c'est ADA qu'il faut conseiller, pas le C !-)
Ce qui n'a pas empêché un module en ADA de crasher une fusée européenne
bien connue.

Maintenant, si je
t'ai fait du mal en critiquant indirectement Python, je suis desole..,-)


Tu ne m'a pas fait mal !-)

Non, ce qui me fâche est ce discours selon lequel un langage de haut
niveau ne serait pas un langage sérieux. Avec ce type d'arguments, on
devrait tout programmer en assembleur ou en langage machine !-)

Il existe effectivement des langages 'jouet', et qui revendiquent ce
statut (je te recommande Brainf**k, c'est assez farce).

Par contre, le fait qu'un langage soit réellement un langage de haut
niveau (en terme d'abstraction) n'en fait pas un jouet, bien au
contraire. Dans la majorité des cas, le temps d'un développeur est plus
précieux que le temps machine. Il est donc préférable de sacrifier un
peu de performance machine au profit de la productivité du développeur.

De plus, dans mon domaine (informatique de gestion), les problèmes de
perf sont plus souvent liés au SGBDR, à l'interface graphique ou au
réseau. Pour le premier cas, à part faire du SQL correct et travailler
sur la structure de la base - ou au pirte changer de SGBDR - il n'y pas
beaucoups de solutions. Pour les deux autres, les langages de haut
niveau s'appuient généralement sur des bibliothèques en C ou C++, donc
les performances sont quasiment équivalentes.

Je ne prétend pas que Python (ou Common Lisp, ou Ruby, etc) soient la
panacée. Aucun outil n'est réellement universel. Il ne me viendrais pas
à l'idée de proposer Python pour de la prog système ou de l'embarqué.

Bon, là dessus ça devient plus que limite HS pour ce ng, donc x-post et
fu2 vers f.c.dev

Bruno



2 3 4 5 6