Si tu utilises Swing dans un logiciel libre en Java, il y a de fortes chances qu'il ne soit pas utilisable dans le « Monde Libre » défini dans le texte. Cette fonctionnalité est disponible dans la plate-forme Java de Sun mais pas dans Classpath.
Sans doute parce que CLASSPATH n'est pas au niveau des autres JVM (je me demande même s'il s'agit d'une JVM validée). Les autres JVM doivent fournir Swing, qui fait partie des API de Java.
Il aurait aussi pu parler de la plate-forme Java d'IBM. Bref ce n'est pas l'architecture Java qui est concernée mais les implémentations propriétaires.
Je ne le comprend pas comme ça. Les classes java.* et javax.* sont disponibles dans toutes les JVM (ça, c'est le "contrat moral" que passent ceux qui fournissent des JVM). En revanche, lorsqu'on accède à une classe sun.tools.javac.Main (par exemple) on sait qu'on n'en disposera que dans la JVM de Sun (et encore, seulement en installant le JDK). Il me semble que Stallman mentionne plutôt le second cas (utiliser une classe non-standard en pensant qu'elle l'est) quel le premier (utiliser une classe standard, et tomber sur une "implémentation" ne respectant pas le standard).
Et dans ce cas, il se gourre violement. Le code que j'écris n'utilise pas autre chose que du java.* (enfin, presque, il y a un peu de org.apache.*, mais ça, c'est quasi-obligé), et peut donc s'exécuter indifférement sur une JVM Sun, IBM, BEA ou CLASSPATH, pour peu qu'icelle supporte réellement les bibliothèques java.*
[^] # Re: Java trap
Posté par Nicolas Delsaux . En réponse à la dépêche Brèves Java. Évalué à 2.
Sans doute parce que CLASSPATH n'est pas au niveau des autres JVM (je me demande même s'il s'agit d'une JVM validée). Les autres JVM doivent fournir Swing, qui fait partie des API de Java.
Il aurait aussi pu parler de la plate-forme Java d'IBM. Bref ce n'est pas l'architecture Java qui est concernée mais les implémentations propriétaires.
Je ne le comprend pas comme ça. Les classes java.* et javax.* sont disponibles dans toutes les JVM (ça, c'est le "contrat moral" que passent ceux qui fournissent des JVM). En revanche, lorsqu'on accède à une classe sun.tools.javac.Main (par exemple) on sait qu'on n'en disposera que dans la JVM de Sun (et encore, seulement en installant le JDK). Il me semble que Stallman mentionne plutôt le second cas (utiliser une classe non-standard en pensant qu'elle l'est) quel le premier (utiliser une classe standard, et tomber sur une "implémentation" ne respectant pas le standard).
Et dans ce cas, il se gourre violement. Le code que j'écris n'utilise pas autre chose que du java.* (enfin, presque, il y a un peu de org.apache.*, mais ça, c'est quasi-obligé), et peut donc s'exécuter indifférement sur une JVM Sun, IBM, BEA ou CLASSPATH, pour peu qu'icelle supporte réellement les bibliothèques java.*