Lire Autrement

Java, une technologie pas comme les autres!

Download PDF

Deux évènements marquant de la semaine dernière nous invitent à parler du langage de programmation Java: le premier est la bataille juridique qui oppose Oracle à Google pour la violation de brevets et le deuxième, Devoxx France 2012;  une conférence pour les développeurs dédiés en particulier à la communauté des développeurs Java. Elle s’est déroulée à Paris du 18 au 20 avril 2012.

Java est une technologie mais aussi un langage de programmation sous la licence GNU/GPL qui s’inscrit dans la case des langages orienté objet – un objet représente une entité du monde physique comme une personne et qui sait interagir et communiquer avec d’autres objets - structuré et impérative. Il a été créé par James Gosling, un informaticien canadien et Patrick Naughton, un informaticien américain, dans les laboratoires Sun Microsystems (rachetée en 2009 par Orcale Corporation). Il est apparu officiellement le 23 mai 1995 et a connu plusieurs évolutions depuis sa première version. La dernière version Java SE 7 (Java Standard Edition) date de  juillet 2011.

Java

Java

La technologie Java a donné naissance à:

  • Un système d’exploitation JavaOS dont la 1ère version est apparue en mai 1996. Il a été conçu pour les appareils embarqués.
  • Java ME: Java Mobile Edition une machine virtuelle pour les périphériques mobiles.
  • Java EE: Java Entreprise Edition,
  • JavaFX: c’est un langage agile dérivé de Java pour développer des applications RIA (Rich Internet Application).
  • Environnement de développement (IDE): Eclipse
  • Le système d’exploitation Androïd de Google, bien qu’il utilise ses propres bibliothèques, il en utilise aussi celles du langage Java. d’où la bataille juridique entre les deux firmes.

La particularité de ce langage est qu’il est portatif: les applications développées en Java peuvent être exécutées sur plusieurs systèmes d’exploitation avec souvent aucune ou peu de modification : Windows, Mac OS, Linux, Unix. Cette portabilité est assurée par la machine virtuelle JVM (Java Virtual Machine) qui dépend de chaque OS.

Avec certaines syntaxes, Java ressemble au langage C++  mais la grande différence réside dans certains concepts qu’il les a adoptés: l’héritage multiple sera remplacé par l’implémentation des interfaces, le ramasse-miettes (Garbage Collector) qui est appelé régulièrement et automatiquement pour gérer la mémoire et l’abandon des pointeurs et des références.

Java

Java

Java s’est imposé chez les professionnels avec ses applications client-serveur et grâce aux servlets et les JSP (JavaServers Pages) qui peuvent créer dynamiquement du code HTML et XML  à l’instar du PHP, ASP et ASP.net

Java offre plusieurs frameworks et APIs (Application Programming Interface ou interface de programmation) pour aider à développer les applications:

  • Pour créer les interfaces graphiques:
    • AWT: le premier framework graphique de Java
    • Swing: successeur d’AWT
    • SWT: framework créé par Eclispe
  • Pour gérer la base de données:
    • Hibernate: framework de mapping objet/relationnel
    • JDBC: l’API standard de Java
  • Faire de la 3D:
    • Java3D, JOGL, LWJGL: différentes API.

La popularité de Java est due avant tout à sa simplicité, sa robustesse  et sa performance. Il est classé en 2ème position selon TIOBE programming community index en avril 2012. Il est devancé par le langage C. Ce classement est basé sur le nombre des ingénieurs/développeur dans le monde entier, les cours vendus et la popularité du langage dans les différents moteurs de recherches: Google, Bing, Yahoo!, et les sites tels que: Wikipedia, Amazon, YouTube et Baidu.

Duke, la mascotte de Java

Java rassemble des personnes et des entreprises pour coordonner l’évolution de ce langage, on cite: JCP ou Java Community Process créé par Sun Microsystems en 1998, la fondation Eclipse et Apache, Devoxx, Duchess ou le rassemblement des développeuses Java.

Et comme on le décrit sur le site officiel, grâce à l’évolution de la technologie Java, à son efficacité, et à la portabilité de sa plate-forme, sa sécurité et ses 6.5 millions de développeurs, elle est devenue la solution idéale pour l’informatique de réseau. Elle équipe plus de 4,5 milliards de périphériques: des ordinateurs portables aux centres de données, des consoles de jeux aux superordinateurs scientifiques, des téléphones portables à Internet, la technologie Java est présente sur tous les fronts !

Imad Bousaid

Fondateur et responsable de publication d'Analyze Thiz. Il s'intéresse à la finance, la stratégie et la photographie.

More Posts - Website

Follow Me:
TwitterLinkedInFlickr

A lire aussi:

  • Pas d'articles.

9 Commentaires

  1. @alizeelechaux http://t.co/5bkXso4n cadeau ;) bonne journée!

  2. Java, une technologie pas comme les autres! – via @analyzethiz http://t.co/ZxYK7pTS

  3. Aaaah Imad et le Java … une grande histoire…. intéressante !

  4. Je pense que l’article a pour but d’etre une vulgarisation mais il contient tout de meme quelques inexactitudes. Ce n’est pas du tout une critique, l’exercice n’est pas évident surtout sur ce genre de chose mais pour les puristes certaines choses « choques »

    Celles qui m’ont le plus marquées :
    * « un langage de programmation sous la licence GNU/GPL » : Un langage ne peux pas vraiment être placé sous GNU/GPL. Le langage en soit c’est la façon d’écrire le code, la grammaire. C’est un concept. Seul sont implémentation peut avoir une licence logiciel. Ce qui est le cas d’OpenJDK l’une des version proposé par Oracle. Le problème viens en particulier du fais que Java désigne à la fois le nom du langage que le plateforme d’execution. Mais il est vrai que la page wikipedia n’es pas plus clair sur le sujet. Et d’ailleurs si Java, la plateforme, était ‘Libre pur’ completement au sens de la GNU/GPL il n’y aurais pas de procès avec Google car celui-ci n’aurais qu’a publier ces sources pour respecter la GPL et éviter le procès.
    * Je trouve la définition d’un langage objet un peu maladroite car cela ne représente pas forcément un objet réel, rarement même. Mais il est vrai que cette notion n’est pas forcément facile a décrire
    * Concernant Android/Google le problème viens du fait que Google a utilisé une JVM autre que celle d’Oracle (harmony, crée par la fondation Apache) et c’est ça qu’ils n’aiment pas. Cela n’a pas spécialement a voir avec les biblioteques disponible. C’est surtout des questions de brevets logiciels sur des parties de la JVM.
    * « La particularité de ce langage est qu’il est portatif » : On dit qu’un programme est portable, pas portatif, ce n’est pas une lampe :) Et encore une fois, c’est la JVM, la plateforme d’execution qui est portable, pas le langage qui est juste un concept :)
    * « l’abandon des pointeurs et des références. » Les référence pas vraiment, c’est surtout qu’ils sont implicite (on ne met plus le & pour le spécifier car TOUT est passé par référence), c’est plus les passages par valeur qui ont disparut.
    * A vérifier mais il me semble que la fondation Apache a claqué la porte du JCP au moment du rachat par Oracle
    * Pour les biblioteque disponible tu peux rajouter un « Et d’autres pour faire a peu pret tout ce que vous voulez »

    Ensuite un dernier petit points mais qui est plus facilement un Troll (je préviens hein). Tu cite plusieurs fois les performance comme raison du succès ce qui est globalement faux je pense. Au contraire Java a été régulièrement décrié comme un langage peu performant, au sens performance de calcul et mémoire. Il consomme beaucoup de mémoire et est réputé tres lent. C’est beaucoup moins vrai aujourd’hui mais c’est clairement pas ça qui a fais son succès car il avait ces defauts au moment de son essort. C’est beaucoup plus son efficacité pour les developpeur (on cree les programme rapidement avec lui), sa robustesse (la gestion automatique de la mémoire) et ces concepts haut niveaux. Tres pratique pour beaucoup de chose, sufisant pour presque toutes les appli mais pas pour celles contraignantes en perf.
    C’est pourquoi je maitrais aussi un bémol sur son utilisation dans les super calculateur et consoles de jeux.
    Le seul jeu vraiment connu qui l’utilise c’est Minecraft et il n’est pas connus pour ces performances… Sur Android les jeux gourmant en calcul utilisent un langage natif comme le C++ pour avoir des perf raisonable. Et les super calculateur, j’en ai jamais vus avec du Java; les contraintes sont souvent importantes et le java est trop haut niveau pour y etre adapté.

    Voila je crois que c’est déjà pas mal. Encore une fois le but est de faire des critiques constructives et je chipotte peut etre mais j’ai pas put m’en empecher.

    • Merci pour ton commentaire, mais je tiens à préciser que le but de l’article n’était pas de critiquer Java ou le comparer avec un autre langage. Surtout que je ne serai pas objectif dans ce sens. J’ai essayé, au vu de ces 2 évènements, de décrire un peu Java. Merci en tout cas pour les précisions apportées :)

  5. On reste quand même sur sa fin au niveau de l’article. Je m’attendais à apprendre des choses sur les deux événements cités. Au lieu de ça, l’auteur décrit Java…. mouais…. Si j’avais voulu tout apprendre sur Java je serai allé sur la page de Wikipedia !

    Ensuite à mon avis les deux copies d’écran ne sont pas forcément très pertinentes. Une seule aurait été suffisante ; surtout pour illustrer un « Hello world ».

    Et l’atout pour moi de Java est surtout dans le fait qu’il propose de faire des programmes batch, des programmes IHM (awt, swing, …), des applications web, des applications embarquées, etc… c’est très diversifié en fait ! peut être un schéma pour illustrer ceci ? afin d’avoir un visuel du « monde » Java!

    Et enfin merci à « GChristophe » pour ses remarques. Je me suis posé aussi des questions en lisant cet article. Je trouve tes remarques constructives. Et l’article devrait être corrigé pour les prendre en compte. Par contre, il serait bien de relire ses propres posts avant publication surtout quand c’est truffé de fautes d’orthographe.

  6. [A relire]: Java, une technologie pas comme les autres! http://t.co/rKwKOnIY
    #AnalyzeThiz

  7. C’est vrai le langage Java a une particularité différentes des autres langages. C’est le plus reconnu dans le monde du développement informatique.

  8. #info “ [A relire]: Java, une technologie pas comme les autres! http://t.co/l7d907Vb
    #AnalyzeThiz” via @AnalyzeThiz

Commentaires