Discussion:Java (langage)

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

J'ai modifié le texte décrivant la technologie des applets pour actualiser la place des applets dans les différentes plateforme RIA aujourd'hui : dans les faits les applets sont marginales sur le web et plus encore dans les nouveaux développements.

Une première alerte a été donnée en 2016 quand à l’avenir des applets. La bibliothèque devenait deprecated avec jdk9. Java 11 n.inclu plus les Applet et Java Web Start et Oracle conseille d’abandonner ces technologies. https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf Erik Mazoyer (discuter) 26 octobre 2018 à 14:53 (CEST)[répondre]

Félicitations[modifier le code]

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))

instruction goto ?[modifier le code]

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)

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

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)

Exceptions[modifier le code]

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.

Partie évaluation[modifier le code]

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)[répondre]


je pense qu'un partie avantage/désavantage du langage est tout de même nécessaire, pour qu'un potentiel programmeur lisant cette article puisse réellement cerner le principe de ce language. Je pense qu'un partie peut etre réaliser de façon assez objective en énnoncant des avantages et des inconvénient quasi indiscutables je donnes quelques exemples: avantage:

-portabilité directe sans besoin de recompilation.

- programmation multimédia ne nécessitant pas d'apport de bibliothèques extérieures.

- existence de nombreuse librairie standard pouvant se réveller utiles

désavantages: -performance moins grande par rapport à d'autres languages commme le C (C++) car plus haut niveau

-manque de consision de la syntaxe

-Language dépendant encore plus ou moins de SUN meme si une partie a été "libérée".


Voila c'est des exmples masi je pense que l'on peut vraiment réaliser une partie avantages désavantages du language objective. dragoon76 19 janvier 2009 21:24

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)[répondre]

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

pas compris:[modifier le code]

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


Ce sujet n'est pas neutre![modifier le code]

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)[répondre]
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)[répondre]
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)[répondre]

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)[répondre]
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)[répondre]

Points de vue[modifier le code]

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)[répondre]

GrEgY 5 novembre 2005 à 16:12 (CET)[répondre]

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)[répondre]

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)[répondre]

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)[répondre]


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)[répondre]

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

Depuis mars 2014 avec l'apparition de Java 8, le codage en Swing est considéré comme du 'code hérité', l'outil de création d'interface graphique ('GUI toolkit') officiel de Java est maintenant JavaFX ptyxs (discuter) 15 août 2014 à 18:26 (CEST)[répondre]

Historique[modifier le code]

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)[répondre]

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)[répondre]


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)[répondre]

JavaScript-bashing[modifier le code]

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)[répondre]

serveur ou client[modifier le code]

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...

Répétition ?[modifier le code]

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)[répondre]

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.

Restructuration[modifier le code]

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)[répondre]

Manque de neutralite[modifier le code]

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)[répondre]

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)[répondre]

Bandeau à recycler[modifier le code]

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)[répondre]

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)[répondre]

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)[répondre]


Code lent / exception[modifier le code]

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)[répondre]

Je pense que cette partie n'a pas sa place ici. En effet, cette problématique n'est pas du tout spécifique à Java mais à tout langage qui possède un système de gestions d'exception : il faudrait l'enlever de cette page ou la déplacer vers cette page sur les exceptions : [1]

Les structures de contrôle[modifier le code]

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)

Neutralité ?[modifier le code]

Bonjour. Je trouve que Java est un excellent langage de programmation. néamoins la tendance publicitaire de cet article me plait pas du tout.

  • Divers concepts sont expliqués dans cette page comme si ils étaient uniques à Java, ce qui est loin d'être le cas. exemple: le concept objet

Un objet peut être vu comme une entité unique regroupant un comportement, le code, avec un certain état, les données. Le principe est de séparer les choses qui changent de celles qui ne changent pas ; souvent un changement au niveau d’une structure de données va impliquer un changement dans le code servant à manipuler ces données et réciproquement. Ce découpage en entités cohérentes appelées objets permet d’avoir des fondations plus solides pour bâtir une architecture logicielle de qualité. L’objectif est de pouvoir développer des projets plus simples à gérer et de réduire le nombre de projets aboutissant à un échec.


idem pour le concept du garbage collector déja traité dans un autre article.

  • Il y a des digressions, exemple, dans la rubrique indépendance de la plateforme:

Ces implémentations produisaient des programmes qui s’exécutaient plus lentement que ceux écrits en C ou en C++, si bien que le langage souffrit d’une réputation de faibles performances. Des implémentations plus récentes de la machine virtuelle Java (JVM) produisent des programmes beaucoup plus rapides qu’auparavant, en utilisant différentes techniques.


--Silex6 (d) 16 décembre 2008 à 20:39 (CET)[répondre]


JDK, JCP, TCK et question de licence[modifier le code]

Bonjour,

Avant d'éditer l'article et de risquer une guerre d'édition (le bandeau en haut précise qu'il fait partie des 1000 articles les + lus, et les questions de licences pouvant mener à de longs trolls et/ou débats argumentés), une petite précision. L'article mentionne actuellement :

Passage sous licence libre
Le 13 novembre 2006, Sun annonce le passage de Java, c’est-à-dire le JDK (JRE et outils de développement) et les environnements Java EE (déjà sous licence CDDL) et Java ME sous licence GPL. En mai 2007, Sun publie effectivement OpenJDK sous licence libre. Cependant OpenJDK dépend encore de fragments de code non libre que Sun ne détient pas. C'est pourquoi la société Redhat lance en juin 2007 le projet IcedTea qui vise à remplacer les fragments de code non libre et ainsi rendre OpenJDK utilisable sans aucun logiciel propriétaire. En juin 2008, le projet IcedTea a passé les tests rigoureux de compatibilité Java (TCK) [3]. On peut donc dire que Java devient un logiciel libre.

Ce n'est pas "Java" qui est libre, c'est le JDK de Sun, i.e. une implémentation particulière. Le langage en lui-même n'est ni un logiciel (c'est une spécification), ni libre...

Apache développe depuis plusieurs années Harmony, qui souhaite être une implémentation libre de Java. Je dit bien "souhaite", car pour prétendre être une implémentation du langage Java, il faut passer un test de compatibilité spécifique (le TCK). Or, le TCK (développé par Sun) est sous une licence particulière qui impose des contraintes sur l'implémentation qui passe les tests, contraintes qui sont incompatibles avec la licence de Harmony (et a priori pas seulement la licence Apache).

Cf. http://www.jroller.com/scolebourne/entry/sun_apache_ip_in_pictures (et articles précédents et suivants sur le même blog) pour plus d'infos et des liens vers le site du JCP.

On peut noter que, depuis le rachat de Sun par Oracle, la situation devrait s'améliorer. En particulier, le DoJ (ministère de la Justice des USA) semble avoir lancé une enquête sur cette pratique "antitrust" (cf. http://www.jroller.com/scolebourne/entry/no_java_7_us_doj que je viens de découvrir).

Il me semble donc que l'article devrait être modifié pour clarifier ce point. En attente d'autres avis pour le faire de façon le plus NPOV possible...

Section impertinente[modifier le code]

À mon avis, la partie « Version interprété » n'a strictement rien à faire sur cette page. Le sujet de l'article est Java en tant que langage, or cette section traite de comment utiliser d'autres langages que Java sur la plateforme Java.

Spidermario (d) 22 février 2010 à 15:49 (CET)[répondre]

En plus de ne pas être à sa place, cette section est fausse puisqu'elle laisse croire (entre autre) que Jython est un interpréteur Java, alors que c'est un interpréteur Python écrit en Java.

Iderrick (d) 6 mai 2010 à 17:16 (CEST)[répondre]

Juste un truc : de nos jour on n'utilise plus le mot «impertinent» dans ce sens. a+Outs (d) 10 mai 2010 à 09:16 (CEST)[répondre]

Aperçu déroutant[modifier le code]

Je pense qu'il faudrait reformuler l'aperçu, sujet à polémique:

Le langage reprend en grande partie la syntaxe du langage C++, très utilisé par les informaticiens. Néanmoins, Java a été épuré des concepts les plus subtils du C++ et à la fois les plus déroutants, tels que les pointeurs et références, et l’héritage multiple remplacé par l’implémentation des interfaces.

La partie commune des syntaxes du C++ et du Java viennent de l’ancêtre commun C.

Que le C++ soit "très utilisé par les informaticiens" ne me semble pas pertinent dans un article sur le Java.

For et foreach[modifier le code]

Bonjour,

Je suis très loin d'être un spécialiste de Java, mais il me semble qu'il y a une ambiguité sur le for et le for each :

 for (<Objet récupérant loccurrence suivante de la collection> : <collection dobjets>){
    instruction(s)
 }

est une structure for each et non pas for ?

J'attends vos conseils !

À+ ! Sodatux [discuter] 26 mars 2012 à 22:54 (CEST)[répondre]

S'agissant des collections, le each n'est plus utilisé depuis Java 1.5[1]. JackPotte ($) 27 mars 2012 à 20:32 (CEST)[répondre]

Garbage Collector : et les smart pointers du C++ ?[modifier le code]

La section sur le Garbage Collector dit que la desallocation en C++ ne peut pas se faire de maniere automatisee. C'est vrai si l'on manipule des pointeurs nus, mais pas exact si l'on utilise des pointeurs intelligents (comme les std::shared_ptr du C++11). --123.122.1.175 (d) 15 avril 2012 à 09:47 (CEST)[répondre]

Le contenu de l'article compilateur Java peut faire l'objet d'un court paragraphe dans l'article Java (langage). Silex6 (d) 28 septembre 2012 à 14:49 (CEST)[répondre]

Compilateur Java (h · j · ) : 12 révisions sur 3 ans
Java (langage) (h · j · ) : 1099 révisions sur 10 ans
La fusion des 2 historiques entraînera 14 changements d'articles (1%) sur 1111 révisions.
Méthodes suggérées pour respecter la licence (en cas de transfert de contenu) : utiliser {{Crédit d'auteurs|interne|titre de la source}} sur l'article et optionnellement {{auteurs crédités après fusion}} sur la page de discussion ou demander une fusion d'historiques.

Neutre[modifier le code]

  1.  Neutre Je pense qu'on pourrait écrire beaucoup de choses dans l'article Compilateur Java, mais c'est vrai qu'en l'état, on pourrait aussi bien avoir une section dans l'article sur le langage. — Arkanosis 28 septembre 2012 à 16:42 (CEST)[répondre]

Contre[modifier le code]

  1. Contre Java est un langage informatique, alors qu’un compilateur est un programme informatique pouvant être écrit dans n’importe quel langage : deux choses de nature différente qu’il ne me paraît pas opportun de rassembler. Zapotek (d) 30 septembre 2012 à 10:56 (CEST)[répondre]
Le but d'un compilateur Java n'est-il pas d'implémenter le langage de programmation ? --Silex6 (d) 30 septembre 2012 à 11:38 (CEST)[répondre]
Le but d’un grille-pain n’est-il pas de griller du pain ? Faut-il pour autant fusionner ces articles ? Zapotek (d) 7 octobre 2012 à 16:34 (CEST)[répondre]
Tout d'abord consommer du pain de nécessite pas impérativement un grille-pain, et ensuite il y a du potentiel pour les deux sujets. concernant compilateur Java, un compilateur ou interpréteur sont impératifs pour se servir d'un langage de programmation, ensuite je ne suis pas convaincu du potentiel encyclopédique du sujet compilateur Java. (une simple liste de produits ?).--Silex6 (d) 8 octobre 2012 à 15:05 (CEST)[répondre]

Pour[modifier le code]

  1. Pour Dans l'état actuel, je partage l'avis de Silex6 selon lequel l'article compilateur Java, vu le peu d'information qu'il donne, peut faire l'objet d'un court paragraphe dans l'article Java (langage). Theon (d) 19 novembre 2012 à 11:14 (CET)[répondre]

Cet article est peut-être, pour le reste, très bien fait, je ne sais pas, mais il est beaucoup trop dense et ça le rend très difficile à lire. C'est comme s'il avait été écrit à 99% par des juristes (juges, avocats, etc...). Sur Wikipédia, les articles aussi denses sont rares, même parmi les articles sur le droit, ce qui, de plus, n'est pas le cas ici.
C'est pourquoi je suggère que cet article soit structuré de manière plus aérée, afin de le rendre plus lisible et plus compréhensible.
Nicolas.le-guen (d) 3 avril 2013 à 16:45 (CEST)[répondre]

Le langage JavaFX ?[modifier le code]

Bonjour, On voit à plusieurs reprises dans cet article "le langage JavaFX". Or, il me semble que JavaFX est une plateforme logicielle basée sur Java (C'est en tout cas ce qui est indiqué ici : http://en.wikipedia.org/wiki/JavaFX). L'auteur l'a-t-il confondu avec JavaFX Script ?


Depuis Java 8 (mars 2014) JavaFX est l'outil de création d'interface graphique ('GUI toolkit') officiel de Java (le développement de son prédécesseur Swing est abandonné, sauf pour les corrections de bogues). JavaFX est entièrement utilisé maintenant en langage Java, le langage JavaFX Script est abandonné. ptyxs (discuter) 15 août 2014 à 18:24 (CEST)[répondre]

Partie "Histoire récente"[modifier le code]

Bonjour, Je me suis permis de réorganiser un peu la partie "Histoire récente" en mettant ce qui parlait des mobiles dans la partie pour les mobiles. J'ai aussi supprimé deux paragraphes hors-sujet sur la POO qui n'avaient rien à faire dans la partie sur les serveurs. Enfin, j'ai corrigé l'erreur sur JavaFX décrite ci-dessus par mon précédent message. Antoine1023 (d) 7 mai 2013 à 15:02 (CEST)[répondre]

Logiciel libre[modifier le code]

"On peut donc dire que Java alors devient un logiciel libre" : Voila une affirmation très contestable, vus les nombreux brevets que détient Oracle sur la technologie. Le procès contre Google a clairement démontré qu'Oracle escomptait bien rester seul maitre de Java. D'ailleurs, l'attaque même d'Oracle contre Google et ses motivations ont provoqué l'arrêt immédiat de toutes les implémentations libres de Java, que ça soit dans le domaine des compilateurs ou des JVM : Apache Harmony, GNU Classpath, GCJ, SableVM, etc. Traroth | @ 18 décembre 2013 à 10:49 (CET)[répondre]

Refonte nécessaire[modifier le code]

En relisant cet article, je me dis qu'il a bien mal vieilli. Les problèmes vont de l'erreur factuelle pure et simple ("À la différence d'autres langages orientés objet (Objective-C par exemple), il n'existe cependant pas de 'Superclasse mère' dont dériveraient toutes les classes Java", alors que toutes les classes Java dérivent implicitement ou explicitement de java.lang.Object, et ce depuis toujours) à du hors-sujet (détails sur le fonctionnement de SCons) en passant par de gros manques (pas d'explication sur la manière dont s'articulent les différents éléments constituants le monde Java (JVM, JRE, JDK, Java SE, Java EE, JavaCard, la différence entre langage Java et plateforme d'exécution, ce qui conduit à des imprécisions quand l'article par d'Android, etc). Liste non-exhaustive... Traroth | @ 18 décembre 2013 à 11:16 (CET)[répondre]

Entièrement d'accord avec vous. Près de six mois après la sortie de Java 8, rien sur les streams, les lambdas, bref les aspects de programmation fonctionnelle si importants dans le nouveau Java, et rien de sérieux sur JavaFX, par exemple. ptyxs (discuter) 15 août 2014 à 18:34 (CEST)[répondre]

Liens externes modifiés[modifier le code]

Bonjour aux contributeurs,

Je viens de modifier 1 lien(s) externe(s) sur Java (langage). Prenez le temps de vérifier ma modification. Si vous avez des questions, ou que vous voulez que le bot ignore le lien ou la page complète, lisez cette FaQ pour de plus amples informations. J'ai fait les changements suivants :

SVP, lisez la FaQ pour connaître les erreurs corrigées par le bot.

Cordialement.—InternetArchiveBot (Rapportez une erreur) 13 mars 2018 à 20:16 (CET)[répondre]

Bilan de la portabilité Java ne cite pas ses sources et me semble biaisé[modifier le code]

Le texte indique :

La portabilité est techniquement un objectif difficile à atteindre et le succès de Java en ce domaine est mitigé. Quoiqu’il soit effectivement possible d’écrire des programmes pour la plate-forme Java qui fonctionnent correctement sur beaucoup de machines cibles, le nombre important de plates-formes avec de petites erreurs et des incohérences a abouti à un détournement du slogan de Sun « Write once, run anywhere » (« Écrire une fois, exécuter n'importe où ») en « Write once, debug everywhere » (« Écrire une fois, déboguer partout ») !

J’ai cherché le détournement sur Internet pour trouver des exemples qui souligneraient ce point ; sans succès. Du coup je me suis reporté à mon expérience et au cours de mes 20 ans d’utilisation de Java (1996) je n’ai rencontré qu’un cas important ou le code se comportait différemment suivant

les plateformes : les événements sous AWT. Et c’est vrai que les OS faisant des choix différents quand à l’ordonnancement des événements, cela se traduisait en Java par un ordre événementiel non prévisible.

Un autre cas, beaucoup plus anecdotique, était la destruction de fichier qui pouvait être décalé dans le temps sous Windows (à nouveau un choix OS). Le premier point a été en partie résolu sous Swing et complètement résolu sous JavaFX. Le second point est anecdotique et quand il faut un comportement plus déterministe, il est commun d’utiliser une bibliothèque Apache qui assure un comportement identique sous tous les OS.

Je trouve donc étonnant la phrase : le nombre important de plates-formes avec de petites erreurs et des incohérences a abouti à un détournement du slogan de Sun « Write once, run anywhere » (« Écrire une fois, exécuter n'importe où ») en « Write once, debug everywhere » (« Écrire une fois, déboguer partout ») !

Dans tous les cas, il serait intéressant de citer ces petites erreurs et ces incohérences. Ou au moins un article traitant des problèmes rencontrés.

Erik Mazoyer (discuter) 26 octobre 2018 à 14:44 (CEST)[répondre]

Proposition d'anecdote pour la page d'accueil[modifier le code]

Une proposition d'anecdote pour la section « Le Saviez-vous ? » de la page d'accueil, et basée sur cet article, a été proposée sur la page dédiée.
N'hésitez pas à apporter votre contribution sur la rédaction de l'anecdote, l'ajout de source dans l'article ou votre avis sur la proposition. La discussion est accessible ici.
Une fois l'anecdote acceptée ou refusée pour publication, la discussion est ensuite archivée .
(ceci est un message automatique du bot GhosterBot le 23 juin 2019 à 18:15, sans bot flag)

Algorithme calcul[modifier le code]

Calcul une valeur Fouad.bendaoud28 (discuter) 10 mars 2023 à 11:56 (CET)[répondre]

Java et sécurité[modifier le code]

J'ai mis à jour la section Java (langage)#Failles de sécurité, mais de mauvaise grâce : il me semble que parler de Java+sécurité, sans détail, est trop vague, et donc propice aux raccourcis ("plus sécurisé que c++" à "totalement dangereux") qui existaient encore un peu dans cette section il y a quelques jours. La section est encore très spécialisée sur l'installation sur pc de bureau, ce qui est secondaire de nos jours (sauf pour Minecraft et quelques applications d'entreprise, ok). La réalité est que Java - langage + bibliothèques standards + outils + bibliothèques tierces - est vaste. Java est utilisé dans des centaines de milliers (millions ?) d'application - dont des applications à la sécurité cruciale (finance, paiement, armée...) -, et à l'inverse des vieilles applets trouées. C'est tellement divers que les sources éparses sur le sujet n'abordent chaque fois qu'un point de vue (ex. : le greffon web), et je doute qu'on puisse trouver des sources synthétiques indépendantes de qualité sur le sujet. Askywhale (discuter) 4 décembre 2023 à 18:35 (CET)[répondre]