<<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 !) ? >>
J'ai dit que cela n'avait pas de rapport direct avec le langage lui-même, ce qui n'est pas exactement le même chose. Les JVM s'améliorent à chaque génération. Je pense qu'à terme, la consommation de mémoire ne sera plus un problème, car intrinsèquement, Java n'implique pas nécessairement une grosse consommation mémoire.
<<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.>>
Ca sert effectivement à remplacer (en partie seulement) l'héritage multiple, mais ça n'a rien à voir avec la sémantique. Quand on parle de langage de programmation, le minimum est d'utiliser correctement le vocabulaire technique. Sémantique, ça n'a jamais voulu dire "utilité". De plus, les interfaces permettent une séparation propre entre le sous-typage (dire que A et B ont même type) et l'héritage. Pour des raisons un peu longues à développer ici, c'est une très bonne idée (cf les documents de conception de Sather, par exemple).
<<D'ailleurs, les déveleppeurs de chez Sun n' utilisent pas beaucoup les interfaces>>.
Affirmation fausse. Cf le code des Collections. Ils utilisent les interfaces quand elles sont utiles.
<<Une qualité majeure d'un langage, c'est la rapidité de développement.>>
Ce n'est pas l'avis des spécialistes en génie logiciel. Pour certaines applications, il faut effectivement développer rapidement. Pour d'autres ce n'est pas le cas.
<<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. >>
Etrange que le DoD ait choisi en son temps ADA qui est pourtant très verbeux. Etrange que C/C++/Java trustent l'écrasante majorité du développement, avec VB pour le in-house. Ces langages sont pas mal verbeux (et encore).
Je ne quote pas le passage sur le typage qui est risible. Comme tu ne sembles pas le savoir, je te précise simplement qu'il est effectivement possible en Java d'engendrer une définition de classe dynamiquement, d'instancier les objets, etc. On peut "questionner" les objets, comme tu dis. Va lire une doc Java et reviens discuter ensuite.
<<"n'importe quoi" n'avance pas, comme réponse.>>
En effet, mais face à des affirmations stupides, je ne sais pas quoi répondre. Les pointeurs existent en Java. D'ailleurs les objets sont tous manipulés par pointeurs. C'est pas parce que les ponteurs sont déréférencés et qu'on ne peut pas faire d'arithmétique avec eux qu'ils ont disparus. Quand je lis "Java c'est comme du C++, les pointeurs en moins", j'ai envie de baffer l'auteur. Comme je suis au fond un gentil garçon, je me contente de dire "n'importe quoi".
[^] # Re: vous débutez en JAVA...
Posté par boubou . En réponse à la dépêche Java la synthèse - Vers la maturité avec le JDK 1.2. Évalué à 1.
J'ai dit que cela n'avait pas de rapport direct avec le langage lui-même, ce qui n'est pas exactement le même chose. Les JVM s'améliorent à chaque génération. Je pense qu'à terme, la consommation de mémoire ne sera plus un problème, car intrinsèquement, Java n'implique pas nécessairement une grosse consommation mémoire.
<<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.>>
Ca sert effectivement à remplacer (en partie seulement) l'héritage multiple, mais ça n'a rien à voir avec la sémantique. Quand on parle de langage de programmation, le minimum est d'utiliser correctement le vocabulaire technique. Sémantique, ça n'a jamais voulu dire "utilité". De plus, les interfaces permettent une séparation propre entre le sous-typage (dire que A et B ont même type) et l'héritage. Pour des raisons un peu longues à développer ici, c'est une très bonne idée (cf les documents de conception de Sather, par exemple).
<<D'ailleurs, les déveleppeurs de chez Sun n' utilisent pas beaucoup les interfaces>>.
Affirmation fausse. Cf le code des Collections. Ils utilisent les interfaces quand elles sont utiles.
<<Une qualité majeure d'un langage, c'est la rapidité de développement.>>
Ce n'est pas l'avis des spécialistes en génie logiciel. Pour certaines applications, il faut effectivement développer rapidement. Pour d'autres ce n'est pas le cas.
<<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. >>
Etrange que le DoD ait choisi en son temps ADA qui est pourtant très verbeux. Etrange que C/C++/Java trustent l'écrasante majorité du développement, avec VB pour le in-house. Ces langages sont pas mal verbeux (et encore).
Je ne quote pas le passage sur le typage qui est risible. Comme tu ne sembles pas le savoir, je te précise simplement qu'il est effectivement possible en Java d'engendrer une définition de classe dynamiquement, d'instancier les objets, etc. On peut "questionner" les objets, comme tu dis. Va lire une doc Java et reviens discuter ensuite.
<<"n'importe quoi" n'avance pas, comme réponse.>>
En effet, mais face à des affirmations stupides, je ne sais pas quoi répondre. Les pointeurs existent en Java. D'ailleurs les objets sont tous manipulés par pointeurs. C'est pas parce que les ponteurs sont déréférencés et qu'on ne peut pas faire d'arithmétique avec eux qu'ils ont disparus. Quand je lis "Java c'est comme du C++, les pointeurs en moins", j'ai envie de baffer l'auteur. Comme je suis au fond un gentil garçon, je me contente de dire "n'importe quoi".