|
Posté par Patastronch
Bon deja le java n'est pas un langage compilé.
|
|
Posté par Jéjouille
*s'en va loin*
|
pourquoi donc ?
|
Posté par Jéjouille
Bonjour,
Comme compilateur je te conseille Eclipse (http://java.developpez.com/outils/edi/) Pour les cours je pense qu'une chtite recherche google pourrait t'aider. Ensuite tu pourras vérifier tes acquis grâce a ce site : http://www.developpez.org/club/bkostrzewa/ Programmation orientée objet. C'est un langage utilisé pour le net, qui est surtout utilisé pour des applications Clients-Servers (Exemple simple, un Tchat sur le net est un applet programmé en Java) Le petit plus du Java? Cela dépend surtout à quoi tu t'intéresses. |
|
Posté par Dominique Lefebvre
Eclispe n'est pas un compilateur (java n'est pas un langage compilé comme déjà indiqué) mais un environnement de développement (un framework si tu préfères).
Java n'est pas orienté objet! Sais-tu ce qu'est un langage orienté objet? ça fait beaucoup d'erreurs pour quelqu'un qui veut donner des conseils! |
|
Posté par Jéjouille
J'ai certes commis la grosse erreur de dire que le Java était compilé, mais là j'ai du mal à admettre que le Java n'est pas orienté objet car avec ce langage tout est objet, quasiment.
Bref nous pourrons reparler de tout ça demain. Après quelques heures de sommeil ! |
|
Posté par Dominique Lefebvre
Bonjour,
Qu'est-ce, pour toi, qu'un langage "orienté objet"? |
|
Posté par Jéjouille
Un langage orienté objet est un langage ou l'on aborde les notions d'objet (Un objet est une collection de propriétés, définissant les caractéristiques de l'objet, et de fonctions, permettant d'agir sur celui ci), de classe (définition de la structure d'un objet), d'héritage (classes, classes-filles... Une hierarchisation) et de polymorphisme...
|
|
Posté par Dominique Lefebvre
Bonjour,
Ceci dit, venons en à java. Certes, ce langage a une forte teinture objet (classe, héritage, polymorphisme) mais il présente plusieurs défauts qui me font dire que ce n'est pas un vrai LOO, contrairement à SmallTalk (le précurseur), Eiffel ou Objective-C. Citons: - le principal : il existe en java des types primitifs largement employés, entiers, réels, booléens, caractères et même des structures qui ne sont pas des objets. Je parle des tableaux qui ne se comportent pas comme des classes (voir les pb de contravariance vs invariance). - la notion d'héritage qui est n'est pas complète, - l'inexistence, pour le moment,de généricité, - une mauvaise distinction entre méthodes et attributs, - l'absence de covariance, sauf pour les tableaux bien sur, - pas de réflexivité, seulement de l'introspection, - pas de contrats, - .... |
|
Posté par Dominique Lefebvre
Dernière chose, à propos de la compilation. Il faut préciser les mots. On peut dire que java est un langage compilé dans la mesure où le compilateur java transforme du code source en bytecode: c'est l'opération que les javateux appellent une compilation. Puis on donne cette bouillie à une machine virtuelle (la célèbre VM) qui interprète ce bytecode en langage machine. C'est la contrainte de portabilité...
|
|
Posté par Patastronch
Je comprends ce que tu veux dire, mais j'ai l'impression que pour toi un LOO c'est en fait un langage orienté composant qui propose des outils pour la POO. Pour ma part un LOO c'est clairement un langage qui fournit des outils pour faire de la POO, mais qui n'oblige pas forcément à en faire.
|
|
Oui tu as tout a fait raison, en fait ca va plus loin que ca, la compilation c'est le fait de traduire un code source dans un langage donné en un autre langage. On pourrait parler de compilation si on passait d'un code java à un code c++. Cependant, on préfère distinguer la compilation vers un autre langage et la compilation vers un langage d'assembleur. Le java fait parti de la première catégorie. |
|
Posté par _-Gaara-_
Et moi le grand exclu du débat =)
Je ne sais toujours pas quoi choisir lol |
) et puis je ne sais pas encore !|
Posté par _-Gaara-_
Salut,
oui en effet j'hésite ! j'ai déjà de solides bases en turbo pascal, et puis je suis moyen en C (en informatique et pas en maths ) et puis je ne sais pas encore !Choisir entre java et C++ me paraît difficile =( D'ailleurs à chaque fois que je trouve un compilateur (ou un environnement..) je ne trouve pas de "bons" cours qui vont avec, c'est soit carrément avec un autre environnement ou c'est soit incompréhensible xD Donc je m'en remets à votre avis. Moi ce que je voudrais faire c'est du calcul ET des interfaces graphiques et tout =) voilà Merciii !!! |
|
Posté par anima
Pour du calcul, je pencherai pour le C plutot que le JAVA. A ma connaissance, il est tres difficile de threader une application JAVA, par exemple... |
|
Posté par Dominique Lefebvre
Bonjour Anima,
Tu m'étonnes !!! parce qu'une application java, qu'est-ce que c'est, hein? Mais ce qui fait que java n'est pas approprié au calcul, c'est l'inefficacité de son code interprété, même avec une VM puissante! |
| pour Gaara : même si l'accès à C++ est sans doute compliqué, personnellement je te recommande l'investissement. C'est un savoir que tu pourras toujours exploiter tel quel et qui t'ouvre aussi la voie à d'autres langages. A condition que tu mettes le paquet sur les apects objet. Et c'est le plus hard. Un des avantages du C++, c'est que tu peux laisser cet aspect de coté dans une première approche, ce qui revient à faire du C amélioré avec du C++. Pour ne rien te chacher, c'est souvent ce que je fais.... |
|
Posté par anima
L'orienté objet est présent dans tout language moderne, Domi. Que Gaara prenne du C, du JAVA, du PHP, de l'ActionScript ou meme du VB, il y a toujours un aspect OO.
|
|
Posté par Patastronch
Dans tous langage grand publique on va dire, je doute qu'il y ait une version de prolog avec de l'orienté objet par exemple.
|
|
Posté par Dominique Lefebvre
Ouaip, l'orientation objet du C me reste plus que nébuleuse :-))
|
|
Posté par Dominique Lefebvre
Le C++ te semble être un langage "grand publique"? quel "grand publique"?
|
|
Posté par Patastronch
La différence entre un struct en C et une class en C++ est infime.
|
|
Posté par Patastronch
Bien sur, j'entends par grand publique les langages utilisés par un nombre non négligeable de gens (informaticien ou pas).
|
|
Posté par Dominique Lefebvre
Ouai, bof! Dans la communauté des informaticiens professionnels ou occasionnels, C++ est sans doute l'un des plus utilisés (à mon avis, c'est COBOL le plus utilisé, mais bon...). Mais quant à parler de grand public, il ne faut pas exagérer...
|
|
Posté par Patastronch
Ouais je te l'accorde. Dans ce cas je remet en cause tout court l'affirmation d'Anima, les langages modernes ne font pas tous de l'orientation objet.
|
|
Posté par Dominique Lefebvre
Je suis assez d'accord avec toi... Disons que presque tous ont une teinture objet plus ou moins vague! Ecrire que PHP ou ActionScrip sont des LOO est plus que discutable. Je dirais que c'est comme la boisson bien connue : ça en a l'air et la couleur mais ce n'en est pas!
|
|
There have been several attempts at formalizing the concepts used in object-oriented programming. The following concepts and constructs have been used as interpretations of OOP concepts: * coalgebraic datatypes * existential quantification and modules * recursion * records and record extensions * F-bounded polymorphism |
| Et puis considérons les milliards de lignes de code écrites en COBOL, FORTRAN et C (les 3 langages industriels les plus utilisés, et pourtant datant tous du siècle dernier) qui sont en exploitation et faisons preuve de modestie.... |
|
Posté par _-Gaara-_
Merci beaucoup les amis ! C'est décidé ! Je prends le C et puis je pencherais vers le C++ =)
Mais dites, une ultime question, auriez vous des liens vers des cours que VOUS trouvez intéressants et utiles? Je sais qu'il y en a plein, mais il y en a sûrement quelques uns qui se détachent du lot. Donc je vous demande si vous pourriez m'en indiquer quelques uns. Encore merci beaucoup j'apprécie vraiment le fait d'apprendre beaucoup de choses sur le forum =) ![]() |
|
Posté par Dominique Lefebvre
Pour commencer un petit cours de C sympa... http://snovae.in2p3.fr/ycopin/ensei...ocs/cours_C.pdf
|
|
Posté par Patastronch
Si tu débutes vraiment en C, ce cours est tres bien fait :
http://www.siteduzero.com/tuto-3-8-...ammer-en-c.html Si tu connais deja la plupart des bases tu vas te faire chier. |
-