I sing Byzantine Chant using Byzantine notation. I was initially reluctant to learn the traditional notation and instead used western notation. However, I eventually decided to learn it and was able to pick it up surprisingly quickly. I now believe that it best captures the "feel" of Byzantine music, and to explain this I think I can hopefully make a useful analogy to programming. :) But before continuing, take a look at this PDF as it conveniently shows the Byzantine notation above the western notation, along with a third line in western notation indicating the various things implied by the Byzantine notation: http://www.cappellaromana.org/wp-content/uploads/2014/04/Che... Here's also some music (but of a different song) so you can actually hear what it sounds like: https://www.youtube.com/watch?v=bHpOiX2sO-s

When we program we often find patterns that are repeated over and over. As such, we factor those patterns out into functions or perhaps macros in order to reduce the repetition and to make the intent both more clear and more terse. Likewise, in Byzantine notation there are certain rhythmic motifs, inflections, and various types of ornamentation which are captured using a particular neume rather than a series of notes. For instance, Byzantine music generally has a certain rhythmic feel that is often expressed in the context of a sequence of going up one note in the scale and then going up another note. In western notation this would be written as two notes, perhaps with a tie, but in Byzantine notation it is a single symbol that not only communicates the two notes but also the stylistic rhythm present behind them. A similar but generally un-notated concept in Western music would be "swing".

Another thing we run into when programming is that while we might have a similar concept in two different programming languages, perhaps even with the same name, the semantics of that concept might be quite different underneath. For instance, both Go and Clojure have coroutines, but since Clojures' are implemented using macros you need to be sure not to call a blocking function inside of one, whereas in Go the runtime automatically does what it needs to do if you do something that invokes a blocking system call such as file IO. (Disclaimer: this might not be fully accurate, but you get the picture :)

Likewise, in Byzantine notation the scale intervals used differ from that of Western notation, which is generally geared towards equal temperment. In Byzantine notation the scale is divided into 72 parts[1], not 12, and a step between two notes in a scale might be 6 parts, then 20 parts, then 4, etc. It's possible to use parts of Western notation to more accurately represent these pitches, but it ends up looking like a bit of a mess.

A final example would be how some programming languages are geared towards particular tasks. For instance, R is awesome at statistics -- it's probably not the best for programming games. Likewise, Western notation is really great for expressing harmony, but Byzantine music is strongly focused on melody. For a chanter, western notation has a lot more "visual noise" due to the things required for expressing harmony, such as the staff, whereas having a single symbol which means "go up 2 notes in the scale" communicates exactly what is necessary.

Anyways, I hope these examples help convey some of the reasons why crazy people like me still use Byzantine notation and encourage others to learn. If you'd like to learn more about Byzantine chant I encourage you to check out my friend's site, www.byzantinechant.org A great CD for English language Byzantine chant is Cappela Romana's "The Divine Liturgy in English" http://www.cappellaromana.org/audio/divine-liturgy-in-englis...

[1] Here's a good example: http://www.kelfar.net/orthodoxiaradio/HChromatic.html

PS: The thing that got me into programming was wanting to make a free software Byzantine chant editor. I never ended up finishing it, but hopefully someday when I actually know what I'm doing I'll be able to. :) https://github.com/muraiki/byzscribe