T'as l'intention d'écrire des programmes réels avec un langage virtuel (puisque d'après toi, on se fout de la qualité des JVM !) ?
Par "sémantique", je pense que le gars (ou la fille) voulait parler du "sens", du rôle, bref, qu'est ce que ça fout là à part boucher le trou laissé par l'abscence d'héritage multiple. D'ailleurs, les déveleppeurs de chez Sun n' utilisent pas beaucoup les interfaces - cf code de SWING).
Une qualité majeure d'un langage, c'est la rapidité de développement. Dans ce cas en effet, la passe compilation, ou l'absence de mode interactif peut retarder, ou du moins fatiguer. Mais le pire, c'est bien le côté verbeux : + de lignes, + de temps passé à taper, + de risque d'erreur. C'est pas un progrès en matière de langage.
POur ce qui est des types statiques, les deux approches se valent :
1) un type est défini (et limité) par le nom qui lui a été attribué et pas seulement par ses propriétés.
2) un type est défini d'abord par ses propriétés (comme en maths). Je trouve sympa de pouvoir passer en argument de fonction un objet fichier, buffer, chaîne ou socket dès lors qu'ils ont les mêmes attributs et méthodes. Ajouter dynamiquement des attributs à un objet ne changeant pas ses propriétés, c'est tout à fait acceptable d'imaginer qu'une fonction y colle ses propres "étiquettes" ou marqueurs pour usage privé. Voire même que l'objet s'auto-modifie ou se "questionne" (détection des méthodes ou attributs), ou se fasse questionner. De même, générer une définition de classe de façon dynamique et instancier ensuite des objets est génialement pratique. C'est super clean, on va au fond du concept objet. Et ça me manque en JAVA. C'est pour ça que moi aussi, je me tourne vers Python (moins connu en effet, mais ça vaut le coup de jeter un oeil, pour ceux que le concept objet passionne).
Bon, moi aussi j'attends toujours, comme d'autres, les différences fondammentales, niveau langage pur, entre Java et un C++ à qui on aurait enlevé les pointeurs et autres. "n'importe quoi" n'avance pas, comme réponse. Qu'il n'y en ai pas tant n'est pas une tarre, car le but de JAVA étant de se répandre, il doit être facile de l'apprendre quand on connaît C ou C++ (très répandus).
[^] # Re: vous débutez en JAVA...
Posté par Anonyme . En réponse à la dépêche Java la synthèse - Vers la maturité avec le JDK 1.2. Évalué à 0.
Par "sémantique", je pense que le gars (ou la fille) voulait parler du "sens", du rôle, bref, qu'est ce que ça fout là à part boucher le trou laissé par l'abscence d'héritage multiple. D'ailleurs, les déveleppeurs de chez Sun n' utilisent pas beaucoup les interfaces - cf code de SWING).
Une qualité majeure d'un langage, c'est la rapidité de développement. Dans ce cas en effet, la passe compilation, ou l'absence de mode interactif peut retarder, ou du moins fatiguer. Mais le pire, c'est bien le côté verbeux : + de lignes, + de temps passé à taper, + de risque d'erreur. C'est pas un progrès en matière de langage.
POur ce qui est des types statiques, les deux approches se valent :
1) un type est défini (et limité) par le nom qui lui a été attribué et pas seulement par ses propriétés.
2) un type est défini d'abord par ses propriétés (comme en maths). Je trouve sympa de pouvoir passer en argument de fonction un objet fichier, buffer, chaîne ou socket dès lors qu'ils ont les mêmes attributs et méthodes. Ajouter dynamiquement des attributs à un objet ne changeant pas ses propriétés, c'est tout à fait acceptable d'imaginer qu'une fonction y colle ses propres "étiquettes" ou marqueurs pour usage privé. Voire même que l'objet s'auto-modifie ou se "questionne" (détection des méthodes ou attributs), ou se fasse questionner. De même, générer une définition de classe de façon dynamique et instancier ensuite des objets est génialement pratique. C'est super clean, on va au fond du concept objet. Et ça me manque en JAVA. C'est pour ça que moi aussi, je me tourne vers Python (moins connu en effet, mais ça vaut le coup de jeter un oeil, pour ceux que le concept objet passionne).
Bon, moi aussi j'attends toujours, comme d'autres, les différences fondammentales, niveau langage pur, entre Java et un C++ à qui on aurait enlevé les pointeurs et autres. "n'importe quoi" n'avance pas, comme réponse. Qu'il n'y en ai pas tant n'est pas une tarre, car le but de JAVA étant de se répandre, il doit être facile de l'apprendre quand on connaît C ou C++ (très répandus).