>>- pas de réflexivité
Ce choix a été fait pour simplifier la machine virtuelle et pour des raisons de sécurités (si tu as le droit de modifier les classes de sécurités ou les classloaders, t'es mal).
>>- pas de fonctions lambda :) ;
Ces fonctions sont émulés par les objets et les interfaces. exemple : l'interface java.util.Comparator qui définit une méthode public int compareTo(Object o1, Object o2). Tu crées une classe implémentant Comparator (de type inner, toplevel ou anonyme) avec ta méthode de tri et tu la passe à la méthode voulue (Arrays.sort() par ex). Ca marche pareil avec les Iterator, les Enumeration, etc.
Je trouve que ça a l'avantage de clarifier le language (au détriment peut-etre de la rapidité d'écriture et encore).
>>- pas de contrats
Conceptuellement, je suis d'accord, c'est un gros manque. Mais qui va coder les tests des contrats dans ses classes à part ceux qui font des choses carrées ? (j'ai deux exemples sous la main de codeurs non propres, je les imaginent mal utiliser les contrats).
Pour ce qui est des noms longs, ça a l'avantage d'etre lisible et compréhensible (compare strftime() et DateFormat.format()). L'inconvénient, je le reconnais, c'est cette lignes des 80 colonnes qu'on atteint voire franchit allègrement.
[^] # Re: Java et Linux
Posté par Pat Le Nain . En réponse au journal Java et Linux. Évalué à 2.
Ce choix a été fait pour simplifier la machine virtuelle et pour des raisons de sécurités (si tu as le droit de modifier les classes de sécurités ou les classloaders, t'es mal).
>>- pas de fonctions lambda :) ;
Ces fonctions sont émulés par les objets et les interfaces. exemple : l'interface java.util.Comparator qui définit une méthode public int compareTo(Object o1, Object o2). Tu crées une classe implémentant Comparator (de type inner, toplevel ou anonyme) avec ta méthode de tri et tu la passe à la méthode voulue (Arrays.sort() par ex). Ca marche pareil avec les Iterator, les Enumeration, etc.
Je trouve que ça a l'avantage de clarifier le language (au détriment peut-etre de la rapidité d'écriture et encore).
>>- pas de contrats
Conceptuellement, je suis d'accord, c'est un gros manque. Mais qui va coder les tests des contrats dans ses classes à part ceux qui font des choses carrées ? (j'ai deux exemples sous la main de codeurs non propres, je les imaginent mal utiliser les contrats).
Pour ce qui est des noms longs, ça a l'avantage d'etre lisible et compréhensible (compare strftime() et DateFormat.format()). L'inconvénient, je le reconnais, c'est cette lignes des 80 colonnes qu'on atteint voire franchit allègrement.