Oui surtout avec la legerete de base du Java, je pense qu'en 2015 il y aura un concours du langage le plus lourd.
GT Leger !!
GoldenCrystal (./35) :
En fait, un langage/runtime bien conçu devrait interdire d'utiliser un tableau de X comme un tableau de Y dans tous les cas.
GoldenCrystal (./35) :
Hmm mais ça, ça pourrait jamais fonctionner avec le même genre de modèle que celui sur lequel fonctionne Java.
Le fait que ça marche dans un cas vient d'un truc qui est parfois considéré comme une erreur de design du Java (qu'on se traine en .NET pour des raisons de compatibilité), le fait que les tableaux soient covariants:
http://en.wikipedia.org/wiki/Covariance_and_contravariance_%28computer_science%29#Covariant_arrays_in_Java_and_C.23
http://c2.com/cgi/wiki?JavaArraysBreakTypeSafety
En fait, un langage/runtime bien conçu devrait interdire d'utiliser un tableau de X comme un tableau de Y dans tous les cas.
Scala te reflète le comportement de Java ici, mais ils auraient aussi pu interdire d'utiliser la covariance des tableaux pour être plus consistants. Par contre c'est pas certain que tout le monde en aurait été content.
> publish-local [info] Packaging /Users/XXXXXXXXXXXXXXXXXX-1.0.3-sources.jar ... [info] Done packaging. [info] Wrote /Users/XXXXXXXXXXXXXXXXXX-1.0.3.pom [info] :: delivering :: XXXXXXXXX#XXXXXXX;1.0.3 :: 1.0.3 :: release :: Sun Jan 04 13:04:33 CET 2015 [info] delivering ivy file to /Users/XXXXXXXXXXXXXXXXXX-ivy-1.0.3.xml [info] Main Scala API documentation to /Users/XXXXXXXXXXXXXXXXXX-/target/api... java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
flanker (./34) :
si ça compile, ça fonctionne…)
flanker (./41) :Par défaut une Jvm ne dépasse pas 512Mo, si tu veux plus il faut le préciser dans la ligne de commande. Et pour le Pergem comme dans ton cas, c'est encore bien moins : 64Mo.
Le système de package (même pas la compilation !) fait un OOMJe sais que je n'ai que 4Go de RAM, mais quand même…
toto(appel_qui_renvoie_un_A(), appel_qui_renvoie_un_B())(appel_qui_renvoie_un_C(), appel_qui_renvoie_un_D())
toto(appel_qui_renvoie_un_A(), appel_qui_renvoie_un_B())
(appel_qui_renvoie_un_C(), appel_qui_renvoie_un_D())
a = add 10, 20, (err, result)-> console.log result
a = add 10, sub 20, 10, (err, result)-> console.log result
GoldenCrystal (./54) :
./51 > Scala n'utilise pas de terminateur de lignes ? C'est moche