Se connecter
Se connecter

ou
Créer un compte

ou
Agrandir
Les Mains dans le Cambouis
Bidouille & Développement Informatique

Sujet Le pub des programmeurs

  • 1 925 réponses
  • 117 participants
  • 122 607 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
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