The notion of a Black Art as expressed on the Extreme Programming Challenge One - Compiler made me think about what makes a Black Art - I would suggest the following characteristics:
Priestliness (only certain adepts know the secrets of the trade)
Arcane (to do it you must know obscure and difficult things)
Not Quite Well Behaved (it is implementation sensitive and tends to need fine tuning)
Looks Like Magic (i.e., it obeys Clarkes Law and is sufficiently difficult and surprising that it looks like magic to the uninitiated and to naive users)
The only way to learn is by being apprentice to a master -- Oli Bye (an apprentice)
... there are probably others -- Ray Schneider
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. -- Ralph Johnson
Perhaps Black Art has a meaning that could be refined a little more tightly. The two features that make a given specialty a Black Art are implied above, but not made explicit enough for my tastes:
Black Art possesses disproportionate complexity:
solutions are more complicated than problems.
Black Art is document-less:
all knowledge about the environment is folk knowledge, and must be gathered directly from experts.
Saying that something is a Black Art is not saying that no respect is due to the experts. On the contrary, if someone knows a Black Art it means they have invested considerable time and energy in gaining their knowledge. With this definition in mind, one can say proudly that, in a career, one has both mastered a given Black Art and worked to eliminate its Black Art nature.
On the other hand, it is clear that too many people in our industry assign Black Art-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 Black Art master, just an ordinary dickhead.
Could we name some things that seem to be Black Arts so that this wiki could turn them into pages which helps change their colors? For example:
Knowing the AT -- Hayes Command Set for modems and how to type it and interpret its responses
Knowing how to PIP and STAT in a CP/M environment
Ability to debug programs written in Cobol Language, Fortran Language, Job Control Language, ...
Operating system kernel development or device driver development.
What makes these Black Arts? Is it their only occasional usefulness? What about the movie Tron? Everything inside the computer was easy, but it took an Old Fart to know how to get a message from the computer to the outside.
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 Hayes Command Set is a LOST Art.
A black art is something you need a wizard for. There's a definition of black art in the Jargon File 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 Black Art 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 Zen Slap experience to fully grok it. -- Jay Osako
See original on c2.com