Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 135

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 135

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 187

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 188

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 189

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 194

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 195

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 196

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 197

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 241

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 264

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 269

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 275

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 285

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 286

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 296

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 297

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 298

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 308

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 309

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 310

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 311

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 321

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 322

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 323

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 324

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 325

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 497

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 527

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 540

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 587

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 626

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 668

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 668

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 670

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 673

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 682

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 688

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 693

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 699

Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 410

Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 410

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 272

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 274

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 274

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 274

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/public/lib.urlhandlers.php on line 110

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/public/lib.urlhandlers.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 295
Tag - Jazz - Didier Verna's Scientific Blog
About Lectures Research Software Blog
Musical Site
MySpace
Facebook

Moods Blog

Dojo Shin Kaï

RSS Feed
Thank you!

XHTML 1.0 conformant
CSS 2.0 conformant
Didier Verna's scientific blog: Lisp, Emacs, LaTeX and random stuff.

Wednesday, May 2 2018

Lisp, Jazz, Aikido, 10 years later

10 years ago, I published a short blog entitled "Lisp, Jazz, Aikido", barely scratching the surface of what I found to be commonalities between the 3 disciplines. At the time, I had the intuition that those ideas were the tip of a potentially big iceberg, and I ended the blog with the following sentence: "I'd like to write a proper essay about these things when I find the time... someday."

Well, 10 years later, I did. The essay, which is 50 pages long, has been published in the Art, Science, and Engineering of Programming Journal, and actually received the Reviewers'Choice Award 2018. I'm not the bragging type, far from it, but I had to mention this because this essay is so personal, and I invested so much in its preparation (more than 300 hours) that I am as deeply touched by the award as I would have been hurt, had it been negatively received...

The live presentation has unfortunately not been recorded, but I took the time to make a screencast afterwards, which is now available on YouTube. Just like the essay, this presentation is not in the typical setting that you'd expect at a scientific conference...

If you've got an artistic fiber, if you're sensitive to the aesthetic dimension in what you do, you may enjoy this work...

Monday, March 30 2009

ILC 2009 lightning talks

As almost every participant I believe, my opinion is that the lightning talks were a great idea in the first place, and also a great success.

At the very last minute, I changed my mind about the contents. I got a bit bored with too much Lisp technical stuff and decided I would talk about Lisp, Jazz and Aïkido for a change (see the corresponding Sci-Blog entry). Some people did like the idea and I got several very interesting conversations after that. It's always cool to meet other lispers that are musicians as well, and even martial arts practitioners !

I'll keep the Clon stuff for the European Lisp Workshop instead, and I think I will give a tutorial on it there.

Monday, September 8 2008

Lisp, Jazz, Aikido

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...


What 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 Aikido 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 aikidoka. 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 Aikido is aesthetically beautiful).

* The fun begins when you start to understand the Budo which is behind martial arts, and especially behind Aikido. 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. Aikido 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 Aikido, breaking the rules, that is, avoiding being enslaved by technique is a constant preoccupation. For example, in Aikido, 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 Aikido 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.

* Aikido is also the martial art of unification. At least in two ways. On the technical plan, we know that Morihei Ueshiba, the father of Aikido, 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, Aikido 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 Aikido. On a spiritual plan, O Sensei'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.


Conclusion

Lisp, Jazz and Aikido 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.

French Flag English Flag
Copyright (C) 2008 -- 2018 Didier Verna didier@lrde.epita.fr