Accord entre la FSF et les développeurs OpenOffice au sujet de l'utilisation de Java

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
0
18
mai
2005
Bureautique
En mars, une dépêche sur ce site faisait part de la colère montante chez de nombreux utilisateurs et développeurs de Logiciels Libres au sujet de l'utilisation croissante de Java dans OpenOffice.org 2.0. Dans les versions actuelles d'OpenOffice, Java n'est indispensable que pour des fonctionnalités mineures. Dans la version 2 de la suite bureautique, Java deviendrait indispensable pour un grand nombre de fonctionnalités. Cette décision avait fait resurgir le débat autour du pouvoir de Sun sur le projet OpenOffice ainsi que sur les problèmes posés par l'utilisation de Java : disponibilité sur architectures non-x86 et sur systèmes non-Linux.

En réponse, Richard Stallman avait lancé un appel à contribution pour réaliser une version non-dépendante de Java de la suite bureautique, afin de sortir de ce qu'il appelle le Java trap, c'est-à-dire la dépendance d'un Logiciel Libre sur un logiciel non-libre. Face à cet appel, Scott Carr, Documentation and QA Co-Lead du projet OpenOffice.org a démarré un dialogue avec la FSF pour aboutir à une solution plus pertinente qu'un fork. Il a ainsi précisé que le projet OpenOffice accepterait volontiers les contributions de la FSF, a demandé « comment il pouvait aider à créer une meilleure relation entre la communauté OOo et la FSF», en concluant qu'«il aimerait que tous puissent travailler sur OpenOffice pour en faire un meilleur produit plutôt que de créer de multiples forks».

RMS a ensuite appris qu'OpenOffice était sur le point de fonctionner avec GCJ, une implémentation libre de Java. Il a précisé à Scott Carr qu'il souhaitait pouvoir distribuer une version d'OpenOffice sans devoir encourager à l'utilisation de logiciels non-libres. Scott Carr a donc suggéré que la FSF se concentre sur les questions de compatibilité avec GCJ, mais qu'elle participe également à l'amélioration du logiciel en reportant des bugs au sujet de toutes les fonctionnalités inopérantes avec les versions libres de Java.

Richard Stallman est encore sceptique et souhaiterait qu'une position plus claire soit prise par les développeurs d'OpenOffice. Il aimerait par exemple que la compatibilité avec les versions libres de Java soit directement inclue dans les bonnes conduites de développement (guidelines). En tout cas, RMS a depuis mis à jour son appel à contribution, précisant qu'il cherchait des développeurs pour faire fonctionner OpenOffice.org avec GCJ.

Aller plus loin

  • # Nécessité de Java?

    Posté par  . Évalué à 8.

    En fait, la dépêche est bien documentée mais elle ne parle pas de ce qui a motivé le choix initial d'utiliser des bouts de code en Java dans OpenOffice. Est-ce un choix uniquement technique? (fonctionnalités présentes uniquement en Java, portabilité -- sisi, essayez de compiler du C++ "moderne" avec plusieurs compilos, la portabilité est une notion tout à fait relative). Est-ce un choix pragmatique? (par exemple, si 90% des dev sont à la base orientés Java, ça paraît logique de les laisser "jouer" avec ce qu'ils connaissent le mieux). Est-ce un choix politique? (c'est vrai que Sun investit tellement dans le développement d'OpenOffice qu'on a du mal à croire qu'ils font ça uniquement pour contrer M$).

    En tout cas, cette discussion entre Sun et la communauté du libre arrive bien tard, après que les décisions aient été prises. J'imagine que c'est dû en partie au fait qu'OpenOffice est porté à bout de bras par Sun, et que la communauté autour du projet semble, paradoxalement vu l'ampleur de la suite, assez restreinte au moins en terme de compétences techniques. Du coup, la FSF me fait un tantinet pitié avec son idée de fork, je doute sincèrement qu'OpenOffice évolue aussi vite sans le soutien de Sun.
    • [^] # Re: Nécessité de Java?

      Posté par  . Évalué à 10.

      StarOffice 4.0, sorti par StarDivision bien avant son rachat par Sun, utilisait déjà un peu de java à l'époque (en 1998, il me semble).
      Je ne connais pas la raison qui les avait fait choisir Java, mais c'est resté, surtout après le rachat par Sun, évidemment.
    • [^] # Re: Nécessité de Java?

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

      D'après OOo, le choix de java est du à un manque de développeurs et donc la difficulté pour porter le code sur chacune des plate-formes. La portabilité de java leur permet de faire leur module base de données à moindre coût.
      • [^] # Re: Nécessité de Java?

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

        Bah, pour ma part je ne trouve pas que le choix de Java (en tant que langage) soit un mauvais choix. Je vois déjà venir les moinsages à la pelle ;-)

        En effet, Sun fournit une large part de développeurs à ce projet libre et qu'une large part de leurs développeurs sont très compétents en Java, cela paraît relativement logique que leur choix les ait conduit vers Java pour coder des parties d'OOo.

        Maintenant, j'admets que Sun peut avoir volontairement fait le choix de Java pour son côté obscur...

        Néanmoins, si la possibilité d'utiliser GCJ comme JRE pour utiliser les fonctionnalités Java d'OOo est avérée et prouvée, alors vive Java... Sinon aie aie aie :-(
        • [^] # Re: Nécessité de Java?

          Posté par  . Évalué à 10.

          Maintenant, j'admets que Sun peut avoir volontairement fait le choix de Java pour son côté obscur...

          peut etre.
          maintenant, je sais pas trop..
          on peut preter a sun de mauvaises intentions, mais je ne pense pas qu'ils soient idiots et fassent du libre sans reflechir aux consequences..

          Ce qui est en train de sortir de cette forte integration de Java dans OOo, c'est que gcj va se prendre un coup de boost phenomenal et par consequent, on risque bien d'avoir un java libre d'ici relativement peu (et de tous devoir assister a l'enterrement d'un des plus grand trolls que le monde libre ai jamais connu).

          Meme si ca ne paraissait pas evident au pekin informaticien moyen ya 6 mois, je doute que les gus de chez Sun n'aient pas pense a ca (dans l'hypothese ou ils aient volontairement force Java dans OOo pour des raisons obscures).

          Bref, qu'est ce que Sun va nous sortir du chapeau dans 6 mois?
        • [^] # Re: Nécessité de Java?

          Posté par  . Évalué à 8.

          C'est juste. En plus, OpenOffice comme Java sont souvent présentés comme des exemples en terme de performances et economie des ressources.
          C'est une très bonne nouvelle, on va enfin pouvoir exiger des quadri opterons 2 Go de mémoire pour faire de la bureautique au boulot (mon rêve).
          • [^] # Re: Nécessité de Java?

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

            Java qui est lent :) c reparti pour un tour !

            http://about.me/straumat

            • [^] # Re: Nécessité de Java?

              Posté par  . Évalué à 2.

              A ce propos, je croyais que l'actuelle version de GCJ générait un code très, très lent (bien plus lent que la JRE de Sun). Du moins, c'est ce que j'avais cru lire sur un journal.

              Quelqu'un peut-il confirmer ? Car si cela est vrai, cela n'arrangera pas les lenteurs d'OOo...
            • [^] # Re: Nécessité de Java?

              Posté par  . Évalué à 5.

              Tu parles de quelle JVM ?

              J'ai testé dans le temps, à l'époque du JDK 1.4 une démo graphique en Java, et ben elle tournait à 1-2 fps avec la JVM de Sun et à 20 fps sur la JVM de MS IE.

              Avec un langage portable comme C ou C++ on aurait pas eu de telles différences entre les compilateurs.
              • [^] # Re: Nécessité de Java?

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

                Peu importe.. 1.4 ou 1.5... j'utilise surtout des applis de développements et je développe des applications cotés serveurs et c'est très performent... on a refait www.chimboz.com avec java et on a eu de bien meilleurs performances qu'avec PHP ou Python

                http://about.me/straumat

                • [^] # Re: Nécessité de Java?

                  Posté par  . Évalué à -2.

                  Et oui ça dépend...
                  • [^] # Re: Nécessité de Java?

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

                    et oui, et ça dépend aussi quand on a un kernel 2.4 ou un kernel 2.6

                    http://about.me/straumat

                    • [^] # Re: Nécessité de Java?

                      Posté par  . Évalué à 4.

                      Trollons, trollons :)

                      Et ben non, y'a jamais eu de facteur 10 en perf entre deux kernels, sur peut-être 99% des cas d'utilisation. Ou alors faut remonter à des versions de la préhistoire du noyau où ils avaient désactivé le cache lol.

                      De même entre deux versions consécutives de GCC.

                      Java, c'est pas rapide comme langage, intrinsèquement, y'a des gros problèmes qui font que dans beaucoup de cas d'utilisation c'est lent : y'a un GC dedans (non pas toi GC, toi t'es dans Perl :). Ex: fait un bench d'allocation avec des patterns spécififques de certains cas d'utilisation, et d'une JVM a l'autre tu verra des failles.

                      Effectivement, avec certaines JVM qui font du Just in Time, un for(i=0;i<n;i++) ; c'est aussi rapide qu'en C.
                      • [^] # Re: Nécessité de Java?

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

                        "Et ben non, y'a jamais eu de facteur 10 en perf entre deux kernels, sur peut-être 99% des cas d'utilisation."
                        Entre jdk1.4 et 1.5 non plus, il y a pas unfacteur de 10 :)

                        Java n'est pas intrinséquement lent... moins rapide que de l'assembleur je te l'accordre mais java permet d'avoir d'excellents applications rapides, belles et réactives.. les exemples ne manquent pas.

                        Etant ammené à migrer parfois des applis C, VB, Access, PHP, ASP vers du Java, la lenteur n'a jamais été un prb.. ou alors c t du à un mauvais réglage d'hibernate comme j'en ai un actuellement chezun client :)

                        http://about.me/straumat

                        • [^] # Re: Nécessité de Java?

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

                          Juste pour le fun, fabrique une arraylist, mets y une bonne floppée d'entier dedans, puis parcours ta liste pour tous les additionner et afficher le résultat. Recommence en C++ ou C# 2. Compare la vitesse.
                          Forcer de reconnaître qu'il y a tout de même de très mauvais choix de conception en Java ;)
                          • [^] # Re: Nécessité de Java?

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

                            Euh pour avoir lu pas mal de tests la dessus.. ( faut que je retrouve ), je pense que ce n'est pas vrai. Mets le code C# et la code Java en ligne et on test :)
                            Par contre, j'ai entendu dire que l'assembleur battait C#, C++ et Java à plat de coutures ;)

                            http://about.me/straumat

                            • [^] # Re: Nécessité de Java?

                              Posté par  . Évalué à 6.

                              > Par contre, j'ai entendu dire que l'assembleur battait C#, C++ et Java à plat de coutures ;)
                              Non. Développer en assembleur, en tout cas en 80x86, est super fastidieux, long et bugogène. Le code obtenu est généralement plus optimisé que lorsqu'il est généré par un bête compilateur mais le rapport durée de développement/performances gagnées est monstrueux.

                              Le C++ est compilé pour produire un code machine de la même nature et au même titre que la compilation assembleur. Certaines petites portions de programme peuvent être développées en ASM en ligne dans le code C++ ce qui permet de profiter à la fois du confort de codage du C++ et des performances de l'assembleur sur les points cruciaux.

                              En revanche la production de code en pur C++ avec les STL est aussi rapide et, aux désallocation "delete" près, presqu'aussi sûr que la production de code Java. L'utilisation (à mon avis très naze mais je peux me tromper) de la bibliothèque gc permet en plus de ne pas avoir à libérer les ressources manuellement.

                              Sans aucun autre avantage que la qualité de sa syntaxe (que je reconnais assez sympa), Java impose une couche supplémentaire merdique ; la JVM qui interprète le byte code et dont la justification est super discutable. Pour enfoncer le clou par rapport à la portabilité supposée des applis Java, je pense qu'un code C ou C++ compilable par gcc peut être porté sur un nombre de systèmes assez important non ?
                              • [^] # Re: Nécessité de Java?

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

                                Développer en assembleur, en tout cas en 80x86, est super fastidieux, long et bugogène
                                Tu sais, faisant beaucoup de Java et ayant fait du C++, je pourrais dire: Développer en C++ est super fastidieux, long et bugogène.

                                La couche Java (SE et J2EE) me permet d'etre beaucoup plus productif en Java qu'en C++.. mais je parle de développement d'applis "d'entreprise", pas d'applis de bureau tel winamp, oo ou autre, ca je l'ai pas fait.

                                Pour enfoncer le clou par rapport à la portabilité supposée des applis Java, je pense qu'un code C ou C++ compilable par gcc peut être porté sur un nombre de systèmes assez important non ?
                                On peut débattre du nombre de plateforme et de tout le reste.. je dirais jkuste que pour moi, qui évolue dans un monde Windows/Linux et un peu de mac OSX, mon programme java tel quel marche parfaitement partout... en C++, bonjour les makefiles et les emmerdes

                                http://about.me/straumat

                                • [^] # Re: Nécessité de Java?

                                  Posté par  . Évalué à 2.

                                  Le makefile c'est un art et un pur bonheur à écrire.
                                  Quant à la différence Linux/OSX, tu rigoles !
                                • [^] # Re: Nécessité de Java?

                                  Posté par  . Évalué à 4.

                                  Je suis tout à fait d'accord avec toi, il ne faut pas croire.

                                  Le seul truc c'est que dire que Java est plus rapide que C ou C++, c'est du pipo dans le cas général, même si dans beaucoup de cas c'est vrai. Tu arriveras souvent à plus d'efficacité en hard-codant en C des trucs présents sous formes plus génériques dans les api java.

                                  Après le fameux bench qui traine chépaou où ils comparent les perfs sur un for(i=0;i<n;i++); c'est quand même du pipo (j'exagère sur le bout de code je sais, m'enfin ce sont des codes taillés sur mesure pour pas déclancher le GC en tout cas, sans allocation dynamique et tout).

                                  M'enfin, parler perf, c'est parler compilateur/interpréteurs et pas langage.

                                  En tant que langage, j'aime beaucoup java depuis sa version 5. Il me manque juste de l'ordre supérieur. En tout cas, c'est mon langage de prédilection, moi qui n'est fait que de l'objet pour ainsi-dire.

                                  Après, c'est pareil si on confond langage et api, on peut partir sur de longs trolls sur Swing qui est à mon sens une daube sans nom. Ils ont réussi à faire une api à la fois complexe et fortement limitée. J'aurais préféré un truc simple et limité ou complexe et très puissant, mais là, ils ont de failles de designs, des bugs en pagaille...
                              • [^] # Re: Nécessité de Java?

                                Posté par  . Évalué à 5.

                                porte oui, c'est sur, mais ca implique du boulot supplementaire.

                                j'ai developpe pour mon stage une appli java/swt destinee a piloter des simulations numeriques tournant sur un peu tout, du HP UX, du Solaris d'ya 15 ans, du AIX, un cluster linux et du windows.

                                Le tout fonctionne nickel sans probleme avec une seule compilation.

                                Effectivement, ca PEUT se faire en c++, mais il faut deja une API graphique qui existe pour toutes ces plateformes (meme si je suis sur que ca existe, ca fait du boulot supplementaire pour trouver laquelle, verifier que ca fait bien ce qu'il faut et que les differentes implementations sont correctes).
                                Ensuite, il faut verifier que ca compile bien.
                                Que le resultat correspond bien a ce que l'on veut etc.
                                Et surtout se farcir du code pour chaque archi (chose qui n'etait meme pas envisageable une seule seconde dans mon cas, etant donne que je n'avais pas acces auxdites machines).
                                Pis bon, me retrouver a developper sous Solaris 4 pour porter mon appli, ca m'enchantais aps trop, de meme que les 20 minutes de compilation sous UX. Ce n'etait meme pas envisageable, car les machines en question appartiennent a l'armee, classees secret defense et je ne suis pas habilité secret defense.

                                Alors evidemment, ca ne tourne pas PARTOUT a cause de la jvm, mais ca tourne sur suffisament de plate formes pour que la portabilité soit au rendez vous.

                                Bref, comme je le dis plus bas : ca depend. Ca depend de ce que tu veux faire, du temps que tu as, des moyens que tu as, du public vise, du contexte technique etc.
                              • [^] # Re: Nécessité de Java?

                                Posté par  . Évalué à 4.

                                Le C++ est compilé pour produire un code machine de la même nature et au même titre que la compilation assembleur. Certaines petites portions de programme peuvent être développées en ASM en ligne dans le code C++ ce qui permet de profiter à la fois du confort de codage du C++ et des performances de l'assembleur sur les points cruciaux.

                                En java, C#, en Python aussi, etc.

                                En revanche la production de code en pur C++ avec les STL est aussi rapide et, aux désallocation "delete" près, presqu'aussi sûr que la production de code Java.
                                Pas du tout d'accord. La STL reste compliquée à utiliser particulièrement avec les templates. Et il faut toujours allouer et désallouer la mêmoire manuellement.

                                L'utilisation (à mon avis très naze mais je peux me tromper) de la bibliothèque gc permet en plus de ne pas avoir à libérer les ressources manuellement.
                                C'est le moins que l'on puisse dire. C'est extrêment foireux et pour le cas bcp moins rapide du'un bon GC en java.

                                Java impose une couche supplémentaire merdique ; la JVM qui interprète le byte code et dont la justification est super discutable.
                                La JVM ne fait pas qu'interpréter le code, elle le compile et le transforme en langage machine. C'est particulèrement intéressant pour les langages objets car elle connait la structure exacte du programme et peut ainsi dévirtualiser des appels de fonctions et produire dans certains cas des programmes plus rapide qu'en C++. (je sais que les adeptes du C++ ont du mal à le croire mais c'est la réalité).
                            • [^] # Re: Nécessité de Java?

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

                              http://pascalfresnay.free.fr/divers/generics/(...)
                              j'ai testé sous zindows (désolé chui pas chez moa), avec J2SE 1.5.03, framework .NET 2.0 beta 2 et mono 1.1.7
                              En fait j'ai un joli "OutOfMemory : Java Heap space", quelle idée aussi d'allouer des entiers sur le tas franchement ;)
                              • [^] # Re: Nécessité de Java?

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

                                C une blaque ? tu te moques de nous ? :D
                                Pkoi en CS tu utilises fais une liste de types primitif et en java tu as une liste de type complexe ?
                                Dans ton CS, mets un type complexe...

                                http://about.me/straumat

                                • [^] # Re: Nécessité de Java?

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

                                  Eh oh, je voulais faire une liste d'entier, pas de ma faute si cette andouille de compilo Sun veut pas que je fasse une arrayList de int !
                                  Enfin si ca t'amuse remplace le List par List dans le .cs, t'auras la même chose qu'en Java et ca ne changera strictement rien, il est pas débile non plus le compilo ;)
                              • [^] # Re: Nécessité de Java?

                                Posté par  . Évalué à 1.

                                Ce ne sont pas des entiers de type int (type primitif) mais des instances de Integer qui sont alloués dans cet exemple.
                                Java 5, grâce à l'autoboxing, transforme les "int" que tu ajoutes à ta liste en "Integer" et puisque ce sont des objets, ils sont alloués sur le tas.

                                D'ailleurs, le code est discutable, ça ressemble plus à une démo.

                                1. on ne devrait jamais utiliser une implémentation de liste ailleurs que lors de son instanciation :
                                List list = new ArrayList();
                                au lieu de
                                ArrayList list = new ArrayList();

                                2. pourquoi utiliser une List alors que l'on aurait put utliser un tableau de int puisque l'on connait la taille ?

                                Pour ton soucis de OutOfMemoryException, tu peux lancer java avec le paramètre -Xmx<mem_allouée>M (ex: -Xmx512M). Taille par défaut : 64Mo.
                                • [^] # Re: Nécessité de Java?

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

                                  Ce ne sont pas des entiers de type int (type primitif) mais des instances de Integer qui sont alloués dans cet exemple.
                                  Merci pour l'explication mais j'avais deviné, c'est d'ailleur cela que je voulais mettre en évidence par rapport à C# qui ne fait pas la même bêtise.

                                  D'ailleurs, le code est discutable, ça ressemble plus à une démo.
                                  Bah oui j'ai codé ca en 2 minutes à l'arrache.

                                  pourquoi utiliser une List alors que l'on aurait put utliser un tableau de int puisque l'on connait la taille ?
                                  Pour mettre en évidence un problème évident de conception dans les generics de Java. Met un random si ca t'amuse.
                                  • [^] # Re: Nécessité de Java?

                                    Posté par  . Évalué à 2.

                                    > Pour mettre en évidence un problème évident de conception dans les generics de Java
                                    Ce n'est pas un problème de generics mais d'autoboxing. Les generics te permettent juste d'assurer que dans ta collection il n'y aura pas autre chose que le type avec laquelle tu l'as déclarée.
                                    L'autoboxing est une facilité de codage pour éviter de créer des wrappers sur un type primitif avant de l'ajouter à une Collection.
                                    Que cherches-tu à démontrer?
                                    • [^] # Re: Nécessité de Java?

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

                                      Je cherches à démontrer que ce que fait le compilo Java est affreux question perfs et que même si c'est lié à l'autoboxing c'est bien un problème lié aux generics, suffit de comparer avec le code C# qui lui n'a pas le même problème et qui pourtant gère aussi l'autoboxing.

                                      Les generics en Java c'est du sucre syntaxique, il n'y a aucun gain de performance liés justement au fait qu'une classe peut être paramètrée par un type primitif, alors que l'implémentation C# démontre clairement que c'est possible et qu'il y a un gain qui est loin d'être négligeable (pour la même raison qu'il existe les types primitifs justement).

                                      Les generics, en plus d'assurer un typage fort, permettent (en C#, pas en Java) de limiter l'autoboxing dans bien des cas.
                                      • [^] # Re: Nécessité de Java?

                                        Posté par  . Évalué à 1.

                                        Ton exemple n'est d'aucune utilité en pratique. J'ai sous les yeux un programme de 67000 lignes en Java et aucune des listes ne contient de types primitfs mais seulement des objets évolués. Si tel était le cas, et si j'avais un problème de perf, j'utiliserai une bibliothèque gérant les types primitifs. Il en existe des dizaines.

                                        En revanvhe, le "struct"du c# comporte, AMHA, de nombreux problèmes: combien de développeurs ne vont pas comprendre son fonctionnement exacte et faire ainsi des recopies complète de structure plutot qu'une affection de pointeurs. (avec à la clef des consommation mémoire délirante et des problèmes de perf).

                                        Bref je suis persuadé que l'on verra bcp plus de problèmes de ce type dans un programme en c# que de listes de type primitifs.
                                        • [^] # Re: Nécessité de Java?

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

                                          Ton exemple n'est d'aucune utilité en pratique. J'ai sous les yeux un programme de 67000 lignes en Java et aucune des listes ne contient de types primitfs mais seulement des objets évolués.
                                          Euh, que ce soit dans la doc de MS ou de Sun, c'est clairement indiquer qu'il ne faut pas abuser de l'autoboxing, notamment dans le cas de parcours de collection. S'ils le disent c'est qu'on rencontre souvent la situation (prend des programmes qui font un minimum de calcul mathématique). Evidemment que mon exemple est pas super utile, j'avais la flemme d'écrire un vrai truc.
                                          M'enfin le coup du "oué mais si j'ai un problème j'utilise une lib dédiée" voilà quoi. Le débutant il y pense ? Ben non. Alors que pourtant ils auraient pu résoudre le problème dès le début. Enfin si tu te résigne à utiliser une lib spécifique tu es bien d'accord qu'il y a un problème de perf.

                                          En revanvhe, le "struct"du c#
                                          C'est pas vraiment le sujet mais bon, abordons le puisque tu insistes ;)
                                          D'abord le débutant n'utilisera jamais les structures car il ne sait pas ce que c'est. Le débutant il codera comme en Java, et parfois mettra des int dans une list ;)
                                          Il faut bien voir que le "struct" et présent au même titre que les pointeurs pour laisser le choix aux programmeurs expérimenter d'optimiser leur code. C'est également un moyen très élégant de mapper une structure C en C#, pour utiliser des libs natives.

                                          Bref je suis persuadé que l'on verra bcp plus de problèmes de ce type dans un programme en c# que de listes de type primitifs.
                                          Ben voyons. Un débutant il se dira : "tiens un mot clé que je ne connais pas utilisons le !" Par contre mettre des entiers ou des flottants dans une liste ca, non jamais, c'est vraiement un truc qu'on fait jamais. Surtout quand on débute à la fac avec des exemples qui font typiquement du calcul. Faut arrêter de dire des conneries.

                                          Dans tous les cas C# ne t'oblige pas à utiliser les structs ou les pointeurs, alors que Java ne te propose pas d'alternative pour contourner le problème non documenté des types primitifs et des generics. Ah si utiliser JNI ou une lib qui le fait. YaHoo.
                                          • [^] # Re: Nécessité de Java?

                                            Posté par  . Évalué à 1.

                                            Comme tout problème, il est relatif. Si tu rencontres ce problème 2 fois sur un millions de ligne de code, je pense qu'il est facile d'y remédier. Encore faut faut-t-il que le code produit soit réellement un facteur de ralentissement. Selon mon expérience, c'est (trés) rarement le cas. Bref on est plus dans le domaine du micro-benchmark sans intéret que dans la réalité.

                                            "tiens un mot clé que je ne connais pas utilisons le !"
                                            Eh bien, je crois que justement il l'utisera...

                                            Dans tous les cas C# ne t'oblige pas à utiliser les structs ou les pointeurs
                                            Qu'il y t il de mal à utiliser une librairie plus performante. De toute pour éviter l'auto boxing et avoir des perfs max en c# tu seras obligé de faire pareil.
                                            • [^] # Re: Nécessité de Java?

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

                                              De toute facon, le C, le C++, le C# et le java, c'est nul, y'a que l'OCaml qui est un vrai langage! ;-)
                                            • [^] # Re: Nécessité de Java?

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

                                              Qu'il y t il de mal à utiliser une librairie plus performante. De toute pour éviter l'auto boxing et avoir des perfs max en c# tu seras obligé de faire pareil.
                                              Sauf que le libs en question font la plupart du temps appel à du code natif (question perf) pour contourner les problème du langage initial : tu perds la portabilité, souvent la sécurité, et de plus ce n'est pas standardisé (ne fait pas parti du framework de base). En C# tu as tout un tas de "goodies" (generics, stackalloc, pointeurs, structure, delegates), qui permettent bien souvent d'éviter l'utilisation de libs spécialisées, permettant de conserver la portabilité, une part plus importante de sécurité (cela reste "managé" et le compilo en est conscient), bref c'est mieux et non ce n'est pas pareil qu'en Java. Si on part de ton principe on sait même pas pourquoi en Java ils se sont embêtés à mettre des types primitifs, autant en faire des objets normaux. En concevant les generics ont a l'impression qu'ils ont oublié pourquoi ils avaient fait la distinction entre type primitif et le reste.
                                              • [^] # Re: Nécessité de Java?

                                                Posté par  . Évalué à 2.

                                                Sauf que le libs en question font la plupart du temps appel à du code natif

                                                N'importe quoi, toutes les libs que je connais, pour gérer des collections de types primitifs en Java sont toutes implémentées en Java. Arrête de propager du FUD. SVP.

                                                Il existe des types primitifs en Java (comme en C#), car c'est plus performant qu'un pointeur sur un objet (même s'il s'agit d'un struct). T'as déja vu les perfs d'un programme smalltalk ou tous les types primitifs sont des objets. Excuse moi, mais tu n'as pas l'air vraiment de maîtriser le sujet.
                                                • [^] # Re: Nécessité de Java?

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

                                                  N'importe quoi, toutes les libs que je connais, pour gérer des collections de types primitifs
                                                  Donc ces libs sont limités dans les types supportés. Le jour où tu veux concevoir une classe générique qui n'est pas dans ces libs tu fais comment ? Vraiment c'est très limité.
                                                  Désolé pour le FUD, je pensais que ces libs faisait plus de boulot "dynamique" pour optimiser ce que le compilo oou le runtime Java ne permettait pas, ce qui n'était possible qu'à travers JNI dans mes suppositions. Mais visiblement ces libs sont très limités dans leurs possibilités par rapport à ce que propose une véritable genericité optimisée native.

                                                  Il existe des types primitifs en Java (comme en C#), car c'est plus performant qu'un pointeur sur un objet
                                                  Bravo ! C'est ce que j'essai d'expliquer depuis le début. Et c'est d'autant plus visible niveau perf quand tu dois utiliser beaucoup d'instance de ces types, typiquement dans un tableau une liste ou une collection. D'où l'intérêt de l'implémentation C#. Les generics Java casse tout l'intérêt niveau performance des types primitifs.
                                                  Je vois pas en quoi je ne maîtrise pas le sujet.
                                                  • [^] # Re: Nécessité de Java?

                                                    Posté par  . Évalué à 2.

                                                    Je vois pas en quoi je ne maîtrise pas le sujet.
                                                    Parce que tu n'as pas l'air de savoir ce que l'on appelle un type primitif. Un type primitif est un type géré directement par le processeur. (int; float, long, double généralement - short, char, uint, etc. étant généralement un sous ensemble des précédents).

                                                    A partir du moment ou tu utilises des types évolués (ie. non primitfs) tu as forcément besoin d'un pointeur et la les perfs en Java et en C# seront exactement les mêmes, généricité ou pas (modulo la qualité de la VM). Et c'est 99,99% des cas.

                                                    Arréte donc de faire une obsession sur la généricité des types primitifs en Java. En réalité c'est extrêmement peu utilisé dans une liste et si tu as des besoins trés spécifiques tu peux tjs utiliser une blibliothèque adéquate trés simplement (il en existe des dizaines).
                                                    • [^] # Re: Nécessité de Java?

                                                      Posté par  . Évalué à 2.

                                                      C'est 99,99% de tes cas...

                                                      Tu peux dire tout et n'importe quoi là dessus. C'est là que le débat est un gros troll.

                                                      Java c'est bien pour faire du code dont les perf sont secondaires. Le seul problème c'est de l'utiliser dans des cas où les perfs sont pas secondaires.

                                                      Ensuite supposer que les perfs sont secondaires ça devient vite une contrainte sur l'utilisation qui va être faite de ton appli. Prenons le cas d'une IHM. Si tu fais un petit soft avec trois boutons et deux textfields, ok Java c'est bien.

                                                      Par contre c'est pas envisageable d'avoir toutes tes applis en Java, window manager compris.

                                                      Même une IDE en Java, ça devient moyen. Tu te retrouves avec tes threads qui se font suspendre à tout bout de champs par les threads de l'IDE. T'as un overhead énorme quand tu fais du profiling....

                                                      Java aurais pu être bien pour faire du code de calcul en utilisant des structures évoluées si ils avaient un peu plus chiadé l'utilisation des types primitifs. En l'état actuel des choses c'est pas la peine.
                                                      • [^] # Re: Nécessité de Java?

                                                        Posté par  . Évalué à 1.

                                                        Tu m'expliqueras alors pourquoi les plus gros sites WEB sont aujourd'hui développé en Java. Vu comme tu parles, je suis sur que tu n'as jamais codé plus de 3 lignes en Java. Faire un gros projet en C/C++ ça devient vite l'enfer, gestion des threads misérable, gestion de mémoire inexistante, librairies standard indigente, etc. au final l'appli est toujours moins fiable et parfois moins performante.

                                                        Ce débat me fait penser à celui de C vs assembleur qu'il y avait quand j'ai commencé à développer vers 1985. Aujourd'hui plus personne n'utilise l'assembleur (à part qq cas trés particuliers), et pour les mêmes raisons, demain peu de programmeurs utiliseront le C/C++. C'est l'évolution naturelle de l'informatique - que tu le veuilles ou non. Maintenant rien ne t'empêche de rater le train et de continuer à programmer 2X moins vite avec 2X plus de bugs en C.
                                                        • [^] # Re: Nécessité de Java?

                                                          Posté par  . Évalué à 0.

                                                          "C/C++ ça devient vite l'enfer, gestion des threads misérable, gestion de mémoire inexistante, librairies standard indigente, etc."

                                                          Regarde www.boost.org, il y a tout ce qu'il faut. Le prinicipal probleme de c++ c'est de dompter la bete.
                                                    • [^] # Re: Nécessité de Java?

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

                                                      Parce que tu n'as pas l'air de savoir ce que l'on appelle un type primitif. Un type primitif est un type géré directement par le processeur
                                                      J'essai justement de montrer que Java fait l'erreur de boxer les types primitifs dans leurs équivalent objet (et donc non géré par le processeur) pénalisant fortement la gestion des listes de ces types ! Je vois clairement la différence puisque je la mets largement en évidence.
                                                      • [^] # Re: Nécessité de Java?

                                                        Posté par  . Évalué à 1.

                                                        J'essai justement de montrer que Java fait l'erreur de boxer les types primitifs dans leurs équivalent objet (et donc non géré par le processeur) pénalisant fortement la gestion des listes de ces types ! Je vois clairement la différence puisque je la mets largement en évidence
                                                        Evidemment si tu est droitier et que tu joues au ping pong de la main gauche tu seras moins performant. Si tu lis mes posts tu t'apercois que le problème que tu cites est sans incidence réelle. Cela ne remet pas ni en cause Java ni les langages à base de VM. Comme dans tous les langages des choix sont faits, il s'agit souvent de compromis. Prendre un exemple bien précis (exemple bidon et facilement contournable) pour dénigrer un langage comme tu le fais est malhonnête. De la même manière je pourrais prendre un code le 3 lignes en assembleur et écrire, ou la! le C#, c'est complèment pourri, regardez comme c'est lent par rapport à mon code assembleur. Libre à toi de penser le contraire.
                                                        • [^] # Re: Nécessité de Java?

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

                                                          Attend mais je compare ce qui est comparable : C# et Java ont la même syntax pour les generics, ils pouvaient donc faire les même choix de conception. Comparer l'asm avec un langage de haut niveau est stupide puisque comme leur nom l'indique ils ne sont pas de même niveau, n'ont pas la même sémantique, etc.

                                                          Si tu lis mes posts tu t'apercois que le problème que tu cites est sans incidence réelle.
                                                          Si tu lis mes posts cela peut avoir une incidence réelle, je penses notamment aux scénarios d'introspection. C'est d'ailleur comme ca que je suis tombé sur le problème en Java : je testais des types et je ne comprennais pas pourquoi cet andouille me répondait qu'un ArrayList c'est pareil qu'un ArrayList.
                                                          J'ai aussi voulu montrer qu'un choix de conception dans le langage peut avoir un impact non négligeable dans certains scénarios.

                                                          En l'état actuel tu trouveras très peu de code où il y a le problème puisqu'il n'y a pas encore grand monde à avoir utilisé les generics.
                                          • [^] # Re: Nécessité de Java?

                                            Posté par  . Évalué à 3.

                                            > Le débutant il y pense ?
                                            Non, c'est pour cela qu'on me paye si cher. Faut bien que je bouffe!

                                            > Un débutant il se dira : "tiens un mot clé que je ne connais pas utilisons le !"
                                            Non mais il va creuser un peu et utiliser la fonctionnalité sans forcément voir tous les ecueils qui se cachent derrière.

                                            Personnellement, je pense que c#, avec ses pointeurs et exceptions que l'on n'est pas obligé de trapper ne me semble pas aussi robuste que java. C'est un avis personnel qui n'engage que moi.

                                            Quand aux generics, je ne suis pas un spécialiste de toutes les implémentations mais les architectes de sun ont discuté pendant des années de cette JSR (et ils sont loins d'être des débutants, restons modeste) . Tout ce qui m'intéresse, c'est que ma collection soit type safe afin de détecter d'éventuelles erreurs dès la phase de compilation. Pour le reste, une seule définition de la classe quelque soit le paramètre (contrairement aux templates c++), je trouve cela élegant.
                                            • [^] # Re: Nécessité de Java?

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

                                              Non mais il va creuser un peu et utiliser la fonctionnalité sans forcément voir tous les ecueils qui se cachent derrière.
                                              En même temps partout la fonctionnalité est documentée en indiquant l'utilité des struct :
                                              - avoir un type "primitif" personnalisé alloué sur la pile, qui contient juste quelques données (par exemple un point avec 2 entiers pour les coordonnées) : dans ce genre de cas c'est en général bénéfique question perf et surtout place mémoire.
                                              - avoir un mapping d'une structure C : de ce point de vu c'est comme si je te disais que les API JNI sont très dangereux parcqu'ils permettent de faire des conneries. Ben c'est pareil pour les pointeurs : les concepteurs de C# ont préféré appeler un chat un chat, un pointeur est un pointeur et pas besoin de créer un truc bancale, non portable et qui cache à l'utilisateur des manque flagrant de sécurité.

                                              Pour les exceptions non trappées ils sont juste parti d'un constat simple : la plupart des dév finissent par faire des throw Exception (je dis pas que c'est intelligent). De plus les concepteurs de Java se sont bien apercu que c'était vite lourd de trapper toutes les exceptions : la preuve les exception "standards" n'ont pas l'obligation d'être trappées.
                                              Et puis c'est aussi une question de design : les exceptions ne font pas parti de la signature de la méthode. En cas de version 1.1 d'une classe qui rajoute un test pouvant lever une exception (un cas non prévu dans la version 1.0), ben hop tu casses potentiellement tous les clients qui utilisent ta classe, à moins de tous les recompiler car seul le compilateur vérifie que les exceptions sont bien trappées.
                                              Bref c'est bancale, lourd, et au final souvent mal utilisé.

                                              Dans certains cas je trouve au contraire C# beaucoup plus robuste : d'abord vis à vis des exceptions le comportement sera toujours celui attendu (je l'ai montré plus haut en Java ce n'est pas le cas, c'est même pas documenté). Le versionning en C# est beaucoup plus fin, précis et vérifiable. Les pointeurs en C# permettent au compilateur d'effectuer des vérifications (ce ne sont pas des bêtes pointeurs C++) alors que JNI tent à cacher tout cela, sans résoudre le moindre problème. Par défaut en Java les méthodes sont virtuelles : je trouve cela dangereux car bien souvent les développeurs oublient les "final", sans parler d'éventuel problème de perf (mais c'est relatif), c'est surtout offrir la possibilité à une classe dérivée de modifier le comportement de la classe initiale alors que ce n'était pas forcement prévu.
                                              Pour les generics idem, le compilo Java fait son taf mais dans un scénario d'introspection tout se barre en couille puisqu'on retrouve le type generique "object" partout, permettant de faire tout et n'importe quoi.

                                              Donc tu vois pour moi c'est l'inverse, C# est plus robuste que Java ;)


                                              Au fait un article qui devrait t'intéresser :
                                              Les generics en C#, Java, C++ comparés :
                                              http://www.artima.com/intv/generics.html(...)

                                              Pourquoi pas d'exception trappées en C# par rapport à Java :
                                              http://www.artima.com/intv/handcuffs.html(...)
                                              • [^] # Re: Nécessité de Java?

                                                Posté par  . Évalué à 1.

                                                Au sujet de JNI, à partir du moment ou tu attaques une librairie C à partir de code C# tu retrouves exactement les mêmes pb qu'en Java(et heureusement!).

                                                Pour les exceptions conditionnelles en Java, c'est une question de feeling certains sont pour, d'autres contre. Personnellement, je trouve que c'est plutot une bonne chose, cela avertit le programmeur d'une erreur potentielle (à lui de faire ce qu'il veut ensuite).

                                                En terme de performance, la clause "final" ne sert à rien pour un bon compilateur, il détectera automatiquement que la classe est finale et pourra ainsi la dévirtualiser. Pour ce qui est de la dérivation.On peut aussi argumenter le contraire, combien d'entre nous n'ont pas pester parce que justement le développeur d'une librairie n'avait pas autorisé la dérivation d'une fonction. Bref les gouts et les couleurs.

                                                Quant aux références, on peut difficilement faire moins partial, car il s'agit d'une interview d'Anders Hejlsberg, le créateur de C#, il serait étonnant qu'il dise autre chose.
                                                • [^] # Re: Nécessité de Java?

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

                                                  u sujet de JNI, à partir du moment ou tu attaques une librairie C à partir de code C# tu retrouves exactement les mêmes pb qu'en Java(et heureusement!).
                                                  Ah non ! En C# tu garderas la portabilité déjà. Pas besoin de recompiler le schmurck JNI pour chaque plateforme. Ensuite le compilo fait un minimum de vérification sur la façon d'utiliser les pointeurs en C#, il est même plutôt contraignant, mais c'est une question de robustesse. Ensuite il faut explicitement déclarer le morceau de code incriminé "unsafe", et compiler le code en "unsafe", pointant ici explicitement les éventuels problèmes au lieu de les cacher. Bref, question robustesse c'est quand même mieux.

                                                  Pour les exceptions conditionnelles en Java, c'est une question de feeling certains sont pour, d'autres contre.
                                                  Je suis pas entièrement contre non plus, mais comme je te l'ai montré c'ests bancale, notamment en cas de patch ou maj, donc c'est pas robuste pour 2 sous.

                                                  En terme de performance, la clause "final" ne sert à rien pour un bon compilateur
                                                  C'est pour ca que j'ai précisé que c'est relatif, dans 90% des cas le compilo s'en sort très bien.

                                                  .On peut aussi argumenter le contraire, combien d'entre nous n'ont pas pester parce que justement le développeur d'une librairie n'avait pas autorisé la dérivation d'une fonction.
                                                  Effectivement mais question robustesse la solution C# est quand même préférable : mieux vaut tout "bloquer" par défaut que de laisser toutes les portes ouvertes en espérant que le programmeur cherchera à les fermer.

                                                  Bref même si on peut avoir des préférences (comme tu dis les goûts et les couleurs), le fait est que les choix de C# sont dans l'ensemble plus "robuste" par rapport au choix Java, même si à l'utilisation c'est pas toujours le plus pratique.

                                                  Quant aux références, on peut difficilement faire moins partial, car il s'agit d'une interview d'Anders Hejlsberg, le créateur de C#, il serait étonnant qu'il dise autre chose.
                                                  Peut être mais au moins ils expliquent leurs choix d'implémentation, et je trouves que les explications sont tout à fait valable et il fait preuve d'un impressionnant pragmatisme. J'aimerai une interview similaire des concepteurs de Sun, et qu'ils justifient leurs choix par rapport aux autres langages.
                                                  • [^] # Re: Nécessité de Java?

                                                    Posté par  . Évalué à 0.

                                                    Quand tu attaques libgtk en C# tu as exactement les mêmes contraintes qu'en java. A savoir que tu es dans un environnement unsafe. Point.

                                                    mais comme je te l'ai montré c'ests bancale, notamment en cas de patch ou maj, donc c'est pas robuste pour 2 sous.
                                                    Je vois pas le rapport. entre les patchs, les maj et les exceptions conditionnelles.

                                                    mieux vaut tout "bloquer" par défaut que de laisser toutes les portes ouvertes en espérant que le programmeur cherchera à les fermer.
                                                    Je n'en suis pas sur. En tou état de cause, une bonne IDE de te permettra de mettre le mot clef final automatiquement. En l'occurence j'apprécie la sollicitude de Microsoft envers nous pauvres développeurs, il n'en a pas toujours été le cas pour les services et les ports de Windows.
                                                    • [^] # Re: Nécessité de Java?

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

                                                      Quand tu attaques libgtk en C# tu as exactement les mêmes contraintes qu'en java. A savoir que tu es dans un environnement unsafe. Point.
                                                      Et ? quel est le rapport avec la choucroute ? Tu peux utiliser du code unsafe dans un autre cadre que du binding.

                                                      Je vois pas le rapport. entre les patchs, les maj et les exceptions conditionnelles.
                                                      Je réexplique une dernière fois :
                                                      Tu fais une lib A qui contient une méthode qui ne lève pas d'exception. Tu la distribues en version 1.0.
                                                      Machin utilises ta lib, son compilo ne gueule pas vu que y'a pas d'exception.
                                                      Tu as trouvé un bug dans ta lib, tu lève une exception dans un cas particulier, tu distribues une version 1.0.1
                                                      Machin met à jour son OS et par le même fait ta lib.
                                                      Et là l'horreur se produit, machin se bouffe une exception alors qu'il était persuadé d'avoir blindé son appli ! Le client est furax.
                                                      Le runtime aurait du s'en apercevoir dès le début en déclarant la lib "non utilisable parcque ne correspond pas à son utilisation". Malheuresement ce n'est pas possible car les exceptions ne font pas parti de la signature d'une méthode, et Java n'a aucune gestion des versions à ce niveau de granularité.
                                                      En C# tu n'aurais jamais eu le même problème, le runtime aurait vu la différence et aurait tout simplement switcher l'appli pour la faire utiliser la vieille version 1.0.

                                                      une bonne IDE de te permettra de mettre le mot clef final automatiquement.
                                                      Mmmh, y'a ca dans Eclipse ? Faudrait que j'active ca.
                                                      • [^] # Re: Nécessité de Java?

                                                        Posté par  . Évalué à 1.

                                                        Je vois pas le rapport. entre les patchs, les maj et les exceptions conditionnelles.
                                                        Je réexplique une dernière fois :


                                                        Faut être trés con pour redistribuer une appli avec une nouvelle lib sans la recompiler ne serait-ce qu'une fois.

                                                        En C# tu n'aurais jamais eu le même problème, le runtime aurait vu la différence et aurait tout simplement switcher l'appli pour la faire utiliser la vieille version 1.0
                                                        Ce qui n'aurait de toute manière rien amélioré, étant donné qu'il y a un bug dans la librairie 1.0. (de ton exemple). Donc, dans ce cas c'est blanc bonnet et bonnet blanc. Soit tu as un pb dans le code de la librairie, soit dans le code de ton appli.
                                                        • [^] # Re: Nécessité de Java?

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

                                                          Faut être trés con pour redistribuer une appli avec une nouvelle lib sans la recompiler ne serait-ce qu'une fois.
                                                          T'as pas compris ce que j'ai mis. La lib a été mise à jour "indépendament" de l'appli. L'appli n'a pas été mis à jour ! (ce qui cause d'ailleur le problème).
                                                          c comme si le mec avait fait apt-get update
                                                          ce qui a mis à jour la lib
                                                          mais pas l'appli (qui elle n'a pas changé)

                                                          Donc, dans ce cas c'est blanc bonnet et bonnet blanc. Soit tu as un pb dans le code de la librairie, soit dans le code de ton appli.
                                                          Arf. Sauf que c'était un bug que le programmeur avait peut être contourner, ou bien qui ne le genaît pas dans son cas d'utilisation, enfin bref tu ne peux absolument rien affirmer, et tu peux très bien faire planter une appli qui ne s'y attendais pas.
                                                          • [^] # Re: Nécessité de Java?

                                                            Posté par  . Évalué à 1.

                                                            T'es sur que c'est pas le fait que ta dll soit dans le GAC et "strongnamée" qui fait que ton appli va aller chercher la version de la dll avec laquelle elle a été compilée ?
                                                            • [^] # Re: Nécessité de Java?

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

                                                              Bah si bien sûr que c'est ça. J'ai jamais dis le contraire :) J'ai juste montré qu'en Java tu n'as pas ce mécanisme, et que donc le runtime va essayer de charger la nouvelle lib et va se vautrer si jamais l'exception est levée.
                                                              • [^] # Re: Nécessité de Java?

                                                                Posté par  . Évalué à 1.

                                                                Oui, sauf que jamais personne ne fout en prod des jar sans les tester.

                                                                De plus c'est pas évident à gérer en phase de dev, il faut retarder la signature, et ne la faire qu'à la livraison, c'est un peu contraignant.
                                                                Certes ça améliore la sécurité, mais d'un autre côté quand tu vois qu'il n'y a aucune norme propre en matière de packaging d'applications .NET, on a un peu l'impression de se retrouver au milieu du gué.

                                                                Quand je parle packaging je parle réalisation de .MSI, fichiers de config, etc... Au moins sous J2EE tu livres des EAR et des WAR avec une interface faite pour ça avec des fichiers de config qui doivent respecter un standard.

                                                                .NET est beaucoup trop laxiste de ce côté là je trouve, tu peux très bien te retrouver avec des .properties dans system32/ et des .xml ou .config dans ton IIS.
                                                                • [^] # Re: Nécessité de Java?

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

                                                                  Oui, sauf que jamais personne ne fout en prod des jar sans les tester.
                                                                  Mais celui qui développe la lib n'est pas forcement le même que celui qui l'utilise ! Tu peux pas à chaque fois que tu fait une nouvelle version de ta lib passer une annonce et dire : "attention je vais mettre une nouvelle version de ma lib dans les repositories, tous ceux qui l'utilisent sont invités à recompiler leur application ! " Ca va se finir que tout le monde va utiliser sa version de lib qui marche bien dans son coin, et on aura pleins de lib en double, triple, bien difficile de mettre tout ca à jour. Enfin si je regarde les appli que j'utilise en Java c'est malheuresement ce qui se profile : à part le point commun (JDK), tout le monde embarque ses libs.

                                                                  qu'il n'y a aucune norme propre en matière de packaging d'applications .NET
                                                                  Euh, la norme d'encapsulation est très bien défini, c'est les .exe et les .dll avec un espace reconnu et unique : le GAC. C'est même normalisé ca. Pour les fichiers de config, la norme veut que l'on mette un truc.exe.config à côté de truc.exe. Pour IIS c'est pareil, il n'y a pas trop le choix des emplacements je trouve. Mais bon c'est vrai que le dev peut faire sa propre sauce. Mais bon cela n'a aucun impact sur la sécurité ou la robustesse.
                                                          • [^] # Re: Nécessité de Java?

                                                            Posté par  . Évalué à 1.

                                                            ouais, mais d'un autre cote, le mec qui fait un dist-upgrade sur une machine de prod sans se poser la question de savoir si ca risquais de casser quelque chose derriere, il est un peu gland non?
                                                            ou alors j'ai pas compris ce que tu veux dire (ce qui est fortement possible et dans ce cas, c'est moi le gland :))
                                                            • [^] # Re: Nécessité de Java?

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

                                                              le client peut être un utilisateur lambda dans le cas d'une application bureautique. Me dis pas que le client il est gland de mettre son système à jour de temps à autre.

                                                              Quand au mec en prod, il aura beau faire tous les tests, s'il ne tombe pas direct sur l'appelle de méthode qui lève la fameuse exception, il sera pas plus gland et pourtant peut être qu'au bout de quelques jour ca va lui péter à la tronche...

                                                              Franchement question robustesse/sécurité on a vu mieux que de laisser ce genre de "détail" au client...
                                              • [^] # Re: Nécessité de Java?

                                                Posté par  . Évalué à 3.

                                                Pour les exceptions non trappées, je préfère que le compilo me prévienne qu'une méthode est suceptible de jeter une exception plutôt que d'aller le voir dans la doc ou de m'en appercevoir au runtime (mes clients sont des financiers et vu les montants avec lesquelles on joue, ils ne plaisentent pas...).
                                                Si une librairie tierce change le prototype d'une méthode, je préfère être prévenu par mon compilo parce que la responsabilité, au final, elle est pour ma pomme et bien entendu je vais recompiler avec cette nouvelle bibliothèque!
                                                Pour les article de Bruce Eckel, je connais, ils ont fait assez de bruits sur theserverside...

                                                J'ai regardé un peu ton cv. Tu me parrais bien jeune et bien peu expérimenté. Les développements que l'on fait en entreprise sont bien différents de ceux que l'on fait à la fac. Les maîtres mots dans mon secteur sont robustesse et maintenabilité. Les perfs, auxquelles tu sembles si attaché, ne viennent qu'ensuite (et en 10 ans de dev dont 7 en java à plein temps, je n'ai jamais eu besoin d'utiliser jni).
                                                • [^] # Re: Nécessité de Java?

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

                                                  Pour les exceptions non trappées, je préfère que le compilo me prévienne qu'une méthode est suceptible de jeter une exception plutôt que d'aller le voir dans la doc ou de m'en appercevoir au runtime
                                                  Sauf que bien entendu toutes les exceptions "standards" sont "ignorées" par le compilo : "InvalidCastException", "NullPointerException", "OutOfMemoryException", etc. C'es les plus courantes et le compilo te diras jamais rien.

                                                  Si une librairie tierce change le prototype d'une méthode, je préfère être prévenu par mon compilo parce que la responsabilité, au final, elle est pour ma pomme et bien entendu je vais recompiler avec cette nouvelle bibliothèque!
                                                  oué mais si tu patches bêtement la lib sans recompiler ton appli ? Genre le client met à jour son OS et les libs qui vont bien, sans bien entendu recompiler les appli : une lib introduit une exception, boum le runtime Java ne voit pas la différence et casse tout. En C# t'as pas le problème grâce à la gestion du versionning qui détectera ce genre de différence.

                                                  Les maîtres mots dans mon secteur sont robustesse et maintenabilité.
                                                  Les miens aussi. J'ai essayé de montré assez clairement que C# introduisait pas mal de robustesse. Question maintenance je penses qu'on sera d'accord pour dire que .NET/Mono est bien mieux que Java pour ca : le versionning est un des plus complets en .NET/Mono alors qu'il est quasiment absent de Java.
                                                  Pour les perfs je voulais juste montré que c'était ici un choix vraiment regrettable de la part de Sun parcque la différence de perf est vraiment conséquente. Mais j'y vois surtout un problème au runtime pour l'introspection : on a des objects et plus aucune vérification de type, question robustesse boum.
                                                  • [^] # Re: Nécessité de Java?

                                                    Posté par  . Évalué à 3.

                                                    Sauf que bien entendu toutes les exceptions "standards" sont "ignorées" par le compilo : "InvalidCastException", "NullPointerException", "OutOfMemoryException", etc. C'es les plus courantes et le compilo te diras jamais rien.
                                                    Parce que c'est des exceptions qui héritent de RuntimeException. Comment veux-tu qu'un compilo te prévienne d'un OutOfMemoryException ou d'un NullPointerException. Pour le ClassCastException, maintenant on a les generics qui devraient en supprimer la plupart.

                                                    oué mais si tu patches bêtement la lib sans recompiler ton appli ?
                                                    Dans ce cas là, je passe un sale quart d'heure parce que c'est ma responsabilité de livrer des applis testées (je te rappelle que les enjeux de mes clients se comptent en millions d'euros par jour)...

                                                    Bon allez, j'arrête là parce que ça commence à me fatiguer.
                                                    • [^] # Re: Nécessité de Java?

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

                                                      Comment veux-tu qu'un compilo te prévienne d'un OutOfMemoryException ou d'un NullPointerException.
                                                      C'est pareil pour toutes les méthodes. L'opération "." devrait donc être signalée comme pouvant lever une exception de type "NullPointerException". Bref théoriquement il faudrait catcher toutes les lignes. Sauf que c'est pénible. Ben c'est aussi pénible à l'arrivée avec les exceptions "personnalisée". Je vois pas pourquoi obliger le programmeur à en catcher certaines et pas d'autres, surtout quand les autres sont les plus courantes et les plus souvent levées !

                                                      Dans ce cas là, je passe un sale quart d'heure parce que c'est ma responsabilité de livrer des applis testées
                                                      Et si le client il patch son OS et donc ses lib Java, sans t'avertir (genre il fait apt-get update), ton programme ne le détectera jamais. Alors que si les exceptions faisaient parti de la signature de la méthode, le runtime gueulerai dès le début en disant : "houlà, lib incompatible, peut pas lancer ca moa"
                                                  • [^] # Re: Nécessité de Java?

                                                    Posté par  . Évalué à 1.

                                                    Sauf que bien entendu toutes les exceptions "standards" sont "ignorées" par le compilo : "InvalidCastException", "NullPointerException", "OutOfMemoryException", etc. C'es les plus courantes et le compilo te diras jamais rien.

                                                    ben encore heureux qu'il ne dit rien le compilo, si c'est pour devoir try/catcher quasiment chaque ligne de code, ca ne sert plus a rien d'avoir un systeme d'exception..
                                                    • [^] # Re: Nécessité de Java?

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

                                                      D'où le choix pragmatique des concepteurs C# : on fait les choses bien ou on les fait pas, mais on les fait pas à moitié.
                                                      • [^] # Re: Nécessité de Java?

                                                        Posté par  . Évalué à 2.

                                                        c'est un point de vue d'etudiant ca :-D

                                                        nan, serieusement, bien que je comprends tout a fait ce que tu veux dire, je trouve que le terme pragmatique s'applique justement plus a la facon de faire java :
                                                        - les exception de type nullpointer, classcast etc sont dues a des erreurs de programmation du devel et ne devraient en theorie pas arriver (tu caste pas si t'es pas sur de ce que tu fais, tu dereferences pas si t'es pas sur de ce que tu fais), et ne doivent par consequent pas etre necessairement catchees, laissant le champ libre aux "vraies" exception qui signalent une erreur dans la semantique du traitement.

                                                        En gros, je prefere que le compilo m'insulte copieusement quand j'oublie de rattraper une exception critique et me passe sous silence les nullpointer qui ne m'arrivent que tres rarement, qu'il ne me dise rien et que je me perde dans mon code a savoir ou je dois rattraper tel ou telle exception.

                                                        bref, les gouts et les couleurs quoi, ca se discute (ou pas) mais en tout cas c'est mission impossible pour faire changer d'avis le mec en face (quoi, qui a dit que c'etait un troll? :)) )
                                        • [^] # Re: Nécessité de Java?

                                          Posté par  . Évalué à -2.

                                          "En revanvhe, le "struct"du c# comporte, AMHA, de nombreux problèmes: combien de développeurs ne vont pas comprendre son fonctionnement exacte et faire ainsi des recopies complète de structure plutot qu'une affection de pointeurs. (avec à la clef des consommation mémoire délirante et des problèmes de perf)."


                                          Donc Java est un très bon langage pour les progammeurs nuls. Si tu dois coder deux points 2D (16 octets) c'est dommage d'allouer ca sur le tas non ? Je pense qu'on peut coder 90% en java mais qu'il y a 10% du code qui ne dervait pas l'etre. Cette proportion varie selon le type d'application.
                              • [^] # Re: Nécessité de Java?

                                Posté par  . Évalué à 0.

                                Et voyans ça ; mets dans pipo.cpp :

                                #include
                                #include

                                class test {
                                public:
                                test() {
                                std::list lst;
                                for (int i = 0 ; i < 10000000 ; i++) {
                                lst.push_back(i);
                                }

                                unsigned long res = 0;
                                for (std::list::iterator i = lst.begin() ; i != lst.end() ; i++) {
                                res += *i;
                                }
                                std::cout << res << std::endl;
                                }
                                };

                                main()
                                {
                                test *tt = new test();
                                }


                                Puis tape : g++ -o pipo pipo.cpp
                                Et puis : ./pipo

                                Tu trouves ce codage vraiment différent de ta classe Java ?
                                Et côté perf alors ?
                                • [^] # Re: Nécessité de Java?

                                  Posté par  . Évalué à 1.

                                  Zut, il manque tous les truc entre inférieur, supérieur. Bon, je reéssai :

                                  #include <iostream>
                                  #include <list>

                                  class test {
                                  public:
                                  test() {
                                  std::list<int> lst;
                                  for (int i = 0 ; i < 10000000 ; i++) {
                                  lst.push_back(i);
                                  }

                                  unsigned long res = 0;
                                  for (std::list<int>::iterator i = lst.begin() ; i != lst.end() ; i++) {
                                  res += *i;
                                  }
                                  std::cout << res << std::endl;
                                  }
                                  };

                                  main()
                                  {
                                  test *tt = new test();
                                  }
                                • [^] # Re: Nécessité de Java?

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

                                  Ce genre de ligne:
                                  std::cout << res << std::endl;
                                  Me fait frémir.. ca me rappelle le temps ou je faisais du C++.. comment peut on etre satisfait d'un code aussi illisible et pas maintenable pour un débutant...

                                  http://about.me/straumat

                                  • [^] # Re: Nécessité de Java?

                                    Posté par  . Évalué à 0.

                                    C'est clair, le plan stream c'est plantant. Il vaut mieux se rabattre sur les fonctions C type printf.
                                  • [^] # Re: Nécessité de Java?

                                    Posté par  . Évalué à 1.

                                    En fait, si tu es Java maniaque, c'est *<bidule> qui devraient te choquer il me semble.
                                • [^] # Re: Nécessité de Java?

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

                                  déjà t'as oublié de paramètrer la liste avec le type int, ca risque pas de compiler ;)
                                  bon ben en tout cas j'ai pas d'exception comme en Java mais c'est affreusement lent comparé à C#
                                  (à vrai dire j'ai lancé le test avant d'écrire le début de ce post et c'est toujours pas fini d'exécuté ;) )
                                  (j'ai mis le fichier test.cpp dans le même dossier que les .cs et .java)
                                  • [^] # Re: Nécessité de Java?

                                    Posté par  . Évalué à 1.

                                    Ha oui ? Je suis vert. Regarde :

                                    [root@web1 root]# time ./pipo
                                    2280707264
                                    3.12user 0.30system 0:03.70elapsed 92%CPU (0avgtext+0avgdata 0maxresident)k
                                    0inputs+0outputs (0major+39338minor)pagefaults 0swaps

                                    C'est quand même pas si énorme non ?
                                    • [^] # Re: Nécessité de Java?

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

                                      Moi j'ai ca en C# :
                                      real 0m0.580s
                                      user 0m0.031s
                                      sys 0m0.000s

                                      En C++ en fait il faut plusieurs dizaines de secondes, mais je vais pas trop prendre ca en compte, vu que c'est exécuté sous cygwin avec g++...
                                      • [^] # Re: Nécessité de Java?

                                        Posté par  . Évalué à 1.

                                        Je suis bluffé. Comme quoi les STL ne sont peut être pas si bien écrites. Juste un truc, le sys 0m0.000s me surprends un peu. C'est possible ça ?
                                        • [^] # Re: Nécessité de Java?

                                          Posté par  . Évalué à 2.

                                          C'est pas la STL qui a un problème c'est l'usage que t'en fait.
                                          std::list est une liste chainée elle est très perfomante quand il s'agit d'ajouter ou de retirer des éléments à la liste.
                                          Dans le cas que tu as écrit le plus rapide est d'utiliser :

                                          static const int TAILLE = 10000000;
                                          std::vector lst = std::vector(TAILLE);

                                          qui te crée un tableau de taille 10000000 donc y a plus d'allocation, et les itérateurs sont très rapides puis que ceux sont alors des entiers.
                                          Pour conclure :
                                          Le C++ est plus rapide que c# ou java mais beaucoup plus difficil ;-)
                                          Sa force est dans la métaprogrammation (c.f. la bibliothèque boost) et les STL (en créant ses propres straits on fait du placement d'objet ce qui n'est pas possible en java).
                                          • [^] # Re: Nécessité de Java?

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

                                            Sa force est dans la métaprogrammation
                                            gni ? Pour moi métaprogrammation == programme qui génère un programme, et pour moi l'introspection, les generics C# et la génération dynamique de code sont quand même beaucoup plus fort que ce qu'offre C++...
                                            • [^] # Re: Nécessité de Java?

                                              Posté par  . Évalué à 1.

                                              La métaprogrammation en c++ c'est des programmes qui generent des programmes et fonts des calculs à la compilation. Ce mixte entre le cote dynamique et statique est très puisssant mais un difficile à bien maitriser. Essayez donc de calculer une factorielle à la compil avec les generics de java ou c#.

                                              Une bonne ref sur le sujet et sur son utilité c'est.
                                              Modern C++ Design: Generic Programming and Design Patterns Applied.
                                      • [^] # Re: Nécessité de Java?

                                        Posté par  . Évalué à 1.

                                        en C++ sous cygwin (g++ -O3), j'ai ca si on utilise des vector (equivalent aux arraylist). cpu: athlon-xp-2500+

                                        $ time ./a.exe
                                        2280707264

                                        real 0m0.411s
                                        user 0m0.343s
                                        sys 0m0.061s
                                      • [^] # Re: Nécessité de Java?

                                        Posté par  . Évalué à 3.

                                        Comparer une liste et une ArrayList aussi (j'imagine que l'implementation est equivalente en C#)...

                                        Y'en a qui ont vraiment pas honte...
                                        • [^] # Re: Nécessité de Java?

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

                                          En même temps là on compare la même chose puisqu'en C++ c'ests une liste et en C# aussi, pas d'arraylist pour les 2 là.
                                          • [^] # Re: Nécessité de Java?

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

                                            Autant pour moi, les List generic en C# sont l'équivalent des ArrayList. Enfin de toute façon mon but n'était pas de démontrer que C# était plus performant que C++ (ce que je ne crois pas évidemment), mais que Java avait un gros problème de ce côté là.
                          • [^] # Re: Nécessité de Java?

                            Posté par  . Évalué à 3.

                            J'ai essayé avec la librarie suivante et je n'ai eu aucun problème de perf :
                            http://www.sosnoski.com/opensrc/tclib/(...)

                            En fait,Timaniac fait référence à la manière dont sont traités les objets légers (struct) et l'auto-boxing (par ex. les types primitfs encapsulés dans des objets Integer/Float,etc.) en java par rapport à C#. Les implémentations sont différentes, chacune à ses avantages et ses inconvénients, mais cela n'empêche en aucun cas d'avoir de bonnes perfs en Java (comme en C#). De toute manière 99% des problèmes de perfs des applis réelles se retrouvent dans les algos et les libraries. Cf. un cas intéressant : http://www.spindazzle.org/green/wp-trackback.php/49(...) et http://www.spindazzle.org/green/wp-trackback.php/48(...) comme quoi !
                          • [^] # Re: Nécessité de Java?

                            Posté par  . Évalué à 1.

                            En Java, tout accès à un tableau est soumis à un test pour savoir si l'index est dans les limites du tableau, ce qui rajoute une opération par accès par rapport à C ou C++ par défaut.

                            Ce comportement peut être modifié avec l'opiton -fno-store-check de GCJ, tout comme il existe un patch de GCC (bounds-checking patch) qui permet de vérifier les limites d'un tableau en C ou C++.

                            Ensuite, en Java, on ne peut pas allouer un tableau dans le stack, il faut absolument passer par le heap, ce qui ralentit l'allocation ainsi que les accès.

                            Les tableaux en Java sont donc plus lents qu'en C/C++ mais c'est bien connu et le développeur qui veut de la perf les évite. Pour d'autres usages, la vérification des limites est bienvenue car c'est une cause majeure de bugs en C/C++.

                            C'est idiot de parler d'erreur de conception ici, Java se veut plus "sûr", donc c'est plus lent, puisque il y a plus d'opérations à exécuter. C'est mieux que de se retrouver dans une zone mémoire indéfinie et de faire exploser son système.

                            Et C#, il ne vérifie pas les limites des tableaux?
                            • [^] # Re: Nécessité de Java?

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

                              En C# aussi il y a des tests de débordement de tableau. De toute façon là on n'utilise pas des tableaux et pas des listes, et en C# comme en Java tout comme en C++ il y a des vérifications.
                              Cherchez pas une excuse je vous dis que le problème de conception vient bien de Java et de leur implémentation des generics :)
                              Le test et l'erreur retournée par le programme Java met clairement en évidence le problème : il y a allocation d'un objet sur le tas pour chaque entier.
                        • [^] # Re: Nécessité de Java?

                          Posté par  . Évalué à 2.

                          Java n'est pas intrinséquement lent... moins rapide que de l'assembleur je te l'accordre mais java permet d'avoir d'excellents applications rapides, belles et réactives.. les exemples ne manquent pas

                          Pourquoi ne pas nommer ces exemples ?

                          Ce serai la meilleure façon de convaincre ceux (visiblement nombreux) qui ne sont pas convaincus de la rapidité de java (et non ne parle pas de légereté).

                          Par exemple, personnellement, je n'ai jamais trouvé d'applications java rapides (mes dernieres tentatives sont eclipses 3.0 et argouml avec le JRE 1.5 de Sun). D'où un mauvais à priori.
                          • [^] # Re: Nécessité de Java?

                            Posté par  . Évalué à 1.

                            j'en ai un beau sous windows : eclipse 3 justement.
                            super reactif, il fait enormement de chose et vite, ca tourne sur une machine a 512 de ram (ouais, je sais, c'est pas rien, mais c'est monnaie courante et surtout indispensable pour un dev qui fait du desktop ou ce genre de chose)

                            ok, la version linux est a chier, trop lente, je suppute un pb de jvm et/ou d'implementation swt, toujours est il que si ca tourne tres bien sous windows ca devrait pouvoir se faire sous linux, non?
                            en tout cas ca montre bien que c'est faisable.

                            bref, faire du reactif en java c'est tout a fait faisable, faut pas faire n'importe quoi et savoir s'y prendre (comme tout, en fait).
                            • [^] # Re: Nécessité de Java?

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

                              Euh faut pas non plus se pisser dessus, Eclipse 3 n'a et ne sera jamais une référence en matière de réactivité. Sous Windows la completion est parfois lente à la détente, parfois l'interface "rammme" et on a la désagréable impression qu'il se passe un temps fou entre le moment où on cliquent et le moment où on a un retour (même si c'est moins d'une seconde).
                              Enfin ce n'est pas forcement lié à Java, Eclipse 3 faisant je trouve beaucoup de boulot par derrière, c'est un des IDE les plus puissant que j'ai vu donc bon je trouve normal qu'il demande une grosse config pour être à l'aise.
                              Pour Linux il y a clairement un problème avec Eclipse et/ou Java.
                              • [^] # Re: Nécessité de Java?

                                Posté par  . Évalué à 1.

                                marrant ce que tu dis, c'est pas du tout ce que j'ai ressenti.
                                sur quel type de machine l'as tu utilise?
                                pour l'instant je tourne sur un p4 2.4/1Go de ram (oui, je sais c'est monstrueux comme babasse, mais vu la brouette que j'avais avant, c'est merite) et c'est que du bonheur.

                                en fait, j'ai passe pas mal de temps sur le 2.1et la effectivement, on est en plein dans ce que tu dis.

                                je trouvais justement que le 3 reglait la majeure partie de ces problemes.
                                ou peut etre est ce tout simplement parce que j'etais tellement habitue a une certaine lenteur avec le 2.1 que le 3 me donne l'impression d'etre une bete de course alors qu'il ne l'est pas forcement..

                                comme quoi, la reactivite est quelque chose de tout a fait subjectif..

                                parait que les ergonomes appellent ca "l'experience utilisateur" :))


                                Pour Linux il y a clairement un problème avec Eclipse et/ou Java.
                                clair!! j'ai meme laisse tomber le dev java a la maison tellement c'est inutilisable quand on connait la version windows..
                                • [^] # Re: Nécessité de Java?

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

                                  sur un Athlon 1.4 Ghz (1700+) avec seulement 512 de RAM.
                                  Moi je compares surtout avec Visual Studio c'est peut être pour ça :-)

                                  Le truc qui m'a le plus fait halluciné, c'est que si tu as le malheur d'avoir un thread qui reste à tourner pendant le déboggage et que tu t'en apercoit pas (du coup tu appuis pas sur le bouton rouge pour stopper le déboggage), tu relances pleins de fois le déboggage et le pc ramme de plus en plus, jusqu'à ce que tu fasse un ps -edf | grep java et là qu'une réaction : "...".
                                  • [^] # Re: Nécessité de Java?

                                    Posté par  . Évalué à 0.

                                    Visual Studio... cette espèce de bouse incapable de gérer le refactoring ?
                                    Le machin qui oblige à lier ses projets web avec IIS (ce qui provoque 1 fois sur 3 des problèmes et oblige à redémarrer IIS, ou VS, ou les deux ou à faire des trucs pas catholiques pour résoudre le merdier).
                                    • [^] # Re: Nécessité de Java?

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

                                      Visual Studio... cette espèce de bouse incapable de gérer le refactoring ?
                                      Désolé j'utilise la beta 2 de visual studio 2005 et j'ai le refactoring :)

                                      Le machin qui oblige à lier ses projets web avec IIS
                                      C'est le problème de l'intégration (déboggage, etc.). Si tu pars de ce principe y'a le même problème avec tomcat (de toute façon au final, sous vs comme sous eclipse tu finis par faire un script ant ou nant)
                                      • [^] # Re: Nécessité de Java?

                                        Posté par  . Évalué à 1.

                                        Oui moi aussi j'utilise VS 2005 en beta2, c'est PAS DU TOUT repompé sur Eclipse 3 ;) ohhhhhhhhhh !!! (mais j'imagine que ça ne va pas être digne d'être jugé pertinent, n'est-ce pas ?)

                                        Bon il se mélange encore un peu les pédales dans le parcours des DLLs de .NET v2 (je te conseille de tenter d'accéder à la doc de System et System.configuration, il y a un beau mélange entre namespaces), mais il est utilisable.

                                        Pour le débogage je veux bien, mais Eclipse ne m'oblige pas à ce que mon projet soit lié à Tomcat pour _créer_ un projet Web. Je veux ouvrir un projet web ASP.NET dans VS 2003 pour lire le source ? Ah ben c'est pas possible sans IIS !
                                        C'est tellement con qu'ils sont revenus en arrière dans VS 2005 en intégrant Cassinni :)
                                        • [^] # Re: Nécessité de Java?

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

                                          Oué VS 2005 pompe des trucs sur Eclipse. Et ? Eclipse n'a pompé sur personne ? VS 2005 a quand même des trucs qui tuent, à commencer par ce foutu Class Designer qui en jette. (Dommage que ce ne soit pas de l'UML mais les raisons sont à mon sens louable, cela à l'avantage de proposer une autre approche sans concurrencer son partenenaire IBM avec Rational ;) )

                                          Je veux ouvrir un projet web ASP.NET dans VS 2003 pour lire le source ?
                                          Faudrait que j'essai tiens :) Mais effectivement je m'attend pas à des miracles, j'avoue que la premières fois que j'avais utilisé VS.NET je trouvais ca pas top top qu'il commence par me demander où je voulais mettre mon projet dans VS... Enfin c'est sans doute ce qu'il faut sacrifier pour avoir une intégration qu'il faut bien reconnaître est plutôt bien foutu : déploiement, déboggage.

                                          C'est tellement con qu'ils sont revenus en arrière dans VS 2005 en intégrant Cassinni :)
                                          Le serveur qu'on code en 10 lignes ? Oué c'est vrai que ca devait pas être bien dur à intégrer direct dans VS ;)
                            • [^] # Re: Nécessité de Java?

                              Posté par  . Évalué à 2.

                              'en ai un beau sous windows : eclipse 3 justement.
                              [...]
                              ok, la version linux est a chier, trop lente

                              Heu, tu n'aurai pas un autre exemple ?

                              Quelque chose qui puisse convaincre un utilisateur de linux (je pense la plupart des gens qui lisent linuxfr) ? Parcequ'en l'occurence c'est plutôt un contre exemple pour nous ...
                              • [^] # Re: Nécessité de Java?

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

                                Oué mais comme il l'a dit le problème sous linux vient en grosse partie de la JVM, donc t'auras le même problème avec toutes les applis ;)
                                • [^] # Re: Nécessité de Java?

                                  Posté par  . Évalué à 1.

                                  ouala, le monsieur a tout resume, la jvm linux est a chier, et c'est bien dommage.

                                  cela dit, eclipse doit etre la seule appli java que j'utilise au quotidien, j'suis developpeur java, mais je l'utilise assez peu, faites ce que je dit, pas ce que je fais :))

                                  sinon, je te ferais bien essayer ce que je developpe au taff, mais ya une appli interne (donc pas sortable), et la deuxieme c'est du "java for windows only" (base de registre, chemin en c:, mes documents toussa quoi), donc je sais meme pas si ca se lance sur linux
                                • [^] # Re: Nécessité de Java?

                                  Posté par  . Évalué à 2.

                                  CQFD
                      • [^] # Re: Nécessité de Java?

                        Posté par  . Évalué à 1.

                        > beaucoup de cas d'utilisation c'est lent

                        Lequels ? Et si ce n'est pas le cas pour OOo, alors ou est le problème ?

                        Quant à moi, je pense que la gestion de mémoire à travers une GC est plutot une bonne chose (java ou autre). Moins de bugs, moins de fuites mémoires, dévéloppement plus rapide, etc. Bref plus d'avantages que d'inconvénients tant que ne développes pas des applications temps réel ou des drivers.
                        • [^] # Re: Nécessité de Java?

                          Posté par  . Évalué à 2.

                          Le confort du développeur ne correspond pas forcément (et carrément pas dans ce cas) au confort de l'utilisateur.
                          Qu'est-ce qu'on veut ? Faire une application sans se fouler en développement et en débuggage ou une suite office utilisable sur un PC normal ?
                          • [^] # Re: Nécessité de Java?

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

                            Oui mais OO est loin d'etre unitilisable...

                            http://about.me/straumat

                            • [^] # Re: Nécessité de Java?

                              Posté par  . Évalué à 3.

                              Hors troll anti Java, l'utilisation d'OOo sur un PIII 700 reste assez fastidieuse quand même (en tout cas avec Linux/KDE). Bon j'ai pas un PC de gamer mais bon c'est que de la bureautique quoi !
                              J'ai la foi mais elle est parfois mise à rude épreuve.
                              • [^] # Re: Nécessité de Java?

                                Posté par  . Évalué à 2.

                                Et cela n'a rien avoir avec Java car 99% du code de OOo et en C/C++. Comme quoi il est parfaitement possible de faire des programmes trés lent avec des langages conventionnels. Pour l'histoire, il faut savoir que StarOffice 5.2 était encore plus lent.
                              • [^] # Re: Nécessité de Java?

                                Posté par  . Évalué à 2.

                                et kde sur un pIII700 ca te prend combien deja?
                        • [^] # Re: Nécessité de Java?

                          Posté par  . Évalué à 1.

                          bien d'accord avec toi sur le GC.

                          en 2005 on a autre chose a faire que de se farcir une gestion douloureuse et inutile de la memoire (inutile parce qu'une machine est capable de le faire, c'est donc une tache mecanique toute conne), le temps perdu a l'execution est largement compense par le temps (et les cheveux, c'est que passe 30 piges, ca devient chauve un developpeur) economise par les developpeurs.

                          Sur le debat : java c'est trop lent, j'ai envie de dire : trop lent pour faire quoi?
                          Prenez eclipse (sous windows j'entends, la version linux est malheureusement trop lente a mon gout).
                          Qui pourrait dire au premier abord que c'est une appli java?

                          A l'inverse, on peut aussi trouver des grosse merde lente en c++, tout comme on va trouver des bouses immonde en java et des foudres de guerre en c++.

                          j'ai un peu du mal a comprendre les discours de type "java/c++/c#/mono/python/c'quetuveux ca pue c'est trop ci pas assez ca".
                          tout depend des contraintes du projet, du public visé, de la reprise ou non d'un existant, des architectures visees etc..
                          • [^] # Re: Nécessité de Java?

                            Posté par  . Évalué à 0.

                            > en 2005 on a autre chose a faire que de se farcir une gestion douloureuse et inutile de la memoire
                            Ben oui, c'est pas comme si c'était notre métier.

                            > (inutile parce qu'une machine est capable de le faire,
                            mal

                            > c'est donc une tache mecanique toute conne),
                            Pas tant que ça apparemment

                            > le temps perdu a l'execution est largement compense par le temps (et les cheveux, c'est que passe 30 piges, ca devient chauve un developpeur) economise par les developpeurs.
                            Ha ben oui, qu'est-ce qu'ils font chier, les utilisateurs à vouloir des applis qui tournent !

                            > Sur le debat : java c'est trop lent, j'ai envie de dire : trop lent pour faire quoi?
                            En l'occurence pour une application interactive sur poste de bureau (pas un Craig II)

                            > Prenez eclipse (sous windows j'entends, la version linux est malheureusement trop lente a mon gout).
                            Hé ben voilà !

                            > Qui pourrait dire au premier abord que c'est une appli java?
                            Toi apparemment.

                            > A l'inverse, on peut aussi trouver des grosse merde lente en c++, tout comme on va trouver des bouses immonde en java et des foudres de guerre en c++.
                            while (1);
                            effectivement
                            • [^] # Re: Nécessité de Java?

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

                              en 2005 on a autre chose a faire que de se farcir une gestion douloureuse et inutile de la memoire. Ben oui, c'est pas comme si c'était notre métier.
                              Ce n'est plus notre métier.. l'informatique a évolué quand même ! Heureusement qu'on a plus à gérer ces problèmes, les drivers d'imprimantes, les protocoles réseau, l'accès aux données....

                              > (inutile parce qu'une machine est capable de le faire,
                              mal

                              Archi faux.. je développe des applis utilisés par des centains d'utilisateurs et sans gérer la mémoire, elle se gère toute seule!

                              Ha ben oui, qu'est-ce qu'ils font chier, les utilisateurs à vouloir des applis qui tournent !
                              Comme si les applis java tournaient pas.. c ridicule de répondre comme ça.

                              http://about.me/straumat

                              • [^] # Re: Nécessité de Java?

                                Posté par  . Évalué à 7.

                                Ce n'est plus ton métier, mais c'est encore le mien. Et moi je développe des applis utilisées par des millions d'utilisateurs. Et toc. :o)

                                L'informatique a évolué, on trouve des langages de plus en plus haut niveau, on peut s'abstraire de plus en plus du matériel, mais le bas niveau est toujours là, et il y a toujours des choses à y faire.

                                L'un des avantages que je trouve à bosser près du système, c'est que l'évolution de l'informatique est beaucoup plus lente vers le bas que vers le haut. Je préfère ne pas participer à la course vers l'abstraction et le haut niveau, ca m'évite de me retrouver avec trop de compétences obsolètes.

                                Dans ton contexte, une gestion automatisée de la mémoire, c'est peut-être bien, dans le mien c'est une monstruosité.
                                • [^] # Re: Nécessité de Java?

                                  Posté par  . Évalué à 2.

                                  Et moi je développe des applis utilisées par des millions d'utilisateurs.

                                  Si t'es développeur Windows, à ta place, je me vanterais pas... :-)
                            • [^] # Re: Nécessité de Java?

                              Posté par  . Évalué à 2.

                              > Ben oui, c'est pas comme si c'était notre métier.
                              nan, mon boulot c'est d'automatiser des traitements de donnees, pas de me casser les couilles a savoir si une variable va encore etre utilisee.
                              'fin chais pas, a une epoque ou les compilos etaient trop mauvais, on devait surement trouver des gens pour dire ca aussi.

                              >> (inutile parce qu'une machine est capable de le faire,
                              >mal
                              ben mieux que la plupart des humains en tout cas, vu les fuites memoires qu'on rencontre un peu partout.

                              >> c'est donc une tache mecanique toute conne),
                              >Pas tant que ça apparemment
                              ben si, c'est con : une machine arrive a le faire. Si c'est plus reference, tu liberes, c'est pas trop dur quand meme.

                              >> Sur le debat : java c'est trop lent, j'ai envie de dire : trop lent pour faire quoi?
                              >En l'occurence pour une application interactive sur poste de bureau (pas un Craig II)
                              c'est marrant ce que tu dis, j'ai developpe deux applis desktop qui tournent parfaitement en java/swt.

                              >> Prenez eclipse (sous windows j'entends, la version linux est malheureusement trop lente a mon gout).
                              >Hé ben voilà !
                              he ben voila quoi? tu preferes voir le verre a moitie vide ou a moitie plein? en l'occurence, il est a moitie plein sous windows...

                              >> A l'inverse, on peut aussi trouver des grosse merde lente en c++, tout comme on va trouver des bouses immonde en java et des foudres de guerre en c++.
                              >while (1);
                              >effectivement
                              et sinon, t'as des arguments ou t'as eu la gaule en voyant un troll sur java et t'as fait une tache dans ton calecon?
                              • [^] # Re: Nécessité de Java?

                                Posté par  . Évalué à 0.

                                >> Ben oui, c'est pas comme si c'était notre métier.
                                > nan, mon boulot c'est d'automatiser des traitements de donnees, pas de me casser les couilles a savoir si une variable va encore etre utilisee.
                                'fin chais pas, a une epoque ou les compilos etaient trop mauvais, on devait surement trouver des gens pour dire ca aussi.

                                Ha ben oui, t'es automatiseur de traitements de données mais pas casseur de mes couilles. C'est ça ?

                                >>> (inutile parce qu'une machine est capable de le faire,
                                >>mal
                                > ben mieux que la plupart des humains en tout cas, vu les fuites memoires qu'on rencontre un peu partout.

                                ben mieux que toi manifestement mais vu la quantité de mémoire inutilement utilisée par les applis Java, je pense que tu peux y arriver.

                                >>> c'est donc une tache mecanique toute conne),
                                >>Pas tant que ça apparemment
                                > ben si, c'est con : une machine arrive a le faire. Si c'est plus reference, tu liberes, c'est pas trop dur quand meme.

                                non, mal. Il faut référencer la mémoire (maintenir une table des blocs alloués), tester (mais quand) les références sur cette mémoire, décider si on peut ou ne peut pas libérer ou si on peut réutiliser cette mémoire pour une allocation utltérieure, ... Si c'est dur.

                                >>> Sur le debat : java c'est trop lent, j'ai envie de dire : trop lent pour faire quoi?
                                >>En l'occurence pour une application interactive sur poste de bureau (pas un Craig II)
                                > c'est marrant ce que tu dis, j'ai developpe deux applis desktop qui tournent parfaitement en java/swt.

                                Salut Dieu.

                                >>> Prenez eclipse (sous windows j'entends, la version linux est malheureusement trop lente a mon gout).
                                >>Hé ben voilà !
                                > he ben voila quoi? tu preferes voir le verre a moitie vide ou a moitie plein? en l'occurence, il est a moitie plein sous windows...

                                Windows ? Connais pas. Tout à l'heure j'étais sur Linuxfr mais j'ai dû glisser.

                                >>> A l'inverse, on peut aussi trouver des grosse merde lente en c++, tout comme on va trouver des bouses immonde en java et des foudres de guerre en c++.
                                >>while (1);
                                >>effectivement
                                > et sinon, t'as des arguments ou t'as eu la gaule en voyant un troll sur java et t'as fait une tache dans ton calecon?

                                Ha ok ! Un philosophe doublé d'un dialecticien. C'est intéressant mais là je ne poursuivrai pas car je suis cloué par le choc d'un argument aussi léché.
                                • [^] # Re: Nécessité de Java?

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

                                  Encore des arguments à la con...

                                  "ben mieux que toi manifestement mais vu la quantité de mémoire inutilement utilisée par les applis Java, je pense que tu peux y arriver."
                                  J'ai beaucoup moins de fuites mémoires en java qu'en c++ !

                                  Ca a dut m'arriver 3 fois dans ma carrière.

                                  "non, mal. Il faut référencer la mémoire (maintenir une table des blocs alloués), tester (mais quand) les références sur cette mémoire, décider si on peut ou ne peut pas libérer ou si on peut réutiliser cette mémoire pour une allocation utltérieure, ... Si c'est dur."
                                  Beh tout ça, c du temps de perdu... c boulot n'a plus à etre fait.. enfin, venant d'un mec qui croit que make, c le tiptop, je me dis que tu as pas du souvent coder en java.

                                  http://about.me/straumat

                                  • [^] # Re: Nécessité de Java?

                                    Posté par  . Évalué à 1.

                                    > Encore des arguments à la con...
                                    Là, il n'y avait aucun argument. Je répondais avec mauvaise foi à un type basique

                                    > "ben mieux que toi manifestement mais vu la quantité de >mémoire inutilement utilisée par les applis Java, je pense que tu >peux y arriver."
                                    > J'ai beaucoup moins de fuites mémoires en java qu'en c++ !
                                    Je ne parle pas de fuite mémoire (assimilable à un bug) mais d'occupation mémoire normale.

                                    > Ca a dut m'arriver 3 fois dans ma carrière.
                                    Ta vie.

                                    >> "non, mal. Il faut référencer la mémoire (maintenir une table des blocs alloués), tester (mais quand) les références sur cette mémoire, décider si on peut ou ne peut pas libérer ou si on peut réutiliser cette mémoire pour une allocation utltérieure, ... Si c'est dur."
                                    > Beh tout ça, c du temps de perdu... c boulot n'a plus à etre fait..
                                    Je ne te le fais pas dire, c'est la description du boulot que réalise le garbage collector.

                                    > enfin, venant d'un mec qui croit que make, c le tiptop
                                    Ok bon, "make c'est nul", là ça ira ?

                                    > , je me dis que tu as pas du souvent coder en java.
                                    Supposition osée.
                                  • [^] # Re: Nécessité de Java?

                                    Posté par  . Évalué à 1.

                                    En c++, tu peux utiliser les pointeurs intelligents de boost (boost.org) et les problemes d'allocation / liberation disparaissent. Beaucoup de developpeurs perdent encore leur temps mais heureusement sinon ils seraient au chomage ... et actuellement c'est plutot malheur aux chomeurs.
                                • [^] # Re: Nécessité de Java?

                                  Posté par  . Évalué à -5.

                                  >Ha ben oui, t'es automatiseur de traitements de données mais pas >casseur de mes couilles. C'est ça ?
                                  nan, c'est simplement que si je me concentre uniquement sur des problemes bassement techniques, je me fait remplacer par une machine dans 5 ans.
                                  'fin c'est toi qui voit la carriere que tu veux faire, hein.

                                  >ben mieux que toi manifestement mais vu la quantité de mémoire >inutilement utilisée par les applis Java, je pense que tu peux y arriver.
                                  mais oui, marmotte, chocolat toussa.

                                  >Salut Dieu.
                                  salut pov' tache.

                                  >Windows ? Connais pas. Tout à l'heure j'étais sur Linuxfr mais j'ai dû glisser.
                                  hmmm.. a voir la teneur de tes propos, j'ai l'impression qu'il ya BEAUCOUP de choses que tu ne connais pas.

                                  t'es mignon, continues comme ca.
                                  Enfin pas trop, quand meme, t'as le bac a la fin de l'annee, et avec les greves que tu n'as pas du manquer de faire, ca va etre auch pour toi.
                                  Tu reviendras discuter avec moi quand t'auras mue (et des poils sur la bite aussi).
                                  • [^] # Re: Nécessité de Java?

                                    Posté par  . Évalué à -3.

                                    > Tu reviendras discuter avec moi quand t'auras mue (et des poils sur la bite aussi).

                                    J'ai bien regardé, les poils du sexe ne se situent pas sur la verge.
                                    Demande à ton grand frère petit nain.
                                    • [^] # Re: Nécessité de Java?

                                      Posté par  . Évalué à -2.

                                      le thread sur le parler francais correct, c'est en dessous, maitre capello.
                          • [^] # Re: Nécessité de Java?

                            Posté par  . Évalué à 1.

                            Justement, c'est le GC qui est foireux. Ils devraient plutôt faire une analyse statique du code pour éliminer un maximum de cas ou les places des désalocations sont triviales, et laisser le GC traiter les allocations que l'ananlyse statique n'a pas su gérer.

                            Le problème de Java, ce sont justement ses concepteurs, qui n'ont rien à foutre des perfs.

                            Ils sont dans un trip tout blanc/tout noir mes en fait ils auraient pu développer un langage plus performant en passant sur des modifs minimes.
                      • [^] # Re: Nécessité de Java?

                        Posté par  . Évalué à 10.

                        Ou alors faut remonter à des versions de la préhistoire du noyau où ils avaient désactivé le cache lol.

                        Il ne faut jamais désactiver le cache lol. Un ordinateur sans cache lol, c'est aussi utilisable qu'une cafetière sans filtre.

                        Par exemple, prenons le court extrait suivant:


                        'tain *** koman c tro *** chuis tro ptd*** il é ***ant ce mec! ************************* ********************* ***


                        Sans cache lol, il ressemble à ça:


                        (Pour des raisons légales, nous ne pouvons reproduire ce texte ici. Le lecteur curieux pourra le retrouver sur skyblog, en cherchant un peu. Merci de votre compréhension.)
                • [^] # Re: Nécessité de Java?

                  Posté par  . Évalué à 1.

                  Ha ? J'en viens du www.chimboz.com. Je clique sur le lien "Le site" vers www.chapatiz.com : 26 secondes.
                  C'est la même techno celui là aussi ? J'espère que c'est juste parce qu'il a un succès fou ce site et qu'il est très chargé ou parce que la bande passante est un peu juste parce que sinon la démo est un peu légère.
            • [^] # Re: Nécessité de Java?

              Posté par  . Évalué à 3.

              Je n'ai pas l'impression que j'avais soit lent, par contre, j'ai l'impression que ça consomme beaucoup de Ram, à moins que ce soit juste les applications que j'utilise qui soit mal conçus.
              Depuis quelques temps, je bosse avec Tomcat, OpenOffice (l'Api), Eclipse et chacun consomme pas mal de ram. Tous ensembles, ça swap à mort ! A tel point que si je n'avais pas l'intention de changer prochainement de portable, j'aurais déjà investi dans une barette de 512Mo de Ram juste pour eux.

              Je veux bien croire que ça vienne plus des applis que de Java même, mais c'est une drôle de coincidence. Aupavant, le swap ne servait presque pas.
              • [^] # Re: Nécessité de Java?

                Posté par  . Évalué à 2.

                Non, ça vient de la JVM, pas des applis.

                Les classes sont chargées en mémoire puisqu'il s'agit d'un interpréteur. Et en plus, lorsque la JVM précompile certaines parties de code (avec le JIT), elle les cache en mémoire aussi.

                Donc, on garde en mémoire les classes (.class) -- même celles qu'on n'utilise pas car les .jar sont chargés en entier (pas sûr)--, les dictionnaires (méta-données) des classes (nom de classe, des méthodes, des champs + accès), les bouts de code précompilés. C'est lourd tout ça... Mais il n'y a que la mémoire qui soit affectée, pas les perfs. Et tout se situe au niveau de la JVM, c'est pour ça que Eclipse compile et débugue assez rapidiment: tout se fait dans la MÊME JVM.

                Avec GCJ, on élimine un des trois éléments à garder en mémoire: les .class. Ce n'est pas négligeable.
                • [^] # Re: Nécessité de Java?

                  Posté par  . Évalué à 0.

                  Les .class ne sont pas généralement pas gardés en mémoire, seules les métadonnées et le code de l'application plus le code de la JVM, ce qui est déja pas mal.

                  Le couple VM/appli nécessite donc plus de mémoire qu'une appli classique et les temps de lancement ne sont pas négligeable. En revanche les temps d'éxécution sont plus comprable à ceux d'u langage classique.
        • [^] # Re: Nécessité de Java?

          Posté par  . Évalué à 7.

          Franchement, je ne comprends pas pourquoi ils font ça.
          OOo a un problème assez connu au niveau des performances, certains disent que c'est par rapport à la couche graphique et l'équipe de développement annonce l'utilisation d'une techno franchement fantaisiste pour les nouvelles fonctionnalités plutôt que de s'apesantir sur ce qui pêche.
          Je ne sais pas moi, une interface QT ou GTK ou un truc qui ressemble à ce qui se fait d'habitude quoi.
          Mais non, GCJ ou JVM Sun, on aura en plus un processus nommé java probablement multi threadé en 40000 instances avec des copains à lui qui font des trucs, autrement dit sur un poste client, du "soffice" à donf, du "java" en veux-tu en voilà, un "ps" ignoble, un load à faire pitié, un "free" qui fout les boules et tout ça pour taper une lettre de motivation.
          Je crois que je vais tester MSOffice avec Wine tout compte fait, cela ne peut pas être pire à mon avis (que quelqu'un me dise si je me trompes) ou alors Koffice tadadam : tout en C++, directement interprété par la meilleure machine virtuelle du marché ; Linux.
      • [^] # Re: Nécessité de Java?

        Posté par  . Évalué à 2.

        Oui mais du coup, java n'est pas beaucoup plus portable!
        Ça va marcher sous, euh,... toutes les plate-formes où la jvm de sun est portée.
        C'est à dire windows, linux x86, (peut être ppc? même pas!), mac. Et c'est tout(ah, si solaris, mais c'est pas important). Rien d'autre. Super la portabilité...
  • # Correction

    Posté par  . Évalué à 5.

    Il aimerait par exemple que la compatibilité avec les versions libres de Java soit directement inclue

    Incluse. Inclure et exclure ne se conjuguent pas de la même manière au participe passé.
    • [^] # Re: Correction

      Posté par  . Évalué à 10.

      J'adooooore le français :-) Au moins, c'est une langue qu'on est sûrs de ne jamais maîtriser.
      • [^] # Re: Correction

        Posté par  . Évalué à 6.

        La preuve par l'exemple :
        "on est sûr" : "on" : singulier, "est" : singulier, "sûr" ... aussi :-P
        • [^] # Re: Correction

          Posté par  . Évalué à 1.

          T'es sûr de ça? J'ai hésité... Tu dis "on est perdu"? "on est seul"? Sérieusement, "on est seul" me choque beaucoup. "On est le seul à penser que le français est une langue difficile" :-) On n'est pas le seul à se tromper, apparemment :-)
          • [^] # Re: Correction

            Posté par  . Évalué à 3.

            C'est pas trés choquant si tu te rappelles de tes cours de primaire :

            Je
            Tu
            Il/elle/on
            Nous
            Vous
            Ils/elles

            De fait, un doute sur une phrase avec un 'on' ? Remplace le par il

            Il est seul
            • [^] # Re: Correction

              Posté par  . Évalué à 1.

              Je ne suis pas d'accord. "On" se conjugue à la troisième personne, mais s'accorde au pluriel. On dit "On est les seuls", j'ai jamais entendu dire "On est le seul". "On n'a pas la chance d'être des profs de français". Enfin chacun dit comme il veut, hein...
              • [^] # Re: Correction

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

                Autre exemple bien farfellu:

                Plus d'un est parti en vacances.

                Plus d'un représente logiquement un pluriel mais s'accorde pourtant au singulier.

                Le français est un vrai cauchemar grammatical...
                • [^] # Re: Correction

                  Posté par  . Évalué à 3.

                  boah non : "Plus d'un" forme UN ensemble.

                  La grammaire (française et autres langues) fait enormement intervenir les notions de logique. Et de mémoire (a causes des exceptions).

                  Logique/exceptions, des mots qui devraient plaire a certains matheux/informaticiens.

                  Mais la, nous sommes censes parler de Java, Open Office...
                  Donc on s'en fout.


                  Petit apparte sur le "on" :
                  comme disait mon prof de francais a l'epoque : "on" est un con.
                  Utiliser nous et conjuguer la premiere personne du pluriel est possible.
                  Derniere chose, comme on utilise "on" justement, on tombe de nouveau dans un contexte (sémantique ?) ensembliste : le singulier est donc de mise (cf plus haut).
                • [^] # Re: Correction

                  Posté par  . Évalué à 1.

                  C'est pas pire que l'anglais.

                  Si tu peux me dire pourquoi, au contraire du français, information est pluriel, j'en serais tres heureux, et peux etre que je le retiendrai mieux :)

                  D'ailleurs pour dire information au singulier, il faut dire "a piece of information".

                  Le français n'a pas le monopole des bizarreries.
                  • [^] # Re: Correction

                    Posté par  . Évalué à 2.

                    C'est juste parce qu'ils considere l'information comme quelque chose d'indenombrable. Comme "a piece of cake".
              • [^] # Re: Correction

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

                Parce que « on » est utilisé à la place de « nous » dans le langage parlé, bien que le sens soit différent. Le langage parlé est loin d'être une preuve de correction du langage :).

                « On » indique une troisième personne anonyme/indéfinie. Par exemple, « on a marché sur la Lune » veut dire « quelqu'un a marché sur la Lune ».

                D'ailleurs dans ton exemple, le plus drôle c'est que le premier « on » est juste mais le deuxième est faux ; elle devrait être : « On dit "Nous sommes les seuls" ».

                Elle devrait aussi utiliser des guillemets français, d'ailleurs.
              • [^] # Re: Correction

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

                « On est les seuls » est une faute de français. C'est « Nous sommes les seuls » qu'il faut dire et écrire.

                D'ailleurs, une autre faute : les guillemets français sont les « » et non les " " anglophones. De plus, ces guillemets sont séparés en français de leur contenu par un espace insécable.

                Maintenant, si vous voulez bien continuer cette discussion sur françaisfr.org, merci... ;-)
                • [^] # Commentaire supprimé

                  Posté par  . Évalué à 2.

                  Ce commentaire a été supprimé par l’équipe de modération.

                • [^] # Re: Correction

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

                  > D'ailleurs, une autre faute : les guillemets français sont les « » et non les " " anglophones.

                  Non, tes "" ne sont pas les guillemets de la Perfide Albion, mais les doubles cotes. Les guillemets anglais doubles (“”) sont d'ailleurs utilisés en français, pour les citations imbriquées.

                  Soit dit en passant, depuis l'arrivée d'Unicode, il n'y a plus vraiment de raisons de se priver d'utiliser les caractères exotiques auparavant indisponibles, entre autres les codes U+2000-U+26FF sont souvent utiles.

                  > Maintenant, si vous voulez bien continuer cette discussion sur françaisfr.org, merci... ;-)

                  Là, on se dirige plutôt vers typo-fr.org :-)

                  Envoyé depuis mon PDP 11/70

              • [^] # Re: Correction

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

                C'est tout le paradoxe du "on". Il est singulier alors qu'il est couramment utilisé pour représenter plusieurs personnes... Dans le langage parlé, il est rare de dire "nous", "on" est plus volontiers utilisé :
                on est sur linuxfr au lieu de nous sommes sur linuxfr

                Mais je pense que c'est une déformation du langage (d'aucuns diraient évolution?), "on" devrait à pon avis être plutôt utilisé dans ce genre de cas :
                "on évaluera les performances de..."
                "on m'a appris que ..."

                ok, la nuance est pas évidente, d'autant que pour le coup, elle est très subjective.

                Pour compléter mon intuition, j'ai fait un coup de google, et en fait, la mise au pluriel de la 3e personne du singulier est tolérée avec "on", mais aussi dans bien d'autres cas !!!

                La langue française est décidément bien compliquée...

                http://www.cslf.gouv.qc.ca/Publications/PubD108/D108AnnF-K.html(...)
          • [^] # Re: Correction

            Posté par  . Évalué à 0.

            bah ouais il est sur, si tu utilise "est", faut mettre un singulier derriere, ou alors remplacer "est" par "sont", mais "on sont surs", ca sonne plus vraiment francais... :))

            -->[]
          • [^] # Re: Correction

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

            <mode linguiste à 30¢>

            Utilisation classique du on à la place du nous qui semble parfois être de la langue soutenue. Le on est aussi utilisé dans le sens "Les gens, en général".

            Cependant on dit nous disons bien "on est", donc singulier, et l'attribut doit s'accorder avec le sujet.

            </mode linguiste à 30¢>
            • [^] # Re: Correction

              Posté par  . Évalué à -1.

              "On est seul" mais "On est les seuls", c'est ça? J'admet que je ne suis pas convaincu, au moins dans la pratique, je ne suis pas certain que l'accord est fait au singulier.
              • [^] # Re: Correction

                Posté par  . Évalué à -1.

                Sûrement parce qu'il faudrait dire :

                on est seul (sur linuxfr)
                nous sommes les seuls (sur linuxfr)

                on est le seul (geek sur linuxfr)
                nous sommes les seuls (geeks sur linuxfr)
                • [^] # Re: Correction

                  Posté par  . Évalué à 2.

                  Euh, le post de départ n'était il pas au sujet d'une suite (OpenOffice je crois) et de l'intégration de Java ? ;-)
                  Ah non, je me suis trompé de salle... Ici c'est la salle de Français veuillez m'excuser ;-)

                  Pas trop de moins svp !!
                  • [^] # Re: Correction

                    Posté par  . Évalué à 1.

                    Ah oui !

                    Je viens de relire la news, tu as raison, je m'etais arreté au debut du titre Accord entre la [...]

                    Hauts temps pour moi.
                    • [^] # Re: Correction

                      Posté par  . Évalué à 3.

                      Hauts temps pour moi.

                      Puisque tu mets ça sur le tapis, j'en profite pour rappeler que "Autant pour moi" et "Au temps pour moi" sont deux écritures tout à fait correctes (la seconde étant l'originale)..
                      • [^] # Re: Correction

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

                        Bon avant que ça parte en coui^Wsucette,alors là je dis tout de suite STOOOP ---> http://www.langue-fr.net/index/A/au_temps-autant.htm(...)

                        « Autant pour moi » c'est quand lorsqu'une personne désire la même chose qu'une autre :
                        - Tiens j'aimerais bien reprendre un peu de tarte ! S'exclama pierre T.
                        - Autant pour moi, répliqua gwendoline (aux yeux verts)

                        « Au temps pour moi », cette expression est ultilisée lorsqu'une personne reconnaît être dans l'erreur :
                        - Ce logiciel est gpl c'est donc libre et par conséquent gratuit
                        - Ce n'est pas parce que un logiciel est libre qu'il est forcément gratuit
                        - Au temps pour moi (sous entendu, au temps pour moi de me remettre en question)

                        • [^] # Re: Correction

                          Posté par  . Évalué à 3.

                          Comme expliqué dans le lien que tu nous donnes, le débat fait rage depuis de nombreuses années. Il est clair que "au temps" est la graphie originale, mais comme si bien dit plus haut "Le français n'est pas régi par la loi, c'est l'usage et donc les usagers qui le définissent..

                          La faute a fini par se banaliser au fil des années. C'est courant et ce phénomène est à l'origine de nombreux mots que tu emploies aujourd'hui.

                          Les langues vivantes vivent.
                        • [^] # Re: Correction

                          Posté par  . Évalué à -1.

                          Tiens on peut aussi faire des trolls en linguistique?

                          Pour ma part, j'avais entendu que le fameux "au temps" était une sorte de canular ou d'interprétation hasardeuse parue dans un ouvrage qui a fait référence depuis. L'expression "au temps", pas du tout intuitive, aurait alors été reprise par une élite intellectuelle (une sorte de "je me la pête", quoi, un peu équivalent à ceux qui déclinent en latin les pluriels, comme "maxima", "optima", "fora" --sisi, j'ai déja vu ça--). Du coup, "au temps" serait une sorte de légende urbaine linguistique, certains brandissant des études sérieuses pour appuyer ce qui n'était à la base qu'un canular (comme quoi, avec les yeux de la foi, on peut vraiment prouver n'importe quoi).
                          • [^] # Re: Correction

                            Posté par  . Évalué à 2.

                            Regarde dans un vieux dico : se mettre "au temps" dans le langage militaire, c'est recommencer le mouvement quand tu l'as loupé...
                      • [^] # Re: Correction

                        Posté par  . Évalué à 4.

                        OTAN pour moi est français aussi, mais c'est pas du De Gaulle.
            • [^] # Re: Correction

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

              La preuve, l'expression bien connue On, c'est un con !
              OK -> []
        • [^] # Re: Correction

          Posté par  (site web personnel, Mastodon) . Évalué à 2.

          "On est tous égaux" pas "on est égal" ...

          Donc je vote pour le pluriel !

          Mes livres CC By-SA : https://ploum.net/livres.html

          • [^] # Re: Correction

            Posté par  . Évalué à 3.

            « Quelle est la différence entre un pigeon ? » -- Coluche

            _On_ devrait dire : « Nous sommes tous égaux. » ou « On est égal à quiconque. »

            Pour info, on signifie tout simplement homme. Eh oui, il y a un passage de la graphie om à homme pour l'un et à on pour l'autre. La preuve en est l'utilisation fréquente de l'article devant on : « L'on fait ce que l'on veut. »

            En ce qui concerne le « vote », je n'ai pas connaissance d'une régulation élective du français écrit.

            Le français n'est pas régi par la loi, c'est l'usage et donc les usagers qui le définissent. Par contre, si un groupe d'usagers décident unilatéralement de modifier leur usage, c'est leur problème si les autres ne sont pas d'accord ou ne les comprennent plus.

            En ce qui concerne mon utilisation de devrait plus haut, celle-ci doit être prise comme un avis permettant de conserver la cohérence historique du français, de son usage et de sa grammaire et non comme une règle que j'imposerais d'une autorité auto-attribuée.

            « On nous ment, on nous spolie... » (cherchez l'erreur)
            • [^] # Re: Correction

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

              « Quelle est la différence entre un pigeon ? » -- Coluche
              Il a les 2 pattes de la même longueur, surtout la gauche.
          • [^] # Re: Correction

            Posté par  . Évalué à 3.

            "On est tous égaux" pas "on est égal" ...
            nous sommes plus égaux que on est égal o_O

            Y'a-t-il un (star?) académicien dans la salle? :o)
    • [^] # Re: Correction

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

      Vous pourriez plutôt contribuer à un bon dictionnaire grammatical pour OOo j'ai l'impression ;-) non ?
    • [^] # Re: Correction

      Posté par  . Évalué à 1.

      Là, au moins, je comprends de quoi ON cause !!!

      Et vive le trollage sur des questions de linguistique ! :D
  • # compatibilité de gcj avec java

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

    ma foi, si gcj est compatible java, ça ne doit pas faire l'ombre d'un problème. On en revient donc à la compatibilité gcj avec java pour que les auteurs de logiciels java ne se posent pas de questions...
  • # question

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

    Sans vouloir faire mon rabat joie, mais quid de GCJ sous Windows ?
  • # Les vieilles traditions

    Posté par  . Évalué à 3.

    C'est sympa, on va retrouver les vieilles traditions de pondre du code supplémentaire pour la portabilité.

    Ile ne me semble pas que le langage soit adapté à l'utilisation de plusieurs vaiantes. En c/c++ on a un préprocesseur pour ça, mais en Java, comment va-t-on faire.

    Des différences existeront à coup sûr entre le Java de GCJ et le Java de Sun. Il faudra se taper des appels à l'API de réflexivité pour voir quel compilo/interpréteur tourne et utiliser des paths différents dans le code pour ça.

    Je préfère largement la formule avec préprocesseur, qui permet de voir du premier coup d'oeuil la différence entre le code de traitement et le code de portabilité.

    Sinon, la communauté peut toujours créer un préprocesseur pour Java, qu'il faudrait utiliser pour générer des sources compatibles avec l'une ou l'autre des implémentations.

    Ca serait comique, une innovation de la communauté qui permettrait d'améliorer la portabilité d'un langage marketé comme étant portable .
    • [^] # Re: Les vieilles traditions

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

      Dans la mesure ou OOo contient du code C++, il utilise deja un preprocesseur... rien n'empeche d'utiliser ce meme preprocesseur pour le code Java, il suffit d'adapter les Makefiles.
      • [^] # Re: Les vieilles traditions

        Posté par  . Évalué à 1.

        Tu veux sans doute parler du compilateur utilise pour compiler OpenOffice qui contient deja un preprocesseur ?
        Oui, mais non.
        Je ne sais pas ce qu'il en est de linux, mais pour compiler OpenOffice sous windows, la marche a suivre, c'est d'utiliser Visual Studio avec le compilateur de Visual C++. En tout cas, c'etait le cas il y a 2 ans, et c'est encore le cas:
        * Windows with Microsoft Visual C++ .NET2003 Compiler
        with Cygwin tools
        - 4nt tools build is currently broken -

        http://tools.openoffice.org/dev_docs/build_windows_tcsh.html(...)

        Donc, sous windows, le preprocesseur, he bien tu ne l'as pas!
        Sauf si Gcj est utilise via cygwin dans ce but, mais pour le moment j'en doute.

        D'ailleurs je ne comprends pas cette dependance, sauf pour raison de performances (je ne pense pas que Gcc produise un meilleur binaire que le compilateur Gcc sous Wintel). D'autant plus que cela compile:
        All branches support the following platforms:

        * Windows
        * Linux (ppc and x86)
        * Solaris (sparc), x86 needs a tinderbox
        * FreeBSD - We need a tinderbox

        All branches support the following compilers:

        * gcc 3.0 -> 3.3
        * jdk 1.4.1

        http://tools.openoffice.org/builds/(...)
        • [^] # Re: Les vieilles traditions

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

          Tu veux sans doute parler du compilateur utilise pour compiler OpenOffice qui contient deja un preprocesseur ?


          Je veux parler de cpp, qui est inclus dans gcc mais appelable séparément... mais en y regardant de plus près, cpp a l'air plus proche de la syntaxe C(++) que je ne pensais. Apparemment il n'aime pas être appelé sur un truc qui n'est pas du C(++). Comme Java est proche du C++ au niveau de la forme, ça ne devrait pas poser des problèmes, mais ce n'est peut être pas une si bonne idée.

          «Donc, sous windows, le preprocesseur, he bien tu ne l'as pas!»

          Ça m'étonnerait que Visual C++ ne fournisse pas un pré-processeur, mais il est possible qu'il ne soit pas facilement appelable séparément. De toutes façons, même sous Windows, OOo dépend de Cygwin muni de gcc, qui fournit cpp.

          Par contre effectivement ça a l'air d'être un beau bordel pour compiler sous Windows... je les plains :)
    • [^] # Re: Les vieilles traditions

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

      Java est standardisé que je sache... il serait donc ridicule d'ajouter du code pour passer d'une JVM à l'autre.

      A la rigueur, si une fonctionnalité Java n'est pas encore disponible sur GCJ, il faut:
      - soit contourner le problème: implémentation différente n'utilisant que des fonctions de base Java existante sur GCJ. Dans ce cas pas de problème, les fonctionnalités de base existent à fortiori sur les JVM Sun.
      - soit contribuer à GCJ en fournissant une implémentation.

      Donc, en gros, il ne faut pas ajouter du code pour différencier les JVM, mais se limiter aux fonctionnalités disponibles sur les JVM libres.
      • [^] # Re: Les vieilles traditions

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

        je me répond à moi-même avant qu'un troll ne se montre:
        "Java est standardisé que je sache..."
        ...Sous forme de JSR, et de docs publiées (ce sur quoi se base GNU classpath quoi)

        Oui, je sais que la standardisation des API java sont dictées par Sun...

        Mais ça n'empêche pas une autre implémentation, au fonctionnement identique aux JVM Sun, d'être créée...
        • [^] # Re: Les vieilles traditions

          Posté par  . Évalué à 1.

          ... En parlant de traditions,
          il semblerait que OOo utilise des fonctionnalités mal (pas du tout ?) documentées (besoin de confirmer).
          Si c'est bien le cas, on peut toujours attendre que GCJ fasse son travail correctement (ce ne sera pas la faute de GCJ)

          Tiens, ca me rappelle une autre API ... Ah non, dans l'autre, ce sont les bugs qui sont documentés.
      • [^] # Re: Les vieilles traditions

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

        Ya qu'a demander aux developpeurs de Sun de participer à la qjc...

        ok je --------------->[]
        • [^] # Re: Les vieilles traditions

          Posté par  . Évalué à 5.

          C'est dommage de confondre le service marketing (pas toujours très bon) et les développeurs de chez Sun car ces derniers aident quand ils le peuvent (j'ai vu passer quelque chose à ce sujet pas plus tard qu'hier ou aujourd'hui peut-être : modifier wizards pour que gcj compile..).

          Quand j'ai des problèmes, je demande, et on m'aide. C'est très rapide, ce sont bien des développeurs de chez Sun , et je les en remercie.

          --
          eric bachard
          ericb@openoffice.org
    • [^] # Re: Les vieilles traditions

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

      Ce sont des api à impléménter... le prb est que gcj est "en retard". c'est ça le prb.

      http://about.me/straumat

  • # Commentaire supprimé

    Posté par  . Évalué à 8.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: ca va etre rigolo...

      Posté par  . Évalué à 6.

      En même temps, un lecteur de video en java dans une suite bureautique ... si c'est pas du vice ça ...

      Le concours du bloatware est ouvert ;)
  • # 2 question bete a propos du java

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

    J'ai vu que recement, Sun avais (enfin) mis les sources de la jre a disposition :
    C'est possible de telecharger les sources sur la page, a cote de la ou l'on telecharge la JRE.
    Donc, a partir de la, il devrais etre possible de compiler la JVM pour d'autres plateformes sous linux. Ca serais bien utile sur les architectures ARM, pour les Ipaq par exemple, ou les solutions Java existantes sont plutot en version 1.2 (A ma connaissance, il n'y a pas de JRE 1.4 ou 1.5 existante en libre). Ca empeche d'utiliser JINI entre autre....

    C'est clair que il y a du boulot, mais maintenant on ne peux plus accuser Sun d'obscurantisme.

    Une autre question, c'est a propos du bytecode :
    Ca n'est rien de plus qu'un code assembleur pour un processeur virtuel, non ?
    Dans ce cas, pourquoi ne peut-on pas creer un outil bytecode -> asm x86,PPC,ARM,etc....
    Je parle ici d'un convertisseur de fichier, qui en sortie donnerais un fichier .o qu'il serais possible de lier comme tout autre programme, sasn doute via un petit bootstrap qui contiendrais un main().
    L'assembleur, bien que ca soit tres lourd a ecrire a la main, c'est relativement simple et "automatique" comme language, non ?
    J'imaginerais meme comme ca pouvoir transformer un programme compile pour PPC en version x86, ARM, ou nimporte quoi d'autre....

    C'est sur, il n'y a pas le meme nombre de registres, l'espace memoire est pas fait pareil, etc.... Et je pense bien que le resultat ne serais pas optimal.
    Mais ca pourrais marcher, non ?
    • [^] # Re: 2 question bete a propos du java

      Posté par  . Évalué à 2.

      GCJ compile le bytecode en .o sur pas mal d'architectures.

      Le problème de GCJ, c'est les bibliothèques, pas la compilation, ça c'est au point.

      Tu peux même compiler directement un .jar: gcj -shared my.jar -o lib-my.so, et la JRE de GCJ peut même charger ton .jar compilé au runtime avec Class.forName(), il y a une convention à respecter pour le nom de la lib et il faut que la lib soit dans le $LD_LIBRARY_PATH

      Donc oui, théoriquement, tu peux prendre un programme Java Bytecode et le compiler en natif pour une plateforme supportée par GCJ et pour laquelle il n'y a pas de JVM proprio dispo, comme Linux PPC par exemple... Mais il faut que ce programme soit "pur" Java (pas de code natif JNI) et n'utilise que ce qui est supporté par Classpath. Tu peux alors avoir Tomcat sur Linux PPC, par exemple.

      Attention cependant: GCJ ne supporte pas toutes les architectures de la même façon et en supporte moins que GCC.
    • [^] # Re: 2 question bete a propos du java

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

      J'ai vu que recement, Sun avais (enfin) mis les sources de la jre a disposition :

      On a toujours pû charger les sources de la jvm de sun... car la JVM est open source... mais pas libre.

      D'ailleurs la jvm blackdown est basée sur la jvm de sun... tu peux aussi télécharger les sources... ça ne rends pourtant pas une modification de la JVM possible (ni la distribution de cette JVM modifiée) sans l'accord de SUN. Car c'est open source mais pas libre.

Suivre le flux des commentaires

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