150

hibou > bah après si tu veux faire un truc thread-safe, bonjour ...
avatar
I'm on a boat motherfucker, don't you ever forget

151

Bah pas forcement, on peut tres bien utiliser des variables global et avoir un truc "threa-safe"
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

152

oui, on peut, mais c'est chiant et surtout error-prone.
avatar
I'm on a boat motherfucker, don't you ever forget

153

Il suffit de déclarer la variable avec __thread, tous les compilateurs modernes gèrent ça (GCC, la version la plus récente de MinGW, VC++ et certains compilateurs *nix propriétaires comme celui de Sun), ça la rend thread-local.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

154

c'est mieux que rien, mais ça reste non-standard.
avatar
I'm on a boat motherfucker, don't you ever forget

155

Sally>OK, j'utilise trop souvent les langages itératifs, j'ai oublié la puissance de langage comme OCaml.
Donc faudrait effectivement instancier le "contexte" de la closure. Je pense qu'on peut arriver à le coder en C, mais bon, ca voudra juste dire que le C supporte les closures autant que le javascript supporte l'héritage, faut ce le farcir à la main.

156

La solution C habituelle, c'est le fameux void *userdata utilisé souvent pour les callbacks.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

157

Tout ce qui passe pas par le port 80, c'est de la triche.

158

onur, et Groovy tu connais ?
=> http://groovy.codehaus.org/Getting+Started+Guide
Ca a l'air d'être comme javascript, mais en mieux tongue

159

oui ça ressemble à du JAVAscript plus qu'à du javascript (je sais pas si je suis clair)
mais en parcourant rapidement les features là, je vois pas ce que ça apporte par rapport au js? (si ce n'est etre obligé d'avoir java et de regler JAVA_HOME et d'autres settings à la main)
Tout ce qui passe pas par le port 80, c'est de la triche.

160

onur (./159) :
oui ça ressemble à du JAVAscript plus qu'à du javascript (je sais pas si je suis clair) mais en parcourant rapidement les features là, je vois pas ce que ça apporte par rapport au js?


au moins ca déjà: http://groovy.codehaus.org/JN3025-Inheritance

Après je connais pas assez ce qui existe comme librairie js, mais moi qui trouve barbant de faire du sql en java, en groovy ca l'air plutot cool : http://groovy.codehaus.org/Tutorial+6+-+Groovy+SQL
et pour le xml aussi : http://groovy.codehaus.org/GroovyMarkup
et le swing aussi : http://groovy.codehaus.org/Swing+Builder
onur (./159) :
(si ce n'est etre obligé d'avoir java et de regler JAVA_HOME et d'autres settings à la main)

bof, pas plus que d'intaller un Rhino (si on considère un language qui tourne en dehors d'un browser).

161

Si on fait des choses en dehors du browser, c'est pour avoir quelque chose de rapide => déjà on installe pas Java du coup.
On utilise du C, et donc spidermonkey (et sa nouvelle méthode de tracing à l'execution pour JITter à fond le chemin d'execution le plus emprunté localement dans le temps) Bref.

Sinon sur les autres points, je vois un peu mieux. En effet avec groovy l'héritage etc. est plus.. classique disons. Ca ressemble à ce qu'on rencontre dans les langages objets classiques donc c'est moins déroutant pour quelqu'un qui se met à un langage dynamique.
En fait, le système d'héritage de JS est vraiment différent mais c'est pas pour autant qu'il est inexistant. Les pointeurs automatiques qu'on appelle "prototype" pointent vers l'objet dont on hérite. Prendre l'habitude de ça, ca peut etre une barrière pour ceux qui viennent de java ou C++.

Le xml est gerée nativement dans JS aussi :
* dans 1.5 (celle utilisée par les browsers les plus connus actuellement), il y a une fonction native qui parse un string XML pour te produire un objet qui lui correspond, mais il faut que ca soit une réponse http.
* dans les versions plus hautes, ca fait partie du langage: on peut en déclarer, manipuler etc. en plein milieu en quelque sorte

Sinon pour les requetes SQL et les fenetres, c'est du binding avec des libs tout ça. Pas vraiment du langage.

Au passage, je vous propose de jeter un coup d'oeil à ce site: http://code.google.com/p/jslibs/ un projet qui permet d'utiliser le js avec les diverses libraires bien connues, dont du SQL, des libs d'interface, OpenGL etc..
Tout ce qui passe pas par le port 80, c'est de la triche.

162

et ça donne quoi niveau perf, un jeu en OpenGL est envisageable par exemple ? (parceque dans "screenshots" je vois un truc qui affiche des cubes, c'est cool mais sur Ti on fait mieux :/)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

163

onur (./159) :
si ce n'est etre obligé d'avoir java et de regler JAVA_HOME et d'autres settings à la main

su -c "yum install java-1.6.0-openjdk-devel" et c'est tout. tongue
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

164

./162 > Je ne sais pas, je n'ai fait que afficher le cube aussi (et un exemple avec du texture aussi). Mais de tte façon on est d'accord qu'il faut pas mettre en js ce qui est critique niveau rapidité (du moins sans tracemonkey). Faut voir les progs fait avec jslibs comme ayant les memes buts qu'un prog en python par exemple.

Néanmoins l'auteur integre toutes ces libs pour faire un jeu 3d justement. Après je ne sais pas ce que sera laissé au JS ou à C++.
Tout ce qui passe pas par le port 80, c'est de la triche.

165

onur (./161) :
Si on fait des choses en dehors du browser, c'est pour avoir quelque chose de rapide => déjà on installe pas Java du coup.On utilise du C, et donc spidermonkey (et sa nouvelle méthode de tracing à l'execution pour JITter à fond le chemin d'execution le plus emprunté localement dans le temps) Bref.
Et comment crois-tu que les jvm sont codées ? qu'est-ce que tu crois qu'une jvm fait ? ben pareil, jit et toutes les optimizations qu'on attend d'un interpréteur de byte code. Y'a même jrockit qui met du code en inline, mais après c'est relou parce que les stacktraces ressemblent un peu a rien avec plein de "optimized" tongue
Je sais que la jvm a des points faibles, mais ca m'étonnerai qu'on ne retrouve pas ces mêmes points faibles dans une autre machine virtuelle.
Et si tu es si sûr de toi, pour le coup je veux bien tenter le pari qu'une jvm est plus rapide que spidermonkey sur un algo de ton choix. smile

Sinon sur les autres points, je vois un peu mieux. En effet avec groovy l'héritage etc. est plus.. classique disons. Ca ressemble à ce qu'on rencontre dans les langages objets classiques donc c'est moins déroutant pour quelqu'un qui se met à un langage dynamique.En fait, le système d'héritage de JS est vraiment différent mais c'est pas pour autant qu'il est inexistant. Les pointeurs automatiques qu'on appelle "prototype" pointent vers l'objet dont on hérite. Prendre l'habitude de ça, ca peut etre une barrière pour ceux qui viennent de java ou C++.
oui on peut le faire en js, j'appelle juste ca la methode "manuelle".
Sinon pour les requetes SQL et les fenetres, c'est du binding avec des libs tout ça. Pas vraiment du langage.
mais c'est un des points très important quand tu choisi un langage. Mais bon, js a aussi l'air d'être fourni, d'après ton lien.

166

Oui oui, je me doute bien que le JVM fait des optimisations aussi grin Simplement je dis que le VM de js en fait pas mal aussi et que la différence n'est pas aussi énorme qu'on pourrait le penser quand on connait seulement de loin les deux systèmes. Après, on pourrait vérifier en effet.

La méthode "manuelle",c 'est pas dit. Au lieu de faire

class A extends B {... }

tu fais

objA.prototype = objB;

ou en version plus "class":
A.prototype = new B();
c'est pas la mort non plus.

Groovy a l'air pas mal franchement, mais pour le coup j'étais plus séduit par haxe par exemple (haxe.org) où ils ont ajouté une couche de typage statique et une certaine discipline pour les morphismes d'objet dynamiquement.
Tout ce qui passe pas par le port 80, c'est de la triche.

167

Et est-ce qu'on peut appeler une fonction overridée en JS. Par exemple en Java on fait:
class A {
  void f() {
  }
}
class B extends A {
  void f() {
    super.f();
  }
}


A propos de haxe: un langage qui se compile dans d'autres langages => trop d'abstraction pour moi. Et je vois pas trop l'intérêt en fait. Qui veut bien vouloir faire tourner son appli en php et le lendemain en js ?

168

./167 : b.prototype.f () j'imagine ? (je n'ai jamais essayé, ne m'étant pas amusé à faire d'applications en JS, mais ça me semblerait logique)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

169

oui je dirais ça aussi.



Pour basculer de php au js y a pas d'interet => on va pas mettre du code serveur tout à coup coté client (encore que, ca peut etre utile pour ajaxifier un site qui l'était pas mais bon)
Pour moi l'interet cest surtout faire des migrations js <=> AS et inversement. Ca a du bien les aider à Twin-motion pour pondre tous ces jeux qu'ils ont fait avec le succès et la qualité qu'on connait.
Tout ce qui passe pas par le port 80, c'est de la triche.

170

En js, on ne peut pas faire m() dans le code d'une méthode pour appeler une méthode du même objet, le this. de this.m() n'est pas implicite, il faut préciser l'objet cible du message.
Or this.prototype.f() appelle logiquement f avec comme objet cible this.prototype et pas this.

Par contre, l'objet Function dont héritent toutes les fonctions (donc méthodes) contient les méthodes call et apply qui servent à faire ça, apply prend en paramètre un tableau et call des arguments séparés.

On fera donc :

Obj.prototype.f = function () {
  return this.prototype.f.apply (this, arguments) ;
}


arguments étant une variable spéciale contenant les arguments passés à f sous forme de tableau.
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

171

hibou (./167) :
A propos de haxe: un langage qui se compile dans d'autres langages => trop d'abstraction pour moi. Et je vois pas trop l'intérêt en fait. Qui veut bien vouloir faire tourner son appli en php et le lendemain en js ?


Ça peut être bien pour utiliser les avantages d'un langage pour héberger un autre (environnement, sécurité, portabilité, etc.) si on est pret à payer le prix de l'abstraction, par exemple, je m'en sers pour faire tourner un langage de haut niveau avec typage statique par dessus JS (cf le 2e article de http://www.kb.ecei.tohoku.ac.jp/ml2008/accepted.html).
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

172

Sympaaaa smile
Tout ce qui passe pas par le port 80, c'est de la triche.

173

174

Voici une petite pierre de ma part à l'édifice

http://code.google.com/p/jslibs/
2008.09.04 - New module: jsjabber (based on gloox library)
j'ai fait un début de port de gloox (libraire jabber) dans jslibs, quand je dis un début c'est de quoi coder un client jabber avec les fonctionnalités principales. L'auteur a repris mon code pour le "proprifier" et l'uniformiser dans le code d'ensemble du projet.
Tout ce qui passe pas par le port 80, c'est de la triche.

175

oué ben il est chiant ton bot qui dit "re" angry (grin)