Monday, September 8, 2008, 10:17 AM
Posted by Administrator
This is something I originally posted on my
JazzBlog, but I'm reposting it here because, as you will figure out pretty quickly, it belongs here as much as in my Jazz website...
English |
FrançaisWhat can computer science, music and martial arts possibly have in common ?These are like "strange attractors" in my life: no matter how much distance I may have put between them and me in the past, I always ended up coming back to them, and I know this will remain the case in the future.
I can remember pretty well the excitement I felt when I discovered the Lisp language, when I was first introduced to Jazz and improvisation, and when I had my first Aïkido practice session. Different things, same emotion. And also the feeling that in some way, I was born to be a lisper, a jazzman and an aïkidoka. I just didn't know until then.
Recently I was talking about my half-scientific / half-musical life with an old teacher of mine, and he asked me if I had suddenly turned completely schizophrenic. He was right ! To ask, I mean... So I started thinking about it, and I tried to figure out what these three domains have in common and why they all adhere so well to my own philosophy of life.
But perhaps I should begin with explaining what's my philosophy of life, then. I guess it's basically described in three words: Beauty, Fun, Unification.
- Beauty lies in being able to evolve comfortably within a set of constraints, limits or rules. Note that this begins with accepting the existence of these constraints, limits or rules in the first place.
- Fun, however, lies in breaking those rules at will, knowing how to get rid of them, and then get back to them, a bit like a cat jumping in any kind of direction and yet always falling back on his feet.
There's a corollary to these two points: real freedom is not to have no limit, but to know your limits so well that you can either evolve at will within them, or break them at will.
- Unification means drawing bridges between apparently unrelated fields, starting to figure out what is the common essence of things. By the way, this is precisely what I am doing right now...
Why is Lisp beautiful, fun and unifying ?* There's beauty in writing code in any language (yes, there's even beauty in writing shell code). The beauty lies in your ability to adapt your concepts to the constraints of the language you're using, in other words, to make the best out of it, given its inherent limitations in expressiveness.
* However, and this is where the fun lies, Lisp allows you to break the rules of traditional languages because you can adapt the language to your concepts as much as you need to adapt your concepts to the language. Lisp is known (or at least, it should be) as the "programmable programming language": thanks to the power of its macro system and the customizability of its reader for instance, you can create a completely new language (even with a completely new syntax, see the loop macro for instance) within Lisp and adapt it to your personal needs. This makes Lisp the language of choice for implementing a DSL (Domain Specific Language) for instance.
It is interesting to note that with some experience in Lisp, adapting the language to your needs becomes an integral part of the art of programming; a rule in itself. In this way, what you do is really pushing the limits farther away, making a rule of what was an exception before.
* Lisp is also the language of unification. While it is mainly known to be a functional language (pure or impure, by the way), it is also imperative, procedural, object-oriented and even context-oriented if you want it to be. It is also declarative: look at the abundant literature on how easy it is to implement Prolog in Lisp. So Lisp really is any kind of language you want it to be: where a particular programming paradigm exists by construction in another language, it is usually implemented as a mere library in Lisp. Most recent (and fashionable) programming languages today are just re-discovering things that existed in Lisp since its invention in the 60s.
Why is Jazz beautiful, fun and unifying ?* There's beauty in playing a song, in any kind of music. The beauty lies in your ability to adapt your personal musical ideas, your way of playing, in other words, your musical personality, to the constraints of the song. People often forget that a song is by definition (or, so to speak, by composition) limited in expressiveness, just as an average programming language is: it has a pitch, a tempo, a rhythmic style, a chord progression; all things actually specified by the score. In traditional music, you are expected to evolve within these limits.
* However, and this is where the fun lies, Jazz (specifically improvisation) allows you to break the rules of traditional music by playing "out", both harmonically and rhythmically. Improvisation is by essence the musical practice that allows you to modify a score in real time: you can change the ambiance, the chords, the rhythm, you can temporarily escape from the song and then get back to it (remember the cat ?), even play "atonal" (roughly meaning using scales that do not correspond to the underlying chords). During this process, you are actually adapting the song to your musical concepts instead of adapting your musical concepts to the song. This is exactly like adapting Lisp to your programming needs instead of adapting your needs to the language. And when the other musicians follow you on this "song tweaking game", that's were the fun really begins !
It is interesting to note that with some experience in jazz, playing "out" becomes an integral part of the art of improvisation; a rule in itself. When Miles Davis started to mix major and minor harmony (for instance using a minor 3rd on a major chord), numerous conservator alligators wanted to burn the heretic alive. Now, all of this is well known, and you can learn actual techniques for chords substitution and atonal improvisation in Jazz schools. Again, in this way, what you do is really pushing the limits farther away, making a rule of what was an exception before.
* Jazz is also the music of unification. A very narrow view of it is as a musical style: the ternary "chabada" drums pattern, the walking bass and so on. But Jazz is really not that. It is a philosophy, a way to envision all styles of music. Michel Petrucciani once said "Jazz is a music of thieves", and he was right ! A Jazz musician is fundamentally curious. He's interested in everything he can ear, and tries to appropriate all the ideas he's exposed to by adapting them to his own personality. This is a process that happens in composition as well as in improvisation, but improvisation is the key factor that unifies all musical styles in Jazz. So just like Lisp unifies all programming concepts into a philosophy of programming, Jazz unifies all music styles into a philosophy of music.
Why is Aïkido beautiful, fun and unifying ?* There's beauty in practicing any martial art (as long that it has not become just sports). The beauty lies in executing the techniques that define your martial art to the perfection. But one has to understand that as long as you are practicing only a set of techniques (which is a very narrow view of martial arts), you are evolving in a very limited environment, however beautiful (and Aïkido is aesthetically beautiful).
* The fun begins when you start to understand the Budo which is behind martial arts, and especially behind Aïkido. The Budo is a philosophy, just as Jazz or Lisp are philosophies. By emphasizing on values such as personal cultivation, self-control and self-awareness, the Budo renders techniques unimportant, or at least secondary, because being able to react in any situation is more important than the way you react to them. Techniques are just tools to reach a greater goal. Aïkido masters are so far away beyond technique that you can't see them anymore in their movements. The rules are broken, the techniques are gone. What's left is a "purified" state; what's left is the Ki.
It is interesting to note that in Aïkido, breaking the rules, that is, avoiding being enslaved by technique is a constant preoccupation. For example, in Aïkido, there is no distinction between beginners and experienced practitioners. Mixing levels in practice is one of the ways of ensuring that you will constantly face new and unexpected situations. As such, breaking the rules has also become a rule in itself. The ultimate rule-breaking exercise in Aïkido is probably the Randori. When faced with 2 or 4 adversaries simultaneously, there is no room for rules or techniques, you just have to react. This is exactly like improvising in Jazz: in real time, there is no room for rules or harmony analysis, you just have to play.
* Aïkido is also the martial art of unification. At least in two ways. On the technical plan, we know that Morihei Ueshiba, the father of Aïkido, was a master in several martial arts (both "soft", like ju-jutsu, and "hard", like ken-jutsu or jutte-jutsu) when he founded his own. As such, Aïkido unifies martial arts in general by incorporating techniques from many different sources. This is also pointed out by the fact that Jigoro Kano, founder of Judo, sent his best students to learn Aïkido. On a spiritual plan, O Senseï's interpretation of the Budo not only encompasses the traditional meaning of the term (notably including personal cultivation) but extends to such notions as love and protection of all things, respect for all lives (see his "revelation" in spring 1925), which are much more universal concerns.
ConclusionLisp, Jazz and Aïkido are more than kinds of programming, music, or martial arts. They are philosophies of programming, music and martial arts. More than that, they are actually different appearances of the same philosophy of life. There is much more to say about it. There are also links to establish with scientific research in general. But not in a blog... I'd like to write a proper essay about these things when I find the time... someday.
Qu'est-ce que l'informatique, la musique et les arts martiaux peuvent bien avoir en commun ?Ce sont de véritables "attracteurs étranges" dans ma vie: quelle que soit la distance que j'ai pu mettre entre eux et moi par le passé, j'ai toujours fini par y revenir, et je sais aussi qu'il en sera toujours ainsi dans le futur.
Mon premier contact avec le langage Lisp, ma première rencontre avec le Jazz et l'improvisation et ma première séance d'Aïkido sont des souvenirs toujours vivaces. Différentes choses, émotion identique. Et aussi le sentiment d'avoir toujours été un lispeur, un jazzeux et un aïkidoka dans l'âme, avant même de le savoir.
Récemment, je parlais de ma vie, moitié scientifique, moitié musicale avec l'un de mes un anciens instituteurs, qui fini par me demander si je n'étais pas subitement devenu totalement schizophrène. Il avait raison ! De me poser la question, s'entend... J'ai donc commencé à y réfléchir. J'ai essayé de comprendre ce que ces trois domaines ont en commun, et pourquoi ils collent si bien à ma philosophie de vie.
Mais peut-être devrais-je donc commencer par expliquer ce qu'est ma philosophie de vie. Elle tient sans doute en trois mots: Beauté, Amusement, Unification.
- La beauté réside dans notre capacité à évoluer confortablement au sein d'un ensemble de contraintes, de limites ou de règles. Notons que ceci commence par le fait d'accepter l'existence de ces contraintes, limites ou règles.
- L'amusement, par contre, consiste à casser ces règles à volonté, savoir s'en détacher, y revenir, un peu comme un chat qui peut sauter dans n'importe quelle position mais qui fini toujours par retomber sur ces pattes.
Il y a un corollaire à ces deux points: la vraie liberté n'est pas d'être sans limite, mais au contraire de les connaître suffisamment pour savoir soit évoluer à volonté en leur sein, soit les franchir à volonté.
- L'unification consiste à établir des ponts entre des choses apparemment différentes, commencer à comprendre ce qui est l'essence commune à toute chose. Au passage, c'est exactement ce que je suis en train de faire dans ce blog...
En quoi Lisp est-il beau, amusant et unificateur ?* Il a y de la beauté à écrire du code dans tout langage (même du code shell peu être beau). La beauté réside dans votre capacité à adapter vos concepts aux contraintes du langage que vous utilisez, en d'autres termes, tirer le meilleur parti du langage compte tenu de ses limitations inhérentes en expressivité.
* Cependant, et c'est là que l'on s'amuse, Lisp permet de casser les règles des langages traditionnels, en ceci que le langage peut s'adapter à vos concepts autant que vous avez à adapter vos concepts au langage. Lisp est connu (ou il le devrait) pour être le "langage de programmation programmable" grace à la puissance de son système de macros et à la flexibilité de son reader par exemple, on peut créer un langage totalement nouveau (y compris doté d'une syntaxe totalement nouvelle, cf. la macro loop par exemple) à l'intérieur de Lisp lui-même. Ceci fait de Lisp la langage typiquement adapté à l'implémentation de DSL (Domain Specific Language) par exemple.
Il est intéressant de constater qu'avec un peu d'expérience en Lisp, adapter le langage à ses besoins devient une partie intégrante de l'art de la programmation; une règle en soit. Pour ainsi dire, on a repoussé nos limites, en faisant règle ce qui n'était qu'une exception auparavant.
* Lisp est aussi le langage de l'unification. Bien que principalement connu comme langage fonctionnel (pur ou impur, en passant), Lisp est aussi impératif, procédural, orienté-objet, orienté-contexte si ça vous chante. Lisp est aussi déclaratif: il suffit de constater l'abondante littérature traitant de la facilité d'implémentation de Prolog pour s'en convaincre. Lisp est donc vraiment le langage que vous voulez, quel qu'il soit: là où un paradigme de programmation existe par construction d'un autre langage, il est souvent implémenté comme une simple bibliothèque en Lisp. La plupart des langages récents (et à la mode) aujourd'hui sont simplement en train de redécouvrir des choses qui ont existé dans Lisp depuis sa création dans les années 60.
En quoi le Jazz est-il beau, amusant et unificateur ?* Il y a de la beauté à jouer un morceau de musique, quel que soit le style. Cette beauté réside dans votre capacité à adapter vos idées musicales personnelles, votre manière de jouer, en d'autres termes, votre personnalité musicale, aux contraintes du morceau. La plupart des gens oublient qu'un morceau de musique est par définition (ou, devrais-je dire, par composition) limité en expressivité, exactement comme un langage de programmation moyen: un morceau a une tonalité, un tempo, un style rythmique, une progression harmonique; tout ce qui est en fait spécifié sur une partition. Dans un style de musique traditionnel, vous êtes supposé évoluer à l'intérieur de ces limites.
* Cependant, et c'est là que l'on s'amuse, le Jazz (spécifiquement l'improvisation) permet de casser les règles des musiques traditionnelles en jouant "dehors", à la fois rythmiquement et harmoniquement. L'improvisation est par essence la pratique musicale qui permet de modifier en temps réel une partition: vous pouvez changer d'ambiance, changer les accords, le rythme, vous pouvez temporairement sortir tout à fait du morceau puis y revenir (rappelez-vous du chat...), et même jouer "atonal" (grossièrement, utiliser des gammes ne correspondant pas aux accords sous-jacents). Dans ce processus, vous êtes en fait en train d'adapter le morceau à vos idées musicales au lieu d'adapter vos idées musicales au morceau. C'est exactement la même chose que d'adapter le langage informatique à vos concepts programmatiques au lieu d'adapter vos concepts au langage. Et quand les autres musiciens vous suivent en temps réel dans le jeu du "triturage musical", c'est là que l'on commence vraiment à s'amuser !
Il est intéressant de noter qu'avec un peu d'expérience en Jazz, jouer "en dehors" devient vite une partie intégrante dans l'art de l'improvisation; une règle en soit. Lorsque Miles Davis a commencé à mélanger les harmonies majeures et mineures (par exemple en jouant une tierce mineure sur un accord majeur), de nombreux alligators conservateurs ont voulu brûler vif le trompettiste hérétique. Aujourd'hui, tout cela est bien connu, et l'on vous enseigne même des techniques de substitution harmonique et d'atonalité dans les écoles de Jazz. Mais encore une fois, ce que vous faites en réalité revient à repousser les limites un peu plus loin, faisant règle de ce qui était un exception auparavant.
* Le Jazz est aussi la musique de l'unification. Une vision très étroite en serait celle d'un simple style de musique: le "chabada" ternaire de la batterie, la contrebasse qui se promène (walking-bass) et ainsi de suite. Mais le Jazz n'est vraiment pas ça. C'est une philosophie, une manière d'aborder tous les styles de musique. Michel Petrucciani a dit un jour "le Jazz est une musique de voleurs", et il avait raison ! Un musicien de Jazz est fondamentalement curieux. Il s'intéresse à tout ce qu'il entend et tente de s'approprier toutes les idées auxquelles il est exposé, afin de les adapter à sa propre personnalité musicale. Ce processus est présent dans la composition comme dans l'improvisation, mais l'improvisation est le facteur clé qui unifie tous les styles de musique dans le Jazz. Exactement comme Lisp unifie tous les concepts de programmation dans une philosophie de la programmation, le Jazz unifie tous les styles de musique dans une philosophie de la musique.
En quoi l'Aïkido est-il beau, amusant et unificateur ?* Il y a de la beauté à pratiquer n'importe quel art martial (tant que celui-ci ne devient pas juste un sport). La beauté réside dans l'exécution à la perfection des techniques qui définissent votre art. Mais il faut comprendre que tant que les arts martiaux sont vus comme des ensembles de techniques (ce qui est une vue très étroite du domaine), vous évoluez dans un environnement très contraint et limité, aussi beau soit-il (et l'Aïkido est beau, ne serait-ce que sur le plan esthétique).
* On commence seulement à s'amuser lorsque que l'on perçoit le Budo qui se cache derrière les arts martiaux, et spécialement l'Aïkido. Le Budo est une philosophie, tout comme le Jazz ou Lisp. En mettant l'accent sur des valeurs telles le développement personnel, le contrôle ou la connaissance de soi, le Budo rend la technique dérisoire ou à tout le moins secondaire, parce que votre capacité à réagir dans toute situation est plus importante que la manière dont vous réagissez. La technique est simplement un outil pour parvenir à un but plus grand. Les maîtres aïkidoka sont tellement loin au delà de la technique que vous ne la percevez même plus dans leurs mouvements. Les règles sont cassées, les techniques ont disparu. Ce qui reste est un état "purifié"; ce qui reste est le Ki.
Il est intéressant de constater qu'en Aïkido, casser les règles, c'est à dire éviter de devenir esclave des techniques est une préoccupation constante. par exemple, en Aïkido, on ne fait aucune distinction entre les "gradés" et les débutants. Mélanger les niveaux dans une même pratique est une manière de s'assurer que l'on aura toujours à faire face à des situations nouvelles et inattendues. En tant que tel, casser les règles est devenu une règle en soi. L'exercice ultime de "cassage" de règle en Aïkido est sans doute le Randori. Lorsque l'on fait face à 2 ou 4 partenaires en même temps, il n'y a aucune place pour les règles ou les techniques, il faut juste réagir. C'est exactement la même chose que d'improviser en Jazz: en temps réel, il n'y a aucune place pour les règles ou l'analyse harmonique, il faut juste jouer.
* L'Aïkido est aussi l'art martial de l'unification. Au moins sous deux aspects. Sur le plan technique, nous savons que Morihei Ueshiba, le père de l'Aïkido était un maître dans plusieurs arts martiaux (à la fois "doux" comme le ju-jtsu et "durs" comme le ken-jutsu ou le jutte-jutsu) quand il a fondé le sien. Dans cette optique, l'Aïkido unifie les arts martiaux en général par l'utilisation de techniques issues de nombreuses sources. Ceci est également illustré par le fait que Jigoro Kano, fondateur du Judo, a envoyé ses meilleurs élèves étudier l'Aïkido. Sur un plan spirituel, l'interprétation que fait O Senseï du Budo comprend non seulement l'acception traditionnelle du terme (notamment la notion de développement personnel) mais s'étend également à des notions telles l'amour et la protection de toute chose, le respect de toute vie (cf. son "illumination" du printemps 1925), qui sont des considérations bien plus universelles.
ConclusionLisp, le Jazz et l'Aïkido sont plus que des styles de programmation, de musique ou d'art martiaux. Ce sont des philosophies de programmation, de la musique, ou des arts martiaux. Mais plus encore, ce sont des apparences différentes de la même philosophie de vie. Il y aurait plus à dire sur le sujet. Il y a des ponts à construire avec la recherche scientifique en général. Mais pas dans un blog.... j'aimerais écrire un véritable essai sur la question si je trouve le temps... un de ces jours.