1

Je suis comme ces mecs là qui sonnent chez vous en costard et qui posent des questions du genre "que savez-vous sur Dieu" ?

... Oui je suis pareil. Je suis un témoin de Javascript (plus précisemment témoin de puissance du VM du js (car oui, il y a un vm qui execute du bytecode).
<troll>le javascript fonctionne bien plus vite que le java (attention j'éditerai plus tard ici pour donner des urls sur lesquels je m'appuie pour sortir ça)</troll>

en attendant: que savez-vous sur le javascript?

[sondage=16096]
[sondage=16097]
[sondage=16098]

découvrez ce langage de fou. et vous ne serez pas déçus. Je peux vous laisser quelques brochures. (comme celui ci par exemple: http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html )
Tout ce qui passe pas par le port 80, c'est de la triche.

2

Je l'utilise car c'est le seul langage de script disponique sur tous les navigateurs web mais je refuse de l'utiliser pour quoi que ce soit d'autre.
Tu peux me sortir tous les argument possible, Je réfuerai habilement par un subtil : "C'est pas un langage fortement typé donc c'est de la merde"
avatar

3

Uther (./2) :
Je réfuerai habilement par :un subtil "C'est pas un langage fortement typé donc c'est de la merde"

troll tongue
avatar
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

4

C'est quoi qui te fait refuser de l'utiliser ailleurs?

edit: à ce propos, si des modos pourraient récupérer les sondages qui ont jarté, ca serait cool.
Tout ce qui passe pas par le port 80, c'est de la triche.

5

Il manque une option dans ton sondage : "des trucs qu'on pourrait faire aussi bien sans, des trucs qui servent à rien, et des popups de pub (ou assimilés)".
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

6

oui le js a une mauvaise image à cause de ces utilisations à la con dans le cadre du web.

Uther: c'est pas fortement typé, parce que c'est un langage dynamique. C'est dynamiquement typé. (enfin bon, mes deux autres questions ont jarté sad )
Tout ce qui passe pas par le port 80, c'est de la triche.

7

Uther: tu utilise PHP ?
onur (./1) :
(car oui, il y a un vm qui execute du bytecode).


Nan du tout, enfin pas encore, bcp de navigateur n'utilisent encore que de l'interprétation ligne à ligne, sans par le passage bytecode->VM

Actuellement seul les prochaines version de Fx et Webkit (avec squirelfish) vont bénéficier d'une "vrai" VM...

Poru tes sondages, simple :

[sondage=16097]

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.

8

puis

[sondage=16098]
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.

9

Dans un topic qui est censé faire l'éloge du JS, c'est pas dur de deviner les bonnes réponses...

bon sinon, le 1er sondage, corrigé:
[sondage=16099]

10

ok, merci pour les sondages.
mais quand je disais le bytecode, je parlais de l'interpreteur dans firefox (spidermonkey), et je suppose que ça l'est aussi dans IE vu les performances meilleures.

http://www.mozilla.org/js/spidermonkey/
Tout ce qui passe pas par le port 80, c'est de la triche.

11

Jyaif (./9) :
pleins d'applis qui rament

tiens?... du code...
http://code.google.com/p/acrcal/source/browse/trunk/?r=104

qui fait de l'optimisation combinatoire en javascript #sifflote# et qui s'execute pas dans un browser qui rame (firefox) mais dans photoshop.
Tout ce qui passe pas par le port 80, c'est de la triche.

12

Ah je vois, toi tu veux carrement utilisé du JS pour coder des appli desktop.
C'est quoi l'avantage du JS par rapport au python par ex?

13

Godzil (./7) :
Uther: tu utilise PHP ?
Pareil, j'évites autant que possible, Même si c'est vrai que si je doit fire une application web simpliste en un temps record je vais y avoir recours.
onur (./4) :
C'est quoi qui te fait refuser de l'utiliser ailleurs?
Que c'est pas un language fortement typé. Comme la plupart des autre language de script c'est vrai mais je déteste également la plupart des languages de script et j'essaie de m'en passer autant que possible.


avatar

14

je comprends pas trop l'intérêt des questions du topic, faire découvrir ce qu'est le JS ? c'est un langage que je trouve assez beau et c'est dommage que son utilisation soit restreinte à des effets pourris dans des pages web vu sa puissance, mais quel est le but de la discussion en fait ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

15

En fait y a pas mal d'idées reçues, et en découvrant le langage, je me suis rendu compte de sa puissance au fur et à mesure. C'est un langage qui m'a surpris (agréablement) plus d'une fois, et c'est marrant parce que contrairement au python, il n'a pas la réputation qu'il mérite. (je compare exprès à python car sur certains aspects qui font aimer le python aux programmeurs, on les retrouve dans le js)
Jyaif (./12) :
Ah je vois, toi tu veux carrement utilisé du JS pour coder des appli desktop. C'est quoi l'avantage du JS par rapport au python par ex?

Oui des applis desktop pourquoi pas. Par rapport au python je sais pas, je ne connais pas python. Mais par rapport au java, tu as toi-même vu la différence de fluidité entre:

* ton appli desktop (un jeu en 3d isométrique) codé en java
* et la même chose codé en javascript dans un browser

y en a un qui était 10 fois plus rapide que l'autre non? Ca, à la limite c'est une question d'implémentation du VM. Moi ce que j'aime vraiment dans le js, entre autre, c'est la possibilité d'ajouter une fonction à la volée à une classe, et ce, une fonction anonyme!

a.methodMachin = function(){ ....}

ou meme de faire une function anonyme utilisé comme un constructeur direct sur le tas:

var a = new function(){ this.a = ... ; this.b = ...; }();
Tout ce qui passe pas par le port 80, c'est de la triche.

16

Et c'est pas parce que Firefox rame que le javascript rame (cf. spidermonkey utilisé embedded dans d'autres applis)
Tout ce qui passe pas par le port 80, c'est de la triche.

17

C'est plus très frais dans ma tête, mais à l'inverse j'avais été assez déçu par les derniers ajouts que j'avais lus sur le JS, ça ajoutait pour moi autant de bonnes choses (assignation déstructurante, yield) que de mauvaises (les générateurs de tableaux, l'horrible "let"...). D'ailleurs y'a pas que dans les nouveautés qu'il y a des défauts, je trouve les prototypes assez peu élégants, et le fait que le ";" soit facultatif change parfois la signification du code en fonction de certains retours à la ligne.

(à part ça, je comprends pas la pertinence de la remarque "tel langage rame"... ça n'a tout simplement aucun sens, une VM peut ramer, un compilo peut produire un code pourri, mais un langage ?)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

18

Jyaif (./9) :
Dans un topic qui est censé faire l'éloge du JS, c'est pas dur de deviner les bonnes réponses...

bon sinon, le 1er sondage, corrigé:
[sondage=16099]

Utilise un navigateur qui sais gerer le JS tu verra.


http://www.sproutcore.com <-- Un tres bon exemple d'application faite 100% en JavaScript/HTML/CSS qui ne "rament" pas, du moins avec un navigateur qui a un bon interpreteur de JS (aka Fx ou Webkit et peut-etre Opera)

tromb Fichier joint : 2gzO (applicationphoto.PNG)

Application Web ? ou application native ?

http://www.sproutcore.com/static/photos/

Dur a dire quand meme non ?
(fonctionne bien avec Fx et Safari)
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.

19

Zephyr > oui oui je suis assez d'accord avec ce que tu dis. un langage ne rame pas, c'est le VM qui rame (quand je compare avec le java, je compare les VM, j'ai bien précisé), et dans le cas de Firefox, c'est meme pas le VM qui rame (qui est bien fait) c'est le html renderer qui est (très) gourmand.

Pour les prototypes: je suis pas d'accord, c'est justement le coeur du javascript. On fait dériver des objets et non pas des classes (puisque chaque objet est "dynamique" et peut changer de forme, de nombre d'attributs à l'execution etc.) et c'est justement ce qui fait la beauté de ce langage et/ou en tout cas, qui fait sa spécificité.

le "let" n'existe pas (encore), pas dans les implémentations les plus utilisés en tout cas.

pour le point virgule optionnel, complètement d'accord, mais bon ça c'est un cadeau pour les gamins qui s'amusent en faire pour faire des popups sur leurs sites justement.

Ce qui est peu élégant, c'est plutot la contradiction avec sa nature basé prototype et l'existence du mot clé "new" (je l'utilise bcp parce que le code est plus clair, mais si on poussait la philosophie du js à fond, on devrait l'interdire ce mot clé) et dans les modifications prévues il y a des choses qui plaisent pas du tout aux puristes amoureux de javascript: l'ajout de "class", possibilité de déclarer une "classe" quoi. Ca brise encore plus sa vraie distinction qui fait toute sa puissance, et ça rend la notion d'héritage objet à objet plus floue qu'autre chose.
Tout ce qui passe pas par le port 80, c'est de la triche.

20

pour l'histoire du "prototype", ce n'est pas le fonctionnement que je remet en cause, juste la syntaxe (donc vraiment un détail finalement) : spécifier le prototype avec une syntaxe qui ressemble à un membre de classe, c'est pas super beau.

(sinon globalement d'accord avec le reste)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

21

AMHA, le JS sert avant tout à faire des applications qui se prennent pour des sites web ou des sites web qui se prennent pour des applications. Ça crée des mélanges entre les 2 concepts qui réunissent les désavantages des deux: le bouton pour revenir en arrière ne fonctionne pas comme on l'attendrait d'un site, on est dépendants d'un serveur et d'une connexion à Internet comme pour un site, mais on peut aussi avoir des problèmes de compatibilité avec sa machine comme pour une application etc., et qui en rajoutent d'autres, genre la lenteur. Donc, toujours AMHA, il faut choisir:
* soit on fait un site, alors tout le code a sa place du côté serveur (et à ce moment-là, vous avez le choix du langage de programmation, le client recevra toujours du HTML),
* soit un fait une application, alors tout le code a sa place du côté client, et AMHA le meilleur choix est en un langage compilé (en code natif; ça élimine le JS) et multiplateforme (je propose le C++ avec KDE 4, ou éventuellement le ISO C99 pour ce qui n'a pas besoin d'interface graphique) et une licence libre (je propose la GNU GPL, avec une version minimum imposée, mais pas de version maximum (donc GPL>=2 ou GPL>=3)).
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é

22

onur (./15) :
Jyaif (./12) :
Ah je vois, toi tu veux carrement utilisé du JS pour coder des appli desktop. C'est quoi l'avantage du JS par rapport au python par ex?

Oui des applis desktop pourquoi pas. Par rapport au python je sais pas, je ne connais pas python. Mais par rapport au java, tu as toi-même vu la différence de fluidité entre:

* ton appli desktop (un jeu en 3d isométrique) codé en java
* et la même chose codé en javascript dans un browser

y en a un qui était 10 fois plus rapide que l'autre non? Ca, à la limite c'est une question d'implémentation du VM.

Bah c'est pas du tout une question de VM, c'est juste une question de librairie. Il y a quake 2 en Java, et un jeu équivalent à Quake 2 en JS tournerai 10000 fois plus lentement... pourtant j'en déduis pas que le JS est 10000x plus lent que le Java).
(ca me rappelle les bench TIGCC vs ETP studio, où tu clamais que les bench prouvaient que le code produit par ETP étais juste 1.2x plus lent que TIGCC, alors que 95% du temps était passé dans des appels système) .

Moi ce que j'aime vraiment dans le js, entre autre, c'est la possibilité d'ajouter une fonction à la volée à une classe, et ce, une fonction anonyme!

a.methodMachin = function(){ ....}

ou meme de faire une function anonyme utilisé comme un constructeur direct sur le tas:

var a = new function(){ this.a = ... ; this.b = ...; }();

Je suppose que tu aime ce language parcequ'il a une élégance "mathématique", mais pour moi c'est surtout un language où on peut faire tout et n'importe quoi.
Tous les languages mals typés suxent.

23

Jyaif > Tu te souviens mal rour ETP, c'est le test proposé par Kevin qui avait permis de conclure le x1,2. Moi le bench que j'avais fait, c'était fibonnaci récursive, les tests étaient plutots concluants (je me souviens plus des chiffres) mais pareil c'est dans l'autre extrémité, c'est un cas qu'on rencontrera jamais dans les jeux.

Sinon, non ce n'est pas à cause de l'élégance "mathématique" que j'aime ce langage, d'ailleurs je vois pas où y a les maths dedans. Et "un langage où on peut faire tout et n'importe quoi", c'est ce qu'on appelle un langage dynamique et c'est le cas de JS, c'est à toi de faire attention qu'il y ait pas n'importe quoi à l'execution.

Jyaif & KK > C'est clair que si on veut du typage fort et détecter un max d'erreur à la compilation, il faut choisir le C++. C'est d'ailleurs toujours mon langage préféré. Mais parfois, c'est bien d'avoir un langage de script sous la main, et j'en connais pas qui soit aussi puissant que le JS. Par exemple, Firefox que vous aimez tant est écrit en C++ ET en JS. Certaines parties du code sont en javascript executé (avec un niveau de permission plus élevé que les javascript des pages web bien entendu).

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

24

Uther (./2) :
Je l'utilise car c'est le seul langage de script disponique sur tous les navigateurs web mais je refuse de l'utiliser pour quoi que ce soit d'autre. Tu peux me sortir tous les argument possible, Je réfuerai habilement par un subtil : "C'est pas un langage fortement typé donc c'est de la merde"

pareil, sauf que c'est pas faible mais dynamique à syntaxe implicite, et que pour moi, c'est pourri à comprendre.
onur (./15) :
y en a un qui était 10 fois plus rapide que l'autre non? Ca, à la limite c'est une question d'implémentation du VM. Moi ce que j'aime vraiment dans le js, entre autre, c'est la possibilité d'ajouter une fonction à la volée à une classe, et ce, une fonction anonyme!

a.methodMachin = function(){ ....}
ou meme de faire une function anonyme utilisé comme un constructeur direct sur le tas:


c'est des techniques pas propres de programmation si on utilise ça à tort et à travers...

25

onur (./23) :
Firefox que vous aimez tant

Pas moi. Konqueror rulez!
est écrit en C++ ET en JS.

C'est pour ça qu'il rame à fond aussi!
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é

26

non ce qui rame c'est le moteur et c'est pas en js.

sinon en effet, l'ajout de fonction comme ça, ça peut paraitre bizarre, mais en général, on écrase une fonction qui existe déjà. Et la puissance de ce truc c'est les closures: (qui pourraient exister dans les langages compilés, mais à part le C# j'en connais pas d'autres qui en ont)

var me = this;
this.toto = 482;
for(var i=0;i<5;i++){
	var a= tab[i];
	a.i = i;
	a.onclick = function(){
		// ici 'this' est le 'a' à l'extérieur de la fonction
		alert(this.i)		// 0,1,2,3 ou 4
		alert(this.toto);	// undefined
		
		// ici 'me' est le 'this' à l'extérieur de la fonction anonyme
		alert(me.toto);		// 482
	}
}


ce qui permet de faire une fonction capable de générer à la volée des fonctions de collision:

function createCollideFunction(low,high){
	return function(x){
		if (x>low && x<high) return true;
		return false;
	}
}

le jour où vous trouvez des langages qui font ça... (enfin y en a: python, LUA je pense, mais je veux dire le javascript joue dans la cour des grands)
Tout ce qui passe pas par le port 80, c'est de la triche.

27

lua on peut c'est sur.

ça me parait intéressant, mais utilisé à tort, on peut faire de belles conneries je pense. Bien utilisé oui ça sert aux events de javascript mais sinon je vois pas trop l'intéret.

28

En ce qui me concerne, j'ai fait un peu de javascript dans un contexte hors-browser (spidermonkey embarqué avec des bindings pour développer des applis graphiques), et quand on commence à faire des projets qui dépassent qq centaines de lignes de codes, ça devient compliqué.
Le typage dynamique et l'absence de packages/classes rendent très difficile le développement modulaire à mon avis. Le deuxième point est corrigé dans la prochaine version d'ecmascript, et en ce qui concerne le reste, j'en suis tout simplement arrivé à changer de langage. Je suis tombé sur haXe, et depuis c'est devenu mon joujou préféré. smile
So much code to write, so little time.

29

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.
Tout ce qui passe pas par le port 80, c'est de la triche.

30

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 tongue

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.