Journal Comment ca va ? Java bien

Posté par  .
Étiquettes :
0
10
juin
2003
-Vous avez bonne mine
-Java Bean ! Si java bien c'est java bean.

On a sur linuxfr une pseudo ligue contre le java, perso j'ai rien contre. Bien au contraire.

Souvenez vous :

-Fortran c'est nul, jamais un langage de haut niveau ne sera au niveau du code assembleur.
-Ben oui mais c'est pratique quand meme.
-C'est nul ca bouffe plein de memoire pour rien, en plus a cause d ela compilation ca sera toujours un boulet.

-Le C c'est nul, jamais il y aura autant de bibliotheques qu'en fortran.
-Ben oui mais c'est pratique quand meme
-C'est nul, ca bouffe plein de memoire pour rien, en plus sans les gotos ca sera toujours un boulet.

-Le C++ c'est nul, ca sera jamais aussi portable que le C
-Ben oui mais c'es pratique quand meme
-C'est nul, ca bouffe plein de ressources pour rien, en plus sans les pointeurs void ca sera toujours un boulet

-Java c'est nul, ca sera jamais aussi rapide que le C++
-Ben oui mais c'est pratique quand meme
-C'est nul, ca bouffe plein de memoire pour rien, en plus tant que ca tournera sur une JVM ca sera toujours un boulet.

Voila, voila,

Kha
l'informatique evolue tres vite, pour les informaticiens c'est moins sur.
  • # Re: Comment ca va ? Java bien

    Posté par  . Évalué à 0.

    Ou comment sortir des analogies à deux balles sans apporter le moindre argument ;)
    • [^] # Re: Comment ca va ? Java bien

      Posté par  (site web personnel) . Évalué à 4.

      Avec de telles analogies, on arriverait même à dire que java est un bon langage!!
    • [^] # Re: Comment ca va ? Java bien

      Posté par  . Évalué à 3.

      Les arguments sur l'ensemble des qualites de Java, les capacites d'inlining dynamique, l'optimisation de tests pour un deuxieme passage dans une boucle, les facilites de prtages, la rapidite de dev etc. ont deja ete avance comme arguments. Manifestement ca ne fait pas vraiment bouger les choses, et ca ne convaint pas grand monde.

      De plus le but de mon truc n'est pas de "demontrer" quoique ce soit mais juste de relever une analogie (a deux balles peut-etre, mais que dans mon imbecilite crasse je trouve pertinente). Personellement ca m'amuse c'est tout.

      Kha
      • [^] # Re: Comment ca va ? Java bien

        Posté par  . Évalué à 1.

        Au passage:

        - Il y'a des gotos en C
        - J'ai du rever, mais j'ai deja croise des pointeurs void en C++
        - Java sans VM (via gcj) ne m'a guere plus convaincu que la la JVM de sun sous Linux (un poil plus rapide, mais toujours aussi long au chargement).
        • [^] # Re: Comment ca va ? Java bien

          Posté par  . Évalué à 1.

          - Il y'a des gotos en C
          - J'ai du rever, mais j'ai deja croise des pointeurs void en C++


          Si tu n'aimes pas, tu n'utilises pas (mais les gens raisonnables savent qu'un goto bien placé peut parfois clarifier grandement une sous-routine). Il ne me semble pas compliqué de coder en C++ sans "goto" ni "void *" ;)
          • [^] # Re: Comment ca va ? Java bien

            Posté par  . Évalué à 2.

            Nan les gotos saismal :

            http://www.kerneltrap.org/node.php?id=553(...)

            Le passage fort est :
            robert love > I thought Edsger Dijkstra coined the "gotos are evil" bit in his
            robert love > structured programming push?
            linus> Yeah, he did, but he's dead, and we shouldn't talk ill of the dead.*

            Au passage ceux qui n'ont pas lu ce thread a l'epoque apprendrons que les gotos peuvent clarifier grandement le code (contrairement a une idee assez courante) et meme optimiser un peu la vitesse d'execution (on parle de noyau la :-)
  • # Re: Comment ca va ? Java bien

    Posté par  (site web personnel) . Évalué à 4.

    Et puis de toutes façons, les vrais programmeurs ne mangent pas de quiche (tm)
  • # Re: Comment ca va ? Java bien

    Posté par  . Évalué à 2.

    y'a aussi les brevets et les copyrights de sun sur le langage java, une menace pour le futur
    • [^] # Re: Comment ca va ? Java bien

      Posté par  . Évalué à 3.

      De plus, il n'y a pas, pour l'instant, de jdk/sdk/compilo libre, donc bon, java -> /dev/null
      • [^] # Re: Comment ca va ? Java bien

        Posté par  . Évalué à 1.

        des compilos et des JVM libres il y en beaucoup (voir GNU classpath et gcj)

        cependant aucun n'est compatible à 100% avec le Java de Sun (c'est pas demain qu'il y aura un swing libre par exemple)

        et aucun ne peut affirmer qu'il ne risque pas un jour un procès de Sun pour violation de brevet ou de copyright (voir l'exemple de SCO)
  • # Re: Comment ca va ? Java bien

    Posté par  (Mastodon) . Évalué à 4.

    Je suis en partie d'accord avec toi, le java, c'est pratique, c'est objet, c'est portable etc... Mais ce ne sera jamais aussi rapide que du C (bien codé, bien compilé) qui restera aussi plus lent que de l'assembleur (bien codé) qui sera toujours plus lent qu'une puce spécialisée (bien architecturée).

    Le problème n'est pas forcément là !
    Je pense que la question qu'il faut se poser et que beaucoup oublient de se poser c'est : est-ce que mon programme fait ce qu'il doit faire avec les performances minimales que je me suis fixé. Si c'est oui alors le choix du langage est bon sinon, on peut améliorer le programme, si le programme est parfait mais qu'il n'atteint pas les performances escomptées alors on peut se poser la question du langage (et redescendre la cascade jusqu'au matériel si ça rame toujours trop...).
    Je pense que ceux qui sont habitués à travailler avecdes cahiers des charges me comprendront facilement.

    Personnellement
    - je me suis jamais plongé sur un architecture de puce.
    - l'assembleur : j'en ai fait un peu sur M68k, j'arrive à suivre à peut prêt sur 10 lignes quand je débug, mais c'est tout.
    - le C, c'est le langage que je connais le mieux, il convient tout à fait à la plupart de mes besoins, c'est mon langage de prédilection.
    - le C++ (peut-être que je devrais m'y mettre)
    - le java, je l'utilise quand je veux faire de l'objet, à partir d'une modélisation (UML avec ou sans génération de code automatique), ou tout simplement quand je veux pas avoir à recompiler quand je change de plate-forme.
    - les autres langages, j'arrive à peut près à comprendre des programmes courts...
    • [^] # Re: Comment ca va ? Java bien

      Posté par  . Évalué à 4.

      Mais ce ne sera jamais aussi rapide que du C (bien codé, bien compilé) qui restera aussi plus lent que de l'assembleur (bien codé) qui sera toujours plus lent qu'une puce spécialisée (bien architecturée)

      Ca c'est justement ce que l'on a tendance a penser intuitivement. Et bien que ce soit vrai, la question est : "est-ce que c'est realisable".
      Perso dans mon boulot j'ai rencontre un paquet de gens qui me disais que l'assembleur etait tres superieur au C au niveau optimisation, surtout en ce qui concerne le bas niveau. A tous ces gens la je leur ai demande d'ecrire un malloc qui soit thread-safe et qui batte le malloc GNU compile avec GCC. Ben j'attend toujours.
      Le fait que ce soit possible ne veut pas dire que ce soit faisable. Il arrive que dans un projet on tombe sur une routine qui va etre appelee pleins de fois et que le compilateur va optimiser pour une utilisation generique, alors que, dans ce cas particulier, c'est justement ce qu'il ne faut surtout pas faire. Pour ce cas de figure l'assembleur va etre la methode a utiliser pour ameliorer les perfs. Mais l'immense majorite du code restera en C.
      Aujourd'hui il est impossible por une equipe de taille normal d'optimiser un programme d'un bout a l'autre et de l'ecrire tout en assembleur. On peut deja considerer que les compilateurs "battent" les programmeurs assembleur dans 90% des cas.

      Pour la JVM le meme question se pose, pour l'instant les bonus d'optimisation apportees par une JVM ne sont pas aussi fort que ceux apportes par un compilateur dans la majorite des cas. Mais on peut se demander si ca ne va pas s'inverser. Sur un processeur de type RISC pur (processeur dit a architecture "moderne") on sait deja qu'une dynamo (emulation du processeur sur lui meme) entrainne en moyenne une acceleration des perfs de l'ordre de 10% (oui vous avez bien lu), parceque certains couplages d'appels qui n'avaient pas pu etre fait par le compilateur deviennent possibles. Donc potentiellement une JVM peut ameliore l'execution d'un programme. Peut elle le faire suffisament pour que ca soit tres difficile de battre une JVM avec un compilo dedie architecture ? Pas pour l'instant, peut etre jamais. Mais ca pourrait fort bien arriver, et perso je pense que ca arrivera plus vite qu'on ne le pense.

      Kha
      • [^] # Re: Comment ca va ? Java bien

        Posté par  . Évalué à 1.

        Le C et le C++ ne sont clairement pas des langages facilement optimisable. Pour preuve il a fallut plus de 20 ans pour commencer a avoir un resultat potable et encore il y a du boulot. Ce sera surement la meme chose pour le Java (meme si pour le Java, il y a en plus une problematique lie a la securite et a la gestion de la memoire qui implique donc l'OS).

        Mais la n'est pas le probleme. Aujourd'hui avant d'optimiser son code en l'ecrivant, il vaut mieux commencer par s'occuper des acces memoires et faire un peu gaffe avec ce qu'on fait de ce cote la. La pluspart d'entre nous enchainons les malloc et eparpillons allegrement nos donnes mettant les caches a tres rudes epreuves, voir les rendant innefficace, or on perd facilement des dizaines de cycles, voir dans certain cas extreme des centaines. Alors qu'en assembleur on economise souvent que quelques cycles (exeption faite du calcul vectoriel qui n'a pour l'instant pas de langage facilitant son utilisation).

        Donc, oui le Java est lent, mais ce n'est pas la faute au langage, mais de celle de sa jeunesse. Maintenant le C/C++ s'est bien quand on sait les utiliser, sinon ce sera lent aussi.
        • [^] # Re: Comment ca va ? Java bien

          Posté par  . Évalué à 0.

          Donc, oui le Java est lent, mais ce n'est pas la faute au langage, mais de celle de sa jeunesse. Maintenant le C/C++ s'est bien quand on sait les utiliser, sinon ce sera lent aussi.

          A propos de langage: le français tu en pense quoi? :)
          • [^] # Re: Comment ca va ? Java bien

            Posté par  . Évalué à 1.

            >A propos de langage: le français tu en pense quoi? :)

            Pas mal mais je prefere le lojban voir l'esperanto à la limite ;)
          • [^] # Re: Comment ca va ? Java bien

            Posté par  . Évalué à 1.

            Y'a trop d'exceptions. Mais vu que la seul régle du français c'est l'exception, faut pas se poser de question.
            Sinon, le français n'a aucune logique.
  • # Re: Comment ca va ? Java bien

    Posté par  (site web personnel) . Évalué à 1.

    pour avoir pratiqué ces quatre langages, [+7] très bien vu

    C'est de toi, ou c'est repompé d'ailleurs ?
  • # Re: Comment ca va ? Java bien

    Posté par  . Évalué à 1.

    Sauf qu'à l'heure actuelle, le C c'est que 30% plus lent que l'assembleur, de même que le C++ quand c'est pas codé avec les pieds.

    Avec Java, je ne pense pas que ce soit possible d'être que 30% plus lent que le C. D'autant qu'à mon goût, le C c'est moins lourd à utiliser. J'ai du mal à voir les progrès réalisés par Java niveau commodité de codage. Si on le compare à C++ alors là on se rend compte que c'est une régression pas possible.

    Java ça parraît mieux que le reste juste parce qu'il y a trois tonnes de librairies propriétaires. Et me dites pas que c'est portable parce que ça c'est un peu bidon comme argument. Y'a pas des masses d'archi sur lesquelles le JDK Sun est porté en entier. Le C basé sur des libs GNUS c'est plus portable :)
    • [^] # Re: Comment ca va ? Java bien

      Posté par  . Évalué à 2.

      Le C 30% plus lent que l'assembleur ? Retour vers le futur ! Turbo C++ sur 386, je veux bien, mais à l'heure actuelle, ce n'est plus du tout vrai. Qui est capable sans se griller les neurones de produire un code aussi optimisé que gcc pour les i686 ou athlons ?
      • [^] # Re: Comment ca va ? Java bien

        Posté par  . Évalué à 1.

        J'aimes assez ce genre de chiffre ;-) Il existe facilement des dizaines d'exemples ou l'on voit que le C est 4 fois plus lent que l'assembleurs (code vectorisable).

        Maintenant vu la complexite et les regles de codage on ne peut plus infame, il est tres difficile aujourd'hui de produire de l'assembleur performant sans "tricher" avec les calculs vectoriels. Les compilos ont pas mal gagne grace a de meilleurs algos de scheduling et d'allocation des registres. Mais ce n'est toujours pas parfait, normal, car si je ne me trompes pas c'est un probleme NP complet.
        • [^] # Re: Comment ca va ? Java bien

          Posté par  . Évalué à 1.

          Ben oui mais le code vectorisable c'est un cas particulier.
          Et puis c'est pas parcequ'un code est vectorisable qu'il faut le vectoriser. Par exemple si j'ai une suite d'instructions qui prennent 6 parametres, c'est generalement une tres mauvaise idee de bloquer 6 registres pour vectoriser mon code. Parcque meme si je peux faire un preload de folie, derriere j'ai plus de registres pour effectuer mes instructions et ca va etre la fete dans la pile pour pouvoir m'en sortir.

          A ce niveau la, une intervention humaine peut faire la difference, determiner quel code est vectorisable est plus un boulot qui requiert surtout de savoir quel va etre la priorite de ton appli, dans quel type d'environement elle tourne etc. C'est bien beau d'avoir un code vectorisabel qui tourne vite, mais si c'est pour le mettre en tache de fond ou il se fera interrompre a tout va ca sert a rien.

          Ceci etant c'est vrai que lorsque je dois extraire des patch de beziers d'un nuage de points ou faire des conversion d'espace de couleurs avec compression sans perte sur de grosses images (ca fait tres longtemps que j'ai plus joue a ca, j'ai surement perdu la main) l'assembleur etait la solution la plus rapide. Mais ca rentre dans le cadre de 10% pour lesquels le compilo se fait battre par le programmeur assembleur. Reste 90%.

          Kha
    • [^] # Re: Comment ca va ? Java bien

      Posté par  . Évalué à 1.

      Sauf qu'à l'heure actuelle, le C c'est que 30% plus lent que l'assembleur

      Ben si tu veux au moment de la sortie du P4 les petits gars de chez intel ils ont fait un spec-test optimise assembleur P4. Bilan : 28% plus rapide que GCC sur les entiers.
      Depuis le compilo Intel C/C++ avec optimisations P4 est sorti, bilan : 31% plus rapide que GCC sur les entiers. Bien sur dans l'intervalle GCC a fait beaucoup de progres sur les archi P4.
      En fait le code fait a l'epoque en assembleur par les ingenieurs Intel est considere comme 10 a 15% plus lent que celui genere par le compilateur Intel aujourd'hui(toujours sur les entiers).

      Kha
    • [^] # Re: Comment ca va ? Java bien

      Posté par  (site web personnel) . Évalué à 1.

      Toi, tu n'as jamais fait sérieusement du Java, ou alors tu n'y a rien pigé ...

      Sinon, peux-tu m'expliquer la "régression pas possible" par rapport au C++ ?

      Rien que le côté dynamique de Java (réfléxion, chargement de classes dynamiques, ...) et le security manager, ça fait déjà un énorme pas en avant.
  • # Re: Comment ca va ? Java bien

    Posté par  . Évalué à 3.

    Il est cool ce journal, on peut remplacer Java par plein d'autres langages. Essayez avec visual basic ca fait encore plus réfléchir
    • [^] # Re: Comment ca va ? Java bien

      Posté par  . Évalué à 6.

      -Vous avez bonne mine
      -visual basic Bean ! Si visual basic bien c'est visual basic bean.

      mouais bof
  • # Re: Comment ca va ? Java bien

    Posté par  . Évalué à 2.

    >Le C++ c'est nul, ca sera jamais aussi portable que le C

    Le C portable, je demande a voir. Deja que le code depent du compilo, j'ose pas imaginer quand on change d'OS ou de manchine.

    Sinon, tu as oublié les langage suivant: perl, python, ada.

    En fait le gros pbs du java, c'est qu'il n'arrive pas a trouver sa place.
    On l'utilisait pour le web, mais maintenant, c'est PHP qui le remplace.

    En fait chaque langage a plus ou moins son domaine de predilection:
    Perl: traitement de chaine de caractére
    Fortran: calcul
    HTML: pages web
    PHP: pages web dynamique
    Shell: petit scripts qui facilite la vie
    C: Systemes
    Ada: applications sécurisés, gros projets

    J'en oublie pas mal (patapé patapé), mais libre à vous de completer la liste.

    Sinon, si on trouve beacoup de soft en C/C++, c'est parce qu'un grand nombre de personnes ne savent pas programmer mais juste pisser du code C/C++
    • [^] # Re: Comment ca va ? Java bien

      Posté par  . Évalué à 1.

      Hum je suis pas vraiment calé en programmation mais il y a deux trois trucs qui m'ont interloqués :

      Le C portable, je demande a voir. Deja que le code depent du compilo, j'ose pas imaginer quand on change d'OS ou de manchine.

      Il me semble que tu peut garder le meme compilateur entre differentes plateforme ... Et si le c est reputé portable c'est peut etre pas des conneries ...

      Perl: traitement de chaine de caractére
      c'est peut etre un peu reducteur non ?

      Fortran: calcul
      Je ne connait pas assez pour donner mon avis ...

      HTML: pages web
      Le HTML est un language de programmation ? j'apelerais plutot ça un language de description de document.


      Sinon, si on trouve beacoup de soft en C/C++, c'est parce qu'un grand nombre de personnes ne savent pas programmer mais juste pisser du code C/C++


      Je me demande si je ne suis pas tombé ds un gros troll poilu ....
      • [^] # Re: Comment ca va ? Java bien

        Posté par  (site web personnel) . Évalué à 1.

        Fortran: calcul
        Je ne connait pas assez pour donner mon avis ...


        C'est vrai !
        Je ne conteste pas la rapidité de l'assembleur, mais faites un programme de multiplication de matrices en assembleur, et le même en Fortran... vous aurez certainement moins mal au crâne en fortran !

        HTML: pages web
        Le HTML est un language de programmation ? j'apelerais plutot ça un language de description de document.


        Mouais, je suis à moitié d'accord. Je n'arrive pas à dire qu'HTML est un langage de programmation, mais ça me semble un petit peu réducteur de dire que c'est juste un langage de description de document...

        a+
        • [^] # Re: Comment ca va ? Java bien

          Posté par  (Mastodon) . Évalué à 1.

          Tous les ML sont bien des langages descriptifs, il ne contiennent pas d'instructions, mais des balises, ils ne peuvent pas être utilisés pour produire du code exécutable par un processeur.
  • # Re: Comment ca va ? Java bien

    Posté par  . Évalué à 2.

    Je ne citeras que le "Tao of Programming " :

    The Tao gave birth to machine language. Machine language gave birth to the assembler.

    The assembler gave birth to the compiler. Now there are ten thousand languages.

    Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.

    But do not program in COBOL if you can avoid it.
  • # Re: Comment ca va ? Java bien

    Posté par  (site web personnel) . Évalué à 1.

    comment ca pas de pointeur void en c++ ? depuis quand ???

Suivre le flux des commentaires

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