One of the most powerful tools in science is
abstraction, which Wikipedia defines to be “the process of generalization by reducing the information content of a concept or an observable phenomenon, typically in order to retain only information which is relevant for a particular purpose.” The story below is a parable on the power of abstraction.
1998: Redmond, WA
In 1998, Microsoft responded to a host of competitive threats and internal opportunities by undertaking the development of a language-neutral runtime engine (.NET Runtime), application framework (.NET Framework), and Integrated Development Environment (or “IDE,” Visual Studio.NET). Such a language-neutral Runtime, Framework, and IDE would have to implement all of programming functions that were shared across languages. That is, the Framework/Runtime/IDE had to provide an
abstraction of programming language functionality. At this higher level of abstraction, all programming languages would look essentially the same.
However, at this time, within Microsoft, “language neutrality” meant “supporting every language whose name began with ‘Microsoft,’” such as Microsoft C++, Microsoft FoxPro, Microsoft Visual Basic, Microsoft J++, etc.
Project 7 Is BornOn a late fall afternoon in 1998 while soaking up some uncommonly-bright Redmond sun (and some uncommonly-good
Pyramid Hefe Weizen) on my back deck, my brother Peter and I were discussing this strategy. I worked in Microsoft Research’s University Relations Group at the time, handing out cash to researchers at MIT and other universities, and Peter worked in Microsoft’s Developer Relations Group, helping independent companies develop great software development tools for Windows. Despite being “leaf-node” employees with no strategy-setting authority whatsoever, we decided to re-define “language neutral” to include non-Microsoft languages – specifically the dozen or so most academically-interesting or commercially-important programming languages. Then, in true Microsoft style, we gathered the support and resources we needed and Made It So. (I understand that Microsoft isn’t like this anymore, which is a terrible shame.)
Project 7….Scores!Cutting to the chase… Project 7 was wildly successful, swatting home runs on all of its objectives and becoming a model for many subsequent technology evangelism efforts inside Microsoft. (
This article mistakenly refers to my efforts as “Project 42,” but the rest of it is basically correct.) There are now
over 40 programming languages for .NET. While the success of Project 7 is a testament to the power of
technology evangelism, the success of .NET is a testament to the power of abstraction. By abstracting the notion of programming languages to a higher level, .NET made it possible for previously-isolated programming languages to interoperate seamlessly, providing new opportunities for discovery and innovation.
The LINQ ProjectProject 7 also yielded some significant ancillary benefits. Among these, one of my personal favorites was that Microsoft was able to identify and hire some of the brightest minds in programming language design. One example of this (out of many – please forgive me, guys, for not listing you all here) is
Erik Meijer, whose breakthrough work on data access has recently been incorporated into the .NET Runtime as
LINQ (Language INtegrated Query).
Erik started the work that became LINQ by abstracting data access to a higher level. At this new level of abstraction, (a) all data sources look the same, (b) a small number of simple algebraic operations can perform all necessary data access tasks, and (c) these operations can be integrated into any programming language.
As a direct result of LINQ’s abstractions, LINQ is...
- so easy to use that programming tasks that would previously have required expensive, specialized database programming skills are can now be accomplished, using LINQ, by any competent computer programmer.
- so powerful that data access tasks that would previously have required separate, specialized code for different kinds of data sources can now be accessed with a single, simple piece of code.
- free with Visual Studio (including its free express editions).
LINQ’s abstractions are based on ideas from the fringes of mainstream computer programming practice: lambda calculus. The vast majority of software developers working today have never even heard of lambda calculus – except for the odd programmer (often considered to be very odd indeed). LINQ uses lambda calculus to solve the perennially vexing problem of data access so elegantly – and through such a ubiquitous vehicle as the .NET Runtime – that mainstream programmers simply cannot continue to ignore it. Because all mainstream techniques had previously failed to solve the perennially-vexing problem of data access, the eventual solution had to come from the fringes.
So, what does this have to do with Thumtronics’ musical innovations?
Thumtronics and Abstraction from the Fringe
Thumtronics’ musical innovations also arise from applying the tool of abstraction to ideas from the fringes of mainstream practice. Whereas traditional approaches to the display, control, and synthesis of musical information are focused on pitch, Thumtronics’ innovations:
- Abstract musical information to the higher levels of
- Musical Intervals: the relationships between pitches, rather than the pitches themselves, and
- Temperaments: the relationships among intervals, in which (for example) the major third is defined as being the same width as four tempered perfect fifths minus two octaves (syntonic temperament), or in which the diminished fourth is defined to be the same width as five octaves minus eight tempered perfect fifths (schismatic temperament);
- Abstract the structure of the Harmonic Series and Just Intonation to the higher level of pseudo-harmonic timbres and their related tunings; and
- Organize the display of musical information using the geometry of an isomorphic keyboard (also known as a “generalized keyboard”).
Thumtronics’ abstractions are based on a collection of ideas – generalized keyboards, tonic solfa, the chromatic staff, Euler’s tonnetz, tuning theory, etc. – that the vast majority of musicians know nothing about (aside from the odd microtonal musician or aficionado of alternative musical notations, considered by his peers to be very odd indeed). Thumtronics’ abstractions use ideas from the fringes of the mainstream music-making community.
However, just as LINQ’s fringy abstractions solve the perennially-vexing problem of data access, so do Thumtronics’ fringy abstractions have the potential to solve the perennially-vexing problems of (a) music education’s high failure rate, (a) the music products industry’s commoditized products, (c) the exhaustion of the resources of tonal harmony (also known as the “crisis of tonality”), and (d) the failure of any one music theory to adequately explain the many different tuning systems used around the world.
Can Thumtronics’ innovations really solve all of these problems? Maybe. I know a powerful abstraction when I see one, because I’ve seen them and driven them to success before. I’ll do the same with these.
The Moral
The moral of this story is simple: abstraction of ideas from the fringe can solve perennially-vexing problems and change the world. Never bet against an abstraction whose time has come.
Labels: abstraction, fringe, LINQ, music perception, paradigm, Thumtronics Project 7