A quoi servent ces différentes versions de Java?


63

Je suis sur le point de commencer mon Java voyage , (je l' ai déjà tâté en C ++) mais je reçois vraiment confus au sujet de toutes les différentes versions de Java:

  • JavaSE
  • JavaEE
  • JavaFX
  • etc.

Est-ce que quelqu'un peut expliquer cela en détail?

Réponses:


107

Java Propre

Java Standard Edition est la version "normale" conçue pour l'informatique en général. Comme toutes les autres variantes de Java, il s’agit d’un langage orienté objet basé sur un code fort, compilé en code-octet, qui s'exécute sur une machine virtuelle avec une récupération de place entièrement automatique. Il a la plupart des fonctionnalités de la langue. Des exemples d'applications comme Minecraft ou ArgoUML sont des exemples d'applications. Il peut être exécuté en tant qu'application de bureau autonome ou intégré dans une page Web en tant qu'applet.

Java Enterprise Edition n'est pas un langage différent mais constitue une spécification d'interface conçue pour produire un logiciel qui s'exécute dans une implémentation d'Application Server. La principale différence est qu’il est conçu pour le déploiement sur des serveurs d’application conformes aux spécifications de l’interface Enterprise Edition; Java SE peut être utilisé pour écrire des serveurs autonomes, mais n'inclut pas d'interfaces standardisées ni de spécifications conçues de la même manière que Java EE. Des exemples seraient des applications conçues pour fonctionner sur Glassfish (implémentation de référence Java EE), JBoss, etc.

Java Micro Edition est conçu pour fonctionner sur les appareils mobiles. Il convient de noter que ce n'est pas la même chose qu'Android. Java ME est conçu pour gérer le matériel mobile mieux que Java SE. J'utilise un Pantec Ease en tant que téléphone portable, il utilise Java ME.

Java Card est encore "plus petit" et vise des appareils très bas de gamme comme les cartes Smart ATM. Oui, certains d'entre eux ont réellement Java sur eux.

JavaFX est une infrastructure conçue pour créer des applications à interface graphique client Internet riche.

Famille de langue JVM

Tout d'abord, la machine virtuelle Java . Il s'agit d'une machine virtuelle basée sur une pile exécutant un code d'octet compilé qui ressemble beaucoup au langage d'assemblage. L'optimisation peut le rendre assez rapide pour des situations très spécialisées.

C’est tout pour les éléments Oracle Java actuels, et pour les éléments que les utilisateurs utilisent couramment sur la machine virtuelle Java. Tous ces langages disposent d'interops Java et peuvent généralement appeler la plupart ou la totalité des bibliothèques Java.

Groovy est un langage typé dynamiquement, orienté objet, avec une syntaxe plus succincte, présentée comme une alternative plus simple et plus puissante à Java. Il a été conçu comme une sorte de langage d'extension pour Java, permettant presque de glisser-déposer des fichiers Java dans des programmes Groovy. Il possède un cadre généralement associé au développement Web, appelé Grails .

Scala est un langage hybride orienté objet / fonctionnel assez récent (2003) conçu pour être hautement évolutif, d'où son nom. Twitter est un grand utilisateur de Scala.

Clojure est un langage fonctionnel récent (2007) de la famille Lisp. Il est conçu pour la programmation concurrente lourde dès le départ. Je n'ai pas de bon exemple de logiciel pour celui-ci, mais plusieurs entreprises l'utilisent.

Jython et JRuby sont les versions en bytecode Java de Python et Ruby, respectivement.

Il existe un certain nombre de langages pour la JVM comme Jaskell (Haskell pour la JVM), mais ils ont tendance à être des expériences obscures / académiques.

Trucs connexes

Android utilise Java mais s'exécute sur la machine basée sur les registres de Dalvik. Dalvik fait actuellement l’objet d’un procès contre Google, son adoptant. Android est essentiellement Java SE avec un ensemble différent de bibliothèques.

Netbeans et Eclipse sont les deux IDEs Java les plus largement parlés. Poser des questions sur l'un ou l'autre invoquera la clôture et je ne parle pas du concept de programmation.

Trucs sans rapport

Javascript n'est pas Java ... du tout. Il a été nommé que pour profiter de la popularité de Java et la confusion a été agaçante depuis.

Le rhinocéros dans la chambre

Rhino est un interpréteur Javascript qui transforme le code Javascript en code Java qui peut ensuite être exécuté quelque part. Ce n'est pas une langue séparée "en soi" mais, comme toute autre chose, a son propre ensemble de bizarreries. Rhino est développé par Mozilla comme alternative à leur interpréteur C basé sur SpiderMonkey. Rhino est généralement utilisé pour intégrer Javascript dans un programme Java.

Nashorn , développé par Oracle (avec éventuellement des niveaux d’efficacité allemands) pour le JDK 8, semble être le nouveau standard pour le Javascript intégré dans Java. Cela signifierait que Rhino n'est plus utilisé pour l'implémentation principale de Java. Ce que cela signifie pour le projet Rhino n’est pas clair pour le moment.


1
Merci beaucoup! C’était ce que je recherchais :) Une dernière question: J2SE, J2EE, etc. Ce ne sont que des versions plus récentes de SE, EE, etc.?
Patryk

8
Oui, J2EE et J2SE sont les versions deux de Java Enterprise Edition ou Standard Edition. Ce schéma de nommage n'est plus suivi cependant. Les versions actuelles sont appelées Java SE 6 (ou 5/7) et Java EE 5 (ou 6).
BenR

1
Il y a un Java pour les cartes à puce? L'esprit ahuri.
Megan Walker

1
Une réponse pour les gouverner tous!
utilisateur

1
Depuis la JDK8, Rhino est obsolète (supprimé?). Nashorn est le nouveau Rhino.
Silviu Burcea
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.