Discuter:Java (langage)

Un article de Wikipédia, l'encyclopédie libre.

Sommaire

[modifier] Félicitations

Je tenais deja à remercier l'auteur de la page pour son excellent article qui concilie la passion d'un programmeur java avec le point de vue moins rejouissant des pro-c++.

I just would like to thx the autor of this page it's not easy to combine the love of a java programmer view with pro-c++ or anti-java element point of view ! I write a little snippet for showing a object oriented tech more precisely but we can also talk about other techs like Component oriented Programming or Aspect Programming. For the list of other Api or tool Jguru.com own a good list of main thread that can be added to the current listing. GREAT WORKS GUYS !

public interface Programmer {

 public Programme code();
 public Programme debug( Program );  

}

public abstract class Human {

 private int Age = 0;

}


public class WikiMembers extends Human implements Programmer {

 public WikiMembers ( int age ) {
   //WikiMembres is also a Human
   this.age = age;
 }


 // we have to implement Programmer interface !
 public Programme code () {
   // Programme could be a interface or a class, WikiProgramme extends 
   //or implements it. So we can implement WikiProgramme or 3DProgramme
   // but were are still Programmer !
   Programme result = new WikiProgramme();
   result.setProgrammer ( this );
 }
 public Programme debug ( Programme prg ) {
   //prg.isBugged() return a boolean.
   if ( prg.isBugged() ) {
     // John have to debug WikiUserStatsProgramme.
     // We can also use smth like sendMail(prg.getProgrammer(),prgToString()).
     System.out.println( prg.getProgrammer() + "have to debug "
     + prg.toString() );
   }
 }


}


(Je ne sais pas qui a écrit le message ci-dessus mais il se trouvait avant le sommaire et ça ne donne pas une bonne lisibilité de la page (surtout avec les morceaux de code). Je l'ai donc déplacé pour en faire un paragraphe "normal". Si j'ai eu tort, je m'en excuse d'avance. Houston83 (d · c))

[modifier] instruction goto ?

Je suis surpris de trouver un article sur l'instruction goto qui n'existe pas en java, à ma connaissance. --Gibux

Cette instruction est fortement déconseillée pour tous les langages qui la suportent (C, C++), puisqu'elle apporte beaucoup de confusion dans un code source, et elle n'a pas été incluse dans le langage java pour cette raison.


Effectivement, il me semble que goto est un mot-clé du langage (on ne peut donc pas nommer une variable goto), mais qu'il n'est pas utilisé. + d'infos ici : http://java.sun.com/docs/books/jls/second_edition/html/statements.doc.html#78993

"Unlike C and C++, the Java programming language has no goto statement; identifier statement labels are used with break (§14.14) or continue (§14.15) statements appearing anywhere within the labeled statement."

--Burdoche 21 jun 2004 à 13:30 (CEST)

Je propose donc qu'on supprime ce passage sur le goto ! Gibux 29 jun 2004 à 11:59 (CEST)

[modifier] garder un bout de texte au dessus de la table des matiere

Il est courant et meme fortement conseille de garder un bout de texte permettant de decrire globalement l'article sans commencer par un titre Xmlizer 18 aoû 2004 à 01:38 (CEST)

[modifier] Exceptions

Je me permet de remplacer cet exemple sur l'utilisation des exceptions :

try {
    //<-- Créer un "stream pour écrire dans un fichier. Le fichier
    //n'est pas spécifié puisque ce n'est pas essentiel pour 
    //l'exemple.
    FileOutputStream fos = new FileOutputStream(...);

    fos.write(a); //'a' aurait reçu une valeur ultérieurement
}
catch (IOException e) {
    System.out.println(e.getMessage());
}

Il me semble en effet que l'utilisation de la méthode "printStackTrace()" plutôt que "getMessage" est plus pertinente dans ce contexte.

[modifier] Partie évaluation

Je pense qu'il y a un problème dans la partie "Evaluation". Beaucoup d'imprécisions et beaucoup de source de polémiques. Je me demande même s'il et ne devrait pas être supprimée en attendant d'être nettement mieux réécrite.

Par exemple :

1) "Le langage n'est pas, en revanche, sans problème..." On est à la limite du point de vue

2) "...Quelques fonctionnalités du C++ que Java n'offre pas, comme des types de données spécifiques au matériel hôte, les pointeurs vers des espaces mémoire arbitraires". C'est cette particularité qui rend possible l'exécution de code distant dont parle la section précédente. Il est donc étrange de le critiquer à cet endroit ou même simplement de le faire remarquer. Cette remarque pourrait faire partie de "Exécution sécurisée de code distant" mais en dehors de ce contexte, je pense qu'elle n'informe pas beaucoup le lecteur et pourrait l'induire en erreur.

→ Je suis d'accord pour supprimer cette partie. A terme, je pense même qu'il faudrait réécrire l'ensemble de l'article, en partant par exemple de l'article sur java en anglais, nettement plus complet. Si cela intéresse quelqu'un, je suis partant pour commencer ici une discussion sur la réécriture de cet article. Zigzag 3 jun 2005 à 10:07 (CEST)
Je vote pour la traduction de l'article anglais. Tu t'y colles ?-) Aurélien 5 novembre 2005 à 12:45 (CET)

[modifier] java 5.0

La page est bien réussie, mais je pense qu'il serait approprié d'ajouter de l'information sur Java 5.0 et ses nouvelles fonctionnalités : énumérations, generics, etc. Qu'en pensez-vous? Pfv2 8 août 2005 à 05:31 (CEST)

Apparamment, ça a été fait, j'ai ajouté les fonctionnalités varargs et static import, pour être exhaustifs sur la liste des fonctionnalité, j'ai pensé qu'en revanche la description de ces nouveauté java 5 pourrait faire l'objet d'une page à part, tant le sujet est vaste, notamment sur les generics. deltree. le 06/09/2006

[modifier] pas compris:

Le langage Java sépare l'héritage et l'implémentation, permettant l'héritage multiple via les interfaces, mais seulement un héritage via une hiérarchie de classes.

y'a un truc qui va pas dans cette phrase.


Merci aussi pour ces articles complet, ca fait plaisir. par contre ce serai cool d'expliquer ou de mettre un lien vers une explication des techniques du C++ qui sont censés donner l'avantage Mamelouk


[modifier] Jeu de mot entre Java et Kawa

Je pense que le mot argotique kawa vient plutot des langues maghrebines ou kawa veut simplement dire cafe et non d'un simple décalage de consone.

[modifier] Ce sujet n'est pas neutre!

Cela peut paraître bien pour certaines personnes qu'il y ai l'avis moins réjouissant de pro-c++, mais ce genre de propos sont bons pour des forums de discussions et non pas à faire paraître dans un article neutre sur java. Surtout que l'article ne décrit que des désavantages p/r à ces langages or que java apporte également des avantages. Peut-on également donner la définition d'un langage objet pur? Car je ne voit pas trop le rapport avec l'introspection et l'intercession...

C'est un article sur Java et pas un article sur ce que C/C++ ou smalltalk savent faire en plus que java. Pour moi on est dans le point de vue...

Oui ça existe une définition de langage orienté objet au sens strict. Pour des définitions, je t'invite à consulter des articles sur smalltalk, ou objvlisp, par exemple. En gros, Java n'est pas aussi "orienté objet" que d'autres langages où TOUT est objets. Par exemple, en objvlisp, une classe est objet (tout objet est instance d'une classe, et toutes classes est un objet, c'est-à-dire une instance d'une méta-classe). En Java, les classes ne sont pas des objets (elle sont traités différemment), ni les types primitifs et c'est quand même limité ce qu'on peut faire pour manipuler les classe et méta-classes. Ce n'est pas un point de vue, mais un fait que Java a fait des compromis sur le concept d'orienté objet. Je pense que c'est pertinent de l'expliquer. On pourrait toujours déplacer l' information dans une page sur le concept d'orienté objet au lieu de la page Java (langage). Je vous invites à en discuter ici. Pfv2 | [[Discussion Utilisateur:Pfv2|✉]] 21 novembre 2005 à 20:19 (CET)
J'ai replacer le texte supprimé sur la page et améliorer un peu le texte. On peut maintenant discuter de ce qu'on fait avec le texte (est-ce qu'on le déplace sur une autre page?, l'améliore?, etc.). Pfv2 | [[Discussion Utilisateur:Pfv2|✉]] 21 novembre 2005 à 20:46 (CET)
Oui effectivement ce serait pas mal de faire un lien vers une page qui expliquerait le concept orienté objet (voir le compléter s'il existe), où l'on pourrait faire d'éventuelles comparaison entre langages (Tableau ou autre). Je comprends totalement que java a ses limites dans l'orienté objet, mais je trouvais que ce passage (avec celui de l'évaluation), en tout cas dans la façon dont il était tourné, parlais plus de smalltalk que java (ce qui ressemble à un parti pris). Donc si une page indépendante expliquerait ces concepts, cela se ferait peut-être moins sentir.

GrEgY 21 novembre 2005 à 21:08 (CET)

C'est une bonne idée. On pourrait déplacer progressivement ce texte vers d'autres pages (page de comparaison, et page sur l'orienté-objet) et peut-être garder un tout petit paragraphe sur la page java ou un lien. La page de comparaison serait surement très intéressante. Je vais voir dans les prochains jours ce que je peux faire, et vous pouvez faire de même si vous le désirez. Pfv2 | [[Discussion Utilisateur:Pfv2|✉]] 21 novembre 2005 à 21:45 (CET)
Ok parfait. J'essairai également de regarder ce qu'il y a moyen de faire pour la page indépendante. GrEgY 22 novembre 2005 à 18:59 (CET)

[modifier] Points de vue

J'ai retiré certaines choses à savoir "évaluation" et "langage objet impur":

- La partie évaluation parle de problèmes, p.ex les pointeurs qui manquent, mais que en faite on peut s'en passer ... Premièrement on ne voit pas vraiment où l'on veut en venir et deuxièment je trouve que c'est du "point de vu" déguisé...

-La partie langage objet impur est plus une ode au langage smalltalk que de la description de java. Smalltalk est plus si que java, java est moins si que Smalltalk etc ...

Pour moi les deux parties sont clairement des points de vue...

Par contre, au lieu de commencer des critiques/évaluations/Points de vue, l'article comporte de nombreuses lacunes... P.ex. On précise que java n'a pas de pointeurs mais on y parle même pas de garbage collection, ce qui serait quand même intéressant. Pourquoi ne pas plutôt parler de ce qu'est java au lieu de parler de ce que n'est pas java?? GrEgY 21 novembre 2005 à 21:01 (CET)

GrEgY 5 novembre 2005 à 16:12 (CET)

Je crois que décrire Java, c'est à la fois le décrire ses capacités et ses limites pour mieux comprendre les choix qui ont été faits. À propos de la comparaison Smalltalk, c'est vrai que smalltalk offre peut-être plus de fonctionnalités au niveau "orienté objet", mais ce n'est pas nécessairement un désavantage. En Java des compromis ont été fait entre autres pour des raisons de sécurité parce que les objets peuvent transiger par un réseau, etc. C'est justifié. Je t'invite à continuer la discussion à la suite du commentaire plus haut, pour qu'on trouve une solution Pfv2 | [[Discussion Utilisateur:Pfv2|✉]] 21 novembre 2005 à 20:24 (CET)

je trouve moi aussi que certaines parties de l'article sont une ode à Smalltalk. En particulier je ne vois pas en quoi le fait que java ne possède pas de meta-classe implique que celui ci n'est pas objet; Pour moi la seule chose importante à vérifier pour argumenter qu'un langage est objet ou non est de vérifier que les entités manipulées par le langage rentrent dans le cadre de la thèorie des types abstraits de donnée (cad que l'on définit un type et les opérations fondamentales qui y sont applicable et que tout se ramene à ces opérations). Ce n'est effectivement pas le cas puisque les type de base de java sont des primitives du langague qui ne sont pas des classes. Ensuite beaucoup de gens argumentent en disant que langage n'est pas objet car il manque la caractéristique X ou Y (remplacez par héritage multiple, encapsulation, meta-classe, ..). Je terminerai en disant que les meta-classes sont des types de types de la même manière qu'il existe une logique classique du second-ordre (et d'ailleur d'ordre aussi elevé que l'on veux) ce qui n'empeche pas la logique classique du premier ordre d'être aussi une logique.

En fait je pense que l'on devrait s'interdire, dans la partie programmation, de parler, dans l'article consacré à un langage X, d'un autre langage que X. Cela éviterai les dérives que l'on retrouve dans l'ensemble dans cette partie de wikipedia. 82.231.114.112 13 décembre 2005 à 15:54 (CET)

Finalement, je suis d'accord. Je pense qu'on est mieux d'enlever le texte en question. Je l'ai supprimé de la page. À bien y penser, je pense qu'un article sur java doit être vulgarisateur et ne pas s'attarder trop sur des détails. Je n'ai pas le temps de mettre le texte sur une autre page plus appropriée. Si quelqun veut le faire, il pourra retrouver le texte dans l'historique. Mais je pense que je laisserais ceci ainsi.Pfv2]] 16 janvier 2006 à 23:22 (CET)


[modifier] SWING

Il me semble que les IHM clients lourds, importante partie de Java, se devraient d'être traités. Même si ce n'est pas vraiment une API, je trouve qu'il faudrait la décrire un peu, ainsi que le modèle MVC, peut-être dans une autre page. Merci de dire ce que vous en pensez. Ardazerok 17 janvier 2006 à 15:26 (CET)

Modèle-Vue-Contrôleur ca existe déjà 82.231.114.112 10 mars 2006 à 21:46 (CET)

[modifier] Historique

J'ai rajouté un historique traduction libre de celui de du wikipedia anglophoneJava_programming_language. Qu'en pensez vous ? Merrheim 14 mars 2006 à 15:54 (CET)

qu'il devrait appartenir à un article séparé. [[ (CET)
je n'y vois aucun inconvénient, si cet avis est partagé, je le mettrais sur un article du style "Historique du langage Java" Merrheim 15 mars 2006 à 06:50 (CET)


J'ai rajouté une traduction de la partie 3 "philosophie du langage java". Je propose la fusion des parties 3 et 4. En fait on constate que la partie 4 a fait beaucoup d'emprunts à la version anglophone (avec parfois des ajouts de très bonnes remarques) et l'ajout exécution sécurisée de code distant.

Merrheim 15 mars 2006 à 16:49 (CET)

[modifier] JavaScript-bashing

Il me semble que l'article prend parfois un point de vue légèrement anti-Javascript. Pas bien. Marc Mongenet 27 mars 2006 à 12:21 (CEST)

[modifier] serveur ou client

dans l'introduction: "c'est surtout du côté serveur que java s'est imposé". la phrase fait croire que les programmeurs ont développé des applications serveur sans penser à l'application cliente...

[modifier] Répétition ?

bonjour à tous. Je viens de lire cet article et je pense qu'il y a une répition inutile dans celui-ci. Nous avons un chapitre se nommant Philosophie avec des sous-chapitres (Un langage orienté objet, Indépendance vis à vis de la plateforme, Le ramasse-miettes) suivi d'un autre chapitre, Concepts de Base, composé lui-même de : Un langage orienté objet, Indépendance face à la plate-forme, Exécution sécurisée de code distant et Mécanisme du ramasse-miettes (Garbage Collector). Je pense que l'auteur pourrait fusionner ces deux chapites en un seul (je ne me permet de le faire étant donné que je ne connais pas du tout le sujet). Overmac 2 mai 2006 à 17:40 (CEST)

[modifier] Matlab

matlab ne fait pas à ma connaissance de calcul formel mais du calcul numérique, c'est à dire l'opposé. (matlab=matrix laboratory). confusion possible avec mapple.

[modifier] Restructuration

Cet article a besoin d'être restructuré. Je me suis occupé de la page d'homonymie Java qui àmha n'était pas très claire pour les débutants. Mais je considère qu'elle n'est pas terminée, tout simplement déjà parce que je ne connais encore pas très bien Java (j'ai encore jamais programmé en Java, mais bon je comprends dans les grandes lignes comment ça fonctionne), et puis parce qu'il reste des zones d'ombre. Je pense que ce serait une bonne idée de s'appuyer sur les articles anglophones qui sont pas mal structurés. Par exemple, on retrouve ici la réponse à la question "Qu'est-ce que Java ?" alors que cet article est censé se focalisé sur le langage Java. Il faudrait donc expliquer cela dans un article Java (technologie) qui présente l'ensemble de la technologie Java en s'appuyant sur en:Java (Sun).16@r 21 mai 2006 à 01:01 (CEST)

[modifier] Manque de neutralite

La partie "Utilisation Web" qui compare Flash, Javascript et Java est trop biasee en faveur de Java. Surtout compte tenu du fait que Flash et Javascript sont aujourd'hui beaucoup plus present que Java cote client.

"Les avantages de Java par rapport à Javascript sont essentiellement la portabilité. Plus l'interface est lourde, plus il est épuisant voire impossible d'adapter l'interface à tous les navigateurs du marché."

Aujourd'hui AJAX, donc Javascript, est frequement utilise pour des interfaces "lourdes" (Google Map, Google Mail et bien d'autres). Java en revanche est beaucoup moins utilise pour ce type d'interface. En outre Flash, AJAX et Java sont grosso modo equivalents en terme de portabilite.

"Les avantages de Java par rapport à Flash sont aussi valables par rapport à Javascript : Java propose un style de langage plus élégant, et extrêmement bien documenté et propose surtout un Environnement de développement intégré très efficace."

Il faudrait justifier / documenter : en quoi Flash et Javascript sont moins documentes que Java ? A quel niveau l'IDE de Java est-il plus "efficace" ?

Laurent--87.74.20.239 21 septembre 2006 à 01:02 (CEST)

En outre Flash, AJAX et Java sont grosso modo equivalents en terme de portabilité => pas du tout d'accord, avoir un fonctionnement correct sur les différents browsers est un cauchemar avec AJAX. Hervé 89.80.193.11 28 octobre 2006 à 21:38 (CEST)

[modifier] Bandeau à recycler

Bonjour, Je me suis permis d'ajouter le bandeau à recycler, car je pense que cet article à un bon contenu, mais nécessitérait un travail de ré-écriture. Il y a des doublons (par exemple entre l'historique des versions et la liste des versions). L'article est très long. Peut-être faudrait-il laisser certaines explications en liens. J'ai malheuresement pas le temps de faire ca moi-même ; Donc, c'est pour ca que j'ai apposé le bandeau à recycler en espérant que quelqu'un aura plus de temps que moi... Boretti 2 décembre 2006 à 23:07 (CET)

La priorité est probablement de fusionner les sections "Philosophie" et "Concepts de base". L'historique à mon sens est beaucoup trop détaillé, il serait bon de s'inspirer de l'historique de l'article anglais équivalent. Il est peut-être souhaitable de créer des articles connexes pour diminuer la complexité et les digressions de certaines sections. Globalement l'article est riche, peut-être un peu trop, et mérite une simplification. Olivier101 3 décembre 2006 à 23:52 (CET)

Il serait bon aussi de nettoyer la partie sur les liens externes et réorganiser tout ça. Pourquoi pas garder un ou deux liens vers les plus grosses communautés de développeurs. Mais il faudrait éviter d'avoir une liste dans laquelle on ne s'y retrouve pas. Cet article est trop long et pas assez aéré, surtout sur la fin. --Paulokoko 猿渡樹 30 janvier 2007 à 15:58 (CET)


[modifier] Code lent / exception

J'ai beaucoup de mal à comprendre si oui ou non attraper une exception est plus rapide que faire un test !


Le ratio (selon boucles sur 100 millions de tests) semble être aux alentours de 1/20 000. => cette phrase m'est incompréhensible :

- le ratio selon boucle : c'est-à-dire, le ratio calculé * en utilisant des boucles *, pour attraper une exception d'un côté ou pour faire un test de l'autre ??? J'imagine, mais ce n'est pas très clair.

- aux alentours de 1/20 000 => qu'est-ce qui représente le 1 et qu'est-ce qui représente le 20000°, s'il-vous-plaît ? Parce que là je comprends qu'attraper l'exception est 20000 fois plus rapide que faire le test


=> Aussi, il coûte plus cher de rattraper une exception à partir du moment où le risque d’avoir une exception est supérieur à 1/20 000 me semble du coup très paradoxal ! Et si on inverse le ratio, on comprend alors qu'attraper l'exception est 20000 fois plus lent et du coup on contredit le titre du paragraphe.


Je manque quelque chose, c'est certain, mais quoi ?... --AlienQueen 22 août 2007 à 00:09 (CEST)

[modifier] Les structures de contrôle

Bonjour,

Est-il vraiment nécessaire/utile de décrire les boucles, les structures conditionnelles et le traitement des exceptions ? Est-ce que ce n'est pas aller un peu trop dans le détail ? Je me dis que si on va jusque là, alors on est bons pour écrire un article complet qui apprendra aux gens à programmer en Java. Et je ne crois pas que ce soit la vocation de cet article. Houston83 (d · c)

Oui il faudrait juste ne garder que les caractéristiques propres à java Greudin (d)