Apprendre la programmation en C.

+5
doom
Philippe
Petitagore
MattLA
Stauk
9 participants

Page 2 sur 3 Précédent  1, 2, 3  Suivant

Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Petitagore Lun 20 Nov 2017 - 10:18

Stauk a écrit:Mon objectif actuel est d'être capable d'écrire des prototypes qui tournent à la fois sous windows et linux, et qui donnent accès à la souris au clavier et à l'écran.

Je suppose que tu as réfléchi à ce dont tu as besoin, mais le choix d'une compatibilité Windows-Linux à l'exclusion de Mac OS, en 2017, c'est un peu déconcertant. Windows, de nos jours, ça a tendance à se cantonner à la machine du prolo désargenté qui ne comprend rien à la technique, voire du retraité de toute façon fâché avec l'informatique, ou alors c'est une machine de bureau gérée par un directeur de parc informatique près de ses sous, et qui n'a qu'une idée: empêcher les utilisateurs de faire tourner autre chose que les logiciels qu'il a choisis pour réduire la masse de travail de la hotline. Dès qu'un utilisateur a trois francs six sous, il s'équipe en Mac, spécialement s'il a moins de cinquante ans. Par ailleurs, le monde windozien a assumé qu'il n'était pas à la pointe de la technique, et généralement il cherche plus à faire survivre des machines vieilles de plus de cinq ans que de s'équiper du dernier cri de la technique.

Par ailleurs encore, l'utilisation des dispositifs mobiles, smartphones et tablettes, a totalement cessé d'être marginale, et ça ne va pas s'arranger dans les années qui viennent.

Tu fais bien comme tu veux, mais par curiosité: pourquoi se focaliser sur Windows? Et d'ailleurs, quelle version de Windows?


Dernière édition par Petitagore le Lun 20 Nov 2017 - 10:19, édité 1 fois (Raison : balise foireuse)

Petitagore

Messages : 6311
Date d'inscription : 29/11/2011

http://lesmoulinettes.amarelia.ch

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par ortolan Lun 20 Nov 2017 - 10:36

.


Dernière édition par ortolan le Ven 22 Déc 2017 - 19:47, édité 1 fois
ortolan
ortolan

Messages : 13579
Date d'inscription : 31/07/2016
Localisation : 404 Not Found

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Petitagore Lun 20 Nov 2017 - 11:04

ortolan a écrit:95% du marché des particuliers quand même...

Au niveau mondial, peut-être, mais en France au moins j'ai de très sérieux doutes. Quand je fais des cours à des stagiaires, je ne vois sur les bureaux que: Mac Mac Mac Mac Mac, et quand par exception il y a un PC, le gars m'assure qu'il va acheter un Mac incessamment sous peu. Je prends beaucoup le train, et tout ce que je vois, c'est Mac, Mac, Mac, tablette, Mac, Mac, de temps à autre un portable Lenovo faisant tourner du Linux.

Il y a peut-être encore 95 % de Windows dans les machines de bureau, mais c'est en comptant tous les vieux tromblons en fin de vie que Mme Michu allume trois heures par semaine. Je comprends qu'on n'oublie pas Windows, mais de là à faire comme si on pouvait négliger Mac, il y a vraiment de la marge.
Petitagore
Petitagore

Messages : 6311
Date d'inscription : 29/11/2011
Age : 63
Localisation : Ile-de-France

http://lesmoulinettes.amarelia.ch

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Philippe Lun 20 Nov 2017 - 11:35

Où l'on parle de stats sur les OS:
Philippe
Philippe

Messages : 2081
Date d'inscription : 19/11/2009
Age : 47
Localisation : Au pays du soleil et du vent... (Roussillon)

https://www.zebrascrossing.net/t329-grrroooaaaooo

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par ortolan Lun 20 Nov 2017 - 11:42

.


Dernière édition par ortolan le Ven 22 Déc 2017 - 19:47, édité 1 fois
ortolan
ortolan

Messages : 13579
Date d'inscription : 31/07/2016
Localisation : 404 Not Found

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 12:05

Hello Stauk,

Pour éviter de polluer ton fil initial, je pense que la programmation C s'est vraiment très bien mais ce n'est que mon avis. Par contre, le C tout seul c'est chiant car tu vas te lier très rapidement à ta plateforme sur les couches hautes (GUI, fct OS, etc) et va te nécessiter des codes sources différents suivant ta plateforme. Et çà en terme de contrôle et de productivité... c'est lourd  Smile

Après tout dépend de la finalité de ton projet. Si tu veux faire partager tes applis (gracieusement ou non), il faut déterminer les termiaux cibles. Si tu veux être ambitieux, fais une appli cloud SaaS comme cela tu développes sur Linux/C pour le noyau et Java pour les GUI Smile
Si c'est pour piloter une machine, le C tout seul fera très bien l'affaire.

L'important est de s'amusez en faisant propre sinon tu seras chauve sous peu. Mais je suis ton projet car j'aime le code  Laughing

HS : Concernant les OS, la donne pourrait bien être chamboulé avec l'arrivée du Cloud Saas si la mayonaise prend. Par contre si le Saas stagne, Windows a de très beau jour devant lui Smile. Par contre, je ne vois pas la Pomme gagnante car la pomme c'est souvent du BYOD et non de la stratégie d'entreprise.


Dernière édition par Unefois le Lun 20 Nov 2017 - 12:09, édité 1 fois

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 12:08

allee pour le fun les neos-amiga en vue ,là au moins on codait en s"amusant

https://www.programmez.com/actualites/un-nouveau-amiga-fin-2017-26319

http://www.apollo-accelerators.com/

sinon vous prenez un vieux pc et vous balancer une distro linux dessus et vous apprenez le command line et là pour la programmation vous avez toutes les solutions libres à votre choix

si vous êtes vraiment geek vous vous baladerez avec un raspi dans votre poche, vous le branchez sur réseau et vous faite joujou avec le monde

voir mister robot, série us avec des conseillers prestigieux donc snowden

https://www.raspberrypi.org/

l'avantage de ce brol est sa très petite taille et le fait qu'on peut y embarquer un os linux cad qu'on peut y mettre ce qu'on veut , l'avenir en programmation c'est ça

portable , super high tech et plugable partout, vous pouvez au choix vous ballader avec vos docs mobiles, votre compilateur et prog préféré, vos connectiques, outils divers et interfacages préférés

c'est moche, ca coute 30 euros et ça rebute les néophytes

mais une fois pigé vous avez une boite de pandore dans la main

au delà j'aime bien le pc pour son coté bordel ambiant justement , vous pouvez y coder et plugger à peu pres n'importe quoi sur la carte mere avec le driver adapté, c'est une usine à gaz qui sert à tout faire

et si l'os w10 sucks en particulier vous pouvez toujours faire des dual boots ou plus

la machine idéale est un mix winbrol linux en 2017

en 2025 les chinois finiront bien par pondre leur propre os

je m'étonne qu'ils ne l'ait pas encore fait

sinon bien avant le pc et le mac je bidouillais sur amiga 500 puis 2000

https://www.amigafrance.com/amy-nouveau-amiga/

ce brol était très en avance sur son temps

j'espère que la neo version sera elle aussi en avance et vu la masse de passionnés et nostalgiques de l'amiga ..

c'était du linux avant linux et du mac avant mac.. et cela faisait du multimedia bien avant que le pc n'ait souris et carte son ou graphique


sinon j'attends comme tout le monde le next step en informatique

et je n'aime pas les smarts phone, ce next step là n'est pas cool du tout sauf pour le hack

mais l'intégration téléphone télé internet est prévue par microsoft depuis ... 1996 , là en 2017 on y est ..pire on n'a même presque plus de besoin de la partie hardware puisque tout est accessible via cloud décentralisés

t'as juste besoin d'un client que tu branches

du coup la programmation est dans la technologie réseau, la mise à disposition à une masse de petits clous comme dirait le dude dans the big lebowski , la mise à disposition donc d'une application partagée et en ligne

bcp n'achetent ni mac ni pc, zont juste besoin d'un smart ou d'une tablette ou plus tard d'un petite boite client avec claver enroulable et ou optique , qui sait via les montres connectées

le pc fixe perso est donc devenu un dinosaure ,mais ... ce dinosaure vous laisse une liberté que vous n'avez plus dans un monde cloud pur

vous n'avez même plus à installer le logiciel ou à avoir la boite , vous avez un abonnement à un logiciel préinstallé, cela signifie que vous devenez dépendants d'un fournisseur pour vos besoins informatiques

qui dénonce cela ?

moi je préfère l'autonomie du libre et l'anarchisme d'un mister robot





mieux encore.. vous fabriquer une clef usb perso avec os bootable et tous les outils nécessaires

mais vous aurez toujours besoin d'une plate forme de programmation quand même

maison mère et vaisseau d'attaque en gros

alle un autre extrait de cette série hardcore mais usant de quelques techniques de base














Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 12:13

@ZebMcKey : Laughing
Mes PC tours sont mes Appel2 que je n'ai pas pu avoir étant môme dans les années 80.
On peut même faire d"un PC un oscillo tout à fait convenable et 5 minutes après sur le même PC c'est un studio d'enregistrement Smile

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Petitagore Lun 20 Nov 2017 - 12:17

ortolan a écrit:Voilà, merci Philippe pour les stats. Je parlais bien du "PC des familles" (prolos, Mme Michu, ça me paraît un peu méprisant).

Il se peut. Cela dit, il y a clairement une informatique pour les utilisateurs qui n'y bitent rien, et une informatique pour ceux qui peuvent faire des incursions dans le code -- et ce sont ces derniers qui rédigent les librairies libres, les documentations, les tutoriels. Quand on pond soi-même du code, on a un peu tendance à se désintéresser totalement de la première catégorie, sauf si on veut leur vendre un produit fini. Mais on ne peut pas servir Dieu et Mammon: si on veut faire du bon code, on se fout un peu des machines merdiques, et si on veut vendre au grand public, on se fout un peu de faire du beau code.
Petitagore
Petitagore

Messages : 6311
Date d'inscription : 29/11/2011
Age : 63
Localisation : Ile-de-France

http://lesmoulinettes.amarelia.ch

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Petitagore Lun 20 Nov 2017 - 12:24

ZebMcKay a écrit:en 2025 les chinois finiront bien par pondre leur propre os

je m'étonne qu'ils ne l'ait pas encore fait

Ils l'ont fait, et ça ne date pas d'hier. Seulement, plutôt que de réinventer la roue, ils ont pompé dans tout ce que le logiciel libre pouvait leur offrir, et en pratique je ne crois pas que ce soit très différent d'un Linux sinisé.

Ce qu'ils n'ont pas encore, fait, c'est de commercialiser des machines fonctionnant avec cet OS.
Petitagore
Petitagore

Messages : 6311
Date d'inscription : 29/11/2011
Age : 63
Localisation : Ile-de-France

http://lesmoulinettes.amarelia.ch

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Lun 20 Nov 2017 - 12:26

Pour windows, je me focalise sur ma config de Wine. Pour MacOs, je verrais plus tard, mais si je n'utilise rien d'exotique, ça sera de toute façon compatible.Pour ce qui est des stats de qui possède quelle machine équipée de quel système, je serais plus convaincu par une analyse statistique ou autre collecte de donnée, que par un pifomètrisme.Après faut pas oublier non plus que les usager des ordis ne sont pas cantonnés à la France, ni même aux US.
https://www.netmarketshare.com/operating-system-market-share.aspx?qprid=10&qpcustomd=0

Edit : Ah ouais, j'ai raté quelques messages entre temps.




@Unefois : en effet, le but est de séparer ce que je fais, des spécificités de l'environnement, dont je n'ai en général pas besoin, sauf en tant qu'abstraction.


Dernière édition par Stauk le Lun 20 Nov 2017 - 12:32, édité 4 fois
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 12:27

pour le langage de prog , moi j'aimais bien le basic tout simplement pour des besoins simples, j'ai découvert le python dans le mooc début d'année, c'est assez cool mais demande un apprentissage assez long pour bien gérer les subtilités

pour les langages évolués, j'aime bien l'apl le seul qui m'interesse par son caractère symbolique

https://fr.wikipedia.org/wiki/APL_(langage)

pour de la progr professionnelle, en fait rien ne me plait en 2017

mais bon je ne suis plus aussi souple qu'avant je suppose

faudrait demander aux programmeurs pro en quoi ils codent en 2017

sauf php , java et html 5 ou autres en net

en database en sql ounon sql encore autre chose

en carto, graphisme toussa, pas de codage, utilisation de logiciels tout faits

en recherche souvent des packages libres ou pro existants

en fait il est plutot rare qu'on programme des solutions pro completes de zero

en management on utilise bizagi par exemple , très cool et complet

en logiciels boursiers les robots traders n'ont pas besoin de vous

etc

alors coder quoi exactement ?

une database, ca existe, un logiciel de mao , ca existe, un plug pour résoudre une équation complexe, ca existe déjà , un logiciel pour commander le robot de tonde de pelouse, cela existe aussi, un logiciel de navigation de sous marin ou de missile, ca existe aussi

c'est donc de la prog en hobby juste pour savoir si on peut, en relge générale si on veut concevoir un logiciel seul de zero c'est peu probable on a besoin d'une équipe de programmation ou chacun a sa compétence ciblée

et mieux même comme cela on reprend des idées de sautres, des bouts de codes fait par exemple en librairies histoire de ne pas refaire le monde

merde le module impression j'ai pas le temp de le coder, ben je reprend, intègre une biblio existante le faisant très bien depuis longtemps

maintenant sivous etes blindés en progr vous pouvez aussi faire évoluer, participer à des projets existants sur des logiciels libres et apporter votre génie logiciel

c'est le principe de r en statistique par exemple ou il existe un nombre incroyable de modules à charger avec des techniques stats invraisemblables qui coutent un pont dans les logiciels standards et zero centime en r

c'est moche, c'est petit mais ca fonctionne

maintenant vous pouvez révolutionner l'informatique en pondant un nouvel os qui par exemple soit entierement 3d à la source , l'effort est davantage dans l'interface client que dans l'interface machine dans ce cas

les éternelles fenetres .. devraient bientot prendre la porte pour des interfaces à la minority report et ncisla ou les éléments visuels à la lego sont balancables àla smart phone d'un univers à un autre

on ne tape plus rien on déplace des blocs qui donnent un résultat

cette programmation là est haut niveau , par exemple vous balancez la visu d'une database vers une autre et la fusion des données se fait dans le mouvement de glissement

codez ça pour voir... possible en plus, genre si les deux blocs se touchent alors prend le champ 1 du bloc 1 et fusionne le avec le champ 1 du bloc 2

sky is the limit

plus fun encore, ilne faudra bientot plus utiliser ses doigts mais juste son cerveau avec un casque qui reperera vos connexions neuronales et ou mouvements des yeux,

fusionne les deux database et trie moi les résultats sera transmis comme commande neuro aux serveurs cloud et le resultat sera meme affiché dans votre visualisateur intégré au casque genre pilote de jet

cyborg rulez , pas certain que cette informatique là me plaise

quoique vous rencontrez une femme dans la rue et ses coordonnées s'affichent sur votre écran

brave new world donc









Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par ortolan Lun 20 Nov 2017 - 12:38

.


Dernière édition par ortolan le Ven 22 Déc 2017 - 19:49, édité 2 fois
ortolan
ortolan

Messages : 13579
Date d'inscription : 31/07/2016
Localisation : 404 Not Found

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 12:40

ZebMcKay a écrit:...
codez ça pour voir... possible en plus, genre si les deux blocs se touchent alors prend le champ 1 du bloc 1 et fusionne le avec le champ 1 du bloc 2
...

Ca c'est déjà fait avec le score du rapprochement

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Petitagore Lun 20 Nov 2017 - 12:40

Stauk a écrit:Pour ce qui est des stats de qui possède quelle machine équipée de quel système, je serais plus convaincu par une analyse statistique ou autre collecte de donnée, que par un pifomètrisme.

Et tu as bien raison. Il n'en reste pas moins que le désintérêt des développeurs de librairies libres pour l'architecture Windows est de plus en plus flagrant, et ce n'est pas du tout le cas pour Mac OS; c'est quand même à prendre en compte quand on cherche des interlocuteurs sur les forums de discussion (je ne parle pas de ZC: il y en a d'autrement plus sérieux en la matière).

Après faut pas oublier non plus que les usager des ordis ne sont pas cantonnés à la France, ni même aux US.

Certes, mais symétriquement il ne faut pas oublier que le marché européen est spécifique, spécialement si tu cibles un public avec fort pouvoir d'achat.

Mais bon, j'arrête de me cacher derrière mon petit doigt: je trouve que Windows, c'est tellement de la merde que toute mauvaise raison permettant d'y échapper a plus de poids que les statistiques les mieux vérifiées. Bref, je suis de la plus entière mauvaise foi en la matière et j'ai fortement tendance à en être fier! Very Happy Je te recommande juste de te méfier: l'exécration de Windows est un phénomène très très répandu chez les amoureux du bon code.
Petitagore
Petitagore

Messages : 6311
Date d'inscription : 29/11/2011
Age : 63
Localisation : Ile-de-France

http://lesmoulinettes.amarelia.ch

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par ortolan Lun 20 Nov 2017 - 12:45

.


Dernière édition par ortolan le Ven 22 Déc 2017 - 19:49, édité 1 fois
ortolan
ortolan

Messages : 13579
Date d'inscription : 31/07/2016
Localisation : 404 Not Found

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 12:56

ortolan a écrit:
Petitagore a écrit:Windows, c'est tellement de la merde que toute mauvaise raison permettant d'y échapper a plus de poids que les statistiques les mieux vérifiées.
Very Happy Là on tombe d'accord Trance Windows bashing à fond !

Là çà va vous occupper pendant un certain temps Pété de rire Pété de rire Pété de rire
Si vous mettez autant d'apllis supportées par Windowws sur votre OS préféré et vous obtiendrez un windaube (MauvaisFoix Inside)

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Lun 20 Nov 2017 - 13:01

Bon, on va lancer un mini-débat pour faire une petite pause dans le discours aride des discussions à propos du C.

Vous êtes plutôt big-endian, ou little-endian (essayez d'expliquer pourquoi siouplé si vous votez).
https://en.wikipedia.org/wiki/Endianness
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 13:02

EBCDIC7b Pété de rire Pété de rire Pété de rire
Nan, je déconne

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Lun 20 Nov 2017 - 13:08

Sinon si quelqu'un peut me filer un argument sur comment doivent être alignés les datas sur la plateforme X86, je veux bien prendre. 32 bits ? 128, 256, 512 ?

https://en.wikipedia.org/wiki/Data_structure_alignment
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 13:19

si on veut vraiment jouer

"Bi-endianness
Some architectures (including ARM versions 3 and above, PowerPC, Alpha, SPARC V9, MIPS, PA-RISC, SuperH SH-4 and IA-64) feature a setting which allows for switchable endianness in data fetches and stores, instruction fetches, or both. This feature can improve performance or simplify the logic of networking devices and software. The word bi-endian, when said of hardware, denotes the capability of the machine to compute or pass data in either endian format."

et

"many computer languages and computer language implementations handle data alignment automatically"

pourquoi se casser la tête du coup ? mmm ?

ce que je voulais "dire" pour l'avenir des interfaces c'est ca, si le code de fusion par proximité ou sympathie existe déjà suffit alors d"en pondre une interface graphique à la mode touch



trop cool ou pas.. je vous laisse aussi deviner les applications pratiques en sexe virtuel mdrrrrr

erm

oops

et









autre style


Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 13:26





et pour rappel déjà posté sur zc


Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 13:30

Là je n'ai plus la compétence sur les architetures de proc moderne pour donner une réponse ferme. voir du côté de developpez.com les experts des procs en question.

Mais là il faut regarder en détail comment les données sont acheminées de la Ram aux caches puis au registre pour bien maîtriser l'alignement et le temps d'instruction pour faire un MOVE aligné ou non.

Si tu veux minimiser le volume inutile lié aux padding essai de décrire tes structures de données en remplissant au mieux ta structure avec des zones alignés par construtions dans le dév.
En clair, les numériques en début de structure puis les chaînes.
Amusant mais une chaîne de 7 caractètes ne prends pas plus de place qu'une de 6 caractères sur certains compilo C Smile

Spoiler:

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 13:35

j'ai une machine Windows, je suis dans quelle catégories ? Perplexe

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par ortolan Lun 20 Nov 2017 - 13:40

.


Dernière édition par ortolan le Ven 22 Déc 2017 - 19:50, édité 1 fois
ortolan
ortolan

Messages : 13579
Date d'inscription : 31/07/2016
Localisation : 404 Not Found

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Lun 20 Nov 2017 - 13:44

Je n'ai pas trouvé grand chose, sinon les docs imbitables à propos du processeur.

https://software.intel.com/en-us/forums/intel-isa-extensions/topic/299644


There are significant performance advantages to being 32-byte aligned if you have 32-byte loads and stores, even for instructions that do not require alignment to behave correctly.

On va lui faire confiance hein ?
Donc un alignement sur multiples de 32 octets (256 bits).
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Philippe Lun 20 Nov 2017 - 15:05

Endianness:
Stauk a écrit:Sinon si quelqu'un peut me filer un argument sur comment doivent être alignés les datas sur la plateforme X86, je veux bien prendre. 32 bits ? 128, 256, 512 ?

https://en.wikipedia.org/wiki/Data_structure_alignment
Ben, ça dépend pour quelle architecture tu veux programmer (vu que tu veux faire du bas niveau).

Le minimum est bien entendu le mot de ton processeur (donc 64 bits de nos jours).
Je ne suis pas (depuis fort longtemps) au courant de ce genre de détails, mais de ce que j'en comprends en fouillant rapido, ce serait :
- 128 bits pour le jeu d'instructions SSE2+
- 256 bits pour l'AVX
- 512 bits pour l'AVX-512
etc.
Philippe
Philippe

Messages : 2081
Date d'inscription : 19/11/2009
Age : 47
Localisation : Au pays du soleil et du vent... (Roussillon)

https://www.zebrascrossing.net/t329-grrroooaaaooo

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Lun 20 Nov 2017 - 16:23

@philippe : ouais, l'autre lien date de 2008 ... donc on va dire 64 byte d'alignement (512 bits). Ca devient un peu ridicule, mais bon. Je pense que je vais seulement aligner les tableaux.
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 16:25

message censuré


Dernière édition par Roger le Dim 17 Déc 2017 - 1:57, édité 2 fois

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Lun 20 Nov 2017 - 16:49

Roger a écrit:

Commencer par programmer une version optimisée est l'erreur classique du débutant. Il vaut mieux commencer par un programme fonctionnel, modulaire, bref, un programme qui marche. Ensuite seulement on optimise. Il est également important de disposer d'options de compilation désactivant certaines optimisations pour que le programme puisse tourner sur le maximum de machines: si il faut le processeur machin-bidule avec tel jeu d'instruction à la mode, c'est mort. De nos jours, les machines sont tellement rapides et ont tellement de mémoire qu'on ne gagne rien à optimiser. Il y a même des optimisations qui ralentissent les programmes... Dans le temps, on mettait en cache les calculs car la mémoire était chère. Aujourd'hui, une telle stratégie plombe les applis à cause des latences d'accès à la mémoire et les fautes de cache: il est aujourd'hui plus efficace de recalculer au lieu de stocker en mémoire.


J'avoue que c'est toujours bien de le rappeler. D'habitude je le vois présenter comme une erreur classique qui concerne tout le monde, et pas seulement les débutants. Mais il y a des applications où une version non-optimisée peut être rapidement une source de galère. Néanmoins je n'ai jamais trouvé aucun argument pour défendre l'absence de version non optimisée, qui même si elle tourne sur une dimension réduite du problème, permet tout de même de Benchmarquer et vérifier la version qui elle va fonctionner sur des jeux de données un peu plus ambitieux. Combien la version qui va vite fait gagner par rapport à la version qui va lentement (ou économise de mémoire etc) ? La version qui va lentement doit en effet tourner sur un maximum de machines, avec un minimum d'effort, car comme elle n'a pas de contraintes, ça serait dommage autrement. Parfois on se rendra compte que la version qui va lentement est finalement utilisable (mais là peut résider le piège). Parfois on se rendra aussi compte que la version qui va lentement ne permet pas de traiter des jeux de données non triviaux de façon confortable, mais rarement.

Par contre l'homoingénieurus est naturellement enclin à n'avoir aucune envie de réaliser (et maintenir !) plusieurs versions. Et avoir les tests et l'ensemble de l'outillage qui va permettre de comparer les deux versions n'est probablement pas tout à fait trivial non plus. En vrai les logiciels pour être à peu prés au point doivent être réécrit 3 fois, et pouvoir tenir dans un seul cerveau humain. Les gros logiciels doivent être impérativement découpés en éléments simples qui correspondent à cette contrainte, et l'ensemble du système présenté en tant que collection d'éléments simples en interactions doit lui aussi obéir à cette règle (et récursivement s'il est encore plus complexe).

Sinon c'est la merde.




Heum. Ouais y a un cas où la question est plus ardue. Si ton composant est simple, mais utilisé par potentiellement l'ensemble de tous tes développements futurs. Là c'est compliqué. Quand la base est modifiée radicalement, ça peut vite demander du travail, voir demander de refaire tout ce qui en dépend. Pour le réécrire trois fois, il faut qu'il soit utilisé ... mais le fait qu'il soit utilisé, va contraindre énormément la possibilité de le re-écrire.
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Lun 20 Nov 2017 - 16:58

Petite page de publicité
https://alexgaynor.net/2017/nov/20/a-vulnerability-by-any-other-name/

(bien entendu c'est une publicité anti-C mais bon. Ca met un peu d'ambiance, et puis surtout c'est loin d'être faux).
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 17:04

message censuré


Dernière édition par Roger le Dim 17 Déc 2017 - 1:57, édité 1 fois

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Sarella Lun 20 Nov 2017 - 17:10

Roger a écrit:
Stauk a écrit:Petite page de publicité
https://alexgaynor.net/2017/nov/20/a-vulnerability-by-any-other-name/

(bien entendu c'est une publicité anti-C mais bon. Ca met un peu d'ambiance, et puis surtout c'est loin d'être faux).

Le mec fait de la pub pour Rust. Mais il n'a pas réalisé que la sûreté des accès mémoire est un problème réglé depuis l'apparition du premier langage de programmation ou presque: LISP disposait en natif d'un ramasse-miette dès sa conception, en 1958. L'informatique, c'est le grand bon en arrière permanent, la victoires des incultes incompétents.

T'as fais un peu de sécurité informatique ?
Sarella
Sarella

Messages : 256
Date d'inscription : 02/06/2016
Age : 35

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Lun 20 Nov 2017 - 17:19

Roger a écrit: ramasse-miette
Les ramasses miettes peinent un peu, encore de nos jours (2017). C'est excellent pour faire du prototypage rapide, mais par contre dans certains environnements, si tu as du temps réel, ou du temps réel CRITIQUE (genre y a un mec qui meurt à chaque fois que tu es en retard de 2 ms, ou une banque qui fait faillite), les ramasses miettes n'offrent pas toujours toutes les garanties qu'on aimerait avoir. Du moins c'est ce qu'il semblait ressortir sur les forums et autres il y a encore quelques mois.
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 18:22

message censuré


Dernière édition par Roger le Dim 17 Déc 2017 - 1:57, édité 2 fois

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par DLS Lun 20 Nov 2017 - 19:23

Petitagore a écrit:
ortolan a écrit:Voilà, merci Philippe pour les stats. Je parlais bien du "PC des familles" (prolos, Mme Michu, ça me paraît un peu méprisant).

Il se peut. Cela dit, il y a clairement une informatique pour les utilisateurs qui n'y bitent rien, et une informatique pour ceux qui peuvent faire des incursions dans le code -- et ce sont ces derniers qui rédigent les librairies libres, les documentations, les tutoriels. Quand on pond soi-même du code, on a un peu tendance à se désintéresser totalement de la première catégorie, sauf si on veut leur vendre un produit fini. Mais on ne peut pas servir Dieu et Mammon: si on veut faire du bon code, on se fout un peu des machines merdiques, et si on veut vendre au grand public, on se fout un peu de faire du beau code.

Les utilisateurs "qui n'y bitent rien" choisissent Mac ! Parce que c'est vendu (alors que c'est faux) comme un système "simple", "beau" et "stable". Mais quand ma sœur s'est équipée d'une imprimante Wifi, elle m'a appelé à la rescousse pour la faire fonctionner, ce que j'ai réussi à faire en n'y connaissant rien mais en farfouillant sur internet (et en devant patcher un programme en plus !).

Plus précisément, de ce que j'ai vu (plus de vingt ans d'informatique de près ou de loin), on achète Mac soit par fétichisme, soit parce qu'on n'y connaît rien, soit parce que tout le monde le fait et que c'est cher Wink...
On peut aujourd'hui tout faire avec un PC sous Windows, même ce qui était réservé auparavant aux professionnels de la MAO, de la PAO ou du graphisme (2D, 3D, photo). Mais c'est vrai, on constate que la plupart des professionnels sont en Mac. À mon avis, les habitudes y sont pour beaucoup car le budget n'est pas le même...

Quant à la prééminence de Mac dans le monde professionnel, effectivement c'est loin d'être le cas dans beaucoup de secteurs. Dans les différents services de l'administration que j'ai traversés, c'est Windows qui gagne haut la main. Linux arrive bien sûr dans les environnements techniques et scientifiques (facs de sciences, organismes de recherches, écoles d'ingénieurs), mais on y trouve encore aussi beaucoup de Windows.

Cette guéguerre Windows/Linux/Mac dure depuis que les marques existent. Elle est stérile comme toutes les guerres, en particulier comme celle qui agite ce sujet : "tel logiciel est le seul valable, les autres sont de la merde", et comme tout ce qui est du type "religieux". (Attention, je n'ai pas dit : "religion", hein Wink !) Même combat par exemple pour les guéguerres des différents types d'alimentation. Le problème est toujours le même : une attitude absolutiste est toujours fausse ! On ne peut pas appliquer la même recette à tous, que ce soit en nutrition ou en programmation, pour la simple et bonne raison que les individus sont différents, et même si leurs besoins sont les mêmes en apparence, la façon de les satisfaire sera multiple. Au passage, c'est la clé pour comprendre le monde dans lequel nous vivons. Il existe cinquante mille langages de programmation et cinquante marques de shampoings. Nous vivons dans le monde de la multiplicité !

Mais pour en revenir aux OS ou aux langages de programmation, croire que l'un est meilleur que les autres est une erreur qui trouve sont origine dans la croyance que l'utilité absolue existe. Or, il n'existe qu'une utilité relative. Ce qui est utile à l'un, l'autre s'en fout. Et inversement et réciproquement. J'aime bien l'exemple de l'agriculteur et du bourgeois pour illustrer ce propos. L'agriculteur a un tracteur, et le bourgeois une Ferrari. Qui peut croire que "la Ferrari c'est mieux qu'un tracteur" ? Ce sont deux véhicules, ça roule, ça permet d'aller un point A à un point B, mais l'utilité n'est pas la même. (Certes, une Ferrari, ça doit bien labourer un champ sur quelques mètres, mais niveau solidité... Wink !)

L'utilisateur lambda n'en a donc rien à faire que l'on puisse programmer comme un esthète une architecture Linux avec du Ocaml. Pour regarder Facebook, jouer à Tétris 2018 ou faire ses comptes après avoir regardé ses dernières photos ou un épisode de sa série préférée, il veut ce qui sera le plus simple pour lui. Et pour beaucoup, comme l'habit fait le moine, il veut en plus "un bel objet". "Chéri(e), tu vas être content(e), c'est un Mac Very Happy !" Pour le gamer, un bon vieux PC sous windows survitaminé sera un must (et même pour ceux qui veulent un compromis entre puissance et prix : mon ordinateur principal est un PC de gamer acheté en 2011 et toujours dans la course niveau performance pour ce que je fais : programmation, MAO, photo, etc. Parfois ça rame, parfois ça plante, mais j'ai connu le même genre de problèmes avec Linux et Mac !). Pour un étudiant en informatique, Linux est souvent le choix parce que pour installer le moindre logiciel, il faut recompiler jusqu'aux entrailles la machine et c'est formateur. Mais aucun choix n'est bon pour tout le monde. Pas en 2017 en tout cas...

Idem pour les langages de programmation : on peut tout programmer en assembleur, mais étrangement, on ne le fait pas. Il y a des langages pour le Web, des langages pour le bas niveau, des langages pour la performance ou les sciences, etc. On ne choisit pas un langage avant de savoir ce que l'on fait, on choisit le langage après avoir décidé ce que l'on veut faire.

Par ailleurs, il ne faut pas se leurrer : apprendre n'importe quel langage, que ce soit le joyau du fonctionnel comme Ocaml ou une "vraie merde" comme PHP, ça peut certes se faire en quelques heures pour avoir les bases, mais avec ce bagage, on bidouille et c'est tout. Maîtriser "l'art de la programmation", ça ne viendra pas comme ça. Et maîtriser n'importe quel langage, fût-ce cette merdouille de PHP ou de Java, ça demande plusieurs années de pratique. Que ça plaise ou non aux esthètes  Razz. Alors le "mon langage, c'est le plus beau et les autres, y sont tous pourris", ça me fait toujours penser à cette citation de je ne sais plus qui (*) que je paraphraserai en : il y a plus de mauvais programmeurs que de mauvais langages (en proportion) Wink.


(*) De mémoire : "Il y a plus de mauvais pianistes que de mauvais pianos"...
DLS
DLS

Messages : 857
Date d'inscription : 22/06/2017
Age : 50

https://spiritualite.art.blog/blog-feed/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Petitagore Lun 20 Nov 2017 - 20:05

Alexandre, ce que tu dis est intéressant, et d'ailleurs je n'ai pas tellement l'impression que cela contredise celui de mes propos auquel tu réponds. Je m'inscris quand même totalement en faux contre ça:

Alexandre a écrit:Pour un étudiant en informatique, Linux est souvent le choix parce que pour installer le moindre logiciel, il faut recompiler jusqu'aux entrailles la machine et c'est formateur.

Ca a pu être assez vrai dans les premiers temps (quand l'Union soviétique était encore debout), mais il y a largement plus d'une dizaine d'années que c'est de la blague, à moins qu'on cherche les ennuis en tenant absolument à faire tourner une distribution exotique mal maintenue. La raison pour laquelle les étudiants en informatique privilégient Linux, c'est que tous les compilateurs libres, toutes les librairies libres, tous les environnements de développement libres, etc... tournent dessus sans difficulté, sans bourse délier et sans demander la permission à personne.

En revanche, je souscris totalement à ça:

Par ailleurs, il ne faut pas se leurrer : apprendre n'importe quel langage, que ce soit le joyau du fonctionnel comme Ocaml ou une "vraie merde" comme PHP, ça peut certes se faire en quelques heures pour avoir les bases, mais avec ce bagage, on bidouille et c'est tout. Maîtriser "l'art de la programmation", ça ne viendra pas comme ça. Et maîtriser n'importe quel langage, fût-ce cette merdouille de PHP ou de Java, ça demande plusieurs années de pratique. Que ça plaise ou non aux esthètes  Razz. Alors le "mon langage, c'est le plus beau et les autres, y sont tous pourris", ça me fait toujours penser à cette citation de je ne sais plus qui (*) que je paraphraserai en : il y a plus de mauvais programmeurs que de mauvais langages (en proportion) Wink.

(*) De mémoire : "Il y a plus de mauvais pianistes que de mauvais pianos"...

Je l'ai même déjà entendu sous la forme (un peu excessive quand même): "il n'y a pas de mauvais pianos, il n'y a que de mauvais pianistes". Il y a des machines pourries, des systèmes d'exploitation pourris, et des langages mal conçus; mais c'est vrai, il y a surtout des gens qui ne savent pas s'en servir.

Ou comme disait ma mère-grand (la vôtre aussi, j'imagine): les mauvais ouvriers ont toujours de mauvais outils.
Petitagore
Petitagore

Messages : 6311
Date d'inscription : 29/11/2011
Age : 63
Localisation : Ile-de-France

http://lesmoulinettes.amarelia.ch

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Lun 20 Nov 2017 - 20:22

Roger a écrit:

Il y a toutes sortes de ramasses-miettes: interruptibles ou non, multi-threadés ou non, incrémentaux ou non, optimisants ou non, temps-réel ou non. Pour la programmation usuelle, les ramasses-miettes améliorent les performances: ils ne bloquent pas l'application lors de la libération de grosses structures de données, ils défragmentent la mémoire et relocalise les données, ce qui rend les gros caches des processeurs plus efficaces. Mais surtout, ils font totalement disparaître toutes les fuites mémoires, les déréférencements invalides et les failles comme les débordements de pile. Quand on programme des algorithmes complexes, la gestion mémoire devient vite un cauchemar.

Honnêtement je sais pas encore très bien pourquoi la gestion de la mémoire est un tel cauchemar. Il faudra que je creuse le sujet. Je sais qu'elle PEUT être un cauchemar, en tout cas dans ses effets. Mais quand à savoir s'il existe une manière de programmer qui évite ces écueils, c'est une question que je vais me poser. Pour les ramasses-miettes ça m'étonne un peu. Rust dans ses premières versions utilisait un ramasse miette, et c'est un des arguments qui lui permet d'être si populaire, de justement offrir de bonnes garanties, tout ayant fait le choix de ne pas proposer de ramasse miette dans sa version 1.0. C'est aussi un des trucs que j'ai vu reprocher à Go, son ramasse miette.  Bon j'ai aussi entendu râler à propos de Java, mais on va dire que c'est un sujet tabou. Il faudrait que je fasse un peu le tour de la chose, mais en tout cas pour le peu que j'en perçois sur le plan théorique, ça ne semble pas trivial d'implémenter un bon ramasse miette, qu'on peut laisser gérer à sa guise en toute opacité.

Si tu as un lien à proposer sur un bon ramasse miette avec de supers garanties, je veux bien que tu le poste ici.
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 21:18

message censuré


Dernière édition par Roger le Dim 17 Déc 2017 - 1:58, édité 1 fois

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Sarella Lun 20 Nov 2017 - 21:28

Roger a écrit:
Stauk a écrit:Les ramasses miettes peinent un peu, encore de nos jours (2017). C'est excellent pour faire du prototypage rapide, mais par contre dans certains environnements, si tu as du temps réel, ou du temps réel CRITIQUE (genre y a un mec qui meurt à chaque fois que tu es en retard de 2 ms, ou une banque qui fait faillite), les ramasses miettes n'offrent pas toujours toutes les garanties qu'on aimerait avoir. Du moins c'est ce qu'il semblait ressortir sur les forums et autres il y a encore quelques mois.

Pour le mec qui meurt, c'est pas de bol. La banque en faillite, en revanche...

Il y a toutes sortes de ramasses-miettes: interruptibles ou non, multi-threadés ou non, incrémentaux ou non, optimisants ou non, temps-réel ou non. Pour la programmation usuelle, les ramasses-miettes améliorent les performances: ils ne bloquent pas l'application lors de la libération de grosses structures de données, ils défragmentent la mémoire et relocalise les données, ce qui rend les gros caches des processeurs plus efficaces. Mais surtout, ils font totalement disparaître toutes les fuites mémoires, les déréférencements invalides et les failles comme les débordements de pile. Quand on programme des algorithmes complexes, la gestion mémoire devient vite un cauchemar.

Un programme temps réel n'est pas un programme qui va vite, mais un programme qui respecte des contraintes de temps strictes. En général, les systèmes d'exploitation temps réels sont plus lents que leurs homologues plus laxistes. Au niveau des structures de données, le temps-réel impose de bonnes complexités dans le pire des cas, alors que par ailleurs on pourrait privilégier une complexité moyenne encore meilleure. Par exemple, une appli temps-réel utilisera des arbres équilibrés au lieu de tables de hachages, pourtant plus rapides en moyenne. La méthode la plus aisée pour faire du temps réel avec un ramasse-miette est de garantir que ce dernier peut être désactivé à tout moment puis réactivé quand les contraintes temporelles sont moins critiques. De toute manière, le temps-réel est une condition qui demande des soins très particuliers et le ramasse-miette n'est pas le plus dramatique des problèmes: il y a des sources de latence bien plus gênantes et souvent liées au système lui-même.

Je vois pas comment un garbage collector peut éviter un stack overflow.
Les buffer overflow, oui, mais il te suffit de faire une récursion infini et tu l'as ton stack overflow, garbage collector ou pas.
Sarella
Sarella

Messages : 256
Date d'inscription : 02/06/2016
Age : 35

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Lun 20 Nov 2017 - 21:46

@Sarella : il voulait peut être parler des buffer overflow. Mais cela dit, ça ne fait pas automatiquement partie des attributions d'un garbage collector d'éviter les buffer overflow. Ptet un excès d'enthousiasme.
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par DLS Lun 20 Nov 2017 - 21:52

Roger a écrit:Le relativisme n'est pas pertinent. L'informatique, ça n'est pas n'importe quoi. Il est évident que l'arithmétique en chiffres romains est bien moins bonne que celle en chiffres arabes. Il n'y a pas besoin de tergiverser bien longtemps: un niveau scolaire en calcul suffit pour s'en rendre compte. En informatique, c'est pareil. Sauf qu'en informatique, les professionnels sont très mal formés, complètement ignares de leur discipline et par là même incompétents. J'ai croisé des cas graves, du genre le développeur qui croit avoir programmé un logiciel qui trouve les fuites mémoires dans un code ou qui détecte les programmes qui bouclent... sauf que ce sont des problèmes indécidables, on a les preuves mathématiques de leur impossibilité. Ces mêmes ignorants t'expliquent ce qu'est un bon ou un mauvais langage selon qu'il est cool ou pas. Tout se vaut quand on ne sait pas faire la part des choses. Le relativisme est un symptôme d'incompétence, pas un fanal de liberté.
Il ne s'agit pas de philosophie mais de pragmatisme ! L'agriculteur n'a que faire de savoir s'il est relativiste, physicaliste ou scientiste. Une belle voiture n'est pour lui d'aucune utilité au moment-même où il veut labourer son champ. L'utilité dépend de l'individu, de l'environnement, etc., bref est relative à un contexte. C'est un constat. Tant pis si ça heurte nos convictions philosophiques.
Et pour l'informatique, c'est la même chose. Si seuls des informaticiens ultra-compétents devaient programmer et ne programmer que dans des langages "selects", nous ne discuterions pas sur ce forum qui n'aurait jamais été créé (phpBB est en PHP, comme son nom l'indique). Il n'y aurait qu'une poignée de programmeurs sur Terre qui se feraient embaucher à coups de salaire de trader par des industriels qui leur feraient programmer autre chose que des forum pour internet (par exemple des logiciels pour lancer des fusées, piloter des engins, faire fonctionner les IRM, bref ce qui rapporte).

Les systèmes sont aujourd'hui tellement complexes que le zéro-défaut coûte des fortunes et est réservé à des projets ultra-exigents (par exemple, l'aéronautique, l'un des rares domaines où l'on a recruté un jour des spécialistes du Caml Wink). Beaucoup de logiciels sont donc bugués, mais on s'en fout. On n'a pas les mêmes exigences du zéro défaut dans tout ce qui contient de l'informatique parce qu'il y a un seuil de fiabilité au-delà duquel nous achetons, et l'économie fonctionne ainsi. On peut le regretter, trouver ça "mal", trépigner, ça ne changera rien au fait...

Bon courage pour le C en tout cas Smile !
DLS
DLS

Messages : 857
Date d'inscription : 22/06/2017
Age : 50

https://spiritualite.art.blog/blog-feed/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Lun 20 Nov 2017 - 22:14

message censuré


Dernière édition par Roger le Dim 17 Déc 2017 - 1:58, édité 1 fois

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par chocolat Lun 20 Nov 2017 - 22:34

Je ne sais pas si ça va t'intéresser :
http://pubs.opengroup.org/onlinepubs/9699919799/
chocolat
chocolat

Messages : 144
Date d'inscription : 22/01/2014
Localisation : IDF

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Lun 20 Nov 2017 - 22:44

chocolat a écrit:Je ne sais pas si ça va t'intéresser :
http://pubs.opengroup.org/onlinepubs/9699919799/
hello, si si, ça fait partie des choses qui concernent le sujet Very Happy
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Mar 21 Nov 2017 - 12:00

Une page de vie informatique, avec aujourd'hui notre invité, Linus Torvald.
Alors, Linus, est ce que vous auriez un truc à partager avec nous ?



N'essayez pas ce mode de communication dans l'open space d'une grande banque:
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par DLS Mar 21 Nov 2017 - 15:47

C'est bien sûr faux, surtout dans l'aéronautique où ils ne veulent pas des langages de haut niveau, ni des méthodes formelles et autres outils de pointe. Ils les connaissent, ils savent qu'avec ces outils, leurs logiciels seraient de meilleur qualité, fonctionneraient mieux et coûteraient moins cher. Mais ils n'en veulent pas. Sont-ils crétins ? Bien sûr que non. Tout simplement, l'adoption de ces outils les forceraient à revoir toutes leurs méthodes et refonder leur chaîne hiérarchique: le chef de projet ne serait plus chef de projet, l'ingénieur ne serait plus ingénieur, etc. Ils veulent conserver leurs privilèges, voilà tout.

Tu n'arriveras pas à me convaincre. Je suis dans la position de celui qui a vu. Je sais ce qu'on apprend aux informaticiens, je sais ce qu'ils font une fois embauchés et je sais qui leur donnent des ordres. Ces gens sont des ignares, ils ne savent rien, ce sont de simples bricoleurs du dimanche bombardés développeurs. Les plus mauvais deviennent managers et font ensuite les choix stratégiques qui coûtent des milliards à la communauté. Les plus mauvais managers deviennent business angels et financent les équipes aux commandes des fondations Mozilla, de Google, ils font du PHP, du Go, de l'AutoIt, toutes ces merdes.

Pour l'utilisation d'Ocaml chez Airbus : L'analyseur statique ASTRÉE. Bien sûr que le Caml n'est pas utilisé dans tout ce qui est logiciel embarqué. On sait pourquoi (et sinon, on cherchera sur Google). Cet exemple était surtout ironique. Le caml n'est pas utilisé (ou de façon si discrète...) dans l'industrie. Seuls des universitaires et des chercheurs l'utilisent. Même dans l'éducation, il cède le pas à... Python (cf. le nombre de livres qui sortent depuis quelques années sur l'informatique en classes prépas : Python toute !). Bref, Caml est réservé aux "esthètes". Ici encore, c'est bien ou c'est mal, à vrai dire je ne sais pas (enfin si, je sais : ce n'est ni l'un ou l'autre, c'est fonction de son objectif, son besoin, son environnement... bref c'est relatif. Eh oui, le relativisme est décidément partout Wink !).

Et pour terminer, je ne cherche à convaincre personne. Ni sur ce fil, ni sur aucun autre. Je ne fais que témoigner moi-aussi, et donner mon point de vue (car il ne s'agit toujours que de cela, relativisme oblige). Je lis l'avis des autres, et leur expérience est intéressante mais ne correspond pas toujours (pas souvent ?) à la mienne. Comme quoi le monde est décidément bien multiple...

Le couplet sur l'incompétence à la Dilbert est assez classique. La perfection n'étant pas de ce monde, il est toujours possible de le produire quels que soient les résultats déjà obtenus et la qualité des intervenants. Ici encore, ce n'est qu'un point de vue : voit-on le verre à moitié vide ou à moitié plein ?
Eh bien je le vois à moitié plein et donc mon point de vue est différent. Je vois d'énormes efforts qui ont été menés pour aboutir à quantité de résultats. Tout ne va pas comme sur des roulettes, et pourtant plein de choses parviennent à rouler tout de même. La preuve, comme je l'ai déjà signalé : ce forum où nous échangeons nos points de vue (mais nous ne débattons pas, il ne faut pas se leurrer non plus !), écrit dans la merdouille PhP qui donne du boulot à beaucoup de gens, même s'ils sont de piètres programmeurs... Wink Et ni toi ni moi je pense (mais on peut se sentir une âme de Don Quichotte) n'y changera goutte... Smile
DLS
DLS

Messages : 857
Date d'inscription : 22/06/2017
Age : 50

https://spiritualite.art.blog/blog-feed/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Invité Mar 21 Nov 2017 - 16:20

@alexandre : Toi tu pourrais bien t'entendre avec ma compagne Smile (Touches pas quand même) qui essaie d'expliquer qu'avant d'essayer de concevoir une Ferrari ou un Tracteur, il faut inventer la roue et que tout cela passe par des phases de créations de bouse ou de génie et de comprendre que la petite et la grande roue ont chacune un interêt, q'une surface molle ou dure c'est idem et que c'est un mixte de tout ce bazar qui fera que nous ferons un petit pas pour l'humanité, juste un petit pas. Car le grand pas c'est réservé à très peu d'entre nous.(Merci Alexandre de remettre un peu de bon sens ici bàs)

Moi je vais faire un grand plongeon, j'ai piscine

Invité
Invité


Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Mer 22 Nov 2017 - 12:05

Alors ... où que j'en suis dans mon projet de faire du C ? Il y a deux points qui se dégagent :

- A/ Même si j'ai choisis le C comme langage, je veux quand même m'assurer une certaine confiance dans les aspects de reproductibilité des programmes que je vais écrire. Donc on est plus dans "je vais faire du C", mais "je vais faire du C de telle sorte que les programmes que j'écris seront sinon reproductibles [mêmes entrées produisent les mêmes sorties] tout au moins dotés d'une forte probabilité de l'être". Donc on est plus dans "avec quoi je programme ?", mais "comment je programme ?". Et c'est un sujet un peu complexe, bien qu' intéressant.

- B/ L'autre point, c'est qu'à force de me perdre dans des considérations théoriques, j'avance d'autant moins vite au niveau des programmes que je voudrais écrire. Sauf si on considère que les aides pour les écrire sont aussi une façon de les écrire, mais je préfère considérer que ce sont des aides. La logique voudrait que j'essaye de trouver ce qui existe comme pratiques (ou frameworks) qui correspondent à mon besoin. D'un autre coté chercher ce qui existe est parfois plus coûteux que de le réinventer, donc c'est toujours un choix difficile. Quand on réinvente, on peut mesurer l'avancement. Quand on cherche un truc qui n'existe pas, mesurer l'avancement est plus délicat.


Si je pousse la logique B jusqu'au bout, invariablement la conclusion est qu'il ne faut pas "utiliser C au mieux", mais "inventer un meilleure C". Sauf que ça prendrait trop de temps pour espérer pouvoir l'utiliser ensuite, à priori. Et c'est d'autant moins pertinent, que le fait de ne pas savoir utiliser C au mieux, laisse peu d'espoir d'être vraiment sagace pour proposer "un meilleur C".

Où commence le C, où commence le hardware, où commence la logique booléenne, où commence un programme, où commence la notion de fonction, et en quoi la notion de "programme" lui fait concurrence et vient la compléter, voici quelques unes des considérations qu'il semblent nécessaire de méditer, mais dont le fait de méditer beaucoup dessus, ne fait pas tellement avancer le schmilblick en tant que construction d'un projet montrable et utilisable.
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Mer 22 Nov 2017 - 12:32

Je perdrais moins de temps, si les gens mettaient des titres appropriés.

Le mec appelle sont article

Writing Secure Code
https://www.cprogramming.com/tutorial/secure.html

Qu'est ce que l'article contient ? Des trucs et astuces, et des exemples pour écrire du code non sécurisé.



Pareil pour les livres ?
https://resources.sei.cmu.edu/asset_files/BookChapter/2005_009_001_52710.pdf
Au moins dans le livre, y a quand même des éléments susceptible d'aider :

Page 102 :
size_t __builtin_object_size(void *ptr, int type)

http://www.informit.com/articles/article.aspx?p=2036582&seqNum=6


J'imagine que c'est contre les jeunes gens qui veulent mettre en pratique tous ces conseils, que Linus avait ranté (plus haut dans ce fil l'extrait du mail).
Personnellement je ne veux pas me défendre contre les gens malicieux pour le moment, mais plus me défendre contre moi même. Donc bon. De toute façon ça me semble quand même un peu léger tout ça, et on dépend parfois des outils, donc solutions pas très portables .





https://books.google.fr/books?id=GL8AeTCu1WAC&pg=PT180&lpg=PT180&dq=secure+array+access+for+c+programs&source=bl&ots=igEmDuIZYi&sig=uqaJUM3RbgOYsddCX2SAk5y7Cv0&hl=en&sa=X&ved=0ahUKEwipk7ixj9LXAhXCUhQKHYjZBOo4ChDoAQguMAE#v=onepage&q=secure%20array%20access%20for%20c%20programs&f=false

Okay, faut payer pour lire
https://link.springer.com/chapter/10.1007/3-540-36532-X_9

Mais comment je sais si ça vaut le coup de payer, si tu me dis pas ce qu'il y a dedans ?
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Apprendre la programmation en C. - Page 2 Empty Re: Apprendre la programmation en C.

Message par Stauk Mer 22 Nov 2017 - 16:59

Les protections du Kernel Linux :
https://www.kernel.org/doc/Documentation/security/self-protection.txt
https://eklitzke.org/memory-protection-and-aslr
Stauk
Stauk

Messages : 6462
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Page 2 sur 3 Précédent  1, 2, 3  Suivant

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum