L'Histoire en quête d'auteur
Rapport d'exercice Javascript
Pierre Crevoisier, 17 juin 1998
Staf 14, D.Schneider
Objectif | Méthode | Difficultés rencontrées | Références
Objectif Osons l'avouer: au-delà de la consigne de départ (réaliser un test en Javascript et apporter un feed-back approprié), cette réalisation ne répond pas à un objectif précis...
Les technologies ont ceci de particulier qu'il est souvent nécessaire de faire la part des choses entre le possible (technologique) et le faisable (pratique) ... Compte tenu du temps que nous avons à disposition pour la réalisation d'un projet, le distingo est subtil mais il m'est nécessaire de le poser ici. Si j'aborde en effet un propos tenant plus à la méthode qu'à la définition de l'objectif, c'est bien parce que le second a été négligé par absence de maîtrise du premier...

Plus précisément, j'avais bien choisi un premier objectif opérationnel: comprendre les mécanismes de Javascript avant de me jeter bille en tête dans une réalisation, aussi modeste soit-elle. J'avoue donc avoir consacré un temps trop important à cette première phase en oubliant d'appliquer une méthode de travail adaptée aux circonstances et aux exigences.
Le résultat est donc un compromis, une sorte de "photographie" d'un "instant d'apprentissage" de l'outil plus qu'il ne répond à une intention fonctionnelle.

Méthode
J'ai appliqué ici l'approche tâtonnante. Après une première découverte de la syntaxe permettant d'"incorporer" du Javascript dans une page HTML (essentiellement la définition des fonctions dans le HEAD et l'appel de ces fonctions dans le BODY), j'ai effectué une sorte de tour d'horizon des ressources existantes sur le Web. Cet exercice est d'ailleurs un moyen d'apprentissage intéressant: il permet d'accéder à des réalisations dont la conception serait inaccessible au débutant et, par la manipulation du code, de comprendre progressivement le fonctionnement du langage. Autre avantage non négligeable: la vision du "possible technologique" dont le réseau est porteur - et vitrine en même temps - permet d'éviter la frustration inhérente à la condition du développeur lambda (modeste par définition).
A l'usage, une telle approche permettrait également de tenter la sollicitation des auteurs et fournisseurs de ressources (exemples de scripts, administrateurs de sites dédiés, etc.), voire les multiples Newsgroups existants dans le domaine. En ce qui me concerne, j'ai toujours quelques réserves à le faire, compte tenu du caractère "basique" des interrogations de débutant... - désolé pour les ressources humaines de Tecfa ;). Avec une plus grande maîtrise et une meilleure connaissance du terrain, ce type d'échanges pourra néanmoins être intégré à une stratégie d'apprentissage-développement.

Complément : La bible de Danny Goodman. La caractéristique de ce type d'ouvrage est d'être suffisamment simple pour permettre une entrée en matière rapide... à condition d'en suivre la logique! Cherchez à résoudre un problème qui n'est pas suggéré par le livre et celui-ci ne vous sera d'aucune utilité (p.ex. afficher une variable string dans un champ texte). Enfin, symptôme récurrent de l'évolution technologique, la traduction française s'arrête à la version 1.1 de Javascript

Difficultés rencontrées
La principale difficulté rencontrée a été la rigueur du langage. Ce n'est certes pas une "exclusivité Javascript", mais j'avais oublié que la programmation exigeait une telle attention dans les détails d'écriture. Ainsi, un espace superfétatoire, un guillemet négligé, et le script est "grippé". Le débugger Javascript est d'ailleurs utile, quand bien même il n'identifie pas toujours précisément la cause de l'erreur.

Difficulté non résolue, faute de temps: l'usage des caractères accentués. Le code HTML n'est pas interprété. Je me suis donc limité à l'usage des caractère ASCII, quand bien même cela manque d'élégance.

Enfin, j'aimerais aborder un obstacle conceptuel: plus encore qu'auparavant, j'ai constaté mes lacunes en matière de programmation 'orientée objet'. Si j'en saisi aujourd'hui les principes directeurs (instanciation-déclaration), j'avoue que les subtilités m'échappent encore. Il y a là matière à "révolution intellectuelle" que je n'ai pas encore pratiquée... ;)

Références
Je me suis essentiellement basé sur les documents et ressources suivantes:
Objectif | Méthode | Difficultés rencontrées | Références