OVH Cloud OVH Cloud

Microsoft et Java

295 réponses
Avatar
Wykaaa
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

10 réponses

Avatar
talon
JKB 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 :)


--

Michel TALON
Avatar
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/

iQEcBAEBAgAGBQJN/cPqAAoJEK8zQvxDY4P9atAH/jLSzKB/SVnRLsHpSbg7l812
hmE4klLykrds+OKkRmG9/XbiHcLix7M6mItnIZQFdmqZrzHKazJDufzGwND9qhfV
KVznzuiLnO0wsfw6iDBUviZvvW1Gxdl9QdVOuRn3PqaO41AyMmmUc6uChQ0rTWoz
AGuPCwXvJr0ZPp4uOmP+d4o3SdqLDOMAatTF6hCIp4E31H0SmkZa2ric9WnYBNSV
ZkYYs8KibLmnqsA4vQ0fwYsUbdqiSZodS8Qb5mTpSOHzvXwpWBGxb+8nWZbL5TD8
6gRcaVOsCdfdedN0+8zIqFSZhMAstCCuOnUUtk4RGggr6mPSGNIgxqLsmqW/hoo ZV
-----END PGP SIGNATURE-----
Avatar
Nicolas George
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.
Avatar
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/

iQEcBAEBAgAGBQJN/ce0AAoJEK8zQvxDY4P9tBoH/1r0gsTGoO7CWSKl9yRgvmKH
te0o/WENnT6x5EwJlGueFSFa1dzng2n1XwNFO8D9wo6brYyZiZPNKtBj5Vezl2By
PAJfa3Ps+Fy8Vf1gkP8FLRVEZGInLqvok1xYASFfeDiFmPLRzsC2WwFKwh5lmQ6i
ocp0U+ccNYaVdQZhx93GJIAftNFSqEW4fk5PXpSb7H1H8cMH5dNKrcSpKR12Vrk6
6wEgW88/JCpOdoBwJcse4KIhpCD7MHf7McYfe1uovk3nfOPK8i5pLkuwzT6TDOav
TBk0Qu4cyjEphCZgFEqAgAZsfEzX7/jw62Ykho90ALlEJ34gq/ddaMYOPCu9l1s =2W4n
-----END PGP SIGNATURE-----
Avatar
Aéris
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Le 19/06/2011 11:39, Michel Talon a écrit :
et au moins avec le lisp on est blindé contre la présence de
programmeurs "médiocres" produits à la chaîne :)



Vous êtes surtout blindés contre la présence de développeurs tout court ^^

- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJN/cftAAoJEK8zQvxDY4P9Uw4H/RiuDWACHuTfPJRdHkywPwuu
rjdWLLdB24YiXfxgpujxsf3HOEjKKC1/zr82wqqIR9FqcrMTL99O9op8h/Viie5K
D6a18+1MRuQakxVpji25hOohjH96s5AcG/u/mV4UvWLuWp5qlmS7SEdQkRROGxwS
lL/8+CNfLWzKjmpP9G9FjSzqMQd7ockl4XLwr9GyydWobleeu8mEdXKRpz0OKRCp
DkxJf+yc7ClTOPyPD7KOzaJs3xXWgozS05Nly5hnNUxkV4Z8b5TGyMTrqVgkW1aZ
KSygctm5qWlWKM6tvq32FAEAPEE4/Za37QDoUBfM/9nSHAfOKaVV3GVHcUhiPb8 =Vny1
-----END PGP SIGNATURE-----
Avatar
Nicolas George
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.
Avatar
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.
Avatar
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 ?
Avatar
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)
Avatar
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.