samedi 15 décembre 2007

Java old comments

Jean-Philippe, a friend but also my nephew, asked me how I felt about Java. Here is my reply.

Si je suis familier avec Java? Oui et non. Je le connais pour l'avoir étudié au début, mais il ne m'a jamais vraiment servi. Il était horriblement truffés d'erreurs au début (les SDK en particulier), et nous dépendions totalement de Sun pour les corrections, ça m'a laissé un arrière-goût assez tenace, même si je sais que tout s'est correctement stabilisé depuis. Le souvenir de Java s'est émoussé depuis, mais j'imagine que ça reviendrait vite.

En fait, les langages, j'en ai étudié beaucoup (je les étudiais tous au début), mais maintenant, j'ai plutôt tendance à apprendre au besoin, parce que dans un certain sens, j'en ai trop appris pour rien. Maintenant, je les apprends selon les projets à réaliser.

Java est dans la lignée des langages fortement typés de manière statique (comme Pascal, Ada, et un grand nombre d'autres). Comme tous les langages de sa catégorie, il est plutôt verbeux. Mais il pourrait être bien pire, s'il n'offrait pas cette originalité de libérer le programmeur du besoin de penser au détail de l'allocation mémoire.

Oh, plusieurs autres langages le font aussi, mais généralement, ils offrent en même temps un typage fort dynamique plutôt que statique — le type est porté par l'objet à l'exécution, plutôt que par la position lexicale de l'objet dans le source (Lisp, Python, Scheme, et plusieurs langages fonctionnels utilisent le typage dynamique — à ne pas confondre avec la portée dynamique — Lisp est à portée dynamique, Scheme à portée lexicale). L'avantage de ces langages sur Java, c'est qu'ils sont excellents pour le prototypage (développement rapide). En pratique, une fois que le prototype fonctionne, il est en général satisfaisant, et on laisse les choses comme ça. Un moment donné, on apprend à directement viser des prototypes utilisables sans les voir comme intermédiaires, et les langages de protypages supplantent carrément PL/I, C++ ou Java. D'ailleurs, certains développeurs Java utilisent Jython pour travailler plus vite et beaucoup réduire la dimension de leurs sources.

Il y a des langages à typage statique faible (il y en a beaucoup, mais parmi les langages populaires, Perl est typique de cette catégorie). Ils sont un peu à l'opposé de Java, et pourtant, plusieurs programmeurs parlent à la fois Java et Perl. Question de mode probablement.

Java est encore très populaire, même si parmi les spécialistes des langages, il est plutôt mal vu. On voit pour Java une incroyable panoplie de bibliothèques disponibles, où chaque chose est offerte des douzaines ou des centaines de fois de manières différentes, et tout n'est pas également bon. L'embarras du choix est submergeant.

Le modèle de développement de gros projets Java apporte son lot de difficultés, avec ses définitions d'interfaces, ses compilations séparées admettant des mélanges ouverts / fermés, public / privé, et la foison de classes induites par la nature même de ses orientations de base. Mais ces problèmes particuliers ont suscité le développement de réponses originales, comme Eclipse, que l'on dit remarquable et brillant dans ce contexte, malgré sa lourdeur informatique intrinsèque. Des amis compétents m'en ont dit tellement de bien que j'ai le goût de l'examiner mieux.

Il faudrait que j'imagine un projet, pour m'amuser, qui rendrait Java justifiable. Il y a pratiquement toujours mieux, comme langage, pour à peu près n'importe quel problème (quoique beaucoup de gens se sentent sécurisés, en quelque sorte, par le typage statique). Alors, il faut trouver un environnement où les concurrents de Java ne peuvent exister. J'ai récemment acquis un téléphone mobile (cellulaire) que je pourrais programmer en Java, et probablement rien d'autre — ça me servira peut-être de jouet et d'excuse pour rafraîchir le souvenir que j'en ai. ☺

jeudi 8 novembre 2007

BarCamp

 Je trouve amusante, un peu folle, et même un peu risquée, cette idée d'une journée de conférences spontanées, et organisée sans prétention, à la dernière minute. Suffisamment, en tous cas, pour avoir le goût d'en faire l'expérience et d'y participer. L'image ci-contre donne accès (par un clic de souris) à plus d'information sur l'évènement lui-même.

Avant


Le courriel m'a rejoint le 27 octobre, mais comme j'en reçois beaucoup, je fais un premier tri et y reviens un peu plus tard. Pour un évènement prévu le 3 novembre, de 9:00 à 18:00, je n'ai vraiment lu le courriel que le soir du 30 octobre. (Il y a d'ailleurs conflit, je dois être à l'orgue de 16:30 environ à 18:00, le même jour.)

Cette annonce d'un BarCamp (je ne connaissais alors pas le concept) m'a d'abord semblé être une continuation improvisée de la rencontre du MSLUG qui avait récemment eu lieu pendant le OOPSLA, j'ai même pensé qu'elle était spécialisée au langage Scheme. Mais en fait, on peut aborder des sujets variés, comme le montre déjà la page donnant la liste des présentations (c'est un Wiki, les présentateurs s'y inscrivent eux-mêmes, ils peuvent d'ailleurs le faire jusqu'au dernier moment).

Si j'avais tout-de-suite compris, lors de ma première lecture, que tous les gens présents doivent participer, j'aurais tout-de-suite prévenu les amis, et me serait donné trois jours de plus pour préparer ma propre contribution, du moins en sentant moins de pression! ☺ De toute façon, il y a plusieurs façons de contribuer, et je serais heureux de simplement aider quelqu'un d'autre (il suffit qu'on m'en parle)! D'un autre côté, l'idée me sourit de présenter quelque chose en propre, qui m'appartienne un peu en quelque sorte. Au début, je ne voyais pas du tout que je puisse organiser quelque chose en deux courtes journées. Mais en y réfléchissant un peu, je me rends compte que j'ai plusieurs d'idées de sujets qui pourraient intéresser les confrères, et qu'il me suffit dans le fond de rester humble et simple.

Pour l'orgue, je n'aurai qu'à m'éclipser du BarCamp plus tôt, c'est tout! ☺

Après


Un confrère, à qui j'avais transmis l'invitation et qui semblait pourtant bien intéressé, a douté de pouvoir convenablement participer, et s'est abstenu. Il m'a demandé quelques nouvelles par la suite, et voici un extrait de courriels que je lui ai envoyés.

Je ne savais pas trop à quoi m'attendre, mais après avoir vu, je crois bien que tu aurais pu facilement y être, même sans avoir de présentation technologique.

Il y avait des présentations de quinze minutes, généralement entrecoupées de présentations de cinq minutes, dont certaines étaient parfois très amusantes, pas vraiment techniques. Par exemple, un bonhomme est venu nous inviter à reprendre conscience de l'importance de la recherche du bonheur. Un autre a préparé des diapositives invraisemblables, et invité quelques volontaires de l'assistance à venir totalement improviser cette présentation sans connaître le sujet, ni savoir à quoi ressemble la diapositive suivante (il paraît que bien des patrons savent faire ça, qui font préparer leurs présentations par d'autres). Il y avait aussi des présentations de une minute, les seules d'ailleurs où il est permis de faire de la promotion ou de la publicité.

Je m'attendais à ce que l'assistance soit à peu près égale au nombre de présentateurs (autour de deux douzaines peut-être), mais à ma surprise, il y avait vraiment beaucoup plus de gens présents, et les organisateurs originaux semblent l'avoir prévu, parce que l'espace était plutôt vaste. Il y avait des gens à l'accueil, à la surveillance du vestiaire, aux breuvages, à l'affichage de l'horaire (concocté sur place durant la première heure, et complété au vol ensuite pour les petits groupes qui voulaient s'improviser des tables de discussion), au chronométrage des conférenciers, pour aider la connexion du matériel des présentateurs, et certainement bien d'autres choses aussi.

Moi qui m'attendais à un petit groupe genre familial ou très amical, autour d'une grande table peut-être, j'ai trouvé tout cet ensemble plus intimidant que je ne l'avais imaginé. Mais en fait, l'assemblée était sympathique, et je ne regrette pas l'expérience.

Mon sujet était Scripting for speed (lighting a LAMP). J'ai voulu y décrire les principes sur lesquels je me suis appuyé pour accélérer de grosses applications sans recourir à des langages compilés traditionnels. En fait, j'y décrivais, bien partiellement, l'effort derrière la ré-écriture du projet Classer.

vendredi 19 octobre 2007

Thonnard

 Voici une image concoctée de mon exemplaire du Précis d'histoire de la philosophie, de F.-J. Thonnard, publié en 1937, ré-édité en 1963, mais introuvable de nos jours. C'est le digne compagnon du Précis de philosophie, mais celui-là, je l'ai malheuresuement perdu il y a longtemps, dans un incendie.

C'est lors de mes études collégiales, à l'Assomption, que l'on m'a fait acquérir, puis connaître les deux opus magnum de Thonnard en philosophie. Le Précis de philosophie fournit avec beaucoup d'autorité une synthèse très structurée de la vision thomiste scolastique. D'ailleurs, l'abbé Gaston Corriveau nous présentait ce contenu non pas comme une approche philosophique parmi d'autres, mais plutôt comme l'expression directe d'une vérité objective et indiscutable. L'évolutionnisme (et le darwinisme) était alors populaire dans nos jeunes esprits, ce qui était à l'origine de plusieurs objections et mêmes de quelques affrontements avec notre professeur, qui nous gratifiait alors de théâtrales et convaincantes colères. À mon grand étonnement, l'abbé Corriveau m'a un jour démontré en aparté que ces éclats étaient tout-à-fait prévus, et planifiés par écrit, dans sa préparation personnelle de cours.

Quoiqu'il en soit et quoique l'on puisse penser de Thonnard, je me souviens avoir été séduit, presque conquis, par la grande extension de l'ouvrage, la consistance de ses constructions et l'élégance de ses structures (élégance qui se reflétait souvent par de jolies symétries dans le langage utilisé pour les décrire). Peu importe si j'interprétais le contenu comme une théorie ou comme la vérité, c'était pour moi un livre précieux, et j'ai été attristé de le perdre accidentellement un jour (dans l'incendie de la maison des Quintal, à Charlemagne — je l'avais en fait prêté à Marie-Andrée). Et lorsque j'ai voulu le remplacer, il y a fort longtemps, le livre était déjà introuvable, et j'en avais définitivement fait mon deuil. Alors, on peut imaginer ma surprise lorsque tout récemment, presque par hasard, j'ai trébuché sur une copie de ce livre, patiemment numérisée par Stefan Jetchick. Stefan me donne un truc pour fouiller le livre, en me fournissant la bonne clé de fouille.

Stefan me fait cette mise en garde: Mais faites attention! Je n'ai pas numérisé Thonnard pour des fins d'édition critique, mais bien pour avoir un bon Manuel de philo. Alors parfois j'ai tripoté un peu le texte (presque toujours en l'indiquant dans les notes de bas de page).

Le hasard veut aussi que j'aie connu, un peu, Karine Thonnard, la nièce de l'auteur, qui a oeuvré dans le domaine de l'éducation à Sherbrooke et dans le bas St-Laurent. Lors de conversations téléphoniques, Karine m'avait parlé un peu du caractère de l'homme et du souvenir qu'elle en avait gardé à travers les réunions de famille. Je me souviens de mon étonnement de recueillir ainsi des souvenirs projetant une image bien différente de celle que je m'étais faite.

(Karine m'avait rejoint téléphoniquement lorsque je travaillais à la GRICS, pour obtenir de l'aide technique sur quelques points précis, et de communication en communication, sur un fond courant de sympathie, nous avons fini par nous tutoyer, et jaser de plusieurs choses en périphérie de nos missions respectives. Lorsque j'ai quitté la GRICS, les occasions de nous parler ont disparu, et nous nous sommes alors perdus de vue — si j'ose dire, puisque nous ne nous sommes jamais rencontré de visu. Mais j'ai le souvenir d'une personne dynamique et bien sympathique, ainsi que d'une travailleuse impliquée et sérieuse.)

En passant, en discutant de Thonnard et de ses livres avec Stefan Jetchick, mes cours de philosophie du collège me sont un peu remontés à la mémoire. Et parmi ces souvenirs, un détail relatif à un travail sur la notion liberté, qui exigeait quelques recherches en bibliothèque. En faisant cette recherche, j'ai trouvé un livre, relativement récent (qui ne date pas du Moyen-Âge ou d'avant) affirmant sans détour que Les femmes, les animaux et les épileptiques n'ont pas d'âme. Peut-être aurais-je dû conserver la référence pour la citer correctement. Dire que j'ai lu ça de mon vivant! ☺

vendredi 12 octobre 2007

Cahier à colorier


Cette image est tirée d'une collection de dessins de ma soeur Céline, qui forment ensemble un petit cahier à colorier. Le coloriage provient de mon frère Gilles. Cliquer sur l'image pour y avoir accès, les versions originales en blanc et noir, et les versions coloriées. Céline a réalisé ces dessins il y a longtemps, peut-être en 1971, peut-être un peu plus tard. J'en ai retrouvé une copie, par hasard, en faisant l'inventaire de quelques boîtes qui ont appartenu à ma mère.

Lorsqu'elle était jeune, ma soeur Céline n'avait pas tendance à conserver les dessins qu'elle faisait, et la majorité ont été détruits. Mais il m'est arrivé d'en sauver quelques-uns, dont ce Cahier à colorier, que l'on peut rejoindre en cliquant sur l'image qui apparaît juste à côté. J'en ai fait usage pour taquiner mes confrères de travail à Dorval, tel que je l'explique rapidement plus bas, puis j'ai égaré ces images à nouveau. Mais ma mère, en avait fait une sauvegarde dans ses propres papiers, et c'est ainsi que je les ai retrouvés, par hasard.

Employé à ce moment par le Centre Météorologique Canadien (à Dorval, sur la Transcanadienne près du boulevard des Sources), il m'était venu à l'idée d'attribuer un dessin de ce cahier à chacun de mes confrères ou consoeurs de l'endroit, et d'afficher chaque dessin bien en évidence sur la porte ou à l'entrée de leur bureau respectif. Tout le monde avait été amusé par l'idée, et les dessins sont sûrement restés là un grand bout de temps.



Par exemple, l'un de mes supérieurs était connu pour sa combativité tenace à l'occasion de longues querelles avec plusieurs autres fonctionnaires de l'endroit. Bizarrement, je n'ai jamais eu de problème avec lui. Lorsque j'ai appris que, à la suite d'un miracle qui m'échappe, il avait nommé ombudsman de la place, je l'avais taquiné: Allons-donc, Zavie, ça n'est pas sérieux! Si quelqu'un devait se plaindre à l'ombudsman qu'il a problème avec quelqu'un, c'est probablement qu'il a un problème avec toi!. Ce à quoi, avec un large sourire, il m'avait répondu: Lorsque quelqu'un a un problème avec moi, il a vraiment un problème!. Alors, j'avais choisi d'afficher sur sa porte ce dessin illustrant la fable de La Fontaine. Et Zavie en était d'ailleurs assez fier, disant à tout le monde qu'il se reconnaissait tout-à-fait dans le personnage de droite!



Dans d'autres cas, je laissais la personne choisir parmi les dessins restants. La secrétaire du groupe, très gentille par ailleurs, avait été séduite par le gentil sourire de cette image représentant un escargot, et l'avait collée à l'avant de son bureau. Mais, devant toutes les taquineries que cela lui a amenées, et qu'elle n'avait pas prévues, elle est rapidement venue me voir pour savoir si elle pouvait changer de dessin!

samedi 6 octobre 2007

Les Aiguilleurs

 Les Aiguilleurs, pièce de théâtre de Brian Phelan, adaptation de Jean-Louis Roux, Théâtre du Nouveau Monde, Montréal 1979. En haut, Jacques Godin (rôle d'Alfred) et Guy Provost (rôle d'Albert). En bas, Christian St-Denis (rôle d'Edward). En médaillon, Jean-Louis Roux pour la mise en scène.

Dans ces années-là, je suivais avec intérêt plusieurs des activités culturelles que m'offrait la ville de Montréal, dont entre autres, celles du Théâtre du Nouveau Monde (TNM), qui logeait alors sur la rue Ste-Catherine, tout près de Bleury. En fait, étant un habitué du TNM depuis plusieurs années, j'avais acquis avec le temps le droit à d'excellents fauteuils dans la place. Par les discussions d'après-théâtre, et à d'autres occasions aussi, la secrétaire administrative du TNM et moi avions développé une sorte de sympathie. Devant mon intérêt et mon enthousiasme, elle m'a présenté à Jean-Louis Roux, alors directeur artistique, qui m'a rapidement invité, si je le désirais, à suivre toutes les étapes de la mise-en-scène d'une nouvelle pièce.

C'est ainsi que je me suis retrouvé, invité comme observateur, dès la première lecture du texte de la pièce Les Aiguilleurs, de Brian Phelan, avec les illustres Guy Provost et Jacques Godin, et aussi Christian St-Denis, dont le métier commençait alors. Et Jean-Louis Roux, bien sûr, qui allait assurer la mise en scène. J'avais reçu, comme les acteurs de la pièce, une copie du texte, traduit de l'anglais et adapté au québécois par Jean-Louis Roux (qui faisait à l'époque ce travail de traduction et d'adaptation pour plusieurs de pièces de théâtre). C'était dactylographié sur environ deux cent pages, d'une manière très aérée pour permettre annotations et corrections, à large interligne et d'un seul côté des pages en format papier ministre. (De nos jours, on utiliserait sûrement des traitements de texte.) Je me souviens encore de la sobriété de ce cahier, non identifié, non daté, et boudiné entre deux pièces de gros carton noir.

Ce petit groupe de cinq personnes se rencontrait régulièrement, parfois plusieurs fois par semaine, dans une école désaffectée quelque part dans Saint-Henri (si je me souviens bien), que le TNM utilisait pour les répétitions, l'entreposage, la construction des décors, etc. J'ai vu le professionnalisme, le travail d'équipe, le développement et l'affermissement des personnages chez les acteurs, et les petits mais multiples changements au texte pour augmenter la crédibilité de l'ensemble. Et les discussions relatives aux décors et artifices techniques exigés par la pièce. Par exemple, à un moment donné de la pièce, une maquette ferroviaire, savamment construite par Alfred, est démolie par Edward. Mais s'il avait fallu construire autant de maquettes que la pièce allait avoir de représentations, les coûts de décor auraient été exorbitants. La solution retenue a été de construire une "maquette démolie" et de la coller en-dessous du plan de la maquette originale, donc invisible du public. Par une astuce d'éclairage au moment approprié, le plan est basculé à l'insu des spectateurs, la maquette démolie apparaît, et la maquette originale se retrouve à son tour en-dessous, et invisible.

Les jours de répétitions, sur l'heure du midi, Christian et moi avions pris l'habitude de partager nos repas dans un restaurant plus modeste, ce qui m'a permis non seulement de le connaître un peu mieux, mais aussi de saisir le sens des aspirations et des ambitions des gens du milieu. Certains souvenirs relatifs à cette expérience seraient longs à expliquer, et surprendraient peut-être quelques-unes des personnes impliquées — le monde est vraiment plus petit qu'on ne le croit ☺. Quoiqu'il en soit, je me trouve très chanceux que l'on m'ait offert cette opportunité d'observer et de mieux comprendre.

dimanche 29 juillet 2007

Brassage

  Manière de créer un lien avec l'entrée du blogue précédente, il y a maintenant longtemps, voici deux vues à l'arrière de la maison familiale, prises en 2006-09 (l'une regardant vers la rivière, l'autre regardant vers le voisin). On y voit un autre arbre que le vent de la tempête a brisé. C'est vrai que cet arbre-là, lui non plus, n'était pas jeune.

Il y a eu pas mal de brassage dans tous mes fichiers depuis quelques temps, question de déconnecter la synchronisation que je maintenais entre quelques sites. Suite à des changements administratifs, l'un d'entre eux a ralenti sa progression informatique, au point d'entraver la mienne. J'apprécie maintenant l'indépendance retrouvée!

Durant ce branle-bas, j'ai entreposé quelques documents en vrac, que je ressors progressivement lorsque je trouve un peu de temps libre. J'en profite pour réorganiser la section Plaisirs du menu de mon site Web personnel, pour regrouper sous Musique les pages qui en parlent, renommer Animations en Dessins, puis y rapatrier l'animation du logo de Recode, qui se trouvait auparavant dans ce blogue. Toujours au chapitre de l'animation, la documentation de mon paquetage NRart contenait quelques liens devenus invalides, que j'ai corrigés pour la circonstance dans une version 0.1.

Une nouvelle sous-section Mathématiques contient maintenant mon aide-mémoire pour le langage R, qui se trouvait auparavant dans la section Opinions. Cet aide-mémoire, trop massif, a été découpé en une dizaine de sous-pages. Puis j'ai ajouté mon aide-mémoire pour Maxima, tout embryonnaire et monolithique qu'il soit.

Durant le remue-ménage, j'ai égaré l'original reST de la documentation de mon vieux programme gantt, qui me sert encore quotidiennement. J'ai dû le reconstituer à partir de sa dérivation HTML. Un peu fastidieux, mais pas difficile:

  w3m -dump gantt.html > gantt.txt

a accompli le gros du travail. Je n'ai eu qu'à le compléter ensuite par une bonne séance dans Vim, pour ajouter le balisage typographique. Afin de vérifier si j'ai bien récupéré tout ce balisage, j'ai fait un peu comme les astronomes qui comparent deux photos à la recherche d'une planète qui bouge. Dans Firefox, j'ai fait en sorte qu'un onglet contienne le document avant, et un autre le document après. En basculant d'un onglet à l'autre (identiquement positionnés, bien sûr), l'oeil attrape efficacement les différences les plus subtiles.