I signed up for a free seminar that's being held at a grad school nearby where I live. The title is: "Read My Lips--No New Models!" (or perhaps it might be more accurately titled "We don't need no stink'in new software development methodologies!") You can read the abstract here: http://cpd.ogi.edu/class.asp?n=02-SPIN-0513 I suspect it's a reaction against XP, so I figure I'll go and ask some pesky questions ;-) Anyway, one of the points made in the abstract at the website above says: "# The misguided notion that software is art and hence not amenable to discipline" Now I've seen this assertion many times: "Software Engineering is a discipline not an art!" and other varients. However, I would contend that Software Engineering _is_ an art or a craft and that by admitting it we actually dignify the practice instead of denigrating it (the folks that say that it's not an art seems to be afraid that if the term 'art' is applied to software that it will somehow become cheapened). Why do I say that software creation is an art (or craft)? 1) It's a creative, human endeavor. 2) Each of us brings his/her own personal style to the creation of a piece of software. I attended a ceramics show last weekend where there were several exhibitors and demonstrations. I could definately tell that certain of the artists had distinctive styles and I got to the point where I could tell who made a particular pot. It's the same in software - when you're working with a team of coders after a while you can tell without looking at the creation comments at the top of the file who created the code. I get the idea that the "software is not an art" crowd want us to all have the exact same 'style' (theirs, perhaps). To say that calling something an 'art' means it lacks discipline also seems like a mistake. I recently watched a glass-blower create a glass bowl - it took lots of education and discipline, but I would still say that it was an artistic creation. Now bringing it to Ruby.... It seems to me that Ruby has a certain style which is the imprint or signiture that Matz put on the language. Python and Perl have very different styles from each other and from Ruby and each represent their creators in distinctive ways. So, is software creation an art or a discipline (or a science)? Opinions welcome. Phil