Journal la Geste de l'Estudiant.

Posté par .
Tags : aucun
31
24
oct.
2010
Étudiant dans une école d'informatique connue et réputée (ou pas, mais ce n'est de toute façon pas le sujet) en première année, je suis sensé ne pas connaître UNIX et donc ne pas avoir envie de développer dessus.
Ainsi, notre projet d'informatique d'année doit se faire sous C# ou F# (le Caml proprio de MS) pour son intégration à DotNet et les facilités qu'ils proposent (sic).
Heureusement, dans son infinie bonté, Microsoft nous offre des licences Visual Studio 2010 "Ultimate Edition DeLaMorkitu DéfonçageDePonays".

L'installation de ce logiciel fut pour moi une véritable épopée. Laissez moi vous la partager.


Oyez oyez, damoiselles et damoiseaux, la Geste de l'Estudiant.

Tel Lancelot, courageusement armé de sa connexion et ses identifiants ainsi que de son Mulot, fidèle écuyer, il s'avança vers les terres de Microsoft, à la quête d'un Graal qu'il ne désirait pas vraiment mais imposée comme une épreuve pour rejoindre la Table Ronde des Ingénieurs.

Quittant le doux confort de l'île d'Avalon, sous la domination du seigneur UNIX, il se retourne un instant vers la dame du Lac se demandant si le mal pouvait le corrompre ou s'il saurait rester fort.
« Quel est ton nom ? » lui demande le garde frontière, l'air menaçant, sa barbe drue laissant apparaître les relents de son dernier repas.
–  Je suis Lancelot du Lac, répondit-il.
–  Quelle est ta quête ?
– Chercher le Graal.
– Quelle est ta couleur préférée ?
– Bleu.
– C'est bon, tu peux passer.

Lancelot s'avance alors dans les contrées du MSDNAA, où il dût se déparer de ses armes, ses identifiants, pour entrer dans la Caverne du Déhelle. Là, il y trouve un nain qui lui désigne une antique caisse.
« Ce que tu cherches est là dedans, lui dit-il. Pour l'ouvrir, il te faudra utiliser ta connexion internet pour la tirer dans la forêt de Brocéliande. À exactement 4096,72 Miles Officielles dans cette direction, tu trouveras une clairière enchantée où tu pourras l'ouvrir. Maintenant va ! »

Alors Lancelot, tire. Il tire un jour et une nuit durant, le lourd coffre usant la connexion à tel point que Lancelot eu peur pour elle.
Arrivé dans une clairière, mais ne sachant si c'était la bonne il appelle à l'aide les esprits qui étaient sensés l'assister dans sa tache. Un vieillard qui passait par là, lui demanda à quel point de désespoir il en était pour se fier aux esprits de Brocéliande. Lancelot lui expliquât l'histoire de Graal et les 4096,72 Mo. Le vieillard se mit à rire, d'un rire sinistre.

— Pauvre fou ! Tu ne sais pas dans quoi tu t'es embarqué ! Pour ouvrir ce coffre, il va te falloir en effet arriver à la clairière des esprits bienfaisants. Celle ci est entourée de fausses clairières avec des mauvais esprits farceurs qui te diront des mensonges.
« Car ce qu'ils te diront aura une importance cruciale ! Il va te falloir quérir une solide épée et une grande pierre sur laquelle tu devras graver ce que te dicteront les esprits.
« Il ne faut en aucun cas que la pierre soit de mauvaise facture, ou bien elle se brisera et tu rateras ta gravure. Il ne faut pas non plus que ton épée soit celle d'un pleutre car de sa solidité dépend de la qualité de ta gravure, et si ta lame se brise je ne donnerais pas cher de ta gravure…
« Mais surtout, il faut que tu n'aies pas dévié de ta route car si tu te trompe de clairière, tu gravera des informations erronées ! »
C'est alors que Lancelot prend sa lame la plus solide, et trouve une belle pierre ronde et massive. Il va à la clairière qui lui semble la bonne et écoute les esprits.
Exactement comme lui a dit le vieillard, il doit graver sa pierre. Il écoute et il grave vite et bien.

En un quart d'heure le travail est fait. Il a devant lui les instructions pour ouvrir le coffre. Les mains tremblantes d'excitation, il relève le couvercle. Au fond du coffre siège une vulgaire coupe en cuivre.
« Mais qu'est-ce que cela ? » S'exclame-t-il. « Où est le Graal ? »
Il entend alors une voix, vers laquelle il se dirige. C'est une fontaine. L'eau sort de la bouche d'une fée gravée dans le marbre.
— Si tu veux que ta coupe devienne le Graal, il va falloir boire de mon eau avec cette coupe.

Il s'avance alors, et alors qu'il allait se pencher pour ceuillir de l'eau il est interrompu. « STOP ! » C'est la fée qui l'a arrêté.
— Pense tu donc réellement être digne de posséder le Graal ? Mais où est donc ton heaume VC 10.0 runtime ? Et ton bouclier DotNet 4 ? Et ta lance ASP.Net ? Va donc, mécréant ! Tu ne boiras pas de mon eau !

La forêt se ferme alors devant Lancelot. Il se retrouve alors éjecté et propulsé en dehors des terres de MSDNAA.

Chancelant, pantelant, il repart en direction des terres du bon seigneur UNIX qu'il n'aurait jamais dû quitter. Il avait, pensa-t-il, connaissance des Ducs de Vim et d'Emacs. L'un ou l'autre saurait bien l'introduire auprès du comte de Mono…
  • # Tout ça pour ça

    Posté par . Évalué à  -8 .

    Tout ça pour nous dire que t'as téléchargé un logiciel microsoft et qu'il ne fonctionne pas avec ton système d'exploitation actuel ? Et alors ?
  • # Balance le nom !

    Posté par . Évalué à  10 .

    Non c'est vrai quoi, une école qui en première année fait l'impasse sur les fondamentaux d'informatique pour passer sur des langages de très haut niveaux (MS ou pas) est pour moi une mauvaise école d'informatique.

    À ça on ajoute la monoculture d'une solution pour des raisons commerciales qui empêche de voir la diversité technique que l'on peut rencontrer dans le monde réel côté développeur et enfin l'environnement de travail plus près d'un AGL pour Lego Mindstorm que d'un IDE qui font que ça va former une tripotée d'ingénieurs incompétents qu'il va falloir reformer une fois au boulot alors que c'était le taffe de l'école.

    Bref dis nous que c'est Supinfo ... :D

    (et là j'vais me faire insulter normalement)
    • [^] # Re: Balance le nom !

      Posté par . Évalué à  8 .

      Ce n'est pas Sup'Info, ils ne forment pas de courageux chevaliers prêts à tout pour siéger à la Table des ingénieurs.

      Mais ça aurait pu…
      • [^] # Re: Balance le nom !

        Posté par . Évalué à  6 .

        epita alors ?

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

        • [^] # Re: Balance le nom !

          Posté par . Évalué à  1 .

          N'insiste pas, c'est pas le sujet. Je ne donnerais pas le nom de l'école. :)
          • [^] # Re: Balance le nom !

            Posté par . Évalué à  7 .

            C'est pourtant pertinent comme question, pour ceux qui sont confrontés au choix d'une école.
            • [^] # Re: Balance le nom !

              Posté par (page perso) . Évalué à  9 .

              Il s'agit bien d'epita.
            • [^] # Re: Balance le nom !

              Posté par . Évalué à  1 .

              Et bien je ne crois pas justement, non. C'est pas sur un truc aussi insignifiant que tu peux juger d'une école.

              Sinon on peut aussi obliger à dev sous Unix et avoir ce qu'il y a en dessous avec les 3/4 largués etc.

              Le fait de devoir programmer, chercher soi-même la doc, gérer le groupe et les soutenances est déjà en soit un changement suffisamment conséquent pour excuser le dev sous windows.
              Faut pas se dire non plus que ça va jusqu'en ING3 ! C'est juste la première année le temps de s'habituer au changement.

              Après c'est Linux et FreeBSD. :)
              • [^] # Re: Balance le nom !

                Posté par . Évalué à  9 .

                Je ne dis pas que c'est un point vital dans le choix d'une école. Mais juste que c'est intéressant de le savoir.

                Libre à ceux qui choisissent leur école d'attribuer l'importance qu'ils souhaitent à ce point.
              • [^] # Re: Balance le nom !

                Posté par . Évalué à  9 .

                Et bien je ne crois pas justement, non. C'est pas sur un truc aussi insignifiant que tu peux juger d'une école.
                Tu veux dire que tu ne dois pas juger une école sur les choix
                - techniques (env de devs, choix des langages, ...)
                - pédagogiques (personnes pour dire "j'ai tout récup, si vous voulez l'utiliser 'yapuka' rentrer votre clé de licence)
                - politiques (on utilise ms et c'est tout, et on emmerde les autres).

                Il ne reste plus grand chose après ca, a part les conditions d'entrée et le cout...

                Sinon on peut aussi obliger à dev sous Unix et avoir ce qu'il y a en dessous avec les 3/4 largués etc.
                Si il y en a 3/4 de largués, c'est qu'il y a eu une mauvaise pédagogie.

                Et puis si 3/4 des gars en écoles d'infos sont largués parce qu'on ose changer leur petite habitude clickodrome (a tien non même pas, il existe des IDE aussi clicodrome sous les unix, dont par exemple eclipse et netbeans) j'ai envie de dire "qu'est ce qu'ils font en infos?"


                Le fait de devoir programmer,
                Ca c'est le boulot de l'étudiant on est d'accord.

                chercher soi-même la doc,
                Ca c'est le boulot, en partie du prof. Le prof doit vous aider dans ce genre de tache.

                gérer le groupe et les soutenances
                Le boulot du prof

                est déjà en soit un changement suffisamment conséquent pour excuser le dev sous windows.
                La doc, elle est disponible sur le ternet.
                La gestion du groupe et de la soutenance, soit j'ai pas compris, soit on s'en fout complètement de savoir si c'est de l'unix, du windows ou de l'embarqué.


                Après c'est Linux et FreeBSD. :)
                Donc la première année vous apprends des trucs que vous jeterez à la poubelle les années suivantes ?(parce que ne nous leurrons pas, quand on apprend pour "windows", on apprend pas de principe de fonctionnement, on apprend un "je clicque là, ca marche".)
                • [^] # Re: Balance le nom !

                  Posté par . Évalué à  -10 .

                  Posté par briaeros007

                  En fait 7 c'est le numéro de ton multi parce que les autre se sont fait ban c'est ça ?
                  • [^] # Re: Balance le nom !

                    Posté par . Évalué à  5 .

                    Explicite ta pensée, parce que là c'est pas franchement clair.

                    Et pour te répondre, je ne me suis jamais fait ban de linuxfr.
                • [^] # Re: Balance le nom !

                  Posté par . Évalué à  1 .

                  Donc la première année vous apprends des trucs que vous jeterez à la poubelle les années suivantes ?(parce que ne nous leurrons pas, quand on apprend pour "windows", on apprend pas de principe de fonctionnement, on apprend un "je clicque là, ca marche".)

                  Tu m'expliqueras la logique, nous on faisait de l'assembleur sous Windows(dans la VM DOS donc), du C sous Linux.

                  J'ai encore jamais vu qui que ce soit faire de l'assembleur avec un clickodrome pourtant...
                  • [^] # Re: Balance le nom !

                    Posté par . Évalué à  3 .

                    Tu as besoin d'avoir une chaine de compilation lorsque tu fais de l'ASM ?

                    Comment apprends tu correctement comment fonctionne une telle chaine si on te dis juste "il faut que tu le mette dans ce champ là" ?

                    Les makefiles et la ligne de commande sont peut être barbares, mais au moins c'est bien expliqué, et même on me dis "tu met ce chemin dans -L" je peux faire un man gcc et regarder ce que fait cette option.

                    Ensuite ce n'est que mon ressenti, mais je suis pas le seul à avoir cette impression quand on utilise un système ms, ou plus généralement une IDE haut niveau (mais netbeans et eclipse sont multi plateforme, pas visual studio).

                    Tandis qu'à l'inverse, quand tu sais à quoi correspond un classpath et comment ca s'emboite avec le reste, ben tu peux utiliser plus efficacement l'IDE de ton choix.
                    • [^] # Re: Balance le nom !

                      Posté par . Évalué à  2 .

                      Le truc qui m'a fait tique est "windows==clickodrome", c'est absolument faux, ca depend de ce que tu choisis de faire.

                      Ca fait quelques siecles que Visual Studio contient un environnement en ligne de commande avec makefiles et autre, le fait qu'il contienne un IDE ne signifie pas qu'il ne contienne que ca.
                      • [^] # Re: Balance le nom !

                        Posté par . Évalué à  2 .

                        je t'avouerais que je ne m'y connais pas assez en visual studio pour le savoir.

                        Maintenant soyons sérieux : un type à qui on demande de developper avec visual studio, visiblement sans plus de doc que ça, c'est pour l'utilisation de leur environnement en CLI, ou l'environnement clicodrome ?
                        • [^] # Re: Balance le nom !

                          Posté par . Évalué à  6 .

                          en même temps, même avec les outils CLI, cmd.exe c'est tellement glamour...
                          Ah pardon powershell maintenant :D

                          Il ne faut pas décorner les boeufs avant d'avoir semé le vent

                • [^] # Re: Balance le nom !

                  Posté par . Évalué à  5 .

                  Et puis si 3/4 des gars en écoles d'infos sont largués parce qu'on ose changer leur petite habitude clickodrome [...] j'ai envie de dire "qu'est ce qu'ils font en infos?"
                  Voire "qu'est-ce qu'ils font dans des études supérieures ?"

                  Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.

                • [^] # Re: Balance le nom !

                  Posté par (page perso) . Évalué à  6 .

                  >Et puis si 3/4 des gars en écoles d'infos sont largués parce qu'on ose
                  >changer leur petite habitude clickodrome

                  C'est sur que pour école qui forme des ingénieurs, c'est un peu moyen, moi j'ai fait un pauvre DUT informatique et on faisait de l'ADA sous HPUX/VT100/vi, du C sous Linux/Gnome/vim, du C++ sous HPUX/CDE/vim et de l'assembleur sous Windows 3.1/Notepad...

                  Ben c'est sur que moi qui n'avait jamais vraiment touché un ordinateur avant cela, je suis bien content avec le recul d'avoir découvert l'informatique comme cela.
    • [^] # Re: Balance le nom !

      Posté par . Évalué à  7 .

      Là où tu te trompes, c'est sur le but des deux premières années dans l'école en question (ça a été dit plus bas : EPITA). Ce sont deux années de prépa intégrée, où la visée est de donner aux étudiants un enseignement scientifique fondamental (maths, SI, culture générale quoi) tout en leur donnant quelques bases en informatique. Le but n'est pas qu'après deux ans de prépa intégrée EPITA les étudiants soient prêts et formés pour être ingénieurs en informatique, ce qui compte c'est qu'ils aient un minimum de culture et de connaissances scientifiques. Moins qu'en prépa générale, mais pas mal quand même.

      Du coup, l'apprentissage de l'informatique durant ces deux ans, c'est surtout de l'algorithmique (à un niveau pas trop mauvais quand même, si je devais résumer le programme je dirais qu'on va des listes chainées à la biconnexité d'un graphe en passant par les AVL et les hashtables), et de la programmation pour appliquer ce qu'on voit en algorithmique. De ce fait, des langages de haut niveau sont utilisés, et ça ne veut pas dire qu'on « fait l'impasse sur les fondamentaux de l'informatique ». D'ailleurs, même si ce journal parle de C#, il faut savoir qu'avant ça les étudiants ont fait 2 mois d'OCaml, et ils en re-feront 6 mois en début de 2ème année. Ça contribue surement plus à « la diversité technique » que se contenter de faire du C sous Linux pendant 5 ans.

      L'informatique à EPITA c'est vraiment à partir de la première année de cycle ingénieur. La prépa intégrée n'est pas là pour faire le boulot d'une école d'ingénieur, d'ailleurs dans la promo d'ING1 actuelle il y a environ 20% de gens qui viennent de l'extérieur. Et c'est là qu'on fait du C bas niveau sous Linux pour maîtriser son système et comprendre le fonctionnement interne (on a recodé stdio et malloc, par exemple). C'est là qu'on fera du C++ aussi après. C'est également là qu'on a des cours sur le fonctionnement des systèmes d'exploitation, les réseaux, les architectures de micro-ordinateurs, et j'en passe. L'objectif est différent.
      • [^] # Re: Balance le nom !

        Posté par . Évalué à  0 .

        Et c'est là qu'on fait du C bas niveau sous Linux pour maîtriser son système et comprendre le fonctionnement interne de la libc (on a recodé stdio et malloc, par exemple).

        J'ai un peu modifié en regardant ton exemple. Je dis pas que c'est pas bien (suis pas sur que je saurais recoder stdio), mais amha ca ne correspondait pas à ce que tu avais marqué.
        • [^] # Re: Balance le nom !

          Posté par . Évalué à  1 .

          Question pour ceux qui m'ont moinssé donc qui ont trouvé ce que je disais non pertinent : le gars qui sait recoder malloc va pouvoir me faire ma régle de sécu selinux ?

          Chouette.
          (et puis pas de auditallow hein sinon ca serait trop simple, une vrai règle avec les transitions itou).

          Ps , le coup de recoder malloc, à ma fac c'était en troisième année [enfin première année de C], avec brk/sbrk et c'était une licence info après deug mias, pas un truc ultra spécialisé en programmation (c'était plutôt l'architecture réseau ma fac.).
      • [^] # Re: Balance le nom !

        Posté par . Évalué à  4 .

        Ouais, méa culpa, la prépa intégrée d'Epita c'est vraiment à part, mais présenté comme le journal était présenté, je pensais qu'il parlait de la première année du cycle ingénieur d'une école d'informatique ... et force est de constater que certaines sont comme je le décris : mauvais fondamentaux, monoculture technique désastreuse, etc... Bref de bonnes raisons de les éviter alors autant les citer pour orienter les jeunes qui lisent par ici vers de bonnes écoles.
    • [^] # Re: Balance le nom !

      Posté par . Évalué à  10 .

      Non c'est vrai quoi, une école qui en première année fait l'impasse sur les fondamentaux d'informatique pour passer sur des langages de très haut niveaux (MS ou pas) est pour moi une mauvaise école d'informatique.

      ÀHMA faire débuter les étudiants sur des langages de haut niveau n'est pas nécessairement une mauvaise idée. Si c'est bien pensé ça permet d'amener les concepts uns à uns et de pas décourager la moitié de la promo à coup de emacs, C, et recode moi la stdlib.

      D'abord on apprend algorithmique de base, boucle etc, et une fois que c'est assimilé on passe au concept suivant: typage, gestion de la mémoire, etc. Ça ne me semble pas délirant, après le choix de C# ....
      • [^] # Re: Balance le nom !

        Posté par . Évalué à  2 .

        C'est ce que j'ai fait en DUT Info, sans vouloir porter de jugement sur ma formation.
        Entre autres, j'ai débuté par de l'algorithmique, qu'on a appliqué en C.
        Le bas niveau se voit en cours d'architecture.
        Ensuite, j'ai eu la chance d'avoir un enseignant très universitaire pour apprendre l'orienté objet et ses concepts en java, et un intervenant extérieur professionnel pour apprendre à faire des choses qui servent dans la vraie vie.
        Pour accompagner ça, on a fait pas mal d'UML.
      • [^] # Re: Balance le nom !

        Posté par . Évalué à  5 .

        Tu vois, pour apprendre l'informatique, je prendrais ton programme pédagogique à l'envers :

        - d'abord le typage
        - puis les notions de blocs de contrôle et boucles
        - et enfin l'algorithmique impérative de base

        et là niveau typage, le C#, on a vu plus pédagogique, comme Ada et son typage statique hyper contraignant par exemple...

        Après quand on passe dans l'algorithmie beaucoup plus fine, avec la récursivité et autres blagounettes, OCaml est vraiment fantastique en deuxième approche technique.

        Après une fois que tout ça est maitrisé, je pense qu'on peut s'attaquer aux notions de système avec le C ou de plus haut niveau avec ça ou autres choses. Bref, passer à l'étape suivante quoi.

        Mais j'ai du mal avec les langages de haut niveau qui permettent de faire correctement du grand-n'importe-quoi-qui-fonctionne sans permettre à l'étudiant de mettre en évidence un n'importe quoi qu'il n'aurait pas spécifiquement voulu.
    • [^] # Re: Balance le nom !

      Posté par . Évalué à  2 .

      Non c'est vrai quoi, une école qui en première année fait l'impasse sur les fondamentaux d'informatique pour passer sur des langages de très haut niveaux (MS ou pas) est pour moi une mauvaise école d'informatique.

      Pas nécessairement. Il est plus simple de commencer petit et approfondir dans les couches. J'ai toujours l'exemple en tête un hors-série d'un magazine sur l'apprentissage d'un langage avec python en vedette comparé aux c, java....

      De plus après le lycée, l'école nous forme pour un métier et non plus pour notre culture générale. Donc si une proportion non négligeable des entreprises utilisent des langages de haut niveau, il est logique de les retrouver à l'école (sans se taper du C++ en arrivant).

      Au final pour celui qui voudrait du bas niveau, fallait simplement qu'il se renseigne un peu plus sur le programme de l'école en question.


      PS : 10 sacs que c'est sup'info. L'école qui forme des ingénieurs partenaires microsoft.
      PS2 : non, j'ai aucun grief contre sup'info.
      • [^] # Re: Balance le nom !

        Posté par . Évalué à  7 .

        l'école nous forme pour un métier et non plus pour notre culture générale.
        Y'en a encore qui croient à ça ?


        Au final pour celui qui voudrait du bas niveau, fallait simplement qu'il se renseigne un peu plus sur le programme de l'école en question.
        Le bas niveau (au minimum niveau C, au mieux, faire un peu d'elec, et les couches entres les deux ;) devrais être enseigné dans toutes les écoles/fac d'infos.

        pas forcément en faire beaucoup, mais un minimum, ne serait ce que pour maitriser les problématiques liés à la mémoire, passages de références etc...
        • [^] # Re: Balance le nom !

          Posté par . Évalué à  3 .

          Le problème, c'est que le bas niveau fait fuir les étudiants...

          Simple constatation sur les cours/td/tp d'assembleur mips et arm, du vhdl sur fpga, des cours sur le fonctionnement des processeurs, les étudiants trouvent ça particulièrement difficile et rébarbatif...

          Force est de constater que beaucoup de choses n'intéressent que les passionnés, et que les étudiants sont loin de l'être tous.
          • [^] # Re: Balance le nom !

            Posté par . Évalué à  4 .

            Il y a des choix à faire dans une formation, il est impossible de tout développer et chacun en fonction de ses goût trouveras que tel ou tel sujet est d'une importance capitale et que si les autres ne le comprennent pas c'est qu'ils ne sont pas fait/intéressé/passionné par l'informatique.

            Après 4 ans de formation j'ai vu pas mal de domaine de l'informatique dont des notions d’électronique (bascule et tout le tralala), un peu d'assembleur (avec compilation passage de paramètre aux fonctions, optimisation,...) et architecture matériel (interruption matérielle par exemple). Bien que je suis bien content d'avoir suivi ces cours, de là à apprendre deux langages d'assembleurs et passer un temps phénoménal dessus.

            À coté par exemple je n'ai jamais vu aucun cours en accessibilité alors que ça fait 3 ans que j'ai des cours d'IHM. Je trouve dommage de passer du temps sur les interfaces et ne pas parler d'accessibilité (ce qui est différent d'ergonomie). De la même manière je n'ai jamais suivi aucun cours sur l'internationalisation.

            Mon cursus ? IUT, Licence, Master.

            Je suis dans ma tour d'ivoire (rien à foutre des autres, dites moi un truc pour moi), si je ne pose pas explicitement une question pour les 99%, les kévin, les Mm Michu alors c'est que je ne parle pas d'eux.

        • [^] # Re: Balance le nom !

          Posté par . Évalué à  1 .

          Y'en a encore qui croient à ça ?

          Ça découle d'une certaine logique, même si je déplore qu'elle n'est pas toujours suivie. Je m'explique :

          L'école est censée caler son programme sur les futurs emplois que ses élèvent espéreront ou pourront avoir à la sortie. Compte-tenu des stages, partenariats, statistiques et diverses relations avec les entreprises, retour des élèves... les écoles SAVENT ce dont les élèves ont besoin dans leur vie professionnelle.

          Après que ce programme en question soit réellement appliqué ou pas par l'équipe pédagogique (vieux loups de mer déconnectés, blasés...) c'est une autre histoire. Il y a quelque fois des années de foirées le temps de réadapter le programme aux changements de l'informatique (microsoft, adobe, logiciel libres, j'imagine les plateformes mobiles dans quelques temps).

          Ça serait cool si quelqu'un pouvait nous sortir quelques chiffres sur les types de langages (haut, bas niveau...). Publique/privée, ce qui intéresse les écoles françaises c'est de réussir à caser ses élèves dans le monde du travail. Si le contrat est rempli, qu'est ce que ça peut faire franchement d'apprendre ou pas du bas niveau ?

          J'ai pas connu (moi y compris) de travailleur qui n'ait pas été formé par la première entreprise où il y a travaillé.
          • [^] # Re: Balance le nom !

            Posté par . Évalué à  2 .

            Si le contrat est rempli, qu'est ce que ça peut faire franchement d'apprendre ou pas du bas niveau ?

            Quelques exemples observés récemment :

            * Un programme qui doit appeler une fonction parmi un sous ensemble de fonctions issues d'un grand nombre.

            Implémentation par la personne qui a oublié que des tests ça coûte super cher en nombre d'instructions surtout quand il y en a plusieurs par fonction à tester : un gros switch pour entrer dans le sous ensemble désiré puis un autre (voir des if !!!!) pour choisir la bonne fonction. Et que dieu bénisse le compilateur et l'amérique pour optimiser le code au mieux ...

            Implémentation par la personne qui se dit diantre on va pas se prendre la tête : une table d'indirection avec des pointeurs de fonctions initialisés en fonction du sous ensemble.

            * Stockage et recherche de données triées en C sur le noyau d'un programme :

            Personne qui sait super bien coder en Java (mais en pas en langage bas niveau) : "putain y'a pas d'objet pour faire des collections, c'est quoi c'bordel de langage de merde" ... résultat : un tableau (statique) parcouru linéairement (si si !!!)
            La mémoire et la complexité vous passent le bonjour.

            Personne qui sait super bien coder en Java mais qui a appris après avoir dégusté de grosses platées de C : un arbre binaire et un algo de parcours tout con



            Moralité, sur des trucs élémentaires, les contrats sont en effet à chaque fois remplis ...
            • [^] # Re: Balance le nom !

              Posté par . Évalué à  3 .

              Personne qui sait super bien coder en Java (mais en pas en langage bas niveau) : "putain y'a pas d'objet pour faire des collections, c'est quoi c'bordel de langage de merde" ... résultat : un tableau (statique) parcouru linéairement (si si !!!)

              Moi ce que je fais dans ces cas la, c'est que je mets en haut du tableau les trucs qui me servent le plus, comme ça prend moins de temps à parcourir le tableau.

              J'ai bon ?


              ====> [ ]
            • [^] # Re: Balance le nom !

              Posté par . Évalué à  3 .

              > Personne qui sait super bien coder en Java (mais en pas en langage bas niveau) : "putain y'a > pas d'objet pour faire des collections, c'est quoi c'bordel de langage de merde" ... résultat : >un tableau (statique) parcouru linéairement (si si !!!)
              > La mémoire et la complexité vous passent le bonjour.

              Euh t'as pas du faire beaucoup de java toi, parce qu'une Collection ce n'est qu'une interface offrant un certain nombre de methodes, apres pour l'implementation tu as un choix assez large.
              (les set, les list, etc...)

              Je n'aime pas le java, mais connaitre le java, ce n'est pas que connaitre la programmation objet, il faut aussi connaitre les objets et leurs implementations, ou au moins en avoir une idee.

              Parce que la, ce n'est pas une question de bas niveau ou haut niveau, mais juste un probleme d'algo simple. A savoir, est ce que je prends un ArrayList ou un TreeSet.
              Et normalement quand on fait de la programmation, on est un peu sensible aux problemes de complexite algorithmique.
      • [^] # Re: Balance le nom !

        Posté par . Évalué à  3 .

        > De plus après le lycée, l'école nous forme pour un métier et non plus pour notre culture générale. Donc si une proportion non négligeable des entreprises utilisent des langages de haut niveau, il est logique de les retrouver à l'école (sans se taper du C++ en arrivant).

        > PS : 10 sacs que c'est sup'info. L'école qui forme des partenaires microsoft.

        Je vois comme une contradiction, là. On ne peut pas déclarer que l'école forme pour un métier et ensuite dénigrer une école qui forme à un métier. Alors déjà, les écoles et les universités ne forment pas à un métier mais apportent des connaissances, point. L'université est le lieu de création et de transmission du savoir, ce n'est pas un centre de formation géant. Que certaines écoles se complaisent à former des ingénieurs jetables (comme disait qqn plus bas), ça les regarde, mais dans la grande majorité, ce n'est pas le cas.
        • [^] # Re: Balance le nom !

          Posté par . Évalué à  2 .

          Je vois comme une contradiction, là. On ne peut pas déclarer que l'école forme pour un métier et ensuite dénigrer une école qui forme à un métier.

          T'as pas du comprendre la boutade sur le lobbying microsoft.

          Alors déjà, les écoles et les universités ne forment pas à un métier mais apportent des connaissances, point.

          Connaissances dont tu te serviras en majeure partie dans ton métier. Je me vois pas faire physique-chimie pour ma culture gé. et finir nounou.

          Que certaines écoles se complaisent à former des ingénieurs jetables (comme disait qqn plus bas), ça les regarde, mais dans la grande majorité, ce n'est pas le cas.

          Jusqu'à présent on s'est intéressé au domaine du développement : en fonction du langage utilisé le profil de l'élève sera différent. Maintenant passons à l'infographie, aux bases de données ou au réseau. L'infographie se fait au pif à 90% sur des produits adobe, Oracle domine le secteur des bases de données et Cisco est toujours leader. Dans ce cas, tes connaissances générales restent "très relatives" par rapport à la prise en main du produit. On est indirectement dans un "centre de formation géant".
          • [^] # Re: Balance le nom !

            Posté par . Évalué à  3 .

            je connais des bac + 5 chime (traitement de l'eau) qui font hôtesse de caisse à la fnac.

            Il ne faut pas décorner les boeufs avant d'avoir semé le vent

          • [^] # Re: Balance le nom !

            Posté par . Évalué à  1 .

            Il n'y a pas de physique et de chimie dans tous les cursus secondaire pré-bac en France ? C'est bien triste si c'est le cas.

            Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.

  • # grande vérole

    Posté par . Évalué à  10 .

    Laisse-moi deviner une partie de ton histoire que tu as sans doute eu honte de conter...

    Sur les terres de MSDNAA tu as vu une belle gueuse nommée LaraCroftNudeScreenSaver.exe, tu l'auras cliquée de trop près, et suite à cela tu auras chopé la vérole ?

    Ta narration m'aura bien fait rire en tout cas :)

    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # sublimissime!

    Posté par . Évalué à  4 .

    Ça me rappelle les temps lointains ou j'étais en école d'ingé... Le seul sur une promo de 65 avec un laptop libre!

    Si tu loupe ton année tu pourras toujours te reconvertir en auteur de nouvelles trollesques!
    • [^] # Re: sublimissime!

      Posté par . Évalué à  3 .

      « Si tu loupe ton année tu pourras toujours te reconvertir en auteur de nouvelles trollesques! »

      Il parait que ça ne nourrit pas son homme…
  • # ...

    Posté par . Évalué à  6 .

    Alors que dans une autre école d'igne (assez réputé), la première semaine on avait des TP unix :
    - sur un bon vieux sunos
    - fvwm comme dm
    - shell tcsh en mode vi par défault
    - editeur vi (pas vim), nedit ou emacs

    Et vérif des connaissances au partiel de la toussaint.

    Et ben je me rappel qu'il y en a qui en ont souffert (entre ceux qui n'avait quasiment jamais touché a un ordi et ceux qui ne connaissait que les GUI MS)...


    PS : bon heureusement il des personnes bienveillante avait compilé des soft alternatif (vim, ...)

    PPS : ca se passait il y a seulement 7 ans.

    PPPS : sinon on avait aussi le MSDNAA, a l'époque on le téléchargeais pas, on devait copier des CD (au moins 5 pour visual). Et ben je crois que je les ai jamais installé, la seul fois que j'ai essayé il fallait faire tout un tas de MAJ...
    • [^] # Re: ...

      Posté par . Évalué à  2 .

      "une autre école d'igne"

      Une autre école digne ?
    • [^] # souvenirs ...

      Posté par . Évalué à  4 .

      Ça me rappelle des bons souvenirs: les TP d'algos en Scheme, les cartes électroniques à wrapper [http://en.wikipedia.org/wiki/Wire_wrap], les cours de compilation, etc. Sur le coup, les cours pouvait sembler étranges aux étudiants, mais en fait ils étaient très formateurs.

      Un des profs, résumait la chose en ces mots: «On étudie des méthodes et des concepts généraux plutôt que le dernier produit en vogue, afin de ne pas former des ingénieurs jetables.»
  • # Et Guenièvre dans tout ça?

    Posté par (page perso) . Évalué à  7 .

    Par contre tu ne nous dis pas si en rentrant chez lui, Lancelot a réussi à choper ou pas /o\
    • [^] # Re: Et Guenièvre dans tout ça?

      Posté par . Évalué à  7 .

      les gueuses du seigneur Unix sont toutes équipée de ceintures de chasteté de marque Essesache, Esseulinux, Ipettable, en titane renforcé, pas facile la bagatelle dans ces conditions.

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Oeillères !

    Posté par . Évalué à  2 .

    Il est certain que quand on a connu le libre et ses outils il est difficile de retourner vers l’environnement de M$ qui il est vrai est un cliquodrome.
    Maintenant je trouve complètement stupide cette tendance de considérer les environnements à la M$ comme étant « réservés » aux ingénieurs incompétents.
    En pratique si l’analyse et les algorithmes (le travail de conception des ingénieurs !!) sont mauvais, le résultat sera quelque soit l’environnement de programmation … mauvais !

    Le principal avantage des solutions à la « visual studio » sont l’obtention rapide de résultats (programmes !) permettant de valider les concepts appris.
    • [^] # Re: Oeillères !

      Posté par . Évalué à  3 .

      perso en IUT, j'ai commencé la première année avec UNIX, bash et C (quelques pc linux), c'était amplement suffisant pour valider les bases.

      Ensuite on a ajouté caml et c++/java; bon je ne parlerai pas de COBOL qui nécessitait une page de déclaration avant de débuter le programme.

      J'ai jamais eu l'impression d'être limité par le langage ou d'avoir un truc trop compliqué à appréhender.

      Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • # En quoi C# est un problème ?

    Posté par (page perso) . Évalué à  3 .

    Pourquoi C# serait-il plus mauvais que C++ ?
    D'accord c'est propriétaire et les performances sont meilleures (si on sait coder) mais en dehors de ça ?

    Je crois qu'il faut aussi chercher le langage qui soit le plus adapté et trouver je juste milieu entre performance et maintenabilité. Pour une interface graphique par exemple, pas besoin de chercher à optimiser comme si c'était du temps réel.

    J'utilise C# au travail tous les jours, et si c'est vrai qu'il est plus facile de faire un code sale, rien n'empêche de faire fonctionner quelques neurones pour utiliser les objets les plus appropriés, voire les redévelopper.

    À côté de ça, tu as VisualStudio - oui, propriétaire - mais c'est le meilleure IDE que je connaisse (pour C#). Connais-tu un IDE digne de ce nom pour C++ sous Linux ? Moi j'ai beaucoup cherché et je n'ai jamais trouvé quelque chose qui me donne autant de facilité dans le développement.

    Maintenant, c'est sûr, chacun ses gouts ; mais cracher sur C# / Visual Studio juste pour dire de cracher dessus...
    • [^] # Re: En quoi C# est un problème ?

      Posté par (page perso) . Évalué à  2 .

      "les performances sont meilleures"
      Je voulais dire pour le C++ bien sûr.
    • [^] # Re: En quoi C# est un problème ?

      Posté par . Évalué à  3 .

      peut etre que le java fait à peu près comme le C# et lui ne dépend(ait) pas d'une boite ouvertement anti libre.
      Et peut être que le java a été "l'original" et pas la copie.

      en ce qui concerne le java, eclipse et netbeans sont de très bon IDE a mon gout.

      Ensuite pour le C vim et Makefile sont aussi très efficaces ;)
      • [^] # Re: En quoi C# est un problème ?

        Posté par . Évalué à  2 .

        cite>en ce qui concerne le java, eclipse et netbeans sont de très bon IDE a mon gout
        Pas seulement pour java. Dans ma boite Eclipse a remplacé Visual Studio comme IDE pour le développement en C++.

        Ensuite pour le C vim et Makefile sont aussi très efficaces
        Que l’on puisse effectivement programmer en C avec vim est certes possible mais si cela est efficace, vim nécessite un apprentissage assez long inutile dans un premier temps quand on acquiert les bases de l’algorithmique.
      • [^] # Re: En quoi C# est un problème ?

        Posté par . Évalué à  5 .

        peut etre que le java fait à peu près comme le C# et lui ne dépend(ait) pas d'une boite ouvertement anti libre.

        C'est vrai qu'avec Oracle, on n'a aucun souci à se faire sur l'ouverture de Java. C'est pas Google qui le nierait.

        Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

        • [^] # Re: En quoi C# est un problème ?

          Posté par . Évalué à  1 .

          > C'est vrai qu'avec Oracle, on n'a aucun souci à se faire sur l'ouverture de Java. C'est pas Google qui le nierait.

          D'un autre cote, les regles etaient claires et bien etablies.
          Avec precedents qui plus est.
          Ils ont joue, ils se font taper sur les doigts.
          La vie continue!

          If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

          • [^] # Re: En quoi C# est un problème ?

            Posté par . Évalué à  2 .

            Quelles règles ?

            Google n'a pas utilisé le nom « Java » pour sa JVM, contrairement à Microsoft. Qu'est-ce qu'Oracle peut leur reprocher ?

            Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

      • [^] # Re: En quoi C# est un problème ?

        Posté par . Évalué à  5 .

        Le probleme de java, c'est qu'il a ete specifie en 1992 et depuis il a plus bouge.

        Les generics sont un hacks immonde te qui pete a la gueule des qu'on tente de faire autre chose que List strings = new ArrayList().
        Idem pour l'autoboxing, ou tu te retrouves avec des nulls pointers dans des expressions arithmetique ou autre cas plutot tordu.

        Et le pire, c'est que chaque nouvelle evolution, longtemps attendue par la communaute, est en fait un peu de sucre syntaxique par dessus le compilo.

        L'api collection a de gros manques. Notamment, pas de version immutable des lists, et ca, ca gonfle. Je sais, on peut le faire par Collections, mais ca reste tres relou. L'approche de Cocoa a ce sujet est *bien* meilleur: Array qui propose les methodes en lecture, subclassee par MutableArray qui donne les methodes en ecriture. Tu codes ta methode pour retourner un Array, t'es sur que personne ne vas modifier ta collection, a moins de faire une grouikerie sans nom.

        Je reve d'une list filtree a la ListCollectionVIew de flex, pas possible malheureusement.
        Idem pour les listes triees, v'la la galere pour les garder en synchro.

        Quand a swing, je vais meme pas en parler tellement ca a prit un coup de vieux. Faut etre serieusement atteints pour penser a faire une UI en java de nos jours.

        On attends toujours les closures. Pas sur qu'elles arrivent de sitot.

        Bref, le langage a clairement ses avantages, sinon il serait pas autant utilise, mais comme langage pour eveiller les etudiants au futur du developement, bof bof.
        Par contre leur en faire faire un minimum (ansi que du .net), oui, clairement. Parce que 85% des boulots qu'ils trouveront en sortant de l'ecole, ca sera du java ou du .net.

        vim et makefile, ca va 5 minutes pour leur apprendre la chaine de compilation, mais une fois que c'est integre, ca va, pas la peine de se faire douleur. Les ide c'est pas fait pour les chiens, et ca fait pas de mal de commencer a les maitriser tot.

        If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

        • [^] # Re: En quoi C# est un problème ?

          Posté par . Évalué à  5 .

          > Les ide c'est pas fait pour les chiens, et ca fait pas de mal de commencer a les maitriser tot.

          Heu... quel IDE? Eclipse ? Visual ? QtCreator? KDevelop? NetBeans? intelij?
          Tu parles de maitriser un ide, mais lequel? Un gars formé sous éclipse il saura pas vraiment où trouver les options qui vont bien sous visual.

          Vim, emacs, sont des outils extrêmement performant, tournant sous a peu près toutes les plateformes sans nécessiter 500Mo de ram; pour peu que le système sois un unix/linux voire même aix ou solaris, tu as un ide, c'est le système ^^
          pour la conf, suffit juste de récupérer son fichier .emacs / .vimrc (.bashrc ou .zshrc pour retrouver tout ce qu'il faut).

          A coté, eclipse/visual je change de machine je perds toute ma conf (et si y a une différence de version...) J'ai un truc à débugger, je place les points d'arrêts a des points stratégique comment je les fil à un collègue simplement?

          Je ne nie pas qu'ils peuvent être extrêmement utile dans certains cas, mais conseiller de jeter vim ou emacs parce que toi tu n'as pas pris le temps de les apprendre...
          Et non justement vim et emacs c'est pas 5 minutes, sinon tu prends kate qui est très performant et suffisamment proche des comportement habituels pour faire la chaine de compilation.

          Il ne faut pas décorner les boeufs avant d'avoir semé le vent

          • [^] # Re: En quoi C# est un problème ?

            Posté par . Évalué à  3 .

            La conf (du moins dans Eclipse, les autres je ne les ai jamais vraiment testés) peut s'exporter facilement !
            Ex : pour exporter ses points d'arrêt dans Eclipse : http://eclipse.developpez.com/faq/?page=plateform#importExpo(...)

            Tu peux aussi exporter tes coding-styles, etc.

            Et Eclipse tourne aussi sous (à peu près ?) toutes les plate-formes...
          • [^] # Re: En quoi C# est un problème ?

            Posté par . Évalué à  2 .

            Vim, emacs, sont des outils extrêmement performant, tournant sous a peu près toutes les plateformes sans nécessiter 500Mo de ram; pour peu que le système sois un unix/linux voire même aix ou solaris, tu as un ide, c'est le système ^^
            Eclipse tourne sous solaris (quoique, pas sur avec swt...).
            Pour aix ou solaris, qui develope la dessus serieusement? Tant que t'y est, tu veux pas rajouter des mainframes ibm dans la liste?
            Tu veux faire du remote debugging? Cool, c'est enfantin a faire, tu gardes ton monstro plante qq part ou le ventilo te rendra pas sourd et tu continues a bosser avec ta machine habituelle.

            Heu... quel IDE? Eclipse ? Visual ? QtCreator? KDevelop? NetBeans? intelij?
            Peut importe lequel, l'idee est d'apprendre ce que ces outils peuvent faire.
            Autant en prendre un tres populaire et utilise en entreprise (donc j'ai envie de dire visual ou eclipse), mais c'est pas le plus important.

            Quand a la puissance, on en reparlera le jour ou vim aura un debugger qui arrivera au petit doigt de pieds de celui d'eclipse, ainsi qu'une gestion svn/mercurial/git, il me dira "t'as oublie un truc dans ta javadoc, ton else est inutile ou ton cast est inutile", il gerera le refactoring proprement, avec assignation de valeur par defauts aux nouvelles valeur etc, il sera capable de me telecharger le source de binaires via maven et s'y retrouver dans le debugging, il me fera la completion automatique de mes spring beans dans les context, il comprendra le camel case pour ouvrir un fichier, il sera capable de me trouver toutes les occurences d'une methode donee, de me reconstruire la hierarchie des classes, il sera capable de s'integrer avec tomcat pour mes applis web, qu'il sera capable de debugger une appli en remote, qu'il me permettra de gerer mon classpath en 2 clics, il sera capable de verifier mes regles PMD/checkstyle a la volee, tu veux que j'arrete ou je continue a chercher les features d'eclipse qui ne seront juste jamais dans vim?

            A coté, eclipse/visual je change de machine je perds toute ma conf (et si y a une différence de version...) J'ai un truc à débugger, je place les points d'arrêts a des points stratégique comment je les fil à un collègue simplement?
            Tu les exportes! Tout simplement. Je me trimballe la meme conf d'eclipse depuis des annees, j'ai change de machine facile 10 fois.

            Je ne nie pas qu'ils peuvent être extrêmement utile dans certains cas, mais conseiller de jeter vim ou emacs parce que toi tu n'as pas pris le temps de les apprendre...
            J'ai essaye de les apprendre.
            Quand je me suis rendu compte de la raideur de la courbe d'apprentissage et de comment t'oublies vite des trucs, que j'ai compare a ce que ca m'apportait, j'ai tres vite laisse tomber.

            If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

            • [^] # Re: En quoi C# est un problème ?

              Posté par . Évalué à  1 .

              t'as du zapper le sans prendre 500 Mo de ram ^^

              > Tu veux faire du remote debugging? Cool, c'est enfantin a faire, tu gardes ton monstro plante qq part ou le ventilo te rendra pas sourd et tu continues a bosser avec ta machine habituelle.
              Si c'est en réseau, ça fait des années que vim et emacs le permettent ^^, voir même simplement gdb ou kdebugger. ^^

              > Peut importe lequel, l'idee est d'apprendre ce que ces outils peuvent faire.
              Ah? Visual a des capacité de refactoring semblable a intellij? ou même des facilité pour le développement JBoss?
              Quant à eclipse, je reviendrai toujours a la blague où il me compilait un truc, pas d'erreurs, par contre l'exécution exécutait une compile précédente. Sans rien indiquer; Un reboot de la machine (sur le conseil d'un collègue) et tout remarchait normalement.

              pour les features de vim j'aurais bien du mal à te répondre, étant un fervent utilisateur d'emacs
              par contre le remote debugging il est dans les deux.
              Pour le cast et else inutile, idem tu peux l'avoir dans emacs, savoir jusqu'où ça va, ça va dépendre du compilo. (flymake-mode si je me souviens bien pour que ce soit "au vol")

              > il sera capable de me trouver toutes les occurences d'une methode donee, de me reconstruire la hierarchie des classes
              C'est aussi dans emacs

              Bon et je ne parlerai pas des macro, une fois qu'on sait se déplacer dans un ficher emacs, utiliser le search, changer de buffer, les ctrl-a ou ctrl-e ctrl-gauche, et surtout la possibilité d'éditer la macro au cas où y aurai un détail à corriger, ce truc la c'est génial (surtout que dans la macro, on peut appeler des fonction elisp, ou d'autre marco nommée ^^)

              Et contrairement à toi, je n'ai pas dit que les IDE étaient à jeter; je réagissais juste a ta réaction sur emacs/vim ça va 5 minutes... Or non 5 minutes c'est totalement inutile.
              Quant à la courbe d'apprentissage, quand je suis arrivé sur un projet où eclipse était "fortement recommandé", le temps pour le faire fonctionner, configurer, adapter au nouvel environnement, changer les variables, ben ça à pris la journée. Et quand je fais un clique droit, je suis assailli d'une tétrachiée d'options, dans les menus c'est pareil. Donc coté courbe d'apprentissage, celle d'eclipse est loin d'être anodine. (et c'était pas mon premier ide, mon premier étant linux, le deuxième visual, le troisième QtCreator, et le dernier eclipse. Et ben même en étant passé par deux autres IDE, j'ai galéré.

              Il ne faut pas décorner les boeufs avant d'avoir semé le vent

              • [^] # Re: En quoi C# est un problème ?

                Posté par . Évalué à  1 .

                Cool!
                Il te manque encore l'integration maven (je veux mes sources telechargees quand je debugge dans un jar), il te manque l'integration VCS, la gestion avancee du classpath, les dependances entre projets, l'integration checkstyle/pmd, l'integration de spring, l'ajout automatique d@Override, les suggestions de corrections du code, la suppression automatique des casts inutiles, l'organisation des imports, la creation automatique de methodes, tout le refactoring (extract interface, move, pull up push down, renommage, ajout de parametre, modification des types des parametres, refactoring sur une interface et tuttit quanti), et un vrai hein, pas a coup de sed qui va tout te peter si tu refactores getCount().
                Ah, et point, certes tres negligeable, il te manque l'integration avec les serveurs d'applis.

                T'es capable d'ouvrir n'importe quelle classe dans ton classpath, meme compilee, et te retrouver avec soit le resultat de la decompilation, soit le source telecharge via maven, sans meme vraiment connaitre le nom de la classe (genre *MappingException*)?

                Pour les occurences de methodes, emacs est aussi capable de les trouver dans le classpath?

                Repondre gdb quand on parle de debugger du code java, c'est une blague ou bien?
                Et gdb/gcj, ca tourne partout?

                Pour le cast et else inutile, idem tu peux l'avoir dans emacs, savoir jusqu'où ça va, ça va dépendre du compilo. (flymake-mode si je me souviens bien pour que ce soit "au vol")
                Et tu le configures comment? Genre tu veux changer le niveau de warning. Tu te tapes un doc de 150 pages pour retrouver l'option flymake-mode ctrl alt shift meta esc ctrl shift compiler.java.16.warning.ignore.unused.private.fields=1 (ou serait ce true? Ah merde, c'etait yes.).

                par contre le remote debugging il est dans les deux.
                Evidemment qu'il est dans les deux, c'est une feature de la jvm, pas de l'ide... La question est de savoir comment il est integre. Et le hot code swapping quand tu modifies du code quand tu debugge, il est integre comment?

                Quant à eclipse, je reviendrai toujours a la blague où il me compilait un truc, pas d'erreurs, par contre l'exécution exécutait une compile précédente. Sans rien indiquer; Un reboot de la machine (sur le conseil d'un collègue) et tout remarchait normalement.
                Ben voyons!
                Sinon, si tu cherchais pas etre de la plus mauvaise foi possible, t'aurais remarque une entree "clean" dans le menu project. Sisi. c'est dingue, eclipse permet de faire un clean et un fresh build.
                Et t'aurais tres certainement aussi remarque que l'entree "Build automatically" etait decochee. Ou que t'avais pas synchronise ton serveur d'appli si tu faisais du dev web.

                surtout la possibilité d'éditer la macro au cas où y aurai un détail à corriger
                Ben ouais, c'est vrai ca, ca serait tellement dommage d'avoir une macro qui marche du premier coup. Et encore, ca c'est quand tu te rends compte que la macro a un bug... Voire quand t'as une macro.
                Vois tu, mon travail, c'est de developer des applications metier, pas de developer un ide. J'ai autre chose a foutre que de debugger une macro ou de carrement devoir l'ecrire parce qu'elle existe pas.

                une fois qu'on sait se déplacer dans un ficher emacs,
                Ah parce qu'il faut une formation pour se deplacer dans un fichier avec emacs? Ou alors tu veux dire qu'emacs a strictement les memes options de deplacement que n'importe quel autre editeur de texte (charactere, mot, ligne, page, block), mais en plus complique (ctrl meta esc down shift esc next-word-mode, clap dans tes mains)?

                utiliser le search,
                Ouaou! Une fonction recherche? 'tin j'y avais jamais pense...

                les ctrl-a ou ctrl-e ctrl-gauche
                Tu veux dire home, end (aka cmd left/right)? Sans deconner? Emacs est capable de sauter a la fin d'une ligne! Je suis sur le cul! Ctrl left, c'est quoi, mot precedent, au sens Camel Case? Dingue, emacs est vraiment re-vo-lu-tio-naire!

                t'as du zapper le sans prendre 500 Mo de ram
                Tiens donc. Et ton emacs avec 150 buffers, plus ton client VCS, plus tes instance gdb, plus ton serveur d'appli externe, plus tous les outils que tu doit lancer separement parce qu'ils ne sont pas dans ton emacs, ils tiennent dans 50Mo de RAM? C'est un peu facile ca, dire "j'utilise notepad, donc je peux developer avec 512ko de ram" et par derriere lancer 12 applis qui au final vont pomper toute la ram une fois mit ensemble...
                Derniere chose, ta ram libre tu l'investis en bourse? Ou alors ton employeur te facture chaque octet utilise? La ram sur mes machines, si je l'ai achetee, figure toi que... C'est pour l'utiliser! Sisi!

                If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

                • [^] # Re: En quoi C# est un problème ?

                  Posté par . Évalué à  2 .

                  bon si faut tout faire soi même :
                  pour maven tu l'as au moins jusqu'au maven2, désolé pour le manque de précision, je code peu en java

                  enfin bref, va faire un tour sur http://jdee.sourceforge.net/jdedoc/html/jde-ug/jde-ug.html

                  Pour le reste, oui y a la gestion du classpath, le renommage, l'ajout de paramètre...

                  et visiblement tu n'as pas compris que le couplage des macro avec les fonction de déplacement, changement de buffer, recherche, fonction elisp, macro, cscope...; tiens hier j'ai du chopper une colonne dans un csv pour le rajouter après chaque if correspondant a la valeur de la 2 ème (y en avait un gros paquet, sans macro, j'aurai eu du mal.)

                  >Derniere chose, ta ram libre tu l'investis en bourse? Ou alors ton employeur te facture chaque octet utilise? La ram sur mes machines, si je l'ai achetee, figure toi que... C'est pour l'utiliser! Sisi!
                  Non, il m'est arrivé de faire du java faisait tourner du jboss sur 512 Mo de ram, alors ton eclipse t'est gentils mais tu le range.
                  Ensuite j'ai bossé sur des machines où sqlserveur prenait 1Go de ram, le serveur JBoss 1Go, le reste des process windows un bon paquet, le windows étant 32 bit, on avait accès qu'à 3Go, là encore eclipse c'est un peu gros.


                  > Sinon, si tu cherchais pas etre de la plus mauvaise foi possible, t'aurais remarque une entree "clean" dans le menu project. Sisi. c'est dingue, eclipse permet de faire un clean et un fresh build.
                  Enfin, là tu me prends vraiment pour un incapable, tu crois que j'avais pas essayé? Mon collègue a eu le même problème, lui aussi il a tenté un clean (puisque le rebuild marchait pas), c'est lui qui m'a conseillé de reboot, et effectivement après ça marchait.

                  Il ne faut pas décorner les boeufs avant d'avoir semé le vent

        • [^] # Re: En quoi C# est un problème ?

          Posté par (page perso) . Évalué à  2 .

          Les generics sont un hacks immonde te qui pete a la gueule des qu'on tente de faire autre chose que List strings = new ArrayList().

          OK super, bah quand un generic me pètera à la gueule tout seul sans que j'ai écrit n'importe quoi, du style un unchecked cast sur une List non généricisée (en oubliant pas de dire à Eclipse « oui je sais que je devrais pas mais tais-toi », sinon c'est pas drôle), bah je te préviendrai hein. En attendant mes generics vont bien merci.
          • [^] # Re: En quoi C# est un problème ?

            Posté par . Évalué à  2 .

            T'as Deja essaye un truc du genre:
            Class a
            Class b extends a

            Class c
            Method qui retourne List de B

            List de A maListe=c.maMethode()?

            T'as deja essaye d'acceder en runtime au concrete type d'un generic?
            Ou de faire un Logger logger = Logger.getLogger(T.class)? Ou T est le generic, evidemment.

            If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

            • [^] # Re: En quoi C# est un problème ?

              Posté par (page perso) . Évalué à  1 .

              T'as Deja essaye un truc du genre:
              Class a
              Class b extends a

              Class c
              Method qui retourne List de B

              List de A maListe=c.maMethode()?


              C'est normal que ça ne marche pas : si ça marchait, tu pourrais ensuite y coller des C (qui extends A aussi) or, non, c.maMethode() c'est une liste de B, spécifiquement cette fille de A, pas n'importe quelle fille de A.
              Essaye :

              List de A maListe = new "ArrayList de A"(c.maMethode())

              ça marchera mieux et ça t'évitera de gueuler sur les generics alors que tu essaies juste de violer le typage.

              Pour le concrete type, tu marques un demi-point (le problème est plus complexe que tu ne veux l'exposer, et je pourrais botter en touche en qualifiant les cas où tu ne peux réellement pas t'en sortir, de cas limites où tu ferais mieux de revoir ton archi au lieu de faire des gruikeries).

              Pour le logger je suis eu ; faudrait que je creuse. Mais bon, avec un peu de mauvaise foi et de condescendance, je vais partir sur l'idée que, vu qu'au premier point, tu as montré que tu avais des lacunes sur le typage... :-D
              • [^] # Re: En quoi C# est un problème ?

                Posté par (page perso) . Évalué à  2 .

                si ça marchait, tu pourrais ensuite y coller des C (qui extends A aussi)

                Mince, j'avais pas fait gaffe que tu avais déjà appelé une classe C. Disons y coller des Toto avec Toto extends A. Ça devient compliqué cette histoire :-D
      • [^] # Re: En quoi C# est un problème ?

        Posté par . Évalué à  2 .

        Je ne sais pas ce qu’il en est aujourd’hui, car Java s’est (enfin) un peu bougé le c*l, mais C# a eu avant Java :
        - les lambda
        - les generics
        - les itérateurs
        - LINQ
        - les accesseurs
    • [^] # Re: En quoi C# est un problème ?

      Posté par (page perso) . Évalué à  2 .

      et en même temps (pour aller dans le sens du titre) on peut très bien faire du C# avec n'importe quel éditeur de texte et utiliser nmake. Donc si les gens veulent faire du C# avec vim et nmake sous windows, ben ils peuvent.

      Et sinon, par rapport au journal en lui même, je sais pas si j'ai bien compris. Le problème c'est que le gars n'a pas lu les prérequis à l'installation de Visual Studio et donc se plaint lorsque le soft lui dit qu'il n'a pas les prérequis d'installés ? Mince alors...
    • [^] # Re: En quoi C# est un problème ?

      Posté par . Évalué à  0 .

      C'est pas un bon outil pédagogique. Ma critique de C# s'arrête à ça.

      C'est le pendant de la calculatrice pour les math quand tu les apprends dans tes premiers cycles scolaires et quelqu'un qui sait coder en C#/.net à a mon avis plus de mal à coder en C, C++ que l'inverse.

      Lu plus haut et phrase qui résume à peu près toute ma pensée de C# suite à cet article :


      Ça me rappelle des bons souvenirs: les TP d'algos en Scheme, les cartes électroniques à wrapper [http://en.wikipedia.org/wiki/Wire_wrap], les cours de compilation, etc. Sur le coup, les cours pouvait sembler étranges aux étudiants, mais en fait ils étaient très formateurs.

      Un des profs, résumait la chose en ces mots: «On étudie des méthodes et des concepts généraux plutôt que le dernier produit en vogue, afin de ne pas former des ingénieurs jetables.»
    • [^] # Re: En quoi C# est un problème ?

      Posté par . Évalué à  4 .

      D'accord c'est propriétaire et les performances sont meilleures (si on sait coder) mais en dehors de ça ?

      Ben peut-être que ça te force à avoir un pc sous windows, ce que tu n'as pas forcément.

      Bon après si l'école offre la licence pour windows et tout les prérequis et que ça peut s'utiliser sur une wm sans pourrir ton os du bien, c'est déjà moins grave...
  • # Pas de problèmes...

    Posté par (page perso) . Évalué à  0 .

    Il est vrai que l'installation de Visual Studio et du framework .NET est une horreur, je ne compte plus les gigaoctets que ce truc bouffe.

    À côté de ça, Mono c'est quelques centaines de mégaoctets pour globalement la même chose (plus les apis spécifiques à mono) :

    "Everything in .NET 4.0 except WPF, EntityFramework and WF, limited WCF." nous dit le site web

    F# fonctionne avec Mono.:

    http://stackoverflow.com/questions/832552/how-to-get-f-worki(...)

    En gros, la même chose sous linux :

    Mono + Monodevelop + F#
  • # Moi de mon temps

    Posté par (page perso) . Évalué à  1 .

    On commençait par du Pascal. J'ai malheureusement découvert que ce langage était mort :

    - Turbo Pascal est mort.
    - Delphi est à l'abandon.
    - Lazarus est inutilisable.

    C'est bien dommage, car il constituait une des rares alternatives au C++ pour développer des applications natives.

    Newton Adventure est sur Lumière Verte : http://steamcommunity.com/sharedfiles/filedetails/?id=187107465

    • [^] # Re: Moi de mon temps

      Posté par (page perso) . Évalué à  2 .

      Il me semble que Free Pascal bouge encore ; pour les nostalgiques :
      [http://www.freepascal.org/]
      • [^] # Re: Moi de mon temps

        Posté par (page perso) . Évalué à  1 .

        J'ai essayé d'installer Lazarus sous Linux et sous Windows l'autre jour :

        - impossible de le mettre dans un chemin avec des espaces dans les noms des dossiers... Apparemment Freepascal ne les gère pas...
        - le débugger ne fonctionne pas. Il plante régulièrement, ne s'arrête pas sur les breakpoints de façon aléatoires...

        C'est vraiment dommage, car le Pascal implémenté par Free Pascal a l'air d'avoir bien évolué ( Modèle objet moderne, généricité, redéfinition d'opérateurs...).

        Newton Adventure est sur Lumière Verte : http://steamcommunity.com/sharedfiles/filedetails/?id=187107465

  • # Références

    Posté par . Évalué à  1 .

    "– Je suis Lancelot du Lac, répondit-il.
    – Quelle est ta quête ?
    – Chercher le Graal.
    – Quelle est ta couleur préférée ?
    – Bleu.
    – C'est bon, tu peux passer. "

    Celui qui n'a pas vu la référence est un inculte !
  • # de quoi tu te plaint ?

    Posté par . Évalué à  1 .

    J'ai un projet pour la fac à coder en C ou en C++ sous Linux, et bien je peux te dire que je serai très très heureux de pouvoir utiliser un langage de haut niveau qui gère la mémoire à ma place (bon en vrai, je vais utiliser Boehm garbage collector pour pas me faire chier) avec un très bon IDE.

    Visual Studio est un des (le ?) meilleurs IDE disponible sur le marché, et l'environnement .net est tout simplement excellent, vu la vitesse avec laquelle ce couple permet de coder sans trop se prendre la tête (notamment au niveau de l'utilisation des bibliothèques).
    Bref, pour la critique facile, tu t'es planté de produit en beauté.

    Et j'ai la sale impression que les journaux de linuxfr.org sont devenu ceux de crache-sur-ms.net. Je pense que tous ceux qui réagissent comme ça ont un problème de nature psychanalytique, sérieusement, vous ne pouvez pas apprécier le système que vous utiliser sans avoir à baver continuellement sur ce que fait la concurrente ?
    • [^] # Re: de quoi tu te plaint ?

      Posté par . Évalué à  7 .

      Ouaip, à fond avec toi. Il faudrait aussi qu'il y ait dans l'assistant tout les TP à réaliser.

      Projet, Nouveau (clique) (scroll, scroll) TP du 25/10/2010 (clique)

      Projet, Compiler (clique)

      « Hayé, j'ai fini le TP ! «

      The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

    • [^] # Re: de quoi tu te plaint ?

      Posté par (page perso) . Évalué à  2 .

      Tu es en quoi à la FAC ? Informatique ?

      Si c'est le cas, c'est très bien de faire du C/C++, ça permet de se rendre compte du boulot que doit faire un garbage collector et que les créations d'objets sont loin d'être gratuites en Java/C#. Ca permet d'écrire du code beaucoup plus performant quand on utilise ensuite un langage plus haut niveau.

      Pour moi, un mec qui sort avec un Master en Informatique, il devrait être capable d'écrire, depuis 0, un OS avec compilateur C, linker, shell, drivers et rajouter un langage de haut niveau par-dessus. Cela moyennant évidemment un temps assez long hein. Alors c'est pas en apprenant uniquement le C# ou le Java qu'il va réussir.
      • [^] # Re: de quoi tu te plaint ?

        Posté par . Évalué à  -1 .

        Oui, cette année je suis seulement en licence d'informatique.

        Je me fout *totalement* de faire du code performant. C'est un projet de fac que personne n'utilisera jamais.
        De plus de nos jours les machines sont assez performantes pour que je puisse coder mes applis dans le langage de mon choix sans qu'il n'y ai un quelconque problème de performance.

        Je ne crois pas que la pédagogie par l'absurde, comme utiliser des langages non adapté au problème (là ça va c'est du réseau), se flageller sur les perfs quand ça n'a aucune espèce d'importance ou poser de sujets de projets à rendre inintéressants rend réellement service aux étudiants.
        Par contre ça formera à coup sûr une nouvelle génération de programmeurs qui viendront rejoindre les rangs la secte de C++ et qui l'utiliseront partout, *surtout* quand ce n'est pas adapté au problème.

        Pour ma je préférerai passer mon temps sur des projets personnels plus intéressant, et ce n'est ceux-là qui manquent plutôt que de supporter le fanatisme de professeurs, un peu comme vous, qui ont déclaré que "C É C++ C LE B1!!1! ON VA LUTILISER PARTOU LOL".
        Alors certes c'est à connaître, mais une fois que c'est connu, c'est à ranger au placard et à ressortir dans les cas où c'est vraiment nécessaire, c'est à dire pas souvent. Le boulot sera plus vite fait, plus maintenable et extensible s'il est codé en C#, Common LISP ou certains autres.

        Et je balaie les accusations du style "tu di sa parsske tu c pa c0det en cé !!" parce que ce n'est pas le cas.
        • [^] # Re: de quoi tu te plaint ?

          Posté par (page perso) . Évalué à  3 .

          Je suis une bille en programmation, développement et ce genre de chose mais des affirmations du genre "de plus de nos jours les machines sont assez performantes" c'est ne pas (re)connaître certains problèmes, qui sont liés à à des contraintes particulières (embarqué, gestion de flux financiers, ...) et à la maintenance de l'existant.

          Autant essayer de bien faire les choses au plus tôt...
        • [^] # Re: de quoi tu te plaint ?

          Posté par . Évalué à  4 .

          de nos jours les machines sont assez performantes pour que je puisse coder mes applis dans le langage de mon choix sans qu'il n'y ai un quelconque problème de performance.

          Quelle machines ? Il y a une marge entre un PC de bureau et un téléphone portable en passant par le netbook, et il existe pourtant des applications qui fonctionnent sur les trois à la fois.

          Par exemple, Gnumeric tourne très bien sur une N810 (400MHz et 128 Mo de RAM), preuve qu'il a été conçu dès le départ pour être performant.
          Tous les tableurs ne peuvent pas en dire autant.

          Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

          • [^] # Re: de quoi tu te plaint ?

            Posté par . Évalué à  1 .

            Je parle bien évidemment des machines de bureau ;-)
            Les autres machines telles que les téléphones, le matériel embarqué, les consoles, les mainframes, ... ont leur problématique propre.
            • [^] # Re: de quoi tu te plaint ?

              Posté par . Évalué à  4 .

              Ben oui mais non.

              Quand on voit que des trucs comme l'iPad commence à remplacer les machines de bureau, on devrait se poser des questions quand à la possibilité d'utiliser les logiciels sur des machines moins puissantes, surtout que du coup, d'autres tablettes vont sortir sur le marché (comme la HP Slate 500).

              Et encore, tout ça ne concerne que les machines neuves : combien il y a de personnes qui n'ont pas envie de changer de PC, tout simplement parce que le leur fonctionne très bien ?

              Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

        • [^] # Re: de quoi tu te plaint ?

          Posté par . Évalué à  6 .

          Ouh la si c'est ce genre de "codeurs" qui sont produits par les fac et ecoles d'ingenieur c'est qu'il y a clairement un probleme quelque part...

          Que l'on fasse du "quick and dirty" dans le boulot c'est presque inevitable mais que l'on erige cela en regle au moment ou tu es cense apprendre a faire cela propre et surtout au moment ou tu as le temps d'apprendre a faire cela propre c'est autre chose.

          Dire que la NASA a envoye des sondes appelles voyageur qui n'avait pas la capacite memoire de ta calculatrice mais qui ont reussi a fonctionner et etre reprogrammer en vol pour faire des "petits" changement de rajectoire ou les reparer. Les ingenieurs qui ont fait cela serait pris pour des losers actuellement...

          Enfin tout cela pour dire que l'education va pas dans le bon sens et que les etudiants oublient ou pensent encore moins qu'a mon epoque la vision a long terme!

          Et je balaie les accusations du style "tu di sa parsske tu c pa c0det en cé !!" parce que ce n'est pas le cas.

          Pourquoi tu utilises pas un garbage collector pour le faire a ta place?
        • [^] # Re: de quoi tu te plaint ?

          Posté par . Évalué à  4 .

          Je me fout *totalement* de faire du code performant. C'est un projet de fac que personne n'utilisera jamais.
          Et ?
          Ce que vas noter le prof c'est la recherche et le travail que tu as fournis.
          Et ton but c'est quand même d'avoir une bonne note non ? (car qui dis bonne note -> dis possibilité d'avoir de moins bonne notes autre part ^^)

          Je vais te fournir un exemple tout con de ce que j'avais fait sur un programme de fac que personne ne vas jamais utiliser
          -> après l'avoir codé, et tester sur quelques données je lui ai donné 10 000 lignes à ingurgiter (un truc de généalogie).
          ben il a mis beaucoup de temps... beaucoup trop à mon gout.

          Donc derrière profiling, et voir ce qu'on peut optimiser.
          J'avais effectivement un truc (naif) en o(n²) qui pouvait être fait en o(n log(n)).
          J'ai mis une matinée de plus, et mon truc étaient bien plus performant.

          Tout ça pour dire que le prof a apprécié le fait que j'ai pas juste dis "ouais ca marche et de toute façon tout le monde s'en fout", et m'a donc foutu une bonne note.


          Comme dis un proverbe :
          "Un professionnel, c'est quelqu'un qui estime que si quelque chose vaut la peine d'être fait, alors ca vaut la peine d'être bien fait".
          • [^] # Re: de quoi tu te plaint ?

            Posté par . Évalué à  3 .

            Ah, j'ai un souvenir comme ça. Algorithme de parcours de graphe (en introduction), implémenter une recherche de plus court chemin.

            J'avais cherché 2 minutes sur le ternet, trouvé l'inévitable algorithme de Dijkstra, l'avait implémenté rapidement, parce que c'est pas super compliqué, avait indiqué la référence dans le rapport qui va bien avec les explications (genre, pour pas laisser croire que j'avais re-découvert l'algo tout seul). J'avais eu une putain de note. Beaucoup plus que les autres coco qui avait inventé leur propre implémentation en O(n^m) \o/
        • [^] # Re: de quoi tu te plaint ?

          Posté par . Évalué à  3 .

          ça, ça sent le gars qui n'a jamais utilisé Qt en programmation, qui n'as pas vu d'utilité aux destructeurs autre que libérer la mémoire dynamiquement alloué dans l'objet, et qui n'a pas envie d'utiliser les template.

          Le C++ n'est pas un langage démodé. Les template, bien utilisé font des miracles, boost permet de coder sur des graphe avec une, hem, facilité relative sans avoir à renvelopper la roue, et croie moi sur les graphes c'est appréciable.

          Avec Qt, les interface graphique se font facilement, multimédia, réseau, bdd... aussi, et QString qui déchire toutes les classe String que j'ai pu croiser. Je ne parle même pas de l'internationalisation qui est dispo de base, la gestion des scripts, les QVariant, signal/slot...

          > Le boulot sera plus vite fait,
          Mouahahaha, ça va dépendre du boulot, mais y a des chances qu'utiliser Qt soit plus rapide à faire ^^

          >plus maintenable
          j'aimerai bien savoir pourquoi

          et extensible s'il est codé en C#, Common LISP ou certains autres.
          extensible? tu parles de scripts? d'introspection? regardes du cotés de boost et Qt

          Et encore je parle de ce que je connais, y a un gros bout de boost que j'ignore :D

          Alors ensuite dégainer le C++ à la moindre occasion, non évidemment, mais vouloir le ranger au placard... Pour info, je suis en prestation sur 8 clients, trois utilisaient du java (appli web) et 5 utilisaient C++, 1 python (oui l'un avait sa bibliothèque de calcul en C++ et fortran ) et une interface java, et un autre client pilotait son logiciel avec des scripts python.

          Il ne faut pas décorner les boeufs avant d'avoir semé le vent

      • [^] # Re: de quoi tu te plaint ?

        Posté par . Évalué à  3 .

        >que les créations d'objets sont loin d'être gratuites en Java/C#.

        Ah Bon? Une allocation en java, c'est 10 instructions assembleurs pourtant.
        Precisemment parce que java utilise un gc qui compacte la ram. Allouer revient en fait a deplacer le pointeur de debut de heap libre.

        Liberer est effectivement plus couteux que ca, mais je te met au defi de faire un truc moitie moins performant que le gc de java niveau allocation/deallocation en 6 mois a plein temps. C'est faisable, mais ca prend beaucoup de temps et d'argent.
        C'etait meme un des problemes majeurs de FF, la ram se fragmentait a l'usage et c'est ce qui lui a fait gagner sa reputation d'ogre memoire...

        C'est clair que pour certaines appli, les pauses du gc et l'overhead de la VM ne sont pas acceptables, mais c'est loin d'être la norme, au contraire.

        Pourquoi tu crois que les 3/4 des sites couillus niveau charge sont fait en java? Tu crois que google se ferait chier avec java si c'etait pas le plus performant?

        Quand a penser aux perfs avant meme d'avoir commencer a ecrire l'appli, comment dire... Early optimization is the root of all evil. Commence par faire une architecture decente et a reellement faire de l'objet. Ensuite, fixe toi une cible. Et ensuite seulement, commence a optimiser.
        Optimiser comme un boeuf sans meme savoir ou sont les goulots d'etranglement, c'est pas tres malin comme approche.

        If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

        • [^] # Re: de quoi tu te plaint ?

          Posté par . Évalué à  3 .

          > Ah Bon? Une allocation en java, c'est 10 instructions assembleurs pourtant.

          10 instructions d'une machine virtuelle qui va comporter plusieurs couches jusqu'à ce qu'on atteigne le code natif du CPU. Donc, à moins de tourner sur un processeur natif Java –il y en a eu– ce n'est pas 10 instructions mais plusieurs milliers.

          On pourra toujours targuer qu'il y a le JIT. Ok, cela augmente les performance mais ce n'est pas gratuit.

          Ensuite, l'allocation n'est pas qu'un pauvre malloc(size of(Myobject_t)), il y a tout les mécanismes autour de l'objet à instancier qui doit être gérer. N'ayant pas fait d'études d' info, je ne vais pas détailler tout ça de peur de me fourvoyer mais ça m'étonnerait pas qu'il n'y ait à gérer l'héritage, le polymorphisme et autres joyeusetés qui peuvent faire partie de l'objet à allouer, cela même si le développeur pense qu'il s'agit d'un objet tout con.

          Un HLL cache beaucoup de choses.

          Oui les langages de haut niveau sont d'un confort indéniable. Pour ma part je fais de plus en plus de genie (une sorte de python qui fonctionne comme Vala) pour mes programmes à deux balles parce que ça me gave d'écrire trop de signes superflus. Mais un langage plus bas niveau permet d'avoir une meilleure approche et une meilleure compréhension.

          Je pense qu'il est nécessaire de connaître quelques fondamentaux (C/C++ en fait partie, l'avenir nous le dira pour C#). Ayant une formation d'électronicien, je sera presque pour qu'on fasse de l'électronique avant de commencer la programmation. :)

          > De plus de nos jours les machines sont assez performantes pour que je puisse coder mes applis dans le langage de mon choix sans qu'il n'y ai un quelconque problème de performance.

          Cela fait plusieurs années que l'on entend ça. Depuis, les machines font à peine plus mais nécessitent 4 fois plus de puissance CPU et 6 fois plus de mémoire.

          The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

          • [^] # Re: de quoi tu te plaint ?

            Posté par (page perso) . Évalué à  2 .

            sans vouloir vraiment rentrer dans le débat, il a marqué 10 instructions assembleurs
            Donc il n'est pas question de vm, de couches et de milliers d'instructions
            Après je ne sais pas qui a raison ou non, mais une allocation n'est pas une gestion des objets, héritages et autres, c'est juste ... une allocation
            • [^] # Re: de quoi tu te plaint ?

              Posté par . Évalué à  4 .

              10 instructions assembleur de la VM, aka Java_bytecode, il faut ensuite distinguer ce qui est de la VM et ce qui sera natif lors de l'exécution de la VM.

              L'exemple de la boucle avec le println est flagrant. Le couple getstatic et invokevirtual ne sont que deux instructions mais derrière se cache un nombre important d'instructions (initialisation de la bibliothèque et de tout ce qui tourne autours, tests internes de la fonction…)

              On pourrait faire une VM comportant plusieurs milliers d'instructions, toutes spécifiquement dédiées, et un programme qui comporterait une seul instruction. On ne pourrait pourtant pas prétendre que le programme d'une seul instruction est léger du fait de sa seule instruction. Il peut très bien cacher un code qui mettra des heures à s'exécuter.

              Dans le fait, le nombre d'instructions n'est plus représentatif de rien. Il fut un temps où cela pouvait être transcrit en nombre de cycles. Aujourd'hui, les CPU possèdent plusieurs décodeurs d'instruction et peuvent gérer plusieurs instructions simultanément si celles-ci ne pose pas de problème de « chevauchement de registres » (register stall). Le fonctionnement est plus complexe que ça et mes connaissances commencent à dater, le site à voir pour prendre conscience de la complexité d'un CPU est http://www.agner.org/optimize/ .

              Pour conclure, le nombre de 10 instruction assembleurs d'une VM n'a pas de pertinence sur la qualité et la quantité de code qui sera réellement exécuté par la machine. Il faut se dire qu'il ne sera sûrement pas constitué que de 10 instructions.

              > mais une allocation n'est pas une gestion des objets, héritages et autres, c'est juste ... une allocation

              Allouer de la mémoire pour un objet est sans fondement : ce n'est plus la mémoire pour un objet qu'on alloue mais la mémoire pour une structure. Il sera alors à la charge du développeur de créer un système permettant d'utiliser cette structure comme si c'était un objet (j'en connais qui ont fait ça en assembleur). Et pour quelqu'un qui ne veut pas s'embêter avec du bas niveau, c'est totalement loupé.

              The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

              • [^] # Re: de quoi tu te plaint ?

                Posté par (page perso) . Évalué à  2 .

                > 10 instructions assembleur de la VM
                oki, autant pour moi, je ne l'avais pas compris comme ça

                > Pour conclure, le nombre de 10 instruction assembleurs d'une VM n'a pas de pertinence sur la qualité et la quantité de code qui sera réellement exécuté par la machine
                Tout à fait d'accord avec ce point (et finalement le reste aussi...)
              • [^] # Re: de quoi tu te plaint ?

                Posté par . Évalué à  1 .

                Non non, j'ai bien dit assembleur, pas byte code.

                Source conf java one avec des mecs en charge du GC justement.

                If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

                • [^] # Re: de quoi tu te plaint ?

                  Posté par . Évalué à  2 .

                  Je suis curieux de voir le code source assembleur avec les 10 instructions.

                  Ensuite ce n'est pas le mot assembleur qui spécifie qu'on parle automatique d'instructions d'un CPU réel. Il existe des assembleurs pour Java (ex jasmin) ainsi que des assembleurs pour le CIL de .Net (ilasm). On peut coder en assembleur dans ces langage/plateforme comme on peut le faire en asm x86.

                  il y a quelques temps j'avais écrit une petite VM en assembleur x86 et, à l'aide de macros fasm, rendu possible l'écriture en instructions de cette VM depuis l'éditeur de fasm. C'était bien mignon d'écrire en instructions d'un assembleur virtuel pour une machine virtuelle dans l'éditeur d'un vrai assembleur.

                  The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

                  • [^] # Re: de quoi tu te plaint ?

                    Posté par . Évalué à  1 .

                    Le mec s'est potentiellement un peu enflamme dans sa presentation.

                    Ce qui est sur, c'est qu'une allocation est bien moins couteuse en java qu'en C ou C++.

                    If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

                    • [^] # Re: de quoi tu te plaint ?

                      Posté par . Évalué à  2 .

                      > Ce qui est sur, c'est qu'une allocation est bien moins couteuse en java qu'en C ou C++.
                      Allocation statique ou dynamique?
                      Est ce que tu prends en compte aussi la gestion du gc? Car parler de performance de l'allocation sans prendre en compte le process de cleanup, c'est un peu dire ma voiture fait 1000km / L (en descente).

                      Il ne faut pas décorner les boeufs avant d'avoir semé le vent

              • [^] # Re: de quoi tu te plaint ?

                Posté par . Évalué à  1 .

                Allouer de la mémoire pour un objet est sans fondement : ce n'est plus la mémoire pour un objet qu'on alloue mais la mémoire pour une structure. Il sera alors à la charge du développeur de créer un système permettant d'utiliser cette structure comme si c'était un objet (j'en connais qui ont fait ça en assembleur). Et pour quelqu'un qui ne veut pas s'embêter avec du bas niveau, c'est totalement loupé.

                Ben ta jvm va decider de comment est organise l'objet (tres probablement comme une struct c + pointeur sur la class avec la table des methodes).

                Ensuite, ton code tourne contre cette structure et tu le vois pas, ton bytecode s'occupe de ca pour toi.
                Donc, oui, allouer revient a deplacer le pointeur de debut de heap disponible, retourner cette adresse ou exploser si la memoire est pleine.
                Il te reste effectivement le cas de le heap pleine, mais qui peut encore etre agrandie. Dans ce cas, ca va etre plus que 10 instructions, clairement, mais c'est un cas tres rare en pratique. Et surtout, c'est borne (-Xmx de la jvm), et ca peut meme s'eviter (-Xms egale a -Xmx, meme si c'est idiot de faire ca en pratique).

                If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

                • [^] # Re: de quoi tu te plaint ?

                  Posté par . Évalué à  3 .

                  Le bytecode ne gère pas ça, il manipule les objets et leurs méthodes à un niveau qui est presque aussi élevé que celui du langage.

                  http://download.oracle.com/javase/1.5.0/docs/tooldocs/window(...)

                  Il faut passer de l'autre côté de la VM pour voir les mécanismes en œuvre pour la création, allocation et gestion de tout ce qui est objet.

                  Je ne sais plus très bien pourquoi on part là dedans (il se fait tard, toussa). Ce que je vois c'est que pas mal de développeurs utilisant que des langages haut niveau voient le niveau auquel ils travaillent comme unique référence et ignorent totalement qu'il y a pas mal de monde qui pédale derrière pour que ça avance.

                  Il me semble donc que faire un peu de programmation bas niveau permet de voir que le confort et la facilité n'est pas gratuite.

                  The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

        • [^] # Re: de quoi tu te plaint ?

          Posté par (page perso) . Évalué à  1 .

          J'ai pas dis que j'allais faire plus performant que le gc de Java, j'ai juste dis que d'avoir à gérer soi-même sa mémoire permet de se rendre compte que rien n'est gratuit. Ensuite quand on fait du Java, on peut réfléchir à deux fois avant d'allouer des objets à tout va plutôt que de réutiliser ce qu'on peut.

          J'aime beaucoup Java, je code majoritairement en Java, mais je remarque aussi que les codes Java fait par des gens qui n'ont jamais fait de "bas niveau" (C/C++) sont en général moins performants, avec plein d'allocations inutiles et de réfléxions du genre "bah c'est le GC qui va gérer donc on s'en fout".

          Je suis aussi d'accord sur ta remarque concernant les "early optimizations". Par contre, c'est mieux d'être capable d'écrire directement du code plutôt performant qu'un truc qu'on va de toute façon devoir revoir quand on fait du profiling.

          Je conseille d'ailleurs la lecture de cette page concernant l'optimization pour Android :
          http://developer.android.com/guide/practices/design/performa(...)
          C'est typiquement le genre de truc qui peut ressembler à des économies de bout de chandelle, pourtant quand on développe une application avec beaucoup de calcul (genre un jeu) qui tourne sur un téléphone malgré tout pas si véloce (500mhz-1ghz), on voit la différence.
          • [^] # Re: de quoi tu te plaint ?

            Posté par . Évalué à  1 .

            Ben justement, ton lien est un bon exemple de ce que je dit:

            We follow two rules in the matter of optimization:
            Rule 1. Don't do it.
            Rule 2 (for experts only). Don't do it yet — that is, not until you have a perfectly clear and unoptimized solution.
            —M. A. Jackson

            et
            More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason—including blind stupidity.
            —William A. Wulf

            Je rajouterais aussi: les goulots d'etranglement ne sont jamais la ou on les attends.

            S'en suit un gros pave sur "design ton appli et ses api correctement, ensuite implemente, et ensuite seulement, verifie si ca tourne assez vite".
            Et seulement ensuite qq conseils de base que tout developeur decent sait.

            If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

            • [^] # Re: de quoi tu te plaint ?

              Posté par . Évalué à  2 .

              J’ai beau être d’accord avec tout ça, c’est pas pour autant que je coderai une librairie de traitement de l’image entièrement en Python, parce que je sais que quoi que je fasse, ce sera plus 60x plus lent que son homologue C++.
              Ben là, pareil : « avoir assez de connaissances bas niveau pour avoir en tête les mauvaise pratiques », c’est à des année lumières d’une optimisation prématurée.
              • [^] # Re: de quoi tu te plaint ?

                Posté par . Évalué à  0 .

                Le choix du langage, c'est different...
                C'est sur que prendre un langage de script interprete qui ne gere pas le multi coeur pour faire un truc tres fortement CPU bound, c'est pas une bonne idee.

                Ensuite, ca nous ramene a l'eternel probleme, est ce que le gain hypothetique de perfs c++ vaut la difference de cout?
                Un dev c++ talentueux ca coute tres cher et c'est pas facile a trouver.
                Un dev java talentueux, ca coute juste cher, c'est pas facile a trouver dans la masse de javaistes bras casses, mais c'est deja plus courant.

                Si tu bosses sur Photoshop ou picasa, ca vaut la difference de cout.
                Sinon, c'est tres discutable.

                If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

      • [^] # Re: de quoi tu te plaint ?

        Posté par . Évalué à  2 .

        « Pour moi, un mec qui sort avec un Master en Informatique, il devrait être capable d'écrire, depuis 0, un OS avec compilateur C, linker, shell, drivers et rajouter un langage de haut niveau par-dessus. »

        Je vois pas comment tu peux dire ça. Même en prenant un « temps assez long ». Ou alors décris-moi le nombre d'années que tu considères. Parce que figure-toi que je suis dans un domaine où modifier un compilo est relativement fréquent, écrire une bibliothèque de threads aussi, etc. Mais je sais que ça nous prend un temps fou, même en partant d'outils déjà faits (genre LLVM). Pour rappel, une chaîne de compilation complète inclut:

        - un chargeur (pour charger le binaire, par exemple au format ELF)
        - un éditeur de liens (pour regrouper tous les fichiers objets compilés précédemment),
        - un assembleur (pour transformer du code en langage d'assemblage en code objet),
        - un compilateur (au minimum front-end -- lexer + scanner, et back-end -- allocation de registres et génération de code).

        L'assembleur nécessite d'avoir une syntaxe et une grammaire (même si elles sont simples). Le compilateur aussi, mais il faut en plus gérer les cas ambigus (cas typique des if/else imbriqués), avec des cas bien tordus.

        Passons ensuite à l'OS: il faut un noyau, avec des pilotes de périphérique pour piloter le matériel (minimum vital: clavier, sortie standard par exemple -- la sortie pouvant être une imprimante). Si on commence à parler OS multi-utilisateurs, il faut rajouter un ordonnanceur et tout un tas de trucs. Je parle même pas de la mémoire (mémoire virtuelle, gestion de la pagination, etc.). Et oui, il faut aussi une forme de shell (ça encore, c'est pas trop trop dur).

        Sauf que tu oublies qu'un mec qui a fait un master est aussi censé avoir appris des trucs en :
        - réseaux (couches OSI, pile TCP/IP, ...),
        - bases de données (BDD relationnelles, BDD semi-structurées peut-être, algèbre relationnelle, divers langages tels SQL, XQuery, ...)
        - algorithmique,
        - programmation procédurale (C/Pascal/Basic/whatever), orientée objet (C++/Java/Eiffel/...), fonctionnelle (Scheme/LISP/OCaml/...), déclarative (PROLOG,...), ...
        - architecture des ordinateurs,
        - maths,
        - génie logiciel (analyse et conception de systèmes d'informations, avec diverses méthodes et langages formels)
        - tout ce qui se passe à côté (anglais, et tout ce qui pourrait concerner la culture générale ...)

        Donc voilà comment je vois les choses: si tu demandes à un mec qui a un master de ne faire QUE de la compil comme activité professionnelle, alors oui je suis d'accord avec toi il va y arriver. Mais je pourrais aussi te dire qu'en sortant de l'IUT, et si tu m'avais donné assez de temps, j'aurais pu te faire un compilo+un OS+... Donc la même chose en gros.

        À moins de vouloir forcer les élèves à faire 60h/semaine toute l'année, je ne vois pas comment tu peux espérer que le diplômé moyen de master puisse savoir faire ce que tu demandes. Qu'il ait des souvenirs de tout ça, oui, je suis d'accord, ça devrait être « automatique ». Qu'il soit censé savoir où trouver l'information dont il a besoin oui, aussi. Mais à part ça, je ne vois pas trop.

        Tu trouves que savoir faire OS+compilo+... est important. Un autre informaticien te dira qu'il est plus important de savoir correctement spécifier et implémenter ses programmes/structure de données, et qu'à ce titre, le génie logiciel est plus important. Surtout si en plus on tient compte du fait qu'il y a plus d'utilité à savoir comment fonctionne une base de données en interne dans tout plein de cas d'informatique d'entreprise plutôt que de savoir comment le compilo fait du modulo scheduling pour correctement ordonnancer les instructions ...
  • # Y'a que des codeurs chez les informaticiens ?

    Posté par . Évalué à  6 .

    On m'aurait menti ?

    L'admin système ou l'admin réseau ne sont pas informaticiens ?

    Là, de ce que vous dites, on dirait qu'il faut obligatoirement savoir coder pour mériter ce titre.

    Si toutes les écoles d'ingés n'apprennent qu'à coder, je suis bien content de me contenter de mon bac +2.

    Sérieusement, y'a que des cursus de programmation à « haut niveau » ? L'administration est à ce point dévaluée ? Où j'ai juste un vague aperçu non représentatif ? (Encore que, tous les ingés info que je croisent codent...)

    cd /pub && more beer

    • [^] # Re: Y'a que des codeurs chez les informaticiens ?

      Posté par . Évalué à  4 .

      De ce que j'en sais, il n'existe pas d'écoles qui forment à l'administration système. On a tous appris sur le tas.

      Faut dire qu'en dehors de la connaissance des OS, le reste c'est surtout du bon sens et de la communication. En temps que sysadmin, je fait maintenant beaucoup plus de marketing et d'administratif qu'autre chose...
      • [^] # Re: Y'a que des codeurs chez les informaticiens ?

        Posté par . Évalué à  4 .

        De ce que j'en sais, il n'existe pas d'écoles qui forment à l'administration système. On a tous appris sur le tas.

        Ce qui explique :
        - les non-politiques de sauvegardes (Faire des backups ? à quoi ça sert, j'ai mon repo svn là),
        - les compilations à « la rache » sur des systèmes stables pour installer une appli dispo dans les packages (Utiliser une machine virtuelle ? Boah, ça sert à rien !),
        - les déploiements d'appli en prod sans passer par la plate-forme de test et de pré-prod (quand elles existent),
        - les annuaires foireux (Comment ça mes UO sont pas les bonnes ?),
        - l'absence complète de politique de mise à jour et de maintient du parc (Ah bon, y'a des patches pour l'appli, c'est pour ça que ça marche pas ?),
        - la gestion de parc calamiteuse (Non, tu n'as pas besoin d'un i7 pour développer et faire de la bureautique),
        - et j'en passe.

        Franchement, je vois pas en quoi l'admin sys / réseau ne pourrait pas aussi bénéficier d'un cursus correct. Sans infrastructure stable est à jour, le codeur, benh il code pas ! D'accord, sans codeur, on a pas l'infra, mais tout de même...

        Apprendre sur le tas, c'est bien, avoir en plus les best-practices, c'est mieux :)

        cd /pub && more beer

        • [^] # Re: Y'a que des codeurs chez les informaticiens ?

          Posté par . Évalué à  2 .

          Sans infrastructure stable est à jour, le codeur, benh il code pas !

          Sans orthographe correcte, le lecteur ben il lit pas ;-)

          Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

        • [^] # Re: Y'a que des codeurs chez les informaticiens ?

          Posté par (page perso) . Évalué à  3 .

          >- la gestion de parc calamiteuse (Non, tu n'as pas besoin d'un i7 pour développer et faire de la bureautique),

          Helas, comment dire ... ça depend avec quoi tu code ... (zyeutage d'eclipse en passant ...)
          • [^] # Re: Y'a que des codeurs chez les informaticiens ?

            Posté par . Évalué à  2 .

            > Helas, comment dire ... ça depend avec quoi tu code ... (zyeutage d'eclipse en passant ...)
            Alors ça c'est mesquin... (mais j'adore)

            ça me rappel le projet de plus de 3 millions de lignes (C++ / + Python), le paradis du copier coller, réclamé même par certains chez le client, visual arrivait pas à ouvrir le projet (en même temps c'était un vieux visual 6), et eclipse ramait tellement...

            Les gens bossaient sous scite ou emacs, quelques wariors sous gvim ^^

            Le fichier BROWSE d'emacs, atteignait les 83 Mo, si certains utilisateurs du bouzin veulent se rendre compte du bordel...

            Il ne faut pas décorner les boeufs avant d'avoir semé le vent

        • [^] # Re: Y'a que des codeurs chez les informaticiens ?

          Posté par . Évalué à  2 .

          Note que la plupart des choses que tu cites sont normalement réglées par le bon sens que j'évoquais plus haut. Et en général, un sysadmin junior ne fait rien qu'un sénior ne lui ait pas autorisé expressément, donc les best practices, il est censé les apprendre des séniors.

          Ma formation m'a surtout permis de mieux comprendre et me préparer aux moultes tares des développeurs que j'ai pu rencontrer depuis.
        • [^] # Re: Y'a que des codeurs chez les informaticiens ?

          Posté par . Évalué à  2 .

          ah mais non je regrette, faire des backup ça y savent que ça se fait, donc ils font des backup.

          Par contre tester le restore pour vérifier la procédure, ou au moins vérifier que le backup contient effectivement les dernières données, ça c'est en option.

          Il ne faut pas décorner les boeufs avant d'avoir semé le vent

    • [^] # Re: Y'a que des codeurs chez les informaticiens ?

      Posté par . Évalué à  2 .

      Sauvez les arbres, bouffez des castors !

      Sauvez un admin, bouffez un utilisateur !

      Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.