mardi 17 décembre 2013

Devenir un super-héros de la programmation moderne en moins de 5 minutes

Comme je l'ai déjà relaté dans une précédente chronique, j'ai le plaisir intense, depuis quelques mois, de travailler avec des spécialistes de l'informatique.
Cette semaine, après de profondes réflexions et études, mes sympathiques compagnons de labeur ont arrêté les principaux choix techniques de l'application que nous cherchons à développer.
A cette occasion, j'ai appris qu'une part importante de notre code allait être écrite en angular javascript, soit, mot à mot dans la langue de Molière, en scenario java anguleux.

La dernière fois que j'ai commis un peu de programmation, j'usais mes fonds de culottes sur les bancs d'une institution universitaire et Valéry Giscard d'Estaing était encore président de la république française.
Les trois langages alors en vogue s'appelaient basic, cobol et fortran. Ils avaient l'heur d'être à peu près compréhensibles par toute personne ânonnant le parler de Shakespeare, ainsi que le prouve l'exemple ci-dessous.

IF (you = sympa);
THEN say(me, you, "Hello");
ELSE say(me, you, "");
ENDIF

Las ! Cette époque bénie est désormais révolue et quand le java est là, le fortran s'en va !

Désireux de ne pas trop passer pour un parfait ignare auprès de mes nouveaux et jeunes coéquipiers, je me suis précipité sur internet pour tenter de me mettre presto à niveau.
Afin de vous permettre de combler encore plus vite votre retard, j'ai rassemblé ci-après l'essentiel de mes trouvailles. Une lecture attentive devraient vous amener illico au top !

Désormais, tout logiciel digne de ce nom emploie un, voire plusieurs, langages orientés objet à prototype.
Autrement dit, les bases du langage et ses principales interfaces sont fournies par des objets qui ne sont pas des instances de classes, mais qui sont chacun équipés de constructeurs permettant de créer leurs propriétés.
Javascript, littéralement le scénario du café bouillu, a été, en vertu de ces magnifiques principes, créé en 1995 pour permettre le développement d'applications fonctionnant au gré du web et des nuages.

Dans ce jargon peu poétique, l'exemple précité devient :

window.alert("Hello world");

Charge au monde de se débrouiller avec ses objets, ses constructeurs et ses propriétés souvent privées d'information pour savoir si je le considère ou non comme sympathique.

Toutefois, ces magnifiques idiomes ne seraient rien s'ils n'étaient pas soutenus par des frameworks, que les québécois traduisent par cadres d'applications ou cadriciels.
Un cadriciel est un ensemble cohérent de composants logiciels structurels servant à créer les fondations ainsi que les grandes lignes d'un logiciel. Son caractère générique, faiblement spécialisé, permet de ne pas le confondre avec une simple bibliothèque logicielle.
Comme il se doit, en programmation orientée objet, un framework est typiquement composé de classes mères qui seront dérivées et étendues par héritage en fonction des besoins spécifiques à chaque logiciel qui utilise le framework.
Grosso modo, un cadriciel peut s'auto-décrire sensiblement comme suit :

framework = new frameworkOn ()
function frameworkOn()
{framework.img.src = imgframework.src;
viceversaOn ();
toutestdanstoutOn ();
amoinsquecelanesoitlinverseOff.src.img ();
return true;}


Angular javascript connait actuellement un beau succès au hit-parade des frameworks.
Mr Google, son concepteur, dont le talent informatique égale la modestie, n'a pas hésité à le qualifier de cadriciel superhéroïque.
Ce cadre d'applications, à l'instar de la première des sectes venues, est fondé sur une croyance : la programmation déclarative doit être utilisée pour construire les interfaces utilisateur et les composants logiciels de câblage, tandis que la programmation impérative excelle pour exprimer la logique métier.
Il encourage le couplage faible entre la présentation, les données et les composants métiers.
De surcroît, il utilise l'injection de dépendances.
Bref, grâce au javascript anguleux, il est possible de rendre les tâches faciles évidentes et les tâches difficiles possibles.

Pour conclure ce billet, j'ai le plaisir de vous faire découvrir, en avant-première mondiale, mes premières lignes de code écrites en angular javascript qui devraient vous aider à vous remettre de la lecture de cette anguleuse chronique.

<!doctype html>
<html ng-app>
<head>
<script src="http://kelibia.fr/migraine/aspirine.angular.min.js"></script>
</head>
<body>
<div>
<label>Tisane pour mal de tronche</label>
<input type="boisson" ng-model="decoction" placeholder="bouilloire">
<ul class="unstyled">
<li ng-repeat="de la tisane, encore de la tisane, toujours plus de tisane">
<input type="ecorce_de_saule" ng-model="tisane.done">
<span class="tisane-{{tisane.done}}">{{tisane.ecorce.saule.text}}</span>
</li>
</ul>
<hr>
<h1>Faire infuser {{tisaneName}}!</h1>
<h1> Boire bien chaud {{tisaneName}}!</h1>
<h1>Aller au lit avec {{last_conjoint@due_date}}!</h1>
</div>
</body> // celui du code pas du conjoint 
</html> // toi-même !

// Angulobjectivement votre


Références et compléments
- Voir aussi la chronique "l'informatique est une réincarnation de la SNCF".
- Tous mes remerciements et excuses à mes nouveaux coéquipiers. Je passe des moments intenses, souriants et palpitants avec eux.
Qui aime bien ironise bien ...
- Les phrases incompréhensibles ou bizarres de cette chronique sont toutes authentiques et proviennent de Wikipedia. Cette chronique est plus un exercice de collage que d'écriture.
- Pour en savoir plus sur angular javascript : le site web officiel anglophone et l'article Wikipedia francophone.
- Mon amour immodéré de la vérité et de l'exactitude me pousse toutefois à préciser qu'il m'est arrivé, il y a quelques années, à l'issue de nombreuses visites à Bergame et après un abus préjudiciable de casoncelli et de lambrusco, de pondre quelques lignes de javascript (toutefois fort peu anguleux).
Les acharnés pourront consulter le code source de cette page, les autres profiter du reportage photographique effectué sur l'autoroute reliant Bergame à Grenoble.