Même que c'est pour ça que ça n'a jamais été utilisé pour faire des jeux vidéo sur les vieux téléphones... laissez-moi réfléchir... j'ai comme l'impression d'oublier un détail important, la?
Plus sérieusement, je ne pense pas que Java soit la raison derrière le gouffre en RAM et la faible lenteur.
J'accuserai plus volontiers des développeurs qui ne se sont pas cassés la tête, parce que "le client rachètera de la RAM au pire" (entendre ça de la part d'un prof, ça fait rêver... et c'était pas sur du java!), parce qu'il faut release rapidement ou autre.
Ainsi, pour les serveurs, que les admins qui n'ont pas paramétré la JVM selon les besoins de l'application.
Le java dont je me souviens (je n'ai jamais aimé ce langage) a effectivement des "problèmes" hein:
définir la fonctionmain() comme étant une fonction statique d'une classe qui sera instanciée qu'une seule fois, parce que seule la POO devrais exister (oupa)
des namespace avec une profondeur telle qu'on se demande si a force de creuser on va pas finir en enfer
Mais globalement, les exceptions bien spécifiées je trouve ça au contraire génial: si C++ avait ça, ben les exceptions je m'en servirais!
Les getter/setter, j'ai toujours eu ça en horreur, mais c'est pas lié à java, juste a du cargo cult.
Overengineering? Idem.
Tous les trucs que je reprochais à Java, je les ai vus dans des codes dans d'autres langages. Tous.
D'autres langages? Lesquels? C. Et C++.
Oui, j'inclue le C, parce que j'ai vu des gens réimplémenter l'héritage (c'est pratique faut dire, quand c'est bien utilisé) en C, et en abuser. Les namespaces n'existent pas en C? Pas grave, le workaround c'est des "conventions de nommage" du style un_truc_comme_ca_et_ajoutons_encore_un_peu_de_texte_pour_la_route(). Le truc, c'est que tant C++ que Java permettent de faire du using pour réduire ça. Avec le C, on ne peut pas, on est obligé de recourir à des #define...
Ah. Le Go et le Rust, c'est mieux. C'est probablement vrai, mais... l'astuce, c'est l'âge.
Rust a été nommé comme ça parce que justement il n'inventait rien, il se base sur ce qui a été fait par les autres langages, et essaie d'en corriger les erreurs.
En face, C, C++, Java, Pascal... ces langages ont de l'historique. Et, non, faire comme python2 vers python3 n'est pas acceptable pour des langages de leur importance. A titre d'exemple, le programme ppp que l'on utilise pour les liaisons point à point (modems, entres autres, et sisi c'est toujours utilisé) utilise a certains la endroits des résidus de K&R.
Il arrive que quelques points soient interdits dans des versions plus à jour (auto_ptr pour C++, pour le C les trigrammes sont retirés dans C11 il me semble) mais c'est rare et ne casse pas 90% des bases de code.
[^] # Re: Nope
Posté par freem . En réponse au lien Java est toujours un champion. Évalué à 8.
Même que c'est pour ça que ça n'a jamais été utilisé pour faire des jeux vidéo sur les vieux téléphones... laissez-moi réfléchir... j'ai comme l'impression d'oublier un détail important, la?
Plus sérieusement, je ne pense pas que Java soit la raison derrière le gouffre en RAM et la faible lenteur.
J'accuserai plus volontiers des développeurs qui ne se sont pas cassés la tête, parce que "le client rachètera de la RAM au pire" (entendre ça de la part d'un prof, ça fait rêver... et c'était pas sur du java!), parce qu'il faut release rapidement ou autre.
Ainsi, pour les serveurs, que les admins qui n'ont pas paramétré la JVM selon les besoins de l'application.
Le java dont je me souviens (je n'ai jamais aimé ce langage) a effectivement des "problèmes" hein:
main()comme étant une fonction statique d'une classe qui sera instanciée qu'une seule fois, parce que seule la POO devrais exister (oupa)Mais globalement, les exceptions bien spécifiées je trouve ça au contraire génial: si C++ avait ça, ben les exceptions je m'en servirais!
Les getter/setter, j'ai toujours eu ça en horreur, mais c'est pas lié à java, juste a du cargo cult.
Overengineering? Idem.
Tous les trucs que je reprochais à Java, je les ai vus dans des codes dans d'autres langages. Tous.
D'autres langages? Lesquels? C. Et C++.
Oui, j'inclue le C, parce que j'ai vu des gens réimplémenter l'héritage (c'est pratique faut dire, quand c'est bien utilisé) en C, et en abuser. Les namespaces n'existent pas en C? Pas grave, le workaround c'est des "conventions de nommage" du style
un_truc_comme_ca_et_ajoutons_encore_un_peu_de_texte_pour_la_route(). Le truc, c'est que tant C++ que Java permettent de faire duusingpour réduire ça. Avec le C, on ne peut pas, on est obligé de recourir à des#define...Ah. Le Go et le Rust, c'est mieux. C'est probablement vrai, mais... l'astuce, c'est l'âge.
Rust a été nommé comme ça parce que justement il n'inventait rien, il se base sur ce qui a été fait par les autres langages, et essaie d'en corriger les erreurs.
En face, C, C++, Java, Pascal... ces langages ont de l'historique. Et, non, faire comme python2 vers python3 n'est pas acceptable pour des langages de leur importance. A titre d'exemple, le programme
pppque l'on utilise pour les liaisons point à point (modems, entres autres, et sisi c'est toujours utilisé) utilise a certains la endroits des résidus de K&R.Il arrive que quelques points soient interdits dans des versions plus à jour (auto_ptr pour C++, pour le C les trigrammes sont retirés dans C11 il me semble) mais c'est rare et ne casse pas 90% des bases de code.