Partage
  • Partager sur Facebook
  • Partager sur Twitter

Le C est-il réservé à l'élite?

Immenses difficultés de comprehension

Sujet résolu
    20 novembre 2015 à 15:41:10

    Salut! J'ai 19 ans , je suis en licence en Genie Logiciel. Quand j'étais en première, j'ai commencé à suivre le cours de mathieu Nebra sur le C . Arrivé en fac , j'ai fait un BTS SIO et on se focalisait beaucoup plus sur les langages de haut niveau(VB , Java . . .) . Je considerait mon niveau en C comme moyen . J'ai récemment mis la main sur le cours officiel fait par les créateurs du C ( Brian Kernigham et Dennis Ritchie ) . Je me rend compte que c'est un véritable parcours du combattant. J'ai l'impression de n'avoir jamais fais de C . Je n'arrive pas a faire la motie des exercices , et je ne suis qu'au chapitre 2 . Et ça me demande beaucoup d'effort pour la comprehension , meme en sautant des exercices. Je me demande si c'est normal ou si le probleme viens de moi . Plusieurs personnes m'ont dit qu'il fallait commencer par le python , je me disais que je pourais m'en sortir avec le C . En passant , j'ai eu un bac L. Quelles peuvent etre les raisons de mes difficultés. Le C n'est-il pas fait pour moi?

    Veuillez pardonnez la longueur , je souhaitais que vos reponses soient assez éclairées.

    Merci d'avance pour vos reponses.

    Cordialement , LK13

    • Partager sur Facebook
    • Partager sur Twitter
      20 novembre 2015 à 15:48:24

      Personnellement je ne suis pas d'accord avec ce que tu dis, le C n'est pas reserve a l'elite. Certes c'est un langage bas niveau, moins comprehensible que du python qui lui est bien plus haut niveau (soit dit en passant je trouve que le python est un langage horrible). Apres le probleme qu'on peut avoir avec des livres, je parle en connaissances de cause, c'est de lire en se disant qu'on a compris mais sans mettre en application en dehors des exos, je suis entrain d'apprendre l'assembleur, qui lui est vraiment tordu mais rigolo, et au debut je lisais a l'arrache en pensant avoir compris, je me suis rapidement rendu compte que ce n'etait pas le cas. Ce qui peut arriver si tu as l'habitude des langages haut niveau c'est que tu ne comprends pas la facon de penser bas-niveau. Moi qui est commence par le c (ya eu algobox avant mais ca compte pas) a chaque fois qu'on me met un langage haut niveau sous les yeux je pleure et je me dit que le haut niveau c'est vraiment trop dur.

      Pour resumer : le probleme n'est pas le langage C mais les langages dont tu as l'habitude.

      J'ai ecris au fil de mes pensees et il se peut que ce soit un peu bordelique.

      • Partager sur Facebook
      • Partager sur Twitter
      L'erreur est toujours située entre la chaise et le clavier | Retenez bien : l'avatar de Lorrio est une marmotte (lien de J-Edward)
        20 novembre 2015 à 16:12:03

        J'ai personnellement déjà entendu que le K&R n'était pas très accessible. 

        Que ses auteurs sont évidemment des génies, mais que leur ouvrage n'est pas à recommander à n'importe qui, et que pour apprendre le C, c'est pas forcément le livre le plus adapté.

        • Partager sur Facebook
        • Partager sur Twitter

        Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

          20 novembre 2015 à 16:19:25

          C'est vrai qu'il y a toujours une grande difference entre la creation et l'explication : certaines personnes sont tres douees pour creer d'autres sont tres douees pour expliquer mais pont savent bien faire les 2 en meme temps.
          • Partager sur Facebook
          • Partager sur Twitter
          L'erreur est toujours située entre la chaise et le clavier | Retenez bien : l'avatar de Lorrio est une marmotte (lien de J-Edward)
            20 novembre 2015 à 18:17:19

            je ne crois pas qu'il soit "reservé" a l'elite :
            le langage C est, comme tout les autres langages, un outil qui te sert a te faciliter la vie (histoire de pas te faire suer a ecrire en assembleur).
            le C est pratique aujourd'hui parce qu'il est rapide, leger et te permet un bon controle sur ta memoire,
            ca implique parfois pas mal de bidouille et de "magie noire" (par exemple, ce bout de code absolument incomprehensible calcul très, très vite l'inverse de la racine carré d'un nombre)
            float Q_rsqrt( float number )
            {
            	long i;
            	float x2, y;
            	const float threehalfs = 1.5F;
            
            	x2 = number * 0.5F;
            	y  = number;
            	i  = * ( long * ) &y;                       // evil floating point bit level hacking
            	i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
            	y  = * ( float * ) &i;
            	y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
            // y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
            
            	return y;
            }
            après, tout ca ne veut pas dire que le C est "reservé" a l' "elite", ca veut dire qu'il t'offre des libertés que ne t'offrirai pas JAVA par exemple, au prix d'une implementation parfois plus laborieuse... et d'un code moins facile a lire. Personnellement, j'ai commencé mes cours d'info a la fac en codant en C et... bha, j'ai survecut !
            • Partager sur Facebook
            • Partager sur Twitter
            DIESELPUNK
              20 novembre 2015 à 19:19:55

              Salut ! Ah l'algo de calcul de racine de Carmack !

              Il a été fait en C, mais rien n'empêche d'utiliser cela dans n'importe quel langage ! C'est un algo de Newton (qui s'explique très bien) qui converge donc vers la bonne racine, et le nombre magique est un point de départ de l'algo, directement codé selon la norme des float, qui a empiriquement été choisi pour être un bon point de départ dans tous les cas.

              Mais tout ça, c'est pas tant le langage C, c'est les ruses mathématiques qui permettent de calculer quelque chose d'acceptable, mais vite. Et ça peut marcher dans n'importe quel langage !

              • Partager sur Facebook
              • Partager sur Twitter

              Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                20 novembre 2015 à 19:38:33

                l'ago racine de carmack, en personne ! (bon, carmack n'est pas l'auteur mais CARMACK bon sang !)l'objectif ici était plus de montrer un bout de code difficilement comprehensible au premier coup d'oeil en C,
                pas vraiment de parler de l'algo derrière (qui reste quand même costaud mais qui peut effectivement s'implementer dans tous langage),
                sinon comme exemple j'aurais peut être la macro container_of :
                #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

                #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) );})
                que j'utilise assez souvent en fait, même si le "truc" derrière est assez simple

                -
                Edité par bigbrother1 20 novembre 2015 à 22:45:59

                • Partager sur Facebook
                • Partager sur Twitter
                DIESELPUNK
                  20 novembre 2015 à 19:50:49

                  LK13 a écrit:

                   J'ai récemment mis la main sur le cours officiel fait par les créateurs du C ( Brian Kernigham et Dennis Ritchie )

                  Clairement le problème ce n'est pas le C, mais le cours que tu utilises pour apprendre...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 novembre 2015 à 21:42:36

                    Je ne pense pas qu'il existe de langage réservé à « l'élite ». Maintenant je ne suis pas certain que le C soit un bon point de départ en programmation, il y a plein de langages bien meilleurs pour ça.

                    Sinon le K & R je ne l'ai jamais lu mais j'ai déjà vu des exemples qui en sont tirés et qui sont assez mauvais.

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
                    Anonyme
                      20 novembre 2015 à 22:43:12

                      Salut, j'ai lu le K&R et c'est vrai que pour les débutants c'est vraiment pas le livre le plus adapté.

                      un exemple :

                      void strcpy(char *s, char *t)
                      {
                          while (*s++ = *t++)
                              ;
                      }

                      ça peut rendre fébrile un débutant ce genre de syntaxe. Et pourtant le livre en est rempli.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 novembre 2015 à 0:48:55

                        Les exos de ce bouquin sont assez obscurs et difficiles surtout quand on debute, faut pas se laisser décourager pour ca
                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 novembre 2015 à 1:04:23

                          Hello,

                          Clairement, non. Mais la "basicité" du langage fait que, en tant que programmeur, tu es responsable de (pratiquement) tout. Pas comme quand tu utilises des langages de plus haut niveau.

                          Concernant le K&R: j'ai la première édition, mais comme le net existe, je conseillerais à tout le monde d'y trouver un bon tutoriel, car le K&R pour débuter est.... presque rebutant (et pourtant, j'ai commencé par là).

                          A+

                          Edgar;

                          • Partager sur Facebook
                          • Partager sur Twitter

                          On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                            21 novembre 2015 à 14:51:53

                            Titouuu a écrit:

                            Salut, j'ai lu le K&R et c'est vrai que pour les débutants c'est vraiment pas le livre le plus adapté.

                            un exemple :

                            void strcpy(char *s, char *t)
                            {
                                while (*s++ = *t++)
                                    ;
                            }

                            ça peut rendre fébrile un débutant ce genre de syntaxe. Et pourtant le livre en est rempli.

                            Honnêtement je savais même qu'on pouvait faire ça dans un while. Mais c'est toujours intéressent de voir ce qu'on peut faire en C avec ces bouts de code comme ça.



                            • Partager sur Facebook
                            • Partager sur Twitter
                            Steins;Gates too too roo
                              21 novembre 2015 à 20:17:21

                              Merci déjà pour vos diverses reponses. J'eu a travailler avec la SDL , faire un editeur de texte simple en GTK ( meme si j'avais d'énormes difficultés avec l'orienté objet à cette époque ) , manipuler le son avec la FMOD , donc je ne me considerait pas vraiment comme un " vrai " débutant. J'arrive à comprendre les bouts de codes du K&R sans trop de difficulter , mais quand j'éssaie de faire les exercices moi meme , c'est une vrai catastrophe. Resultat je passe des heures devant codeblocks à essayer diverses solutions sans succes , choses qui ne m'arrivaient certes pas avec des cours comme " Teach yourself C in 24 hours " . (Plutot costaud lui aussi)

                              -
                              Edité par LK13 21 novembre 2015 à 20:23:13

                              • Partager sur Facebook
                              • Partager sur Twitter
                                21 novembre 2015 à 20:21:55

                                J'apprecie beaucoup le C pour sa souplesse , la légèreté et la vitesse des programmes dont il est capable. Mais alors , pensez vous que l'on puisse réaliser dans des délais raisonnables des applications de gestion ( facturation , paie , RH , SCM . . . ) en C ? J'ai peu être mal cherché mais je n'ai pas trouvé d'exemples.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  21 novembre 2015 à 21:28:42

                                  LK13 a écrit:

                                  ( meme si j'avais d'énormes difficultés avec l'orienté objet à cette époque )


                                  Wut ? Tu parles bien du C et non du C++ ?

                                  Parce que l'orienté objet se trouve en C++, et non en C ...

                                  Il me semble que pour réaliser des projets comme ce que tu as en tête, utiliser un langage comme le C, c'est effectivement se prendre la tête pour peu de raison.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Si vous ne savez pas quoi faire, ne faites rien !
                                    22 novembre 2015 à 0:24:31

                                    InMax83 a écrit:

                                    LK13 a écrit:

                                    ( meme si j'avais d'énormes difficultés avec l'orienté objet à cette époque )


                                    Wut ? Tu parles bien du C et non du C++ ?

                                    Parce que l'orienté objet se trouve en C++, et non en C ...


                                    Il est tout à fait possible de faire de l'OO en C… C'est d'ailleurs ce que fait GObject en fait.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
                                    Anonyme
                                      22 novembre 2015 à 0:26:16

                                      Mad scientist a écrit:

                                      InMax83 a écrit:

                                      LK13 a écrit:

                                      ( meme si j'avais d'énormes difficultés avec l'orienté objet à cette époque )


                                      Wut ? Tu parles bien du C et non du C++ ?

                                      Parce que l'orienté objet se trouve en C++, et non en C ...


                                      Il est tout à fait possible de faire de l'OO en C… C'est d'ailleurs ce que fait GObject en fait.


                                      Oui mais avec une librairie, de base tu peux pas en faire.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        22 novembre 2015 à 0:36:23

                                        Titouuu a écrit:

                                        Oui mais avec une librairie, de base tu peux pas en faire.

                                        Tu peux toujours le faire avec des structures et des pointeurs de fonctions, mais bon.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          22 novembre 2015 à 12:16:47

                                          Titouuu a écrit:

                                          Mad scientist a écrit:

                                          InMax83 a écrit:

                                          LK13 a écrit:

                                          ( meme si j'avais d'énormes difficultés avec l'orienté objet à cette époque )


                                          Wut ? Tu parles bien du C et non du C++ ?

                                          Parce que l'orienté objet se trouve en C++, et non en C ...


                                          Il est tout à fait possible de faire de l'OO en C… C'est d'ailleurs ce que fait GObject en fait.


                                          Oui mais avec une librairie, de base tu peux pas en faire.


                                          Tu peux toujours, c'est juste pas pratique du tout (d'ailleurs GObject n'est pas super pratique non plus mais bon), comme l'a dit ruquier dans des temps anciens.

                                          -
                                          Edité par Mad scientist 22 novembre 2015 à 12:17:46

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
                                            22 novembre 2015 à 21:31:12

                                            la vitesse des programmes dont il est capable. ==> Eu... tu ne verras pas la différence de temps entre deux programmes identiques mais codés dans différents langages la plupart du temps. C'est plus ton algo qui fera la différence.

                                            -
                                            Edité par ractamard 22 novembre 2015 à 21:31:36

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Anonyme
                                              22 novembre 2015 à 21:35:10

                                              ractamard a écrit:

                                              la vitesse des programmes dont il est capable. ==> Eu... tu ne verras pas la différence de temps entre deux programmes identiques mais codés dans différents langages la plupart du temps. C'est plus ton algo qui fera la différence.

                                              -
                                              Edité par ractamard il y a moins d'une minute

                                              Mais bien sur !

                                              http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=gcc&lang2=php

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                22 novembre 2015 à 21:47:59

                                                Dans tes programmes as-tu déjà vu une seul fois une vrais différence de temps en fonction du langage ? Fais-tu des programmes qui demandent un grand nombre de calculs à la seconde ?

                                                Et si désolé de te le dires, c'est l'implémentation de l'algo qui fais toute la différence. Si on suis ton résonnement avec tes benchmarks ont coderais les jeux en assembleurs et ce n'est plus le cas. Le java te produit des perfs tout à fait honorable. Le moteur Unity (C#) te fais un jeu 3d aisément sans lag..Mais tu dois être à 2 seconde près.

                                                Edit: en plus tu me compares un langage Web avec du C.. tant que tu y es compare le a du batch et là tu pourras dire qu'il est beaucoup plus rapide

                                                -
                                                Edité par ractamard 22 novembre 2015 à 21:50:08

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  22 novembre 2015 à 21:59:32

                                                  ractamard a écrit:

                                                  Dans tes programmes as-tu déjà vu une seul fois une vrais différence de temps en fonction du langage ? Fais-tu des programmes qui demandent un grand nombre de calculs à la seconde ?

                                                  Regarde sa signature ...

                                                  ractamard a écrit:

                                                  Et si désolé de te le dires, c'est l'implémentation de l'algo qui fais toute la différence.

                                                  Quedal. Un algorithme en temps N peut aller bien plus vite qu'un algo en log N selon la gueule des données et surtout comment elles sont mises en cache.

                                                  ractamard a écrit:

                                                  Si on suis ton résonnement avec tes benchmarks ont coderais les jeux en assembleurs et ce n'est plus le cas.

                                                  C'est la balance coût de développement VS gain de performances qui répond à cette question. Certains dév de jeux côté moteurs seraient heureux de développer en assembleur si cela ne leur prenait pas trop de temps et ne ruinait pas le multi-plateforme.

                                                  ractamard a écrit:

                                                  Le moteur Unity (C#) te fais un jeu 3d aisément sans lag..Mais tu dois être à 2 seconde près.

                                                  Le lag, c'est sur le réseau. Et 2s dans un FPS c'est une éternité.

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                                                    22 novembre 2015 à 22:25:30

                                                    j'avoue qu'être a 2 seconde près dans un milieu ou tout le monde parle de 60 fps c'est pas vraiment top,

                                                    quand a l'algo generallement on parle de difficulté ASYMPTOTIQUE, ce n'est pas pour rien : au bout d'un moment ca fini par être significatif certe mais ca ne prend pas en compte des constantes multiplicatives qui ont de l'importance lorsque les données a traiter sont peu nombreuses...

                                                    et oui, personnellement j'ai deja vu des programmes JAVA, qui étaient pourtant bien implementés, avoir des equivalent 10 fois plus rapides en C

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    DIESELPUNK
                                                    Anonyme
                                                      22 novembre 2015 à 22:29:38

                                                      ractamard a écrit:

                                                      Dans tes programmes as-tu déjà vu une seul fois une vrais différence de temps en fonction du langage ? Fais-tu des programmes qui demandent un grand nombre de calculs à la seconde ?

                                                      Et si désolé de te le dires, c'est l'implémentation de l'algo qui fais toute la différence. Si on suis ton résonnement avec tes benchmarks ont coderais les jeux en assembleurs et ce n'est plus le cas. Le java te produit des perfs tout à fait honorable. Le moteur Unity (C#) te fais un jeu 3d aisément sans lag..Mais tu dois être à 2 seconde près.

                                                      Oui non j'ai jamais eu de contrainte de temps, c'est vrai après tout c'est mon travail de rendre les choses rapide mais j'ai pas de contrainte de temps (sarcasme).

                                                      Pourquoi on ne code plus les jeux en assembleur ? Tout simplement car le compilateur est capable de générer de l'assembleur plus performant que celui que nous pouvons coder dans la grande majorité des cas et dans les cas ou ca ne l'est pas, devine ce qu'on fait ? On code cette partie en assembleur ! Plot twist !

                                                      Unity n'est pas en C#, il expose une fonctionnalité de scripting en C# c'est complétement différent, d'ailleurs si tu prenais le temps de google tu saurais que l'interface bas niveau d'unity est en... C++ ! (source : http://docs.unity3d.com/Manual/NativePluginInterface.html )

                                                      D'ailleurs tu noteras en allant sur mon dev blog qu'il y a systématiquement de l'assembleur dans tout ce que je fais, que ce soit de l’étude de code généré ou que ce soit de la programmation en assembleur.

                                                      ractamard a écrit:

                                                      Edit: en plus tu me compares un langage Web avec du C.. tant que tu y es compare le a du batch et là tu pourras dire qu'il est beaucoup plus rapide

                                                      Tu me trouves l'endroit ou tu precises que tu ne parlais que des langages "pas web" ? (En admettant que ca ait un sens de dire ca, car non le PHP n'est pas un langage web, c'est tres utilise dans le web c'est tout).

                                                      Mais comme je suis gentil on va te laisser le benefice du doute et prendre le python par exemple : http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=gcc&lang2=python3

                                                      Ou bien encore le LUA : http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=gcc&lang2=lua

                                                      -
                                                      Edité par Anonyme 22 novembre 2015 à 22:32:48

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        22 novembre 2015 à 22:42:42

                                                        Regarde sa signature ... ==> Et alors ? tout le ne monde ne fais pas ça et comme dis, la plupart du temps tu ne vois pas la différence.

                                                        Quedal. Un algorithme en temps N peut aller bien plus vite qu'un algo en log N selon la gueule des données et surtout comment elles sont mises en cache. ==> On aura tout entendu sur le sdz.. Si et si, c'est l'algo le plus  important dans le programme et non la vitess d'éxécution du langage qui vient poser des problème de ralentissement.

                                                        C'est la balance coût de développement VS gain de performances qui répond à cette question. Certains dév de jeux côté moteurs seraient heureux de développer en assembleur si cela ne leur prenait pas trop de temps et ne ruinait pas le multi-plateforme. ==> On dois pas avoir la même définition de heureux, l'asm c'est bien plus compliqué et bordélique que le C++. Je ne connais pas beaucoup de dev de jeu qui font de l'asm et même pour les indépendant genre open source ils font pas de l'asm alors qu'ils ont tout le temps qu'ils veulent. L'asm tu le retrouve que dans le noyeau des moteurs graphiques et uniquement aux endroits critiques. Là encore, l'asm est choisié car il doit manipuler et calculé des tas de taritements.

                                                        Le lag, c'est sur le réseau. Et 2s dans un FPS c'est une éternité. ==> As-tu déjà fais un jeu ? Non le lag n'est pas que sur le réseau. D'ailleurs je ne parlais pas d'un jeu en réseau avec unity. C'est toute la partie affichage qui prend le plus de temps dans un jeu. Et désolé mais deux seconde sur un traitement c'est rien comparé à un algo mal construit qui peux te faire perdre des tas de secondes.

                                                        Exemple, tu dois vérifier des données récoltées avec ceux d'une bdd, si tu te retape toutes la lecture à chaque fois, tu perd un temps précieux qu'elle que soit le langage. Maintenant si tu mets tout en mémoire et que tu fais ca en C là OUI le programme sera plus rapide mais il faut encore réussir à le coder proprement. En réalité on ne voit pas la différence entre les langages, d'ailleurs le langage D est bien plus rapide que le C et ils  en existent encore des plus rapides et pourtant on ne s'y aventure pas.

                                                        Autre exemple, les ingénieurs qui codent pour les programmes spatiales sont encadrés par  un examinateur d'algo.. chaque programme fait est contrôlé par une personne qui regarde l'algo, il ne fait que sa toute la journée. Si l'algo prenait une place tellement petite dans un programme on ne s'amuserait pas à les payer pour rien.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          22 novembre 2015 à 22:50:08

                                                          Tu me trouves l'endroit ou tu precises que tu ne parlais que des langages "pas web" ? (En admettant que ca ait un sens de dire ca, car non le PHP n'est pas un langage web, c'est tres utilise dans le web c'est tout). ==> le php ne peut être éxécuté que ur un serveur donc web globalement. "<acronym title="PHP: Hypertext Preprocessor">PHP</acronym> (officiellement, ce sigle est un acronyme récursif pour PHP Hypertext Preprocessor) est un langage de scripts généraliste et Open Source, spécialement conçu pour le développement d'applications web."

                                                          Un exemple typique le dernier batman sorite sur PC, coder en C ou C++ causait énormément de ralentissement. Qu'est-ce qui clochait ? L'algo !

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          Anonyme
                                                            22 novembre 2015 à 23:41:04

                                                            ractamard a écrit:

                                                            le php ne peut être éxécuté que ur un serveur donc web globalement.


                                                            Et c'est a ce moment la que tu découvre que tu peux utiliser le commande "php" dans ton terminal prefere pour executer du php en dehors d'un serveur...

                                                            Je crois que tu as un réel problème a comprendre que la vitesse d’exécution est régi par de multiples facteurs, l'algorithme en est un, l’implémentation en est un autre. Dans l’implémentation on trouve a nouveau nombres de facteurs, la manière d’accéder a la mémoire (cache miss, prefetch, alignement), le rapport instructions/data, par exemple si j'arrive a vectoriser un algo, je divise par au moins 4 ce rapport, montre moi comment tu implémentes la vectorisation en java, j'ai hâte de voir ça.

                                                            Un algo en O(n) peut être plus rapide qu'un O(log N) dans un cas réel, car une ordinateur n'est pas une machine idéal comme la machine théorique dont on se sert en algo papier. Un algo en O(log N) qui détruit le cache a chaque itération a de grande chance de se faire exploser par un algo en O(n) qui permet de vectoriser et d'assurer la présence du jeu de donnée en cache au moment de l'utilisation.

                                                            Bien sur qu'il faut des algo efficients mais ca n'invalide pas le fait que le choix du langage a un impact important sur les performances. Les deux ne sont pas mutuellement exclusif. 

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              23 novembre 2015 à 7:10:57

                                                              Hello,

                                                              Et c'est a ce moment la que tu découvre que tu peux utiliser le commande "php" dans ton terminal prefere pour executer du php en dehors d'un serveur... ==> Je ne connaissais pas en effet.

                                                              Je crois que tu as un réel problème a comprendre que la vitesse d’exécution est régi par de multiples facteurs, l'algorithme en est un, l’implémentation en est un autre.==> Je suis tout à fait d'accord avec toi, mais j'ai vu passer pas mal de sujet ou des mec demandaient quel langages utiliser pour que leur programme aille plus vite, alors qu'ils avaient un problème de conception à la base. Je ne dis pas que le choix de la rapidité ne se fait pas en fonction du langage mais d'abord avec un algo bien développé.

                                                              La façon de gérer ces variables, pour moi c'est à prendre en compte lors de ta conception de l'algo. Tu ne fais pas juste l'idée mais bel et bien les idées pour que ton programme fonctionne le mieux possible et le tout rapidement.

                                                              Si tu prends des langages assez proches, java, c# ou encore vb. Je connais pas leur rapidité d'éxécution mais est-ce que tous les gens venant sur le sdz ont réellement besoin des 2 secondes de traitements ? Car oui deux seconde pour un FPS c'est beaucoup mais pour un programme qui check une liste de données ? Bien sure que le choix du langage compte et qu'il est à prendre en compte mais pour moi l'algo est tout aussi important.

                                                              Bien sur qu'il faut des algo efficients mais ca n'invalide pas le fait que le choix du langage a un impact important sur les performances. Les deux ne sont pas mutuellement exclusif.  ==> On en revient à cette conclusion. Mon message à la base était destiné à des personnes qui ne gèrent pas beaucoup de calcules dans leur programme.

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Le C est-il réservé à l'élite?

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown