OVH Cloud OVH Cloud

Apprendre le langage C et quelques questions

89 réponses
Avatar
heron maladroit
question :

Ne souhaitant pas passer trop de temps sur le langage C, =E7a fait 1 an
que j'ai commenc=E9 et je consid=E8re y donner encore 1 ann=E9e de plus (=
=E0
raison de 4 =E0 8 heures par semaine), je pense que ce n'est pas
n=E9cessaire de lire le K&R en profondeur pour un niveau en C que je
veux garder "basique". C'est bien de l'avoir sous le coude et par
moment pour voir un peu un style de programmation d=E9finitivement
brillant au niveau algorithmes.

En effet, =E9tant comptable, je ne sais pas tr=E8s bien =E0 quoi le langage
C pourrait me servir concr=E8tement. L'informatique occupe beaucoup mon
temps en dehors du temps de travail mais je ne vois pas pour le temps
que je peux y consacrer pour apprendre comment dans les conditions
actuelles du march=E9, trouver un travail dans ce domaine en qualit=E9
d'autididacte. Peut-=EAtre je peux envisager d'=E9crire des petites
applications sur des appareils mobiles ou des applications web ? On
dirait que les grands =E9diteurs mettent en place des outils de
d=E9veloppement maison pour les appareils Andro=EFd, iPhone...

Et =E9galement, j'utilise linux et je ne sais pas quel niveau en langage
C il faut pour appr=E9cier plus en profondeur cet OS ? J'ai vu que le
langage Shell est quelque chose d'utile pour personaliser Linux. Y-a-t-
il un pont entre le Shell (un des shell) et le langage C ?

J'ai quelques bases en C qu'on retrouve dans d'autres langages
(notamment au niveau algorithmique, pointeurs...), c'est pourquoi
j'envisage apr=E8s de me consacrer au C++. Mais je souhaite avant
consolider les bases et les aspects un peu d=E9licats de ce langage
assez =E9prouvant =E0 apprendre (mais j'ai commenc=E9 avec beaucoup de
sacrifices sur les loisirs, la vie de famille etc et je ne ferais pas
machine arri=E8re). Je garde professionnellement la t=EAte hors de l'eau,
je donne la priorit=E9 pour gagner de l'argent mais c'est beaucoup
d'=E9nergie... C=F4t=E9 francophone, l'initiative d'entreprendre et
=E9galement d'apprendre n'est pas tant encourag=E9e. Malheureusement, on
voit le r=E9sultat ; l'=E9tat en France pr=E9f=E8re une distribution Linux
anglo-saxonne au d=E9pit de Mandriva....C'est un autre d=E9bat.

Je voudrais savoir si jusqu'=E0 pr=E9sent la "route" que j'ai choisie est
coh=E9rente. Et surtout comment orienter la derni=E8re ann=E9e
d'apprentissage. Dans un livre, j'ai pu voir la biblioth=E8que Glib.
J'ai trouv=E9 que la programmation =E9tait assez diff=E9rente de celle de
stdio, stdlib. Faudrait-il que je me consacre =E0 cet biblioth=E8que afin
d'avoir une connaissance plus pratique de ce langage ? Ou est-ce que
c'est r=E9server =E0 un usage niveau expert du langage C, qui ne serait
pas tr=E8s "utile" lors d'une conversion vers C++, Python, Php,
Javascript des langages vers lesquels je souhaite m'orienter par la
suite. Des langages comme Vb net, C sharp m'int=E9resseraient =E9galement.
Avant, je consid=E8re passer approximativement le double du temps que
j'ai pass=E9 =E0 apprendre le C sur le C++ afin de comprendre la POO. Je
ne sais pas si c'est coh=E9rent.

Merci pour vos conseils (on dirait que ce groupe est de moins en moins
anim=E9 - faut-il s'exprimer en anglais pour retrouver les experts de ce
forum...)

10 réponses

Avatar
JKB
Le 27-05-2010, ? propos de
Re: Apprendre le langage C et quelques questions,
Marc Boyer ?crivait dans fr.comp.lang.c :
Le 27-05-2010, JKB a écrit :
Le 27-05-2010, ? propos de
Re: Apprendre le langage C et quelques questions,
Marc Boyer ?crivait dans fr.comp.lang.c :
Ca dépend. Les bons (rigoureux, motivés), que tu commences par Java ou par C,
ils arrivent au même point à la fin. Mais le ventre mou, il a plus appris.
Par contre, oui, il se met à postuler sur les mêmes jobs que les bons.



Les bons (au début de leur cursus), on ne sait pas encore que ce
sera des bons. Il faut quelques séances pour s'en rendre compte.



Oui, mais ils le sont déjà.
La question, c'est selection vs formation de masse.

Le propos de Marc Espie, tel que je l'ai compris, c'est: il vaut
mieux dégouter rapidement ceux qui n'arriveront à rien de bon.
A mon sens, on peut quand même leur apprendre des choses, même si
le risque est qu'il se retrouve sous-compétent pour certaines tâches.

De mon côté utilisateur, je trouve que les ordis plantent moins
de nos jours qu'il y a disons 15 ans. A l'époque, on pouvait pas
accuser Java.



Je n'ai _jamais_ réussi à faire planter un VAX. Je n'ai _jamais_
réussi non plus à faire planter mon Goupil G3 qui tournait
alternativement sous Flex-9 et UniFLEX. À toutes les époques de
l'informatique, il y a eu des codes crades et des codes propres. Le
problème actuel, c'est que la démocratisation des IDE permet
beaucoup plus facilement l'écriture de codes crades. Pourtant, à
côté de mon G3, il y avait un 80286 sous MS-DOS 3.30 qui lui,
n'arrêtait pas de planter...



Pareil: mon Linux/Ubuntu ne plante quasiment jamais (sauf une machine,
mais je soupsonne un pb disque, et j'ai la flemme de résinstaller sur
un disque sain).

La puissance des machines aussi n'est pas là pour assainir le code.



Non, mais le soft est devenu moins cher.



Non. Le soft à qualité égale n'a pas baissé. Je fais dans le calcul
et franchement, je ne vois pas bien le prix chuter.

Ma fille trouve des jeux gratuits qui m'auraient fait baver à son age.
Dans le débat IDE vs vielleries, je n'ai jamais réussi à configuer
un plugin emacs pour qu'il fasse en mode java ou C++ ce que fait Eclipse.



Je code exclusivement avec vim. Zut, j'ai marché dedans ;-)
Et avec vim, je code du C, Fortran all flavours, RPL/2 (ben oui, on
n'est jamais mieux servi que par soi-même) même en utilisant des
trucs aussi antédiluviens que Motif...

OK, quelques exemples ne font pas une généralité, mais mon sentiment
reste que le soft est moins cher, que le code critique (que je connais)
fait de plus en plus de chose, et reste fiable.



J'ai surtout l'impression qu'il y a de plus en plus deux mondes
totalements différents : le monde du soft critique et le monde du
soft qui peut planter. Et ce qu'on permet à plus de choses de
planter aujourd'hui qu'on ne le permettait il y a quelques années.
Je passe pour un dinosaure parce que lorsque j'écris du C, je teste
tous les retours de fonctions et que j'implante des mécanismes de
récupération d'erreur !

La puissance des machines fait qu'on a plus a economiser la CPU et
la mémoire. Donc, oui, il faut un double coeur pour bosser et surfer
sur Internet (le moindre site mal codé occupe 100% d'un coeur), mais
si ces sites avaient du être codé en C, ils n'existeraient pour la
plupart pas.



Et alors ? Ce n'est pas parce qu'on n'a plus à économiser les
ressources qu'on doit absolument coder comme un goret. Et cette
réflexion va très loin. Actuellement, je suis en train de réécrire
un allocateur pour Solaris parce qu'il y a des bugs à la turc dans
_tous_ les mallocs de Solaris. J'ai testé, c'est une régression
datant de Solaris 8 et _personne_ n'a réussi à dire à Sun de
corriger la chose parce que visiblement, le problème est marginal.
Il faut vraiment être dans une configuration spécifique pour voir
arriver le problème, mais il est bien là, pas de doute.
Je trouve personnellement inadmissible d'avoir un OS avec un
allocateur qui ne libère pas par free() _toute_ la mémoire allouée par
le malloc() correspondant. Heureusement que le mmap() se comporte
correctement et permet d'émuler à peu de frais un malloc() décent !

Lorsque la compilation d'un bête programme de quelques centaines de
lignes n'était pas négligeabme, tu recherchais tes bugs à la main.
Tu ne compilais pas pour voir si ça passait. Aujourd'hui, je vois
des types qui compilent, testent, compilent, testent... et au final
ne savent pas si leur code est bon ou non, seulement qu'il passe 99%
des tests. Et on s'étonne de voir des OS entiers exploser...



Comme tu le disais, MS-DOS plantait déjà à cette époque...



C'est surtout les softs _sur_ MS-DOS qui le faisait planter...

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Avatar
Marc Boyer
Le 27-05-2010, JKB a écrit :
Le 27-05-2010, ? propos de
Re: Apprendre le langage C et quelques questions,
Marc Boyer ?crivait dans fr.comp.lang.c :
La puissance des machines aussi n'est pas là pour assainir le code.



Non, mais le soft est devenu moins cher.



Non. Le soft à qualité égale n'a pas baissé. Je fais dans le calcul
et franchement, je ne vois pas bien le prix chuter.



Peut-être que le calcul est un monde à part. C'est quand même l'ancetre,
et il a du atteindre sa maturité avant les autres.

Ma fille trouve des jeux gratuits qui m'auraient fait baver à son age.
Dans le débat IDE vs vielleries, je n'ai jamais réussi à configuer
un plugin emacs pour qu'il fasse en mode java ou C++ ce que fait Eclipse.



Je code exclusivement avec vim. Zut, j'ai marché dedans ;-)
Et avec vim, je code du C, Fortran all flavours, RPL/2 (ben oui, on
n'est jamais mieux servi que par soi-même) même en utilisant des
trucs aussi antédiluviens que Motif...



Je code uniquement avec xemacs... Mais assez peu en fait.
C'était pas pour faire une bataille d'éditeur, mais pour montrer qu'un
truc relativement nouveau, à base de Java, a su implanter vite des
choses qu'un bon vieux truc robuste ne sait pas encore faire.
Mais là encore, un exemple ne fait pas une généralité.

OK, quelques exemples ne font pas une généralité, mais mon sentiment
reste que le soft est moins cher, que le code critique (que je connais)
fait de plus en plus de chose, et reste fiable.



J'ai surtout l'impression qu'il y a de plus en plus deux mondes
totalements différents : le monde du soft critique et le monde du
soft qui peut planter. Et ce qu'on permet à plus de choses de
planter aujourd'hui qu'on ne le permettait il y a quelques années.



Ca doit dépendre des domaines.
Pour l'informatique grand public, j'ai quand même l'impression d'un mieux.
Pour l'informatique embarqué aérospatiale, on a plutôt durci, puisqu'on a
plutot moins d'incident alors qu'il y a 100 à 1000 fois plus de code.
Pour l'automobile, il y a plus de code et plus de bug. Je n'ai pas d'idée
sur le nb de bug par ligne de code.

Je passe pour un dinosaure parce que lorsque j'écris du C, je teste
tous les retours de fonctions et que j'implante des mécanismes de
récupération d'erreur !



Les retours de fonction, ça me semble normal (encore que printf, j'avoue,
je laisse tomber).
Récupération d'erreur ? A quel niveau ?

La puissance des machines fait qu'on a plus a economiser la CPU et
la mémoire. Donc, oui, il faut un double coeur pour bosser et surfer
sur Internet (le moindre site mal codé occupe 100% d'un coeur), mais
si ces sites avaient du être codé en C, ils n'existeraient pour la
plupart pas.



Et alors ? Ce n'est pas parce qu'on n'a plus à économiser les
ressources qu'on doit absolument coder comme un goret.



Entre une extrème et l'autre, il y a plusieurs milieux, dont un juste
peut-être.

Et cette
réflexion va très loin. Actuellement, je suis en train de réécrire
un allocateur pour Solaris parce qu'il y a des bugs à la turc dans
_tous_ les mallocs de Solaris. J'ai testé, c'est une régression
datant de Solaris 8 et _personne_ n'a réussi à dire à Sun de
corriger la chose parce que visiblement, le problème est marginal.
Il faut vraiment être dans une configuration spécifique pour voir
arriver le problème, mais il est bien là, pas de doute.
Je trouve personnellement inadmissible d'avoir un OS avec un
allocateur qui ne libère pas par free() _toute_ la mémoire allouée par
le malloc() correspondant. Heureusement que le mmap() se comporte
correctement et permet d'émuler à peu de frais un malloc() décent !



D'un autre côté, Solaris, c'est l'histoire d'un échec, non ?

Lorsque la compilation d'un bête programme de quelques centaines de
lignes n'était pas négligeabme, tu recherchais tes bugs à la main.
Tu ne compilais pas pour voir si ça passait. Aujourd'hui, je vois
des types qui compilent, testent, compilent, testent... et au final
ne savent pas si leur code est bon ou non, seulement qu'il passe 99%
des tests. Et on s'étonne de voir des OS entiers exploser...



Comme tu le disais, MS-DOS plantait déjà à cette époque...



C'est surtout les softs _sur_ MS-DOS qui le faisait planter...



Ben, pourtant, c'est pas le rôle d'un OS de protéger les applis
saines des applis buggées ?
Faire tourner un OS sans appli, c'est un peu comme une appli sans
utilisateur, c'est vachement plus facile, non ?

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
JKB
Le 27-05-2010, ? propos de
Re: Apprendre le langage C et quelques questions,
Marc Boyer ?crivait dans fr.comp.lang.c :
Le 27-05-2010, JKB a écrit :
Le 27-05-2010, ? propos de
Re: Apprendre le langage C et quelques questions,
Marc Boyer ?crivait dans fr.comp.lang.c :
La puissance des machines aussi n'est pas là pour assainir le code.



Non, mais le soft est devenu moins cher.



Non. Le soft à qualité égale n'a pas baissé. Je fais dans le calcul
et franchement, je ne vois pas bien le prix chuter.



Peut-être que le calcul est un monde à part. C'est quand même l'ancetre,
et il a du atteindre sa maturité avant les autres.

Ma fille trouve des jeux gratuits qui m'auraient fait baver à son age.
Dans le débat IDE vs vielleries, je n'ai jamais réussi à configuer
un plugin emacs pour qu'il fasse en mode java ou C++ ce que fait Eclipse.



Je code exclusivement avec vim. Zut, j'ai marché dedans ;-)
Et avec vim, je code du C, Fortran all flavours, RPL/2 (ben oui, on
n'est jamais mieux servi que par soi-même) même en utilisant des
trucs aussi antédiluviens que Motif...



Je code uniquement avec xemacs... Mais assez peu en fait.
C'était pas pour faire une bataille d'éditeur, mais pour montrer qu'un
truc relativement nouveau, à base de Java, a su implanter vite des
choses qu'un bon vieux truc robuste ne sait pas encore faire.
Mais là encore, un exemple ne fait pas une généralité.



Je dois être allergique aux IDE, ça doit être ça...

OK, quelques exemples ne font pas une généralité, mais mon sentiment
reste que le soft est moins cher, que le code critique (que je connais)
fait de plus en plus de chose, et reste fiable.



J'ai surtout l'impression qu'il y a de plus en plus deux mondes
totalements différents : le monde du soft critique et le monde du
soft qui peut planter. Et ce qu'on permet à plus de choses de
planter aujourd'hui qu'on ne le permettait il y a quelques années.



Ca doit dépendre des domaines.
Pour l'informatique grand public, j'ai quand même l'impression d'un mieux.
Pour l'informatique embarqué aérospatiale, on a plutôt durci, puisqu'on a
plutot moins d'incident alors qu'il y a 100 à 1000 fois plus de code.
Pour l'automobile, il y a plus de code et plus de bug. Je n'ai pas d'idée
sur le nb de bug par ligne de code.



En tant qu'utilisateur final, j'ai une assez bonne idée de la
qualité de l'automobile actuelle en générale et de l'informatique
embarquée dans celle-ci en particulier ;-)

Je crois que c'est même ne raison de l'arrivée massive de
l'informatique dans l'utomobile et de la qualité d'icelle que j'ai
ressorti ma DS du garage...

Je passe pour un dinosaure parce que lorsque j'écris du C, je teste
tous les retours de fonctions et que j'implante des mécanismes de
récupération d'erreur !



Les retours de fonction, ça me semble normal (encore que printf, j'avoue,
je laisse tomber).
Récupération d'erreur ? A quel niveau ?



À tous les niveaux pour qu'un programme ne termine pas sur un
laconique segmentation fault par exemple. Je teste explicitement les
retours de toutes les fonctions qui peuvent dans le contexte ne pas
s'achever correctement.

La puissance des machines fait qu'on a plus a economiser la CPU et
la mémoire. Donc, oui, il faut un double coeur pour bosser et surfer
sur Internet (le moindre site mal codé occupe 100% d'un coeur), mais
si ces sites avaient du être codé en C, ils n'existeraient pour la
plupart pas.



Et alors ? Ce n'est pas parce qu'on n'a plus à économiser les
ressources qu'on doit absolument coder comme un goret.



Entre une extrème et l'autre, il y a plusieurs milieux, dont un juste
peut-être.

Et cette
réflexion va très loin. Actuellement, je suis en train de réécrire
un allocateur pour Solaris parce qu'il y a des bugs à la turc dans
_tous_ les mallocs de Solaris. J'ai testé, c'est une régression
datant de Solaris 8 et _personne_ n'a réussi à dire à Sun de
corriger la chose parce que visiblement, le problème est marginal.
Il faut vraiment être dans une configuration spécifique pour voir
arriver le problème, mais il est bien là, pas de doute.
Je trouve personnellement inadmissible d'avoir un OS avec un
allocateur qui ne libère pas par free() _toute_ la mémoire allouée par
le malloc() correspondant. Heureusement que le mmap() se comporte
correctement et permet d'émuler à peu de frais un malloc() décent !



D'un autre côté, Solaris, c'est l'histoire d'un échec, non ?



Non. Solaris, c'était un bon OS avant que Sun ne développe java et
en colle partout y compris dans le coeur de Solaris.

Lorsque la compilation d'un bête programme de quelques centaines de
lignes n'était pas négligeabme, tu recherchais tes bugs à la main.
Tu ne compilais pas pour voir si ça passait. Aujourd'hui, je vois
des types qui compilent, testent, compilent, testent... et au final
ne savent pas si leur code est bon ou non, seulement qu'il passe 99%
des tests. Et on s'étonne de voir des OS entiers exploser...



Comme tu le disais, MS-DOS plantait déjà à cette époque...



C'est surtout les softs _sur_ MS-DOS qui le faisait planter...



Ben, pourtant, c'est pas le rôle d'un OS de protéger les applis
saines des applis buggées ?



Certes. MS-DOS était écrit en assembleur 8086, sans aucune
protection mémoire. On ne peut donc pas le lui reprocher.

Faire tourner un OS sans appli, c'est un peu comme une appli sans
utilisateur, c'est vachement plus facile, non ?



Certes.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Avatar
Marc Boyer
Le 27-05-2010, JKB a écrit :
Le 27-05-2010, ? propos de
Re: Apprendre le langage C et quelques questions,
Marc Boyer ?crivait dans fr.comp.lang.c :
Le 27-05-2010, JKB a écrit :

J'ai surtout l'impression qu'il y a de plus en plus deux mondes
totalements différents : le monde du soft critique et le monde du
soft qui peut planter. Et ce qu'on permet à plus de choses de
planter aujourd'hui qu'on ne le permettait il y a quelques années.



Ca doit dépendre des domaines.
Pour l'informatique grand public, j'ai quand même l'impression d'un mieux.
Pour l'informatique embarqué aérospatiale, on a plutôt durci, puisqu'on a
plutot moins d'incident alors qu'il y a 100 à 1000 fois plus de code.
Pour l'automobile, il y a plus de code et plus de bug. Je n'ai pas d'idée
sur le nb de bug par ligne de code.



En tant qu'utilisateur final, j'ai une assez bonne idée de la
qualité de l'automobile actuelle en générale et de l'informatique
embarquée dans celle-ci en particulier ;-)

Je crois que c'est même ne raison de l'arrivée massive de
l'informatique dans l'utomobile et de la qualité d'icelle que j'ai
ressorti ma DS du garage...



La carricature est amusante, mais ne restons pas à cela.
La baisse de consommation des moteurs n'est possible que grace aux
calculateurs embarqués. Les nouvelles tenues de route aussi (pour corriger
le coup de la Smart qui s'était retournée devant les photographes, à
ma connaissance, ils n'ont rien changé de matériel dans la voiture, mais
ajoutée une tache de surveillance dans le calculo).
Mais en effet, ils sont venus avec des bugs.

Et pour en revenir au propos initial, c'est la question du taux de bug
résiduel par nb de ligne qui est intéressante du point de vue informatique
(du point de vue système, c'est le nb de bug total...)

Je passe pour un dinosaure parce que lorsque j'écris du C, je teste
tous les retours de fonctions et que j'implante des mécanismes de
récupération d'erreur !



Les retours de fonction, ça me semble normal (encore que printf, j'avoue,
je laisse tomber).
Récupération d'erreur ? A quel niveau ?



À tous les niveaux pour qu'un programme ne termine pas sur un
laconique segmentation fault par exemple. Je teste explicitement les
retours de toutes les fonctions qui peuvent dans le contexte ne pas
s'achever correctement.



T'en es pas à faire à la main ton système d'exceptions à la setjmp,
longjmp ?

D'un autre côté, Solaris, c'est l'histoire d'un échec, non ?



Non. Solaris, c'était un bon OS avant que Sun ne développe java et
en colle partout y compris dans le coeur de Solaris.



Et ton bug, il date de quand ?

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
espie
In article ,
JKB wrote:
le 27-05-2010, ? propos de
re: apprendre le langage c et quelques questions,
marc boyer ?crivait dans fr.comp.lang.c :
Pour l'automobile, il y a plus de code et plus de bug. Je n'ai pas d'idée
sur le nb de bug par ligne de code.



En tant qu'utilisateur final, j'ai une assez bonne idée de la
qualité de l'automobile actuelle en générale et de l'informatique
embarquée dans celle-ci en particulier ;-)

Je crois que c'est même ne raison de l'arrivée massive de
l'informatique dans l'utomobile et de la qualité d'icelle que j'ai
ressorti ma DS du garage...




Sans blague.

http://www.autosec.org/pubs/cars-oakland2010.pdf

Des fois que... si d'aventure les gens ne sont pas encore tombes dessus.
Avatar
espie
In article <htm13j$4i1$,
Marc Boyer wrote:
D'un autre côté, Solaris, c'est l'histoire d'un échec, non ?



Sur le plan technique ? certainement pas ! Sun a longtemps ete leader
en performances sur les gros unix avec plein de memoire, plein de disques,
et beaucoup de coeurs.

Les problemes de sun ont toujours ete cote marketing, en particulier avec
une conversion rate de vendeur materiel en vendeur logiciel, et un
decoupage en sous-divisions tres bizarres, qui se faisaient la concurrence
l'une avec l'autre.

Solaris fait quand meme partie des trucs qu'oracle a recupere avec le
rachat. S'ils s'en foutaient totalement, ils n'auraient pas commence
a faire chier en changeant la politique de distribution de CDs...
Avatar
JKB
Le 27-05-2010, ? propos de
Re: Apprendre le langage C et quelques questions,
Marc Boyer ?crivait dans fr.comp.lang.c :
Le 27-05-2010, JKB a écrit :
Le 27-05-2010, ? propos de
Re: Apprendre le langage C et quelques questions,
Marc Boyer ?crivait dans fr.comp.lang.c :
Le 27-05-2010, JKB a écrit :

J'ai surtout l'impression qu'il y a de plus en plus deux mondes
totalements différents : le monde du soft critique et le monde du
soft qui peut planter. Et ce qu'on permet à plus de choses de
planter aujourd'hui qu'on ne le permettait il y a quelques années.



Ca doit dépendre des domaines.
Pour l'informatique grand public, j'ai quand même l'impression d'un mieux.
Pour l'informatique embarqué aérospatiale, on a plutôt durci, puisqu'on a
plutot moins d'incident alors qu'il y a 100 à 1000 fois plus de code.
Pour l'automobile, il y a plus de code et plus de bug. Je n'ai pas d'idée
sur le nb de bug par ligne de code.



En tant qu'utilisateur final, j'ai une assez bonne idée de la
qualité de l'automobile actuelle en générale et de l'informatique
embarquée dans celle-ci en particulier ;-)

Je crois que c'est même ne raison de l'arrivée massive de
l'informatique dans l'utomobile et de la qualité d'icelle que j'ai
ressorti ma DS du garage...



La carricature est amusante, mais ne restons pas à cela.
La baisse de consommation des moteurs n'est possible que grace aux
calculateurs embarqués. Les nouvelles tenues de route aussi (pour corriger
le coup de la Smart qui s'était retournée devant les photographes, à
ma connaissance, ils n'ont rien changé de matériel dans la voiture, mais
ajoutée une tache de surveillance dans le calculo).
Mais en effet, ils sont venus avec des bugs.



On va faire du hors charte, mais bon... Une voiture, c'est de la
physique. Elle tient ou ne tient pas la route en fonction de son
châssis. Si un bout l'électronique stabilise l'engin, c'est déjà,
àmha une grossière erreur. Et c'est d'autant plus dangereux que
la première perte d'adhérence te mettra au tapis très vite fait
parce que l'électronique n'arrivera pas à suivre correctement.
Je ne suis pas contre l'électronique dans l'automobile, mais cette
électronique devrait être là pour améliorer le produit, pas pour
obvier à ses déficiences structurelles.

Quant à la consommation, sur route, je consomme grosso-modo la même
chose avec ma DS23 à injection électronique qu'avec ma 607. Même
poids, même puissance, même conducteur et pas loin de 40 ans plus
jeune pour la 607. Cherchez l'erreur !... Je ne vais pas entrer dans
le détail parce que je suis en train d'écrire un papier sur la
réduction artificielle de la consommation des véhicules par
l'électronique.

Et pour en revenir au propos initial, c'est la question du taux de bug
résiduel par nb de ligne qui est intéressante du point de vue informatique
(du point de vue système, c'est le nb de bug total...)

Je passe pour un dinosaure parce que lorsque j'écris du C, je teste
tous les retours de fonctions et que j'implante des mécanismes de
récupération d'erreur !



Les retours de fonction, ça me semble normal (encore que printf, j'avoue,
je laisse tomber).
Récupération d'erreur ? A quel niveau ?



À tous les niveaux pour qu'un programme ne termine pas sur un
laconique segmentation fault par exemple. Je teste explicitement les
retours de toutes les fonctions qui peuvent dans le contexte ne pas
s'achever correctement.



T'en es pas à faire à la main ton système d'exceptions à la setjmp,
longjmp ?



Ssssssi...

D'un autre côté, Solaris, c'est l'histoire d'un échec, non ?



Non. Solaris, c'était un bon OS avant que Sun ne développe java et
en colle partout y compris dans le coeur de Solaris.



Et ton bug, il date de quand ?



De Solaris 2.8. Sous 2.7, ça se comporte normalement. La différence,
c'est que le 2.7 est issu du 2.5 qui se devait de tourner sur des
machines avec très peu de mémoire (16 ou 32 Mo) alors que le 2.8
demandait déjà beaucoup plus de mémoire pour s'installer. C'était
l'époque des U420R qui étaient vendues d'office avec 512 Mo de
mémoire (si la mienne est bonne).

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Avatar
JKB
Le 27-05-2010, ? propos de
Re: Apprendre le langage C et quelques questions,
Marc Espie ?crivait dans fr.comp.lang.c :
In article <htm13j$4i1$,
Marc Boyer wrote:
D'un autre côté, Solaris, c'est l'histoire d'un échec, non ?



Sur le plan technique ? certainement pas ! Sun a longtemps ete leader
en performances sur les gros unix avec plein de memoire, plein de disques,
et beaucoup de coeurs.

Les problemes de sun ont toujours ete cote marketing, en particulier avec
une conversion rate de vendeur materiel en vendeur logiciel, et un
decoupage en sous-divisions tres bizarres, qui se faisaient la concurrence
l'une avec l'autre.

Solaris fait quand meme partie des trucs qu'oracle a recupere avec le
rachat. S'ils s'en foutaient totalement, ils n'auraient pas commence
a faire chier en changeant la politique de distribution de CDs...



Ça va beaucoup plus loin que ça. Solaris restera viable tant
qu'OpenSolaris le sera et Oracle semble bien déterminé à le tuer.
Quand tu penses qu'avec du matériel estampillé Sun qui n'est plus
sous contrat de maintenance (parce matériel de plus de trois ans), tu
n'as plus accès aux patches de Solaris, c'est du vrai foutage de
gueule. Sans compter que j'ai des machines sous contrat pour
lesquelles il est impossible de passer le moindre patch !
Si la politique de Sun^WOracle reste la même, Solaris est
mort à court terme. Et franchement, vu l'évolution de la chose, ce
n'est pas moi qui le pleurerai. Le seul Solaris récent adminsitrable
reste à mon avis Nexenta.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Avatar
Antoine Leca
JKB a écrit :
Vi + gcc + gdb pour tout le monde ;-)



Heu.... C'est soit vi + sdb ou équivalent, soit emacs + gdb/dbx, sinon
tu mélanges les torchons et les serviettes...

Ok, hors charte, je sors :-)


Antoine
Avatar
JKB
Le 27-05-2010, ? propos de
Re: Apprendre le langage C et quelques questions,
Antoine Leca ?crivait dans fr.comp.lang.c :
JKB a écrit :
Vi + gcc + gdb pour tout le monde ;-)



Heu.... C'est soit vi + sdb ou équivalent, soit emacs + gdb/dbx, sinon
tu mélanges les torchons et les serviettes...

Ok, hors charte, je sors :-)



Soit je n'ai pas vraiment compris (vu l'heure, c'est possible), soit
je ne comprends pas en quoi l'utilisation de vi empêche celle de
gdb...

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.