Microsoft semble reconnaître que Java permet de développer plus
rapidement que C# et qu'il y a moins de failles de sécurité dans Java
que dans .net :
http://dsi.silicon.fr/nouveautes/microsoft-java-forever%E2%80%A6-1366
Oui. Parce que c'est la seule façon d'avoir un truc fiable. Ton exception est traitée en dehors de la fonction, pire, avec une ribambelle et demi de fonctions appelées entre la chose qui a levé ton exception et sa récupération. Si tu veux alors récupérer _proprement_ ton erreur pour la traiter autrement qu'en sortant du programme, je te souhaite bien du plaisir.
Tout ça c'est des trucs de petits joueurs, il existe un système de gestions d'exceptions infiniment plus sophistiqué en lisp depuis des décennies: http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html et au moins avec le lisp on est blindé contre la présence de programmeurs "médiocres" produits à la chaîne :)
--
Michel TALON
JKB <jkb@koenigsberg.invalid> wrote:
Oui. Parce que c'est la seule façon d'avoir un truc fiable. Ton
exception est traitée en dehors de la fonction, pire, avec une
ribambelle et demi de fonctions appelées entre la chose qui a levé
ton exception et sa récupération. Si tu veux alors récupérer
_proprement_ ton erreur pour la traiter autrement qu'en sortant du
programme, je te souhaite bien du plaisir.
Tout ça c'est des trucs de petits joueurs, il existe un système de
gestions d'exceptions infiniment plus sophistiqué en lisp depuis des
décennies:
http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html
et au moins avec le lisp on est blindé contre la présence de
programmeurs "médiocres" produits à la chaîne :)
Oui. Parce que c'est la seule façon d'avoir un truc fiable. Ton exception est traitée en dehors de la fonction, pire, avec une ribambelle et demi de fonctions appelées entre la chose qui a levé ton exception et sa récupération. Si tu veux alors récupérer _proprement_ ton erreur pour la traiter autrement qu'en sortant du programme, je te souhaite bien du plaisir.
Tout ça c'est des trucs de petits joueurs, il existe un système de gestions d'exceptions infiniment plus sophistiqué en lisp depuis des décennies: http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html et au moins avec le lisp on est blindé contre la présence de programmeurs "médiocres" produits à la chaîne :)
--
Michel TALON
Aéris
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Le 19/06/2011 11:25, Nicolas George a écrit :
Et je suppose que le code dans le programme principal que sert à faire usage des fonctionnalités de cette bibliothèque disparaît magiquement du .jar si la bibliothèque n'est pas disponible ?
Si tu souhaites réellement l'enlever, c'est tout à fait possible. Soit à la compilation, via Maven qui te permet de gérer des profils de compilation. Soit juste avent l'exécution, en virant du .jar toutes les classes liées à la lib (voire même toutes celles dont tu n'as pas besoin =))
Et si, « sans redémarrer l'exe », tu te mets à utiliser ses classes sans avoir installé la bibliothèque, il se passe quoi exactement ?
Alors déjà soit le développeur est un con, soit l'utilisateur en est un =) Le développeur qui aura rendu la lib facultative aura par exemple vérifier que la lib est bien présente, même si la conf lui dit le contraire. Et si l'utilisateur fait n'importe quoi avec son soft…
En théorie, tu te boufferas une NoSuchClassException et le soft s'arrête. En pratique, le développeur aura prévu le coup (cf. discussion sur les exception)
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Et je suppose que le code dans le programme principal que sert à faire usage
des fonctionnalités de cette bibliothèque disparaît magiquement du .jar si
la bibliothèque n'est pas disponible ?
Si tu souhaites réellement l'enlever, c'est tout à fait possible.
Soit à la compilation, via Maven qui te permet de gérer des profils de
compilation.
Soit juste avent l'exécution, en virant du .jar toutes les classes liées
à la lib (voire même toutes celles dont tu n'as pas besoin =))
Et si, « sans redémarrer l'exe », tu te mets à utiliser ses classes sans
avoir installé la bibliothèque, il se passe quoi exactement ?
Alors déjà soit le développeur est un con, soit l'utilisateur en est un =)
Le développeur qui aura rendu la lib facultative aura par exemple
vérifier que la lib est bien présente, même si la conf lui dit le contraire.
Et si l'utilisateur fait n'importe quoi avec son soft…
En théorie, tu te boufferas une NoSuchClassException et le soft s'arrête.
En pratique, le développeur aura prévu le coup (cf. discussion sur les
exception)
- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Et je suppose que le code dans le programme principal que sert à faire usage des fonctionnalités de cette bibliothèque disparaît magiquement du .jar si la bibliothèque n'est pas disponible ?
Si tu souhaites réellement l'enlever, c'est tout à fait possible. Soit à la compilation, via Maven qui te permet de gérer des profils de compilation. Soit juste avent l'exécution, en virant du .jar toutes les classes liées à la lib (voire même toutes celles dont tu n'as pas besoin =))
Et si, « sans redémarrer l'exe », tu te mets à utiliser ses classes sans avoir installé la bibliothèque, il se passe quoi exactement ?
Alors déjà soit le développeur est un con, soit l'utilisateur en est un =) Le développeur qui aura rendu la lib facultative aura par exemple vérifier que la lib est bien présente, même si la conf lui dit le contraire. Et si l'utilisateur fait n'importe quoi avec son soft…
En théorie, tu te boufferas une NoSuchClassException et le soft s'arrête. En pratique, le développeur aura prévu le coup (cf. discussion sur les exception)
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Aéris , dans le message <4dfdc3ef$0$23651$, a écrit :
Si tu souhaites réellement l'enlever, c'est tout à fait possible. Soit à la compilation, via Maven qui te permet de gérer des profils de compilation.
Ça fait je-ne-sais-combien de messages que je te demande de montrer le code plutôt que d'agiter les mains.
Soit juste avent l'exécution, en virant du .jar toutes les classes liées à la lib (voire même toutes celles dont tu n'as pas besoin =))
Je parle du code dans le programme principal, qui peut se situer à n'importe quel endroit, il n'a aucune raison d'être dans des classes à part.
En théorie, tu te boufferas une NoSuchClassException et le soft s'arrête. En pratique, le développeur aura prévu le coup (cf. discussion sur les exception)
Bref, strictement rien de mieux qu'avec une liaison dynamique.
Aéris , dans le message <4dfdc3ef$0$23651$426a74cc@news.free.fr>, a
écrit :
Si tu souhaites réellement l'enlever, c'est tout à fait possible.
Soit à la compilation, via Maven qui te permet de gérer des profils de
compilation.
Ça fait je-ne-sais-combien de messages que je te demande de montrer le code
plutôt que d'agiter les mains.
Soit juste avent l'exécution, en virant du .jar toutes les classes liées
à la lib (voire même toutes celles dont tu n'as pas besoin =))
Je parle du code dans le programme principal, qui peut se situer à n'importe
quel endroit, il n'a aucune raison d'être dans des classes à part.
En théorie, tu te boufferas une NoSuchClassException et le soft s'arrête.
En pratique, le développeur aura prévu le coup (cf. discussion sur les
exception)
Bref, strictement rien de mieux qu'avec une liaison dynamique.
Aéris , dans le message <4dfdc3ef$0$23651$, a écrit :
Si tu souhaites réellement l'enlever, c'est tout à fait possible. Soit à la compilation, via Maven qui te permet de gérer des profils de compilation.
Ça fait je-ne-sais-combien de messages que je te demande de montrer le code plutôt que d'agiter les mains.
Soit juste avent l'exécution, en virant du .jar toutes les classes liées à la lib (voire même toutes celles dont tu n'as pas besoin =))
Je parle du code dans le programme principal, qui peut se situer à n'importe quel endroit, il n'a aucune raison d'être dans des classes à part.
En théorie, tu te boufferas une NoSuchClassException et le soft s'arrête. En pratique, le développeur aura prévu le coup (cf. discussion sur les exception)
Bref, strictement rien de mieux qu'avec une liaison dynamique.
Aéris
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Le 19/06/2011 11:45, Nicolas George a écrit :
Ça fait je-ne-sais-combien de messages que je te demande de montrer le code plutôt que d'agiter les mains.
Le code, je te l'ai déjà montré?
Je parle du code dans le programme principal, qui peut se situer à n'importe quel endroit, il n'a aucune raison d'être dans des classes à part.
Le code dans le main sert uniquement de bootstrap pour détecter la présence de la lib ou non. Tout le reste est bien isolé dans des classes, séparées via héritage.
Bref, strictement rien de mieux qu'avec une liaison dynamique.
Si tu le dis?
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Ça fait je-ne-sais-combien de messages que je te demande de montrer le code
plutôt que d'agiter les mains.
Le code, je te l'ai déjà montré?
Je parle du code dans le programme principal, qui peut se situer à n'importe
quel endroit, il n'a aucune raison d'être dans des classes à part.
Le code dans le main sert uniquement de bootstrap pour détecter la
présence de la lib ou non.
Tout le reste est bien isolé dans des classes, séparées via héritage.
Bref, strictement rien de mieux qu'avec une liaison dynamique.
Si tu le dis?
- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Ça fait je-ne-sais-combien de messages que je te demande de montrer le code plutôt que d'agiter les mains.
Le code, je te l'ai déjà montré?
Je parle du code dans le programme principal, qui peut se situer à n'importe quel endroit, il n'a aucune raison d'être dans des classes à part.
Le code dans le main sert uniquement de bootstrap pour détecter la présence de la lib ou non. Tout le reste est bien isolé dans des classes, séparées via héritage.
Bref, strictement rien de mieux qu'avec une liaison dynamique.
Si tu le dis?
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Aéris , dans le message <4dfdc7ba$0$25340$, a écrit :
Le code, je te l'ai déjà montré?
Il ne marchait pas.
Le code dans le main sert uniquement de bootstrap pour détecter la présence de la lib ou non.
Encore une fois, je veux voir.
Patrick Lamaizi
Tonton Th :
Ajoute C ou ASM si tu le souhaites, cela ne change rien. C'est même encore pire, avec des tricks comme les variables globales ou que tout est accessible à la simple connaissance du .h…
En quoi l'utilisation raisonnable des variables globales est-elle un "tricks" ?
Faut appeler ça un singleton et c'est tout de suite plus moderne et propre.
Tonton Th :
Ajoute C ou ASM si tu le souhaites, cela ne change rien.
C'est même encore pire, avec des tricks comme les variables globales ou
que tout est accessible à la simple connaissance du .h…
En quoi l'utilisation raisonnable des variables globales
est-elle un "tricks" ?
Faut appeler ça un singleton et c'est tout de suite plus moderne et
propre.
Ajoute C ou ASM si tu le souhaites, cela ne change rien. C'est même encore pire, avec des tricks comme les variables globales ou que tout est accessible à la simple connaissance du .h…
En quoi l'utilisation raisonnable des variables globales est-elle un "tricks" ?
Faut appeler ça un singleton et c'est tout de suite plus moderne et propre.
Patrick Lamaizi
Aéris :
N'aurais-tu pas remarquer le @Resource dans la 2nde classe ?
Non j'avais pas vu l'annotation.
C'est ce truc qui permet de me passer d'une variable globale et qui ne fait aucune hypothèse sur l'endroit où je vais trouver ma conf. La construction de l'instance de la conf est déléguée à l'IoC
C'est quoi l'IoC ?
ce qui rend le code totalement modulable (la conf peut provenir de la bdd, d'un fichier de conf, être hardcodée, fournie sur la ligne de commande…) et réutilisable (pas de supposition de la présence d'une varglo initialisée au lancement, ce qui le rendrait inutilisable en tant que librairie…)
Ça fait parti du langage où c'est un hack à base de manipulation de byte code / aop et ces sortes de choses ?
Comment on fait quand ça marche pas ?
Aéris :
N'aurais-tu pas remarquer le @Resource dans la 2nde classe ?
Non j'avais pas vu l'annotation.
C'est ce truc qui permet de me passer d'une variable globale et qui ne
fait aucune hypothèse sur l'endroit où je vais trouver ma conf.
La construction de l'instance de la conf est déléguée à l'IoC
C'est quoi l'IoC ?
ce qui rend le code totalement modulable (la conf peut provenir de la bdd, d'un
fichier de conf, être hardcodée, fournie sur la ligne de commande…) et
réutilisable (pas de supposition de la présence d'une varglo initialisée
au lancement, ce qui le rendrait inutilisable en tant que librairie…)
Ça fait parti du langage où c'est un hack à base de manipulation de
byte code / aop et ces sortes de choses ?
N'aurais-tu pas remarquer le @Resource dans la 2nde classe ?
Non j'avais pas vu l'annotation.
C'est ce truc qui permet de me passer d'une variable globale et qui ne fait aucune hypothèse sur l'endroit où je vais trouver ma conf. La construction de l'instance de la conf est déléguée à l'IoC
C'est quoi l'IoC ?
ce qui rend le code totalement modulable (la conf peut provenir de la bdd, d'un fichier de conf, être hardcodée, fournie sur la ligne de commande…) et réutilisable (pas de supposition de la présence d'une varglo initialisée au lancement, ce qui le rendrait inutilisable en tant que librairie…)
Ça fait parti du langage où c'est un hack à base de manipulation de byte code / aop et ces sortes de choses ?
Comment on fait quand ça marche pas ?
Patrick Lamaizière
JKB :
Notions de POO oui, notion de Java non. Le dernier formé dans mon équipe est venu du monde .Net.
J'aimerais voir la tronche d'un développeur qui ne connaît rien à Java et qui est parfaitement opérationnel en trois semaines.
D'un autre coté Java est sans surprise et pas franchement compliqué. Moi ça m'étonnerait pas (pas parfaitement, mais opérationnel oui)
JKB :
Notions de POO oui, notion de Java non.
Le dernier formé dans mon équipe est venu du monde .Net.
J'aimerais voir la tronche d'un développeur qui ne connaît rien à
Java et qui est parfaitement opérationnel en trois semaines.
D'un autre coté Java est sans surprise et pas franchement compliqué. Moi
ça m'étonnerait pas (pas parfaitement, mais opérationnel oui)
Notions de POO oui, notion de Java non. Le dernier formé dans mon équipe est venu du monde .Net.
J'aimerais voir la tronche d'un développeur qui ne connaît rien à Java et qui est parfaitement opérationnel en trois semaines.
D'un autre coté Java est sans surprise et pas franchement compliqué. Moi ça m'étonnerait pas (pas parfaitement, mais opérationnel oui)
Patrick Lamaizière
Tonton Th :
On 06/18/2011 02:19 PM, Aéris wrote:
Et l'IDE est aussi là pour t'aider en te masquant le XML au final : http://blog.frankel.ch/wp-content/resources/top-eclipse-plugins-i-wouldnt-go-without/m2eclipse-overview-tab.jpg http://www.jussimononen.info/wp-content/uploads/2010/03/maven_pom_editor.png
Ça marche sur un lien RNIS, ce truc ?
La première fois que tu executes une cible ça download un tas de trucs dont tu ignores à quoi ça peut bien servir.
Si tu as une connexion 3g tu pleures :(
Je suis vraiment pas convaincu par Maven mais j'ai peut-être pas tout compris.
Tonton Th :
On 06/18/2011 02:19 PM, Aéris wrote:
Et l'IDE est aussi là pour t'aider en te masquant le XML au final :
http://blog.frankel.ch/wp-content/resources/top-eclipse-plugins-i-wouldnt-go-without/m2eclipse-overview-tab.jpg
http://www.jussimononen.info/wp-content/uploads/2010/03/maven_pom_editor.png
Ça marche sur un lien RNIS, ce truc ?
La première fois que tu executes une cible ça download un tas de trucs
dont tu ignores à quoi ça peut bien servir.
Si tu as une connexion 3g tu pleures :(
Je suis vraiment pas convaincu par Maven mais j'ai peut-être pas tout
compris.
Et l'IDE est aussi là pour t'aider en te masquant le XML au final : http://blog.frankel.ch/wp-content/resources/top-eclipse-plugins-i-wouldnt-go-without/m2eclipse-overview-tab.jpg http://www.jussimononen.info/wp-content/uploads/2010/03/maven_pom_editor.png
Ça marche sur un lien RNIS, ce truc ?
La première fois que tu executes une cible ça download un tas de trucs dont tu ignores à quoi ça peut bien servir.
Si tu as une connexion 3g tu pleures :(
Je suis vraiment pas convaincu par Maven mais j'ai peut-être pas tout compris.