The notion of a Black Art as expressed on the ExtremeProgrammingChallengeOne - Compiler made me think about what makes a BlackArt - I would suggest the following characteristics:
This page annoys me. It is making fun of a topic that is important and should be looked at seriously. People don't take expertise seriously enough. Experts can do things that leave the rest of us amazed, yet most people are an expert at something, and we know how to become experts. Rather than saying that something is a black art, we should honor those who have spent the time and energy to become experts in it.
Every time I try my hand at car repair or carpentry, I realize that I am not an expert at those things, and I am happy to do business with people who are. I am not an expert cook, and I am happy I live with one. Becoming a compiler expert is no different from becoming an expert cook or an expert car mechanic. It takes a lot of time and effort. It is easier to become an expert if you work with an expert, but you can usually learn on your own with a lot of practice and by reading books and articles. Even if you work with an expert, you have to practice a lot. You don't really learn how to do something by reading a book or listening to someone talk, you learn by doing. The book and the expert tell you what to practice, let you know what to aim for and when you miss the mark, and give you information that you would otherwise have to learn on your own. But expertise is always expensive to acquire. In the strict sense of the definition, there are no black arts, just expertise (and experts) that you don't know. -- RalphJohnson
Perhaps BlackArt has a meaning that could be refined a little more tightly. The two features that make a given specialty a BlackArt are implied above, but not made explicit enough for my tastes:
On the other hand, it is clear that too many people in our industry assign BlackArt-ness to skills that just don't qualify. In particular, the point about priestliness seems a gibe rather than a fair description. If you know someone who is priestly about some corner of our profession, it is likely that the person you know is not a BlackArt master, just an ordinary dickhead.
Could we name some things that seem to be BlackArts so that this wiki could turn them into pages which helps change their colors? For example:
It seems to me the above sets a pretty low bar for 'black art', as do some early comments at the top of the page for 'expert'.
Knowing anything about the HayesCommandSet? is a LOST Art.
A black art is something you need a wizard for. There's a definition of black art in the JargonFile that notes related categories such as 'black magic', 'deep magic', and 'heavy wizardry' and 'voodoo programming'.
My understanding always was that the defining quality of a BlackArt was that it was something which even the experts do not fully understand, and which no one has figured out how to express in a straightforward manner. The only way to learn it is through long experience under the tutelage of someone who has already mastered it, and even then you have to undergo a ZenSlap experience to fully grok it. -- JayOsako