26-02-2013, 08:01 PM
Ce n'est pas le langage javascript qui est le mal, mais l'utilisation que l'on en fait.
Par exemple, je viens de voir passer le post de Ducky sur la création d'une carte de jeu (auquel je répondrai un peu plus tard après l'avoir entièrement lu). Dans son code, j'ai vu, en le survolant, du "$script .=" ce qui me fait penser que la carte est entièrement en javascript: c'est un énorme tort! Les données de la carte ne sont pas du javascript; leur mise en dynamique, peut-être, mais les données de base sont du html. Au lieu d'utiliser un script qui indique "case.position = [x,y]" par exemple (pour positionner la case), je recommande plutôt d'utiliser un élément html auquel on applique les attributs "class" et "data-*". Avec ce système:
- les données html sont lisibles sans avoir forcément du javascript
- elles restent manipulables par javascript à postériori
- elles allègent le code en déclarant l'intégralité de la case dans le html, et l'intégralité des codes de dynamismes dans le javascript.
Ce que je reproche aux utilisateurs du javascript, c'est:
- de l'utiliser pour de la présentation: utilisez CSS, c'est fait pour!
- de l'utiliser pour des données de fond (sémantique, le web "3.0"...): utilisez html
- d'appeler un tas de scripts (ce qui ralentit la page): optimisez vos appels et évincez les scripts pas utiles!
Pour moi:
CSS = présentation (forme)
html = fond (sémantique)
javascript = dynamisme et réactivité (facilitation d'utilisation)
Or, souvent, je constate que:
- html = bouillie de divs (je sais, je faisais pareil avant de l'apercevoir que c'est bien plus efficace, propre et standardisé de changer un peu de balises et de stopper la "div-ïte" aigüe)
- css = coloration des textes
- javascript = tout le reste que je sais pas trop bien faire en html mais dont j'ai pompé des codes jvs tous faits
@Niahoo:
Un jeu non-jouable en javascript, ok, mais pour ma part, je pense que le jeu devrait être compréhensible sans javascript. En d'autres mots, la structure du code html doit refléter, par exemple, l'existence d'une carte 2D isométrique ou bien recueillir toutes les données du personnages que l'on s'est créé pour le RPG.
C'est pas tant pour les utilisateurs que pour les développeurs: mélasser les codes dans javascript rend très difficile la maintenance du site sur le long terme. Et pour exemple, des tas de sites à grand succès fonctionnent sans javascript (un peu moins bien, mais ils fonctionnent): facebook (version mobile), twitter, wikipedia, google...
Souvent, ces sites marchent mieux avec javascript, mais la bonne utilisation des 3 langages (html/css/jvs) leur permet d'être viable sans jvs ou sans css.
Bref, pour moi, le porteur de sens est le html, pas le javascript, et trop souvent, les développeurs (par facilité) font porter le fond (le sens) de leurs pages sur le javascript.
Par exemple, je viens de voir passer le post de Ducky sur la création d'une carte de jeu (auquel je répondrai un peu plus tard après l'avoir entièrement lu). Dans son code, j'ai vu, en le survolant, du "$script .=" ce qui me fait penser que la carte est entièrement en javascript: c'est un énorme tort! Les données de la carte ne sont pas du javascript; leur mise en dynamique, peut-être, mais les données de base sont du html. Au lieu d'utiliser un script qui indique "case.position = [x,y]" par exemple (pour positionner la case), je recommande plutôt d'utiliser un élément html auquel on applique les attributs "class" et "data-*". Avec ce système:
- les données html sont lisibles sans avoir forcément du javascript
- elles restent manipulables par javascript à postériori
- elles allègent le code en déclarant l'intégralité de la case dans le html, et l'intégralité des codes de dynamismes dans le javascript.
Ce que je reproche aux utilisateurs du javascript, c'est:
- de l'utiliser pour de la présentation: utilisez CSS, c'est fait pour!
- de l'utiliser pour des données de fond (sémantique, le web "3.0"...): utilisez html
- d'appeler un tas de scripts (ce qui ralentit la page): optimisez vos appels et évincez les scripts pas utiles!
Pour moi:
CSS = présentation (forme)
html = fond (sémantique)
javascript = dynamisme et réactivité (facilitation d'utilisation)
Or, souvent, je constate que:
- html = bouillie de divs (je sais, je faisais pareil avant de l'apercevoir que c'est bien plus efficace, propre et standardisé de changer un peu de balises et de stopper la "div-ïte" aigüe)
- css = coloration des textes
- javascript = tout le reste que je sais pas trop bien faire en html mais dont j'ai pompé des codes jvs tous faits
@Niahoo:
Un jeu non-jouable en javascript, ok, mais pour ma part, je pense que le jeu devrait être compréhensible sans javascript. En d'autres mots, la structure du code html doit refléter, par exemple, l'existence d'une carte 2D isométrique ou bien recueillir toutes les données du personnages que l'on s'est créé pour le RPG.
C'est pas tant pour les utilisateurs que pour les développeurs: mélasser les codes dans javascript rend très difficile la maintenance du site sur le long terme. Et pour exemple, des tas de sites à grand succès fonctionnent sans javascript (un peu moins bien, mais ils fonctionnent): facebook (version mobile), twitter, wikipedia, google...
Souvent, ces sites marchent mieux avec javascript, mais la bonne utilisation des 3 langages (html/css/jvs) leur permet d'être viable sans jvs ou sans css.
Bref, pour moi, le porteur de sens est le html, pas le javascript, et trop souvent, les développeurs (par facilité) font porter le fond (le sens) de leurs pages sur le javascript.