Can someone please explain me why we suddenly got XML all over the place? On the top of my head, we have app.config files, nant build files, AOP configuration, NHiberante mapping files, etc.
Why take an application written in strongly typed language - presumably to allow the compiler to catch your errors - and add weakly typed information that would break your application?
Here is an example of using Boo to script a build file (this is very similar to how you would do it in NAnt, but NAnt is not really design to be used outside of XML and I didn't really have the time to find out the exact contortions I would need to do it in code):
csc = CscTask(Debug: true)
csc.References.BaseDirectory = DirectoryInfo("../lib")
Isn't this nicer then trying to make XML into a programming language? NHiberante allows a nice way to configure it via code, just pass a hashtable with the values. But most of the rest just don't let you do it easily.
* All of them open source, btw.