Avantage / inconvénient du JAVA? (+ question d'ultra noob)

salut a tous.

Dans le cadre d’une remise a niveau en info, je commence a bosser sur de la POO, et je met les mains dans le cambouis avec JAVA.

par le passé j’ai juste fait un peu de VB6 y’a 10 ans pour un projet scolaire. Puis il y a quelque année juste lu un bouquin sur le C++

Bref je m’y connais très peu.
Là je commence le JAVA (1.6), et on bosse sur Jcreator pour le moment.
JE n’ai aucun recul, en gros j’en suis a "hello world " :smiley:
et je commence a adapter 2-3 algorithme au travers d’exercices/TP.

Ma question est: c’est quoi les avantages/ inconvénients du java, par rapport a d’autre langages actuellement utilisé?
c’est répandu? :smiley:
c’est quoi la différence avec le javascript? :etonne2:

Bon j’arrête, 3 questions c’est pas mal :smiley:

et si j’ai pas mis la balise JAVA dans le titre, c’est parce que ma question est générale car je demande une comparaison avec d’autre langages ( svp Sans-Nom ne me bannit pas :o )

Bah l’inconvénient de java c’est qu’il est trop facile et qu’une trop grande bande de gens pensent le maîtriser avec seulement 6 mois, alors qu’ils continuent à utiliser des patterns de merde digne du C (je critique pas le C, loin de là, mais les variables globales, et fonction à tir larigot, bof quoi).

Pour faire de la POO, Java 6 est peut-être l’un des meilleurs choix (doit y avoir Ruby sinon) :

  1. Interface
  2. Generics (List, etc)

Yopla :hello:
En fait, ta question aurait pu être “quel est l’avantage de la poo ?” sur lequel Java est basé.
La poo offre une encapsulation, la genericité et la réutilisation de ton code métier plus facilement car il offre pas mal de souplesse (polymorphisme, heritage, template …).
Tout ca, dans un but de maintenance (les objets se suffisent à eux même), de relecture (un code objet bien pensé n’a presque pas besoin d’être commenté) et de réutilisation (ton code gere des objets du type voiture, rien ne l’empecherais de gérer des objets du type bus avec un minimum de modif).
Bref, la poo c’est le bien mais ca l’est que si et seulement si tu penses ton code avant même de saisir une seule ligne.
Apres, si tu veux savoir si Java est un bon langage pour la poo, évidemment oui, il offre tout ce qu’il faut en la matière … sauf la performance et la, le C++ (ou le D) est un meilleur choix.
Par perf, j’entend non seulement le langage mais aussi les outils de dev, depuis que je fais du Java, j’ai mon stressometre qui a atteint un niveau tellement élevé que j’ai compris qu’avoir un Eclipse ou un environnement de dev pour java (pas un simple éditeur j’entend) qui ne rame pas est utopique … ils sont à l’image du langage pour lequel ils sont fait :-p
On pourra surement en parler de vive voix le moment venu :wink:
Edité le 05/01/2008 à 20:55

(tiens, j’avais oublié que tu t’étais mis à Java :smiley: welcome to Eclipse :D)

J’ai succombé au mal du daymon, bien mal m’en a pris mais je doit reconnaitre aussi les nombreux bon points de Java :jap:

ok pour toutes ces infos.

oui on en reparlera karlkox :wink:

Mon dieu, Orfi va nous ramener ses devoirs à la prochaine réunion :smiley:

Je poste juste histoire de poursuivre cette magnifique suite royal de modérateurs et d’admins :smiley:

Cela prouve, s’il était besoin, qu’il n’y a que des modos ds le forum prog :o

Je dis faux, archi faux, et je passe juste pour le faire remarquer :o


(De plus, Startide n'est pas modéro de la section Prog :icon_biggrin: )

Il est modérateur, il peut modérer n’importe où anyway, comme moi d’ailleurs.

Bon, le prochain hors sujet je le ban, ça vous va? C’est qu’Orfilinn attend des réponses censées, pas un comptoir à prog. bis.

Désolé, SN, j’avoue avoir été un peu HS moi-même :smiley:

bon je recentre.

Comcernant ma question sur la différence entre le java et le javascript, qu’en-est-il?

Rien a voir enfait :wink: C’est souvent mélanger mais a par que dans les deux ont écrit des ligne de code, les deux n’ont aucun lien.

Javascript déja c’est de l’interprété, Java quand a lui passe par une phase de compilation en ByteCode.
Javascript n’a pas vraiment de typage. Java est une language fortement typé.
Javascript permet quelques concept POO au travers du prototypage. Java est un language PPOO (Presque POO) qui intégre de nombreux concept de la POO et bien programmer en Java demande une bonne maitrise de ceux ci.

Voilou en gros.

J’ajoute que Javascript est essentiellement utilisé dans les navigateurs web en exécution côté client, il a été à une époque opposé vbScript de Microsoft, mais il a gagné cette bataille. La syntaxe est assez proche du Java.

Le Java a l’avantage d’avoir un code portable, un programme java est exécutable sur n’importe quelle plateforme ou architecture (enfin c’est à prendre avec des pincettes, si par exemple le prog exécute des commandes spécifiques à un OS, etc…), c’est la machine virtuelle qui prend en charge les contraintes, elle ajoute une couche supplémentaire pour que le programme ai toujours le même environnement d’exécution. Cette machine virtuelle a bien entendu l’inconvénient de prendre des ressources supplémentaires.

oui enfin, Javascript est portable aussi hein. Juste que dans IE, Ms y ajoute JScript. Sinon, javascript est un standard qui va sur sa version 2 qui apporte entre autres beaucoup plus de paradygme objet. Pour le reste, ça reste des langages proches (Javascript est basé sur Java, quoi qu’on en dise).

Au passage, Javascript a du typage dynamique. C’est pas la même chose que Java où c’est statique. C’est même bien plus puissant :slight_smile:

[edit] et dans tous les cas, c’est des langages à machines virtuelles.
Edité le 06/01/2008 à 19:54

Ah non, le javascript est un code interpreté et n’est nullement compilé à quelque moment que ce soit donc exit l’utilisation d’une machine virtuelle, c’est le navigateur qui interprete le code :wink:

Le typage dynamique n’est pas forcement plus puissant. Le typage statique se justifie aussi, il n’est pas forcement logique de mettre du ketchup dans une bouteille de shampoing. Et du coup un typage statique permet de savoir a la compilation que l’on ne fait pas n’importe quoi avec les variables.

Au passage un des gros soucis de Javascript est que sur la grande majorité des implémentation on se retrouve avec des endroit sujet a des fuites mémoire. Et cela peut meme devenir extremment critique quand on tente de faire des application tout Ajax car cela abouti a des application qui prene jusqu’a 1Go de ram coté Client.

(Je pose tout de suite un anti-troll, contre ceux qui voudrait parler de Java et de ca consommation mémoire, qui n’est elle en rien une fuite mémoire, j’appelle fuite mémoire le fait qu’apres un certaine nombre d’heure d’utilisation la place prise par l’application (ou le navigateur dans le cas de Javascript) croisse de maniere significative. Choses que nous ne voyons pas apparaitre dans une application Java, qui peut certe etre gourmande en mémoire, mais sans aucune comparaison avec une fuite.)

Karlkox: c’est donc le navigateur la machine virtuelle. Ca revient au même hein :slight_smile: Le code n’est pas compilé à chaque fois, il est transformé en bytecode (ou équivalent) puis lu parce qu’il faut.

TheGuit: Java en soit ne fait pas de fuite mémoire (à voir aussi les ressources jamais libérées, mais c’est côté programmeur, pas langage. Par contre, la VM est lourde, c’est un fait avéré.

La, tu fais erreur, le javascript n’est ni compilé ni transformé en quoi que ce soit, il y a un interpreteur derriere et comme tout interpreteur, pour chaque code identifié, il va produire l’action à effectuer.
S’il voit la fonction alert(), il saura qu’il faudra ouvrir une messagebox.
Il n’y a pas une once de machine virtuelle la dedans :slight_smile:
Edité le 06/01/2008 à 21:35

j’vois.

Mais ça existe:

french.osstrans.net…

(c’est la seule que j’ai trouvé)

Par contre, Java (le programme) ne fait qu’interpréter un bytecode pour le transcrire dans un code machine… chez moi, ça revient plus ou moins au même (même s’il cherche à optimiser, ie: obtenir une sorte de code dans le langage machine).