Petite question pour Mac Lak... Il me semble que sur l'A380 ils ont introduit énormément de Java ? Ce ne sont que pour les systèmes secondaires / isolés alors ? Aucun calculateur, ni rien ?
Petite question pour Mac Lak... Il me semble que sur l'A380 ils ont introduit énormément de Java ? Ce ne sont que pour les systèmes secondaires / isolés alors ? Aucun calculateur, ni rien ?
Je me permet de citer une nouvelle fois cet article que j'ai sorti sur l'autre troll de je n'sais plus combien de pages :
Source : http://acs.lbl.gov/~hoschek/colt/Scientific and technical computing, as, for example, carried out at CERN, is characterized by demanding problem sizes and a need for high performance at reasonably small memory footprint. There is a perception by many that the Java language is unsuited for such work. However, recent trends in its evolution suggest that it may soon be a major player in performance sensitive scientific and technical computing. For example, IBM Watson's Ninja project showed that Java can indeed perform BLAS matrix computations up to 90% as fast as optimized Fortran. The Java Grande Forum Numerics Working Group provides a focal point for information on numerical computing in Java. With the performance gap steadily closing, Java has recently found increased adoption in the field. The reasons include ease of use, cross-platform nature, built-in support for multi-threading, network friendly APIs and a healthy pool of available developers. Still, these efforts are to a significant degree hindered by the lack of foundation toolkits broadly available and conveniently accessible in C and Fortran.
The latest stable Colt release breaks the 1.9 Gflop/s barrier on JDK ibm-1.4.1, RedHat 9.0, 2x IntelXeon@2.8 GHz.
Donc java et bonnes performances ne sont pas totalement incompatibles. On retient toutefois que ces braves gens ont du coder leurs propres structures de données utilisant des primitifs en majorité, afin d'éviter le boxing qui est parfois très handicapant sur les grosses collections.
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Alors pourquoi tant d'outils de ce genre existent en java, pourquoi des frameworks de simulation multi agents et de parallélisme et pourquoi des organismes comme le Cern investissent-ils dans cette technologie?
Je soupçonne parfois les arguments en sa défaveur de ne pas tenir compte des évolutions qu'à subi cette techno depuis 1996.
bazar: http://www.improetcompagnie.com/publ...ctacles-6.html
BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil
Emacs Wiki: http://www.emacswiki.org/
En attente de ce que produira: http://www.pushmid.com
Quand tu veux mettre un type primitif (int, long, char, ....) dans une collection générique de la bibliothèque standard Java, ils sont autoboxés, autrement dit on les enveloppe dans le type objet correspondant (Integer, ...) pour que la collection puisse les traiter comme n'importe quel contenu.
Pour avoir des hautes performances il est nécessaire d'écrire des collections spécialisés pour l'un de ces types, de façon à ce que ce type primitif n'ait pas besoin d'être boxé pour entrer dans cette collection. En bref ils ont dû écrire et utiliser des Int(Float/Long/...)ListArray qui ne peuvent contenir que des int et pas des Object quelconques.
NB: Tu pourrais faire un effort, ça fait pratiquement 2 ans que je n'ai plus vraiment fait de Java (et je n'en ai jamais fait intensivement) mais j'ai décodé sans problème.
--
Jedaï
c'était pour être certain d'avoir compris que ces gens s'étaient passé d'un des trucs sympas du java .
ça me rappelle un cp (java) qui me disait qu'il fallait le faire ressembler à du C pour avoir des perfs :/, je ne sais pas s'il a raison, je n'ai jamais vraiment fait de java en tout cas pas de façon intime.
bazar: http://www.improetcompagnie.com/publ...ctacles-6.html
BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil
Emacs Wiki: http://www.emacswiki.org/
En attente de ce que produira: http://www.pushmid.com
Ces objets boxés ont l'inconvénient d'être à la fois immuables et conséquents en terme d'occupation mémoire.
Un boolean d'un byte en fait 16 dans sa version boxée. Ca devient un Boolean qui hérite de Object, possède une fonction d'égalité, une fonction de hachage, de conversion en String, tout ce dont le framework a besoin pour pouvoir le traiter comme absolument n'importe quel autre type.
Dans le cas d'une matrice de primitifs, euh... je ne sais pas comment ça se dit en français, le contraire de *dense*, "sparse" en anglais (éparse?), donc avec un taux de remplissage assez faible mais des dimensions importantes, le fait d'utiliser des HashMaps "indice -> valeur" va nécessiter beaucoup d'opérations de boxing et d'unboxing, avec le cout en performance et l'occupation mémoire qui va avec.
C'est pourquoi l'implémentation d'une table de hachage ouverte à base de primitif non générique prend tout son sens. Et c'est ce que les libs mathématiques offrent bien souvent.
ça veut dire qu'en Java, pour chaque type primitif (int, float ...) il y a leur équivalent en Objet (Integer, Float, ...) et que si on passe par les objets, c'est forcément plus couteux.
Pour en revenir au sujet :
Malgré quelques répétitions, j'ai trouvé l'opposition plutôt productive et j'ai appris pleins de trucs.
J'ai découvert grâce à Mac Lak () tout un monde dont je n'imaginai même pas l'étendue. Si j'avais initialement tendance à penser que son champ d'application concerne qu'un faible pourcentage du développement informatique, je ne me risquerai plus comme certains à sortir un pourcentage de mon chapeau car finalement, mon expérience n'est qu'un petit point de vue.
Le petit reproche que je lui ferai, c'est qu'il n'a pas réussi à me faire comprendre en quoi le foreach est plus dangereux que le for dans le cas où le container est exploré entièrement (de 1 à n), que son contenu ne varie pas durant la boucle, que l'iterator fait ce qu'il est censé faire et qu'il n'y a pas d'accès concurrent. (Dans tous les autres cas, peut être même les plus fréquent dans son domaine, j'ai bien compris les nuances)
J'aurai également une question sur les outils de développement qu'il utilise ?
Alors que le code identique est factorisé dans des composants réutilisables dans une approche de plus haut niveau, j'ai l'impression que dans l'approche de plus bas niveau, on procède plus par copier/coller de snippet de code presque identique mais pas tout à fait. Est ce le cas ?
Concernant l'intervention d'alex_pi, merci de pousser mac dans le développement de ses opinions. Je trouve l'apport de liens en référence plutôt sain pour le débat même si les protagonistes n'en font pas toujours la même lecture (il paraît qu'on lit un document dans le sens qui nous convient ). Je dois également avouer que de mon point de vue, le monde des langages fonctionnels demeure universitaire (le jouet des labos). Merci donc à gorgonite pour l'explication.
J'essaye de garder un regard objectif même si je suis plus attiré par le haut niveau. En théorie, j'aimerai me passer du bas niveau mais en pratique, l'indépendance n'est pas toujours aussi nette et le méconnaître n'est pas sans conséquence. Je suis content qu'il y a des macs qui font pour nous le "sale bouleau" (comprenez le truc que j'aime pas).
De plus, je crains de voir dans mon domaine (les applications web) les dérives du "haut niveau" où à force d'abstraire, on empile les couches ... (A ce titre, il y a des idées intéressantes dans le livre "Better, Faster, Lighter Java"). Rester pragmatique est donc à mon humble avis une attitude saine.
PS : Je confirme un point de vue de MAC : penser comme la machine, ne jamais être sur de soi aide beaucoup dans le débuggage.
Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
La meilleure façon de prédire l'avenir, c'est de l'inventer.
Peut-être parce que, comme son nom l'indique, c'est un organisme de Recherche
PS: en tous cas, les termes utilisés, en anglais, font bien preuve du fait que ce n'est pas encore vrai...
Absolument, et c'est une des dérives qui a justement le plus de répercussions dans le domaine du sujet du thread...
Mais pas seulement dans le débuggage, c'est ce que certains soulignaient plus haut...
Pour beaucoup d'applications sensibles...
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Y a peu de chance que ca soit le cas un jour. Java est un langage objet, donc une collection de trucs, ca sera toujours un "objet" collection qui contient des "objets" trucs. Ca ne sera jamais aussi optimisé qu'un tableau lineaire de valeurs en C.
Mais ce n'est pas non plus le but de Java (le langage) de faire dans la performance "C". C'est pour cela qu'il existe JNI : un moyen d'utiliser/appeler du code "C" depuis Java. Ca existe d'ailleurs dans la plupart des langages.
Ne pas utiliser ces possibilités offertes par les langages et critiquer les performances, c'est faire une grosse erreur en tant que développeur.
Pour moi, un bon expert d'un langage, ce n'est pas celui qui connait la syntaxe/grammaire par coeur. Ce n'est pas non plus celui qui connait tous les snipets/patterns usuels. Ni celui qui peut expliquer comment ca marche à l'intérieur (compilateur, librairies, ...). Encore moins celui qui réussit a coder héroïquement ce que tout le monde pensait impossible de réaliser.
Pour moi, un bon expert d'un langage, c'est celui qui est capable de me dire que ce langage n'est pas adapté a ce que je veux faire.
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Cher amis ,
Message adressé à deux individus qui se reconnaitrons : Vous seriez bien aimable d'arrêter de pourrir la vie des modérateurs et de leur faire la guerre, les hors sujets sur le forum concernant la modération sont interdits dans les règles du club.
Du coup vous avez gagné ! Les modérateurs ont été tellement dégoutés par le comportement immature et irresponsable de certains qu'ils ont parqués tous le sujet, c'est malin.
Malgré que certaines participations sur cette discussion n'aient pas un grand intérêt car du pur troll, je remets au moins la discussion en ligne qu'elle soit accessible en lecture.
Tous les commentaires sur la modération seront supprimés illico, les récidivistes seront bannis du forum, de plus pour faire taire les rumeurs comme quoi tout ce sujet n'est qu'un vaste "sac à trolls" sans intérêt il est possible que des modérateurs passent sur le sujet pour faire des suppressions massives et ne garder ce qui est jugé intéressant.
Oui c'est moche, mais c'est mieux que de supprimer tous le débat, il y à certainement dans le lot de ce foutoir des interventions de professionnels en informatique expérimentés et avisés et pas que du troll.
Le sujet sera peut être réouvert un jour quand vous serez calmés.
Si vous avez une plainte à formuler sur la modération, merci d'envoyer un message argumenté avec les précisions utiles au responsable modération : Guardian
Ne pas me contacter pour le forum et je ne répondrai à aucune question technique. Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts
15 000 offres d'emploi développeurs et informatique
Cours et tutoriels développeurs et informatique
Les FAQ's & Les Livres
Codes sources
Téléchargements
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager