Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN

Le pub des programmeurs

  • 1 927 réponses
  • 117 participants
  • 131 666 vues
  • 130 followers
Sujet de la discussion Le pub des programmeurs
Salut :coucou: y a des programeurs sur AF si oui vous bossez sous quoi ?
Afficher le sujet de la discussion
676
Ouaih, hier aprèm. :lol:

Mais en fin de thèse je taquinais grave en Latex, et quand on en est là, c'est un réel bonheur...

Affiliation : Dirigeant Fondateur d'Orosys - Two notes Audio Engineering

677

Citation : Sinon ton idée Pouet se tient, mais alors c'est quoi l'intérêt du truc ? Diminuer un peu la consommation de papier en imprimant moins de bulletins que d'habitude ?


Ca permet d'avoir le résultat instantanément dès la fin des heures de vote. C'est l'un des principaux arguments des défenseurs des machines de vote. Et j'ai retenu l'idée d'imprimer un bulletin, mais elle n'est pas de moi, je l'ai lu sur l'article du Monde :

Citation : Soupçons sur le vote électronique
Article paru dans l'édition du 20.03.07

Des machines à voter vont être utilisées dans certains bureaux pour l'élection présidentielle. Avantages : commodité et économie de papier. Inconvénient : des manipulations sont possibles

Le 22 avril, un à deux millions de Français ne trouveront dans leur bureau de vote ni bulletins ni enveloppes. Pour exprimer leur voix, ils presseront deux touches - la première pour choisir un candidat, la seconde pour confirmer leur choix. Pour la première fois en France, lors d'une élection présidentielle, ces citoyens utiliseront des ordinateurs de vote. Un peu plus d'un millier de terminaux sont aujourd'hui installés dans une cinquantaine de communes, mais leur déploiement ne va pas sans polémique.

Depuis le début de l'année, plusieurs personnalités et partis politiques s'interrogent sur les risques inhérents à ces systèmes. « Des machines à voter basées sur des matériels informatiques sont aujourd'hui en cours d'installation (...) en France, sans qu'un débat public ait eu lieu sur le bien-fondé de cette technicisation du vote et les éventuels risques de fraude et de manipulation », déclarent ainsi les Verts dans une motion adoptée début février. Le Parti communiste est sur la même ligne. Selon Patrick Bloche, député (PS) de Paris, « un sentiment de méfiance domine largement au Parti socialiste » vis-à-vis d'appareils « qui semblent bien moins transparents que les urnes en Plexiglas ».

« Les machines à voter sont accessibles aux malvoyants, permettent un dépouillement immédiat, sans gâchis de papier, sans besoin de table de dépouillement, de scrutateurs, etc., plaide pour sa part Hervé Palisson, directeur de France-Election, importateur en France des machines à voter néerlandaises Nedap. Il faut savoir que, faute de volontaires, ce sont des employés municipaux payés en heures supplémentaires qui procèdent au dépouillement dans certaines communes. »

Cette dématérialisation du suffrage est pour certains un risque intolérable. « Le système de vote actuel a été conçu pour que quiconque, même le plus ignorant, puisse se forger l'intime conviction que le vote s'est déroulé honnêtement, dit Roberto Di Cosmo, chercheur au laboratoire Preuves, programmes et systèmes (CNRS, université Paris-VII). Lorsque le vote se fait par voie électronique, est-il possible de se forger, seul, la même conviction ? La réponse est non : il faut recourir à l'expert, à l'argument d'autorité. »

L'impossibilité de vérifier l'intégrité du vote inquiète bien au-delà de quelques universitaires ou personnalités politiques. La principale société savante d'informaticiens, l'Association for Computing Machinery (ACM), a récemment pris une position de consensus appelant à ce que tout système de vote électronique soit doublé d'un dispositif d'impression d'un bulletin contrôlé de visu par l'électeur. Ces bulletins papier pourraient être stockés dans une urne classique, autorisant ainsi un recomptage ultérieur des suffrages. Cette précaution ne figure pas dans le règlement technique émis en novembre 2003 par le ministère de l'intérieur (il faut préciser que, dans le vote traditionnel, les bulletins papier ne sont pas conservés mais détruits le soir même après la proclamation des résultats dans chaque bureau, à l'exception des blancs et nuls qui sont annexés au procès-verbal). Les trois modèles d'ordinateur à voter homologués en France - construits par Nedap, l'espagnol Indra Sistemas et l'américain ES&S - sont donc dépourvus d'un tel dispositif de contrôle.

D'autres reproches sont formulés. « Le règlement technique du ministère admet que le programme utilisé dans les machines à voter soit secret, c'est-à-dire que le code-source ne soit pas rendu public, dit ainsi Chantal Enguehard, maître de conférence en informatique à l'université de Nantes. Il est donc impossible aux simples citoyens de l'examiner : la protection du secret industriel a été jugée plus importante que la transparence de la procédure de vote. » Par la voix de son directeur, France-Election fait cependant savoir que le code-source n'est pas rendu public pour des raisons de sécurité, mais qu'il a pu être ausculté par des organismes de contrôle comme le Bureau Veritas.

A l'automne 2006, un groupe d'informaticiens néerlandais a fait l'acquisition de machines Nedap pour en évaluer l'intégrité. « Ces informaticiens ont démonté une machine, ont constaté qu'ils pouvaient en changer le logiciel et l'ont reprogrammée pour jouer aux éc hecs », explique M. Di Cosmo. Surtout, ils affirment être parvenus à capter les radiofréquences émises par la machine à une distance de 25 mètres environ et être ainsi à même de savoir si le nom affiché sur l'écran à cristaux liquides de l'appareil - le nom du candidat pour lequel le vote a été enregistré - comporte ou non des caractères accentués. « Ce qu'ils ont fait, c'est simplement de vérifier que la machine fait bien ce qu'on lui demande », tempère M. Palisson. Quant à la possibilité de surveiller à distance le fonctionnement de la machine, « l'expérience a été faite sur un ancien modèle qui n'est plus en service et, de toute façon, il serait possible de mettre en oeuvre le même type de surveillance avec le vote classique, au moyen de caméras installées dans les isoloirs », réplique le directeur de France-Election, qui fait valoir qu'aucun dysfonctionnement des appareils Nedap n'a été rapporté.

« NEUTRALISER UN CANDIDAT »

L'exercice auquel se sont essayés les informaticiens néerlandais n'est pas isolé. En octobre 2006, quatre chercheurs du département d'informatique et d'ingénierie de l'université du Connecticut sont par exemple parvenus à reprogrammer un terminal de vote Diebold, l'un des constructeurs les mieux implantés aux Etats-Unis. « Une attaque de base peut neutraliser entièrement un candidat, échanger les voix apportées à deux candidats ou biaiser les résultats en reportant sur un candidat les votes apportés à un autre, écrivent les auteurs dans le compte rendu de leurs travaux. La corruption du système peut rester dormante jusqu'au jour de l'élection, ce qui rend impossible sa détection par le biais de tests préélectoraux. » Sans que des fraudes avérées aient été mises au jour, plusieurs cas de défaillances de systèmes de vote électronique ont été documentés ces dernières années, surtout aux Etats-Unis, mais aussi en Europe.

Un exemple fameux est l'incident de Schaerbeek (Belgique), le 18 mai 2003. Le décompte des voix exprimées avait excédé de plus de 4 000 le nombre d'inscrits dans la circonscription. Incapable d'en élucider la cause, le collège d'experts mandaté par les autorités fédérales belges a conclu que « l'erreur [avait] très probablement été occasionnée par une inversion spontanée et aléatoire d'une position binaire ». C'est-à-dire, en somme, qu'un bit informatique de l'ordinateur de vote a pris « spontanément » la valeur 1 au lieu de la valeur 0. « Ce phénomène, ajoutaient les experts, est abondamment décrit dans la littérature spécialisée. » Il ne l'est pas dans le code électoral.
Stéphane Foucart (avec Edouard Bal)


Effectivement, au niveau papier ça diviserait la consommation au moins par 10 : 1 bulletin par votant, et non 1 par candidat, sans parler des bulletins non utilisés.
678

Citation : Ca permet d'avoir le résultat instantanément dès la fin des heures de vote.



Bah tu viens d'écrire qu'il faudrait recompter les bulletins imprimés. :?!:

Donc que le cumul instantané est forcément une donnée provisoire, donc parfaitement inutile, sauf peut être pour les bookmakers. :noidea:

J'ai lu l'article. C'est clair que si tu files une machine pour une durée indéterminée à un groupe d'experts, ils arriveront a lui faire afficher "hello world" au lieu de "sarkozy".

Affiliation : Dirigeant Fondateur d'Orosys - Two notes Audio Engineering

679

Citation : Donc que le cumul instantané est forcément une donnée provisoire, donc parfaitement inutile, sauf peut être pour les bookmakers.


Tu sais, les gens qui regardent la télé aiment bien avoir les résultats à 20h01 ;)

Je défends pas le truc hein : moi je préfèrerais, en général, avoir des infos hebdomadaires approfondies qu'un journal de 20h complètement creux. Mébon, la tendance générale est à l'instantanéité, à l'image, au gadget...

Si on ne peut pas s'y opposer (ce que je pense être le cas pour ces machines à votes), autant militer pour conserver un moyen de vérification.

:noidea:
680

Citation : Je peux plus trop te repondre, la, Pouet, j'ai trop de trucs en cours, et ce ***** de latex qui refuse de me foutre la figure comme il faut a 3 jours de la deadline d'une des deux confs importants de l'annee


Tiens, ça m'a fait la même chose il y a qqs temps !
C'est quelle conf ?

Et c'est sur quoi qur tu vas plancher au SOC ? - n'oublie pas que ça devrait être ton activité principale de l'été :volatil: -
681
Interspeech. Mon prof me pousse (enfin je crois, ca fait partie des joies des barrieres culturelles franco japonaises) a faire un article, mais le truc sur lequel je bosse depuis plusieurs mois n'est toujours pas au point, et moralement, ca me fait chier de refaire un article similare a l'annee derniere, donc je force un nouvel algo en plus de nouvelles donnees pour l'evalutation...

SOC, activite principale de l'ete, on verra bien, je suis aussi cense preparer un article de journal, ICASSP 2008 entre d'ici la...Puis le SOC est en rapport direct avec ma these quand meme, je suis pas maso non plus. En fait, c'est assez rigolo, parce que j'ai besoin du ble pour m'acheter du matos ergonomique (chaise + bureau: 2000 euros minimum), et donc je vais plus me bousiller les mains pour me le payer. :surpris:
682
Ok, fini le taf un peu plus tot que prevu. Donc:

Citation :
Donc sans parler de machines de votes, quel est votre point de vue sur "quel langage permet le plus facilement de savoir ce que fait un programme en lisant le source ?" ou "avec quel langage est-il le plus difficile de cacher des fonctions douteuses ?"

Peut-être que Python, comme Perl, qui sont des langages de scripts réflexifs (ça se dit ? pour dire que l'on peut créer une chaîne de caractères dans le programme et ensuite exécuter celle-ci, ce qui est proche du code automodifiant) ne sont pas adaptés, mais il me semble qu'en java ça devrait être plus difficile ; et notamment plus difficile en java qu'en C.

Sinon l'Ada doit être un bon cheval pour écrire des programmes où il est difficile de cacher des trucs.


Bon moi je vote pour l'Ada. Et vous ?



Je pense que tu parles de deux choses qui sont reellement differentes en meme temps: savoir ce que fait un programme en le lisant, et cacher des fonctionalites meme au travers du code.

Le probleme du C est bien connu: il y a enormement de comportements non specifies. Typiquement, si je fais


int a[2];
int i;

for (i=0; i < sizeof(a) / sizeof(a[0]); ++i) {
a[++i] = i;
}


Ca veut pas dire grand chose; OK, un bon compilo te dira que a[++i], c'est plutot couillon, mais quand meme... Je parle evidemment pas du C++, qui a tellement de trucs qui n'ont aucun sens et dont le parsing est d'une telle complexite qu'aucun compilo ne le fait a 100% (template).

De l'autre cote, tu as des langages style LISP qui ont un "core" extremement reduit, et tout est construit de la (C aussi est relativement reduit; C++ ne l'est pas: encore une fois, c'est un langage battant le record complexite/expressivite). Tout est "specifie", d'une certaine maniere; c'est d'ailleurs une raison pour laquelle en theorie des langages, on prefere largement les langages fonctionnels: ca se prete beaucoup mieux pour prouver les resultats d'un programme donne (dans les limites theoriques qui dit qu'il existe des programmes dont il est impossible de determiner s'ils sont justes ou faux... cf Godel et V Neuman).

En fait, quand tu fais du cross platform avec du C, tu te rends compte que les problemes, c'est pas tant les differents OS (enfin quand meme un peu :) ), les differents architectures CPU, mais aussi les differents compilo. Le fait que le comportement depende du compilo, c'est assez specifique au C (et evidemment C++, mais j'evite de parler de THE beast).

Ada, lui, prend la dermarche de tout specifier "a la main", a travers tout un tas de trucs. Il y a une suite de tests a passer (3000 si ma memoire est bonne pour ada95) pour etre un compilo ada95 valide. En C, t'as rien de tel. En C++, c'est theoriquement impossible.

Python a vraiment un truc a ce niveau la, faut vraiment l'utiliser pour comprendre je pense. Eric Raymond le decrit tres bien, je trouve, ca correspond exactement a ce que j'ai ressenti en commencant python:

https://www.linuxjournal.com/article/3882

Citation :
So the real punchline of the story is this: weeks and months after writing fetchmailconf, I could still read the fetchmailconf code and grok what it was doing without serious mental effort. And the true reason I no longer write Perl for anything but tiny projects is that was never true when I was writing large masses of Perl code. I fear the prospect of ever having to modify keeper or anthologize again--but fetchmailconf gives me no qualms at all.



Le coup de pouvoir relire mon propre code des mois apres sans problemes, c'est vraiment un truc que tu peux pas faire en C (a part des trucs triviaux, entendons nous bien).
683
Interessant.
Ca me fait penser à un niveau bien plus basique au problème entre le java et le python de la "poubelle" :) et de la différence entre que java te dit que t as pas le droit de faire des trucs, et python t'authorise simplement pas à jouer au couillon.
Enfin bref, moi j'essaye déjà d'aller le plus loin que je peux en C et Java, même si j'avais demandé au prof si on pouvait pas plutot faire du python que du java ;)

cptn.io

684

Citation : Je pense que tu parles de deux choses qui sont reellement differentes en meme temps: savoir ce que fait un programme en le lisant, et cacher des fonctionalites meme au travers du code.


Ouais, c'est vrai, ce ne sont pas les mêmes choses. Par contre, sur l'exemple que tu donnes, j'aurais tendance à dire (en supposant que c'est par exemple le code de machines à voter) : pas humainement très lisible, donc code à refaire. Dans les projets industriels on applique généralement des règles de codage, plus ou moins strictes selon les équipes, et ce genre de trucs est généralement interdit. Rien que l'usage du ++ avant la variable déjà...

Citation : En fait, quand tu fais du cross platform avec du C, tu te rends compte que les problemes, c'est pas tant les differents OS (enfin quand meme un peu ), les differents architectures CPU, mais aussi les differents compilo. Le fait que le comportement depende du compilo, c'est assez specifique au C (et evidemment C++, mais j'evite de parler de THE beast).


Bah ça, ça dépend des exemples de code sur lesquels tu bosses. Pour ceux auxquels je suis confronté (des softs gros avec un historique, genre 500.000 lignes avec 10 à 20 ans d'existence), c'est clairement pas le langage qui pose le plus de problèmes, mais plutôt libc et architecture matérielle. Sur des portages de Digital True64 vers Linux ou AIX vers Linux, c'est surtout les caractéristiques des OS qui jouent...

Citation : Ada, lui, prend la dermarche de tout specifier "a la main", a travers tout un tas de trucs. Il y a une suite de tests a passer (3000 si ma memoire est bonne pour ada95) pour etre un compilo ada95 valide. En C, t'as rien de tel. En C++, c'est theoriquement impossible.


C'est sûr.

Citation : Le coup de pouvoir relire mon propre code des mois apres sans problemes, c'est vraiment un truc que tu peux pas faire en C (a part des trucs triviaux, entendons nous bien).


Là encore j'apporterais une nuance : se relire soi-même, si c'était un objectif au moment du codage (et qu'on a fait ce qu'il fallait), on y arrive. Je dirais même qu'en C++ ou en Perl, on peut faire du code limpide.

En revanche, si on prend un développeur qui ne fait aucun effort, le code a beaucoup de chances d'être le plus illisible avec C++ ou Perl ; tandis que d'autres langages vont obliger à un minimum de lisibilité (ce qui doit être le cas de Python).
685

Citation : Rien que l'usage du ++ avant la variable déjà...


J'avais entendu un truc selon lequel ca serait plus rapide que i++? (la personne qui me l'a dit avait l'air assez ironique...)

Citation : Là encore j'apporterais une nuance : se relire soi-même, si c'était un objectif au moment du codage (et qu'on a fait ce qu'il fallait), on y arrive. Je dirais même qu'en C++ ou en Perl, on peut faire du code limpide.

En revanche, si on prend un développeur qui ne fait aucun effort, le code a beaucoup de chances d'être le plus illisible avec C++ ou Perl ; tandis que d'autres langages vont obliger à un minimum de lisibilité (ce qui doit être le cas de Python).


Je suis d'accord avec ca. J'ais été confronté au 2 cas de figure, du code C++ assez complexe mais relativement bien écris (pas par moi) sur lequel j'ais du bosser (plusieurs dizaine de milliers de ligne) qui était bien écris et finalement facile à comprendre, mais aussi du code avec nom de variable à la con, commentaire hallucinant, identation inexistante, conception des classes totalement farfelus... maintenant je pense qu'il y avait plus ou moins volonté de cache ce que faisait le code reelement (code pour physique de voiture, et le résultat était excellent).
686
Le coup du ++i, je l'ai aussi entendu, et a priori de qqn bien meilleur programmeur que moi. Par contre, c'etait valable qu'en C++, et c'etait avec visual studio 6, et je ne me souviens plus pourquoi et dans quel contexte. La, comme ca, avec gcc, je vois pas de difference dans l'assembleur genere.

Citation :
Je suis d'accord avec ca. J'ais été confronté au 2 cas de figure, du code C++ assez complexe mais relativement bien écris (pas par moi) sur lequel j'ais du bosser (plusieurs dizaine de milliers de ligne) qui était bien écris et finalement facile à comprendre, mais aussi du code avec nom de variable à la con, commentaire hallucinant, identation inexistante, conception des classes totalement farfelus... maintenant je pense qu'il y avait plus ou moins volonté de cache ce que faisait le code reelement (code pour physique de voiture, et le résultat était excellent).



Oui mais en caricaturant un peu, ce que vous dites, c'est que du code bien ecrit est lisible, et que du code mal ecrit est illisible, une lapalissade, quoi. La question, c'est plus de savoir a quel point un langage te permet d'exprimer des constructions de haut niveau sans que le langage gene. En C++, l'exemple typique, pour moi, c'est boost et la STL. Ca rend tres rapidement le code illisible des qu'on utilise des trucs non triviaux, et ca pretend etre haut niveau alors qu'en fait pas vraiment.
687
++i est bien plus rapide que i++. Le premier incrémente la variable puis la retourne. Le second crée une variable temporaire, incrémente sa valeur et retourne la valeur temporaire.
Autant dire que lorsque le type de i est un itérateur complexe, on sent la différence. Sur un entier, le compilateur est capable d'optimiser. De manière générale, on conseille d'ailleurs d'implémenter i++ en terme de ++i.
688
Hello

Je me permets juste de vous laisser déjà le nom du site de mon projet , même si y arien dessus, ceux intéressés, vous pouvez venir dessus régulièrement, dès que j'aurais un peu de tps, et que j'aurais recu mon mac pro, je mettrais tt le schmilblik en ligne ;)
http://projetguitare.free.fr

Sinon miles 1981 on dirait que tu es sur l univ de stras, moi je suis a mulhouse pour le moment, mais a la rentrée, normalment, je monte a stras ... On pourra se siroter une biere a l occaz ;)

cptn.io

689

Citation :
++i est bien plus rapide que i++. Le premier incrémente la variable puis la retourne. Le second crée une variable temporaire, incrémente sa valeur et retourne la valeur temporaire.
Autant dire que lorsque le type de i est un itérateur complexe, on sent la différence. Sur un entier, le compilateur est capable d'optimiser. De manière générale, on conseille d'ailleurs d'implémenter i++ en terme de ++i.



Dans mon cas, c'etait bien pour des entiers, et c'etait bien pour cette raison temporaire, en lisant ton post ca m'est revenu. Mais c'etait il y a quelques annees, et le paysage des compilo C++ a quand meme bien evolue (au moins sur les plateformes windows/mac/linux) depuis, donc j'imagine que pour les entiers, c'est plus tres important.
690
Gremlins > sans pb :)
gabou > tout à fait, le compilo fait l'optimisation, normalement. Mais faut prendre les bonnes habitudes pour y penser quand ce n'est pas un entier.
691
J'avais pas capte non plus que t'etais a Strabourg. C'est rigolo, deja il y a deux ans je rencontre un Francais d'Illkirch a Kyoto, ayant moi meme vecu pres de 20 ans a Ostwald; a croire que c'est le centre du monde :ptdr:
692
Quoi ? Strasbourg n'est pas le centre du monde ?? On m'aurait menti ?


:mdr: :mdr: :mdr:
693
Strasbourg, je sais pas, mais Illkirch, bof
694
Mdr ... non non dsl c saint-louis qui est le centre du monde, regardez, je cotois tt les jours des voitures d'une dizaine de départements différents ... quoi comment ca on s'enfout des départements, la France n'est pas le centre du monde ? Pke c Paris ptet ;) ? Tte facon je suis alsacien pas francais ;)

Sinon je voulais demander pour encore changer de sujet, y a du monde qui a fait du temps réel embarqué ici ? Ske vous connaissez Xenomai ? Apparement c un truc qui pourrait etre pas mal pour gerer tout en mm tps ... Moi j'ai fait que de l'embarqué sur un uC SAB C 515 , un dérivé de 8051 si je me souviens ...

cptn.io

695

Citation : Oui mais en caricaturant un peu, ce que vous dites, c'est que du code bien ecrit est lisible, et que du code mal ecrit est illisible, une lapalissade, quoi.


Bah non. C'est tellement caricaturé que ce n'est plus du tout ce que l'on disait. Pour chaque langage tu as un niveau de clarté minimal imposé par le langage (et généralement complété par des règles de codage, mais c'est un autre sujet) ; par exemple ce niveau semble élevé en Python. Et tu as le niveau de clarté atteint par quelqu'un qui soigne son code ; et là je pense que l'on peut faire nettement mieux en C++ qu'en C. Et même en Perl on peut faire des trucs très lisibles, probablement encore plus qu'en C ou C++. Mais par contre, pour ces deux langages le niveau minimal peut être très bas.

Donc après tu peux faire un choix en fonction du contexte du projet : es-tu seul à développer ou non ? Tous les développeurs seront-ils des passionnés (probablement le cas d'Ardour par exemple) ou bien y aura-t-il un contingent incontournable de gens qui codent salement (cas classique d'un soft maintenu par une voire plusieurs sociétés sur une durée importante) ?

Citation : La question, c'est plus de savoir a quel point un langage te permet d'exprimer des constructions de haut niveau sans que le langage gene. En C++, l'exemple typique, pour moi, c'est boost et la STL. Ca rend tres rapidement le code illisible des qu'on utilise des trucs non triviaux


Je ne suis pas trop d'accord avec toi : si on utilise bien les STL (notamment avec des typedef et des noms bien choisis) ça peut rester très clean.

La question que tu décris est intéressante, mais ce n'est pas celle qui est à l'origine de cette discussion. On parlait de la lisibilité du code des machines à voter.

En fait tout dépend si celui qui a écrit le code l'a fait dans le but de cacher des trucs (auquel cas il faudrait un langage qui impose une clarté minimale élevée) ou bien si au contraire il a recherché la meilleure lisibilité.

Dans le premier cas ce serait une équipe à priori intéressée et corruptible ; dans le second ce serait une communauté désintéressée et transparente. Comme on ne peut pas être sûr de savoir à qui on a affaire, il vaudrait évidemment mieux un langage qui laisse peu d'équivoque, genre ADA.

A la limite, comme tu le disais toi-même, ça oblige presque à aller à l'opposé d'un langage qui permette d'exprimer des constructions de haut niveau...
696

Citation :
Je ne suis pas trop d'accord avec toi : si on utilise bien les STL (notamment avec des typedef et des noms bien choisis) ça peut rester très clean.



Oui, ca peut. J'en ai rarement vu, cependant. De toute facon, le probleme des template en C++, c'est que c'est utilise pour faire des choses pour lesquels ils n'ont pas du tout ete prevus au depart, et on a du coup cette syntaxe absolument horrible, un truc impossible a parser correctement a tous les coups, avec toutes les consequences que ca a sur les messages d'erreur incomprehensibles (exemple type: copier un exemple de boost, faire une erreur de syntaxe quelque part... Et pleure pour trouver l'erreur :) ). Je trouve ca d'autant plus dommage que c'est un probleme regle depuis longtemps: il y a des langages qui permettent la "meta programmation" avec une syntaxe claire.

On peut faire du joli code en C++ (QT en est un exemple), apres, c'est sur, mais c'est super dur. Le langage est tellement enorme, que tout le monde utilise un "sous C++"... Du coup, c'est courant de voir du C++ completement incomprehensible parce que c'est tres different de ce dont tu as l'habitude. Quand tu vois du code C, c'est toujours plus ou moins la meme chose, du python aussi, etc... Le C++, entre QT et boost, par exemple, c'est tellement different que j'ai meme pas l'impression de lire le meme langage. Et il s'agit de deux libraries de reference en C++ !

Citation :
On parlait de la lisibilité du code des machines à voter.



Pour ce type de trucs, je pense qu'il faut avant tout d'excellents programmeurs. Je sais pas si t'as lu cet article sur une des equipes qui programment pour la navette spatiale... Ils font du code sans bug, en gros.

http://www.fastcompany.com/online/06/writestuff.html

Il y a aussi OpenBSD qui a un process interessant: chaque fois qu'un bug est detecte, non seulement il est corrige, mais tout le code de l'OS est audite pour eviter que ce type d'erreurs apparaisse ailleurs. Du coup, t'as un OS qui est relativement connu pour sa securite (et openssh avec, aussi).

C'est pour ca que je pense que le langage a assez peu d'importance in fine pour ce type de taches.
697
OpenBSD j'aime bien, meme juste pour la philosophie du truc & cie ... Je suis en train de le mettre en place sur une passerelle ..

Je viens nouveau à vous pour savoir si y en a déjà qui ont développé sur des SoC OMAP de TI, en particulier le OMAP 5912 ...
J'ai regardé en détail ce qui se fait en ARM+DSP et il semble que ce soit ce qui me convienne le mieux pour mon projet ...

Je souhaiterais savoir si c'est possible de mettre en place un système Linux ( voire Linux RTOS) sur ca, sans y passer 10 ans, pour gérer des p**** d'ADC+ affichage+ traitement signal+ wifi + touchscreen ...

Et si c'est possible d'utiliser Eclipse et son plug in pour appli embarqué pour développer là dessus ...

cptn.io

698
Gabou > Le C++ propose plusieurs paradigmes de programmation, et Python aussi, entre la programmation fonctionnel ou objet, 'est tout de même assez différent :|
699
Je parle pas de paradigmes, mais du nombre de manieres de faire *une meme chose* dans un langage. Tu veux passer un objet en argument ? On fait comment, par pointer, par reference, par copie ? C'est vraiment le celebre "To me C++ seems to be a language that has sacrificed orthogonality and elegance for random expediency".

Le C++ permet vraiment trop facilement de faire plein d'erreurs pour des choses simples, sans rendre les choses complexes vraiment possibles en general (encore une fois, il y a des exceptions, les interfaces graphiques lourdes en etant une).

Mon point de vue sur le C++ est bien resume par rayiner, sur osnews, pour le simple probleme de passer des strings:

https://www.osnews.com/comment.php?news_id=16952&offset=30&rows=33&threshold=-1

Citation :
Worse than reading good C++ code is reading bad C++ code. One of the big problems with C++ is not so much that it has a lot of features, but that its features aren't particularly orthogonal. There are a lot of cases where there is more than one way to do something, but its not particularly obvious which way is better, so the programmers pick at random and without strong team discipline, everyone will inevitably pick differently.

Even something really basic like passing a string around becomes needlessly complicated. In almost any substantially-sized C++ code base, there will be at least three string representations: char*, std::string, and a custom string class. And of course there is the eternal choice between references and pointers, declaring procedures virtual or non-virtual, declaring base classes virtual or non-virtual, and needless other crap.

And the lack of GC encourages a whole bunch of other brain-damage. Consider something simple like a function that enumerates what plug-ins are available in an application. In a GC'ed language, you stuff the objects into a list, return it, and call it a day. In C++, you can:

- Return std::list, which implies copying every element.
- Return a pointer to a list, and depend on the client to call free().
- Use an iterator pattern, at the cost of turning a single operation into several functions (ie: getStart() and getNext() or something).
- Use a reference-counted data structure, which implies using your own custom reference-counting infrastructure.
- Wrap the data structure in some sort of smart-pointer.
- Have the client allocate the result buffer, and write into it, turning a single operation again into multiple calls.

None of these solutions are obviously right, so C++ code ends up using all of them, in different places. The lack of GC is why you have utterly brain-damaged (from a memory management point of view) interfaces like sysctl, CORBA's C++ mapping, reference-counted anything, etc.

700
Lol eum qqun pourrait répondre à ma question :((( :oo: :bravo: :bravo:

cptn.io