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
- NewsForge (16/05/2005) : Free Software Foundation and OpenOffice.org team up to escape Java trap (0 clic)
- NewsForge (28/03/2005) : Java fallout: OpenOffice.org 2.0 and the FOSS community (1 clic)
- NewsForge (12/04/2004) : Free but shackled: The Java trap (1 clic)
- FSF: Volunteers needed to build, test and package free OpenOffice 2.0 (0 clic)
- DLFP: OpenOffice.org version 2.0 et Java (1 clic)
# Nécessité de Java?
Posté par arnaudus . Évalué à 8.
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 Jak . Évalué à 10.
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 Jean-Max Reymond (site web personnel) . Évalué à 9.
[^] # Re: Nécessité de Java?
Posté par Christophe Lucas (site web personnel) . Évalué à 9.
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 kra . Évalué à 10.
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 Pipo2 . Évalué à 8.
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 Stéphane Traumat (site web personnel) . Évalué à 2.
http://about.me/straumat
[^] # Re: Nécessité de Java?
Posté par Frédéric COIFFIER . Évalué à 2.
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 foulmetal canette (site web personnel) . Évalué à 6.
[^] # Re: Nécessité de Java?
Posté par iug . Évalué à 5.
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 Stéphane Traumat (site web personnel) . Évalué à 1.
http://about.me/straumat
[^] # Re: Nécessité de Java?
Posté par iug . Évalué à -2.
[^] # Re: Nécessité de Java?
Posté par Stéphane Traumat (site web personnel) . Évalué à -1.
http://about.me/straumat
[^] # Re: Nécessité de Java?
Posté par iug . Évalué à 4.
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 Stéphane Traumat (site web personnel) . Évalué à 2.
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 TImaniac (site web personnel) . Évalué à 2.
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 Stéphane Traumat (site web personnel) . Évalué à 2.
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 Pipo2 . Évalué à 6.
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 Stéphane Traumat (site web personnel) . Évalué à 2.
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 Pipo2 . Évalué à 2.
Quant à la différence Linux/OSX, tu rigoles !
[^] # Re: Nécessité de Java?
Posté par Stéphane Traumat (site web personnel) . Évalué à 2.
http://about.me/straumat
[^] # Re: Nécessité de Java?
Posté par iug . Évalué à 4.
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 kra . Évalué à 5.
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 Cook Captain . Évalué à 4.
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 TImaniac (site web personnel) . Évalué à 2.
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 Stéphane Traumat (site web personnel) . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
[^] # Re: Nécessité de Java?
Posté par domak . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
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 domak . Évalué à 2.
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 TImaniac (site web personnel) . Évalué à 2.
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 Cook Captain . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 3.
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 Cook Captain . Évalué à 1.
"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 TeXitoi (site web personnel) . Évalué à -2.
[^] # Re: Nécessité de Java?
Posté par TImaniac (site web personnel) . Évalué à 0.
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 Cook Captain . Évalué à 2.
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 TImaniac (site web personnel) . Évalué à 2.
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 Cook Captain . É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. (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 iug . Évalué à 2.
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 Cook Captain . Évalué à 1.
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 renoo . Évalué à 0.
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 TImaniac (site web personnel) . Évalué à 2.
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 Cook Captain . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
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 TImaniac (site web personnel) . Évalué à 2.
"ArrayList c'est pareil qu'un ArrayList."
---> "ArrayList < int > c'est pareil qu'un ArrayList < double >."
[^] # Re: Nécessité de Java?
Posté par domak . Évalué à 3.
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 TImaniac (site web personnel) . Évalué à 1.
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 Cook Captain . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
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 Cook Captain . Évalué à 0.
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 TImaniac (site web personnel) . Évalué à 1.
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 Cook Captain . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
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 Pierre Tramonson . Évalué à 1.
[^] # Re: Nécessité de Java?
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: Nécessité de Java?
Posté par Pierre Tramonson . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
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 kra . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
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 domak . Évalué à 3.
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 TImaniac (site web personnel) . Évalué à 2.
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 domak . Évalué à 3.
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 TImaniac (site web personnel) . Évalué à 2.
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 kra . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
[^] # Re: Nécessité de Java?
Posté par kra . Évalué à 2.
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 renoo . Évalué à -2.
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 Pipo2 . Évalué à 0.
#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 Pipo2 . Évalué à 1.
#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 Stéphane Traumat (site web personnel) . Évalué à 1.
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 Pipo2 . Évalué à 0.
[^] # Re: Nécessité de Java?
Posté par Pipo2 . Évalué à 1.
[^] # Re: Nécessité de Java?
Posté par TImaniac (site web personnel) . Évalué à 2.
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 Pipo2 . Évalué à 1.
[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 TImaniac (site web personnel) . Évalué à 2.
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 Pipo2 . Évalué à 1.
[^] # Re: Nécessité de Java?
Posté par michael_acreall . Évalué à 2.
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 TImaniac (site web personnel) . Évalué à 2.
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 renoo . Évalué à 1.
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 renoo . Évalué à 1.
$ time ./a.exe
2280707264
real 0m0.411s
user 0m0.343s
sys 0m0.061s
[^] # Re: Nécessité de Java?
Posté par Guillaume Knispel . Évalué à 3.
Y'en a qui ont vraiment pas honte...
[^] # Re: Nécessité de Java?
Posté par TImaniac (site web personnel) . Évalué à 1.
[^] # Re: Nécessité de Java?
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: Nécessité de Java?
Posté par Cook Captain . Évalué à 3.
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 k. stephane . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
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 herodiade . Évalué à 2.
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 kra . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
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 kra . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
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 Pierre Tramonson . Évalué à 0.
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 TImaniac (site web personnel) . Évalué à 1.
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 Pierre Tramonson . Évalué à 1.
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 TImaniac (site web personnel) . Évalué à 2.
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 herodiade . Évalué à 2.
[...]
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 TImaniac (site web personnel) . Évalué à 2.
[^] # Re: Nécessité de Java?
Posté par kra . Évalué à 1.
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 herodiade . Évalué à 2.
[^] # Re: Nécessité de Java?
Posté par Cook Captain . Évalué à 1.
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 Pipo2 . Évalué à 2.
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 Stéphane Traumat (site web personnel) . Évalué à 1.
http://about.me/straumat
[^] # Re: Nécessité de Java?
Posté par Pipo2 . Évalué à 3.
J'ai la foi mais elle est parfois mise à rude épreuve.
[^] # Re: Nécessité de Java?
Posté par Cook Captain . Évalué à 2.
[^] # Re: Nécessité de Java?
Posté par Pipo2 . Évalué à 1.
[^] # Re: Nécessité de Java?
Posté par renoo . Évalué à -1.
[^] # Re: Nécessité de Java?
Posté par briaeros007 . Évalué à 2.
[^] # Re: Nécessité de Java?
Posté par Pipo2 . Évalué à -1.
[^] # Re: Nécessité de Java?
Posté par kra . Évalué à 1.
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 Pipo2 . Évalué à 0.
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 Stéphane Traumat (site web personnel) . Évalué à 1.
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 Barnabé . Évalué à 7.
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 arnaudus . Évalué à 2.
Si t'es développeur Windows, à ta place, je me vanterais pas... :-)
[^] # Re: Nécessité de Java?
Posté par kra . Évalué à 2.
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 Pipo2 . Évalué à 0.
> 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 Stéphane Traumat (site web personnel) . Évalué à 1.
"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 Pipo2 . Évalué à 1.
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 renoo . Évalué à 1.
[^] # Re: Nécessité de Java?
Posté par kra . Évalué à -5.
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 Pipo2 . Évalué à -3.
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 kra . Évalué à -2.
[^] # Re: Nécessité de Java?
Posté par iug . Évalué à 1.
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 Larry Cow . Évalué à 10.
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:
Sans cache lol, il ressemble à ça:
[^] # Re: Nécessité de Java?
Posté par Pipo2 . Évalué à 1.
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 Stéphane Traumat (site web personnel) . Évalué à 1.
http://about.me/straumat
[^] # Re: Nécessité de Java?
Posté par Pipo2 . Évalué à 1.
Voilà le problème !
[^] # Re: Nécessité de Java?
Posté par Stéphane Traumat (site web personnel) . Évalué à 2.
http://www.chimboz.com/194ab4/?t=1116422187(...)
Et clique sur essayer !
http://about.me/straumat
[^] # Re: Nécessité de Java?
Posté par Pipo2 . Évalué à 2.
[^] # Re: Nécessité de Java?
Posté par Prosper . Évalué à 1.
[^] # Re: Nécessité de Java?
Posté par Jllc . Évalué à 3.
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 k. stephane . Évalué à 2.
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 Cook Captain . Évalué à 0.
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 Pipo2 . Évalué à 7.
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 mickabouille . Évalué à 2.
Ç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é...
[^] # Re: Nécessité de Java?
Posté par Stéphane Traumat (site web personnel) . Évalué à 3.
http://about.me/straumat
# Correction
Posté par Philip Marlowe . Évalué à 5.
Incluse. Inclure et exclure ne se conjuguent pas de la même manière au participe passé.
[^] # Re: Correction
Posté par arnaudus . Évalué à 10.
[^] # Re: Correction
Posté par oliv . Évalué à 6.
"on est sûr" : "on" : singulier, "est" : singulier, "sûr" ... aussi :-P
[^] # Re: Correction
Posté par arnaudus . Évalué à 1.
[^] # Re: Correction
Posté par Ju. . Évalué à 3.
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 arnaudus . Évalué à 1.
[^] # Re: Correction
Posté par Cedric Malherbe (site web personnel) . Évalué à 1.
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 matiphas . Évalué à 3.
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 djano . Évalué à 1.
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 Erwan . Évalué à 2.
[^] # Re: Correction
Posté par gc (site web personnel) . Évalué à 7.
« 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 Nÿco (site web personnel) . Évalué à 3.
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 Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Correction
Posté par William Steve Applegate (site web personnel) . Évalué à 1.
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 Mat (site web personnel) . Évalué à 0.
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 kra . Évalué à 0.
-->[]
[^] # Re: Correction
Posté par jcs (site web personnel) . Évalué à 0.
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 arnaudus . Évalué à -1.
[^] # Re: Correction
Posté par Aiua . Évalué à -1.
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 Spone Gary . Évalué à 2.
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 Ju. . Évalué à 1.
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 kursus_hc . Évalué à 3.
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 foulmetal canette (site web personnel) . Évalué à 3.
« 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 kursus_hc . Évalué à 3.
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 arnaudus . Évalué à -1.
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 Lana . Évalué à 2.
[^] # Re: Correction
Posté par Barnabé . Évalué à 4.
[^] # Re: Correction
Posté par Nicolas Delsaux (site web personnel) . Évalué à 0.
OK -> []
[^] # Re: Correction
Posté par ploum (site web personnel, Mastodon) . Évalué à 2.
Donc je vote pour le pluriel !
Mes livres CC By-SA : https://ploum.net/livres.html
[^] # Re: Correction
Posté par Sylvain Sauvage . Évalué à 3.
_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 TImaniac (site web personnel) . Évalué à 2.
Il a les 2 pattes de la même longueur, surtout la gauche.
[^] # Re: Correction
Posté par erik_lallemand . Évalué à 3.
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 BAud (site web personnel) . Évalué à 9.
[^] # Re: Correction
Posté par He_is_me . Évalué à 1.
Et vive le trollage sur des questions de linguistique ! :D
# compatibilité de gcj avec java
Posté par Jean-Max Reymond (site web personnel) . Évalué à 4.
# question
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: question
Posté par Aiua . Évalué à 10.
[^] # Re: question
Posté par TImaniac (site web personnel) . Évalué à 1.
[^] # Re: question
Posté par Damien Pobel (site web personnel) . Évalué à 6.
https://damien.pobel.fr
[^] # Re: question
Posté par Matthieu Moy (site web personnel) . Évalué à 3.
[^] # Re: question
Posté par Aiua . Évalué à 3.
Mais vu que tu acceptes que ta couche système ne soit pas libre, et que la JVM fait office de couche système pour une appli écrite en Java, tu devrais donc pouvoir accepter sans trop de pb que la JVM ne soit pas libre.
Pour l'appli finale c'est différent, et en plus Word cai mal(tm) ;)
[^] # Re: question
Posté par Mat (site web personnel) . Évalué à 4.
et sancho qui montre que ca marche :
http://sancho-gui.sourceforge.net/(...)
# Les vieilles traditions
Posté par iug . Évalué à 3.
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 Yusei (Mastodon) . Évalué à 6.
[^] # Re: Les vieilles traditions
Posté par djano . Évalué à 1.
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:
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:
http://tools.openoffice.org/builds/(...)
[^] # Re: Les vieilles traditions
Posté par Yusei (Mastodon) . Évalué à 2.
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 Olivier Samyn (site web personnel) . Évalué à 5.
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 Olivier Samyn (site web personnel) . Évalué à 4.
"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 chaperon . Évalué à 1.
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 Julien Damon (site web personnel) . Évalué à 2.
ok je --------------->[]
[^] # Re: Les vieilles traditions
Posté par revponpuneq . Évalué à 5.
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 Stéphane Traumat (site web personnel) . Évalué à 1.
http://about.me/straumat
# Commentaire supprimé
Posté par Anonyme . Évalué à 8.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: ca va etre rigolo...
Posté par herodiade . Évalué à 6.
Le concours du bloatware est ouvert ;)
# 2 question bete a propos du java
Posté par C. OB (site web personnel) . Évalué à 1.
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 k. stephane . Évalué à 2.
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 allcolor (site web personnel) . Évalué à 3.
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.