Boo
@_ö
(18:09)  Bienvenue ! - Inscrivez vous pour poster ! -
@Boo + 6 inconnu(s)

Login :  Mot de passe :      Se souvenir de moi.  Mot de passe perdu ?
/!\:: Cliquez ici pour vous inscrire et poster, créer des sujets ou des forums ! ::/!\
 « Précédent - 2/6 - Suivant » :: Pages
 Index » Forum informatique & développement » Autres langages de programmation (174r) » Connaissez-vous réellement le javascript?
./29 - REPRISE AUTOMATIQUE DU MESSAGE PRECEDENT
17.10.2001 - 4049
21:03  hibou - Posté : 24-07-2008  M

les closures dans Java, c'est en cours de discussion: http://www.javac.info/closures-v05.html
Sinon y'a scala qui en fait: http://www.scala-lang.org/intro/traits.html (faudra vraiment que je l'essaye celui la un jour, il a l'air sexy)

Et à propos d'application lourde basé sur html + js + css: http://joost.com (c'est le xulrunner de mozilla)
Et aussi j'aime bien http://fluidapp.com/ (http://labs.mozilla.com/2007/10/prism/ pour les non-mac). GMail est pour moi une application lourde :p

Sinon à propos de la rapidité de js, de part ses fonctionnalités et les nombreuses indirections, ca pourra jamais être aussi rapide que du java. De la même manière que du Java ne pourra jamais être aussi rapide que du C. Mais c'est vrai que le plus important dans l'histoire, c'est la vm. Il n'y a qu'à voir le language ruby: un programme ruby est plus rapide sur une jvm que sur les vm standards ruby.


./Publicité AdSense
./30
10.06.2001 - 32055
21:08  squale92 - Posté : 24-07-2008  M

les closures, ça doit arriver bientôt aussi en PHP ; c'est prévu pour PHP 5.3, qui a passé l'étape de feature freeze aujourd'hui (pour la rfc, cf : http://wiki.php.net/rfc/closures )


Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall
./31
30.06.2001 - 52831
21:10  Godzil - Posté : 24-07-2008  M

heu du JS interperté dans un VM en bytecode pourrais bien arriver en terme de vitesse a qq chose de grossierement similiaire au Java et n'importe quel autre language fonctionnant dans une VM


Proud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-

./32
17.10.2001 - 4049
21:23  hibou - Posté : 24-07-2008  M

oui, la différence de vitesse sera peut-être pas majeure, mais elle ne peut que exister. Toute structure de données en Java est fixée à la compilation, pas en JS (c'est le seul intéret pour moi de js d'ailleurs :p ). Donc l'accès à une propriété ou une fonction d'un object en Java va se faire avec un simple offset, alors que le js faudra qu'il fasse une sorte de lookup dans une map.


./33
10.06.2001 - 1959
01:48  nitro - Posté : 25-07-2008  M

onur (./28) :
Je pense que tu as mal appri le javascript. Pourquoi tu n'utilisais pas les classes? C'est pas parce qu'il n'y a pas de mot clé class qu'il n'y a pas d'objet. On peut tout à fait faire du modulaire en js, meme dans la version 1.5.

Je sais qu'on peut. Ce qui me dérange moi c'est qu'avec cette approche "tout dynamique" tu n'as aucune aide du compilateur pour détecter des erreurs. C'est pas gênant pour les petits projets, mais dès que tu veux faire plus, c'est très vite embêtant. J'ai pas envie de passer mon temps à tester tous les chemins d'exécution de mes programmes pour être sûr que j'ai pas mis un objet Foo à la place d'un objet Bar. :)

Avec haXe je suis plus confiant : le typage à l'exécution reste dynamique donc tu peux faire un peu ce que tu veux en terme de manipulations, introspections, closure, etc. mais le compilateur et son inférence de type permettent de détecter la plupart des erreurs de typage à la compilation.


So much code to write, so little time.
./34
07.04.2004 - 2088
09:38  onur - Posté : 25-07-2008  M

Bah sur des gros projets faut se mettre des conventions et si tu développes de facon modulaire, tu n'as pas de probleme (tu peux tester chacun de tes "modules")

sinon le typage tout dynamique n'est pas vraiment "grave". En fait, il m'a fallu un peu d'expérience dans les deux et je me suis rendu compte de ça:

Dans les langages compilés, la compilation nous sauve que des erreurs avec les variables typés statiquement, les autres sont à la merci des casts dynamiques qu'on met dans tous les sens. Or, les variables typés statiquement ne constituent pas vraiment un danger, un int, on sait qu'on va l'utiliser comme un int: qu'on le déclare avec int ou avec var. Et le polymorphisme reste avec autant de danger, donc finalement on a l'impression qu'on perd bcp avec l'absence de types statiques mais en fait pas tant que ça.

Sans parler du fait qu'un VM optimise mieux les cas de polymorphisme grâce à son JIT-compiler.

nitro > je vais regarder haXe là. ca m'intrigue ;)


http://sexycoders.com
Tout ce qui passe pas par le port 80, c'est de la triche.
./35
13.06.2002 - 37790
09:40  @Zeph - Posté : 25-07-2008  M

onur (./34) :
à la merci des casts dynamiques qu'on met dans tous les sens

heu... je crois que je sais où tu peux commencer à chercher l'origine de tes problèmes :D


Are you even listening to me?
------------------------------------------
Mirari² :: It offers what you want, not what you need
3l33t :: Relax, we understand j00 ^^
./36
07.04.2004 - 2088
09:58  onur - Posté : 25-07-2008  M

quels problèmes?


http://sexycoders.com
Tout ce qui passe pas par le port 80, c'est de la triche.
./37
13.06.2002 - 37790
10:12  @Zeph - Posté : 25-07-2008  M

le fait que la compilation ne t'aide pas tant que ça à détecter tes erreurs à cause de casts dynamiques que tu mettrais dans tous les sens (enfin de façon plus générale, tous les problèmes qui peuvent être liés à l'utilisation intensive de casts dynamiques, mais je t'invite à aller lire les topics qui parlent déjà de ce sujet pour ne pas avoir à tout recopier)


Are you even listening to me?
------------------------------------------
Mirari² :: It offers what you want, not what you need
3l33t :: Relax, we understand j00 ^^
./38
07.04.2004 - 2088
10:49  onur - Posté : 25-07-2008  M

Ouais enfin les templates, ca existait pas en java il y a encore quelques années... donc faire/utiliser une liste chainée un peu générique, c'était pas un cadeau.
Sinon, globalement : même si c'est compilé, on n'est pas à l'abri des erreurs à l'execution (ça on le savait) mais on est obligé d'en tenir compte à l'écriture du programme (d'où l'existence des exceptions etc.). Y a pas une fossé entre un prog écrit en C++ et un prog écrit en langage dynamique où on fait (un peu plus) attention.


http://sexycoders.com
Tout ce qui passe pas par le port 80, c'est de la triche.
./39
13.06.2002 - 37790
11:18  @Zeph - Posté : 25-07-2008  M

onur (./38) :
Ouais enfin les templates, ca existait pas en java il y a encore quelques années... donc faire/utiliser une liste chainée un peu générique, c'était pas un cadeau.

Je n'avais même pas pensé au Java à vrai dire, mais l'absence de templates qui oblige à utiliser des dynamic casts c'est un manque du langage, pas un problème lié aux langages typés à la compilation. Pour rappel, quand tu utilises un cast dynamique, c'est que tu en es arrivé à un point de ton code où tu as perdu l'information sur la nature de ce que tu manipules : sauf exceptions, c'est une erreur de conception.

Sinon, globalement : même si c'est compilé, on n'est pas à l'abri des erreurs à l'execution (ça on le savait) mais on est obligé d'en tenir compte à l'écriture du programme (d'où l'existence des exceptions etc.). Y a pas une fossé entre un prog écrit en C++ et un prog écrit en langage dynamique où on fait (un peu plus) attention.

Je ne suis pas du tout d'accord avec ce que j'ai compris de ces affirmations, mais peut-être que j'ai mal interprété ; tu peux détailler ?


Are you even listening to me?
------------------------------------------
Mirari² :: It offers what you want, not what you need
3l33t :: Relax, we understand j00 ^^
./40
07.04.2004 - 2088
11:27  onur - Posté : 25-07-2008  M

Perso je n'ai pas eu à faire à des casts dynamiques dans mes progs C++ (cf le code d'ETP qui est public maintenant), je parle de ça parce que j'en vois tout le temps dans les codes des autres et sur internet. Et ça, je trouve ça plus moche que quand on code avec un langage typé dynamiquement.

Zephyr (./39) :
Je ne suis pas du tout d'accord avec ce que j'ai compris de ces affirmations, mais peut-être que j'ai mal interprété ; tu peux détailler ?


Ce que je dis, c'est que meme quand c'est du compilé, on est amené à vérifier si le pointeur est null, si le fichier qu'on écrit est bien généré, et vérifier d'autres aléas de ce genre. Et c'est pareil en JS: quand c'est critique, on hésite pas à ajouter une vérification typeof(x)=="number"


http://sexycoders.com
Tout ce qui passe pas par le port 80, c'est de la triche.
./41
16.06.2001 - 59039
11:30  squalyl - Posté : 25-07-2008  M

#sick#

c'est vraiment pas de la programmation propre je trouve


./42
07.04.2004 - 2088
11:32  onur - Posté : 25-07-2008  M

Non ca l'est pas, et on le fait pas. Quand on sait ce qu'on écrit comme programme, on n'a pas besoin de ce genre de vérification (sauf éventuellement pour le début, on met (alert(typeof(x))...

(enfin là je parle de l'exemple de vérifier typeof(...))


http://sexycoders.com
Tout ce qui passe pas par le port 80, c'est de la triche.
./43
16.06.2001 - 59039
11:34  squalyl - Posté : 25-07-2008  M

#sick# c'est encore plus sale le débogage à coup d'alert pour moi!

Non, vraiment, je peux pas blairer le JS. Pour moi c'est anti rentable, à chaque fois que je l'ai touché j'y ai perdu du temps sans réaliser ce que je voulais vraiment.


./44
13.06.2002 - 37790
11:39  @Zeph - Posté : 25-07-2008  M

onur (./40) :
Perso je n'ai pas eu à faire à des casts dynamiques dans mes progs C++ (cf le code d'ETP qui est public maintenant), je parle de ça parce que j'en vois tout le temps dans les codes des autres et sur internet.

Et alors, si tu trouves un mauvais code dans un langage c'est que le langage est pourri ? Que les gens codent n'importe comment, c'est un autre problème et ça les regarde, mais je ne vois pas trop en quoi ça appuie ton ./34

Ce que je dis, c'est que meme quand c'est du compilé, on est amené à vérifier si le pointeur est null, si le fichier qu'on écrit est bien généré, et vérifier d'autres aléas de ce genre. Et c'est pareil en JS: quand c'est critique, on hésite pas à ajouter une vérification typeof(x)=="number"

Oui mais ce genre de vérifications, on s'en tape quand même deux fois plus en JS où tout est autorisé que dans un langage plus strict où une bonne partie des vérifications "basiques" (types & co) n'ont pas à être effectuées puisque le compilateur s'en charge.


Are you even listening to me?
------------------------------------------
Mirari² :: It offers what you want, not what you need
3l33t :: Relax, we understand j00 ^^
./45
07.04.2004 - 2088
12:00  onur - Posté : 25-07-2008  M

squalyl (./43) :
c'est encore plus sale le débogage à coup d'alert pour moi!

Avec des outils adaptés, on peut executer pas à pas aussi et lire la valeur actuelle des variables.

Zephyr (./44) :
Oui mais ce genre de vérifications, on s'en tape quand même deux fois plus en JS où tout est autorisé que dans un langage plus strict où une bonne partie des vérifications "basiques" (types & co) n'ont pas à être effectuées puisque le compilateur s'en charge.


Non pas "deux" fois plus. Normalement, quand tu as bien "designé" ton projet comme tu dis, en C++ ou autre tu as plus besoin de cast dynamique et en js, tu n'as plus besoin de ce genre de survérification.


http://sexycoders.com
Tout ce qui passe pas par le port 80, c'est de la triche.
./46
30.06.2001 - 52831
12:05  Godzil - Posté : 25-07-2008  M

squalyl (./43) :
#sick# c'est encore plus sale le débogage à coup d'alert pour moi!

Non, vraiment, je peux pas blairer le JS. Pour moi c'est anti rentable, à chaque fois que je l'ai touché j'y ai perdu du temps sans réaliser ce que je voulais vraiment.

Heureusement qu'il y a de vrai débugguer pour le JS...


Proud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-

./47
16.06.2001 - 59039
12:23  squalyl - Posté : 25-07-2008  M

ah ué? jamais trouvé de truc qui me plaise pour ma part.


./48
07.04.2004 - 2088
12:51  onur - Posté : 25-07-2008  M

je sais que visual studio le fait avec IE/FF. Mais bon, faut l'avoir quoi.


http://sexycoders.com
Tout ce qui passe pas par le port 80, c'est de la triche.
./49
30.06.2001 - 52831
12:59  Godzil - Posté : 25-07-2008  M

squalyl (./47) :
ah ué? jamais trouvé de truc qui me plaise pour ma part.

FireBug pour Fx, Safari en inclu un de base, Visual studio (san garantie) et j'en passe d'autres sous linux


Proud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-

./50
13.06.2002 - 37790
13:11  @Zeph - Posté : 25-07-2008  M

onur (./45) :
Non pas "deux" fois plus. Normalement, quand tu as bien "designé" ton projet comme tu dis, en C++ ou autre tu as plus besoin de cast dynamique et en js, tu n'as plus besoin de ce genre de survérification.

Ah ok je viens de comprendre ce que tu voulais dire. Alors oui effectivement si tu es vraiment extrêmement rigoureux, a priori il n'y a pas besoin non plus en JS de multiplier les vérifications. En pratique (et je pense que c'est dans ce sens que nitro en parlait), ça devient probablement très difficile sur des gros projets.


Are you even listening to me?
------------------------------------------
Mirari² :: It offers what you want, not what you need
3l33t :: Relax, we understand j00 ^^
./51
20.06.2003 - 4879
17:13  JackosKing - Posté : 25-07-2008  M

Zephyr (./39) :
Je n'avais même pas pensé au Java à vrai dire, mais l'absence de templates qui oblige à utiliser des dynamic casts c'est un manque du langage, pas un problème lié aux langages typés à la compilation. Pour rappel, quand tu utilises un cast dynamique, c'est que tu en es arrivé à un point de ton code où tu as perdu l'information sur la nature de ce que tu manipules : sauf exceptions, c'est une erreur de conception.


#crayon# Et bon dieu que c'est dur à faire comprendre!



./52
17.10.2001 - 4049
19:57  hibou - Posté : 25-07-2008  M

Zephyr (./50) :
onur (./45) :
Non pas "deux" fois plus. Normalement, quand tu as bien "designé" ton projet comme tu dis, en C++ ou autre tu as plus besoin de cast dynamique et en js, tu n'as plus besoin de ce genre de survérification.

Ah ok je viens de comprendre ce que tu voulais dire. Alors oui effectivement si tu es vraiment extrêmement rigoureux, a priori il n'y a pas besoin non plus en JS de multiplier les vérifications. En pratique (et je pense que c'est dans ce sens que nitro en parlait), ça devient probablement très difficile sur des gros projets.

et y'en a même qui vont encore faire des tests unitaires, des tes fonctionnels pour encore vérifier une fois que ce qu'ils ont codé est bon.
Ca me rappelle une discussion sur ce même débat, typé vs dynamique. L'un remarquait qu'il passait son temps à faire des tests unitaires (il aimait presque faire ca .... #hum# ). Et il trouvait qu'en fait le typage l'emmerdait car si il avait un pb de structure de données, ses tests unitaires le détecteraient. Moi je préfère typer et faire moins de test unitaire. Et même typer c'est aussi quelques fois documenter. :p



./53
13.06.2001 - 70122
21:58  Nil - Posté : 25-07-2008  M

Bon, pour répondre au sujet initiale :

Le JavaScript est un langage que je ne connais vraiment pas bien (et ça me manque, mais il est très difficile d'avoir de vrais formations correctes à ce niveau).
Visuellement, je n'accroche pas. Mais, là aussi, c'est probablement parce que je le vois dans des usages liés aux applications web, où on fait du JS un peu en vrac, sans se soucier de la lisibilité du code (mais il n'empêche que j'ai quand même plus de mal à lire un programme fait en JS qu'en Java, par exemple).

C'est à peu près tout ce que j'ai à dire sur la question %)



./54
25.06.2001 - 11921
22:15  nEUrOO - Posté : 25-07-2008  @_ö

- les formations pour apprendre un language... je suis vraiment dubitatif, se plonger dedans et y passer des heures oki plutot
- JS est carrement moins verbeux que Java, donc ca peut etre moins facile a lire ouep, mais c'est comme tout, ca depend avant tout du dev qui a fait le source

moi je trouve le js joli :)


./55
16.06.2003 - 25898
22:21  Sally - Posté : 25-07-2008  F

Rien de tel que de lire la spec pour apprendre un langage :o (et je suis sérieux... enfin bon ok pas tout de suite tout de suite, faut déjà coder deux-trois petits trucs à partir d'exemples ou tutos, mais bon si on veut vraiment savoir utiliser le langage ^^)


« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Forum Cultures du mondeforum littéraire
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#
./56
13.06.2001 - 70122
22:27  Nil - Posté : 25-07-2008  M

En fait, c'est aussi et surtout parce que je n'ai jamais eu de projet nécessitant vraiment beaucoup de js... donc jamais de vraie motivation pour m'y mettre.



./57
10.06.2001 - 33210
00:44  Kevin Kofler - Posté : 26-07-2008  M

hibou (./52) :
Moi je préfère typer et faire moins de test unitaire.

Et moi je préfère typer et faire aucun test unitaire. #gni#


Mes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
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é
./58
16.06.2001 - 59039
09:12  squalyl - Posté : 26-07-2008  M

et corriger les bugs uniquement après que les utilisateurs se soient plains? #gni#


./59
10.06.2001 - 6394
10:10  Uther - Posté : 26-07-2008  M

Même pas besoin. Kevin ne fait pas de bug, Il ne fait que des features incomprises #gni#

Edité par Uther le 26-07-2008 à 22:33:33.


./Publicité AdSense
 « Précédent - 2/6 - Suivant » :: Pages
 Index » Forum informatique & développement » Autres langages de programmation (174r) » Connaissez-vous réellement le javascript?

./Poster un nouveau message. - Ouvrir dans une nouvelle fenêtre
Login : Mot de passe :

url - image - media  
spoiler - pre - fixed
quote - box - hr
poll - code





Smileys
Smileys perso
Pièce jointe
     Flood control (?) :    
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

» yN ©1624 - Aide / Charte / Crédits
66ms | Statistiques