I saw a talk by the guy that invented cfengine and I think he set the tone with 'convergence'
and the declarative thing is bollocks sometimes
if you use the nginx module, that allows you to fetch nginx from loads of different places, compile modules in and stuff and then change it to use a different source does it work?
does it work for the N*(N-1) different ways you might do that?
you can make the 'correct' edit of your purely declaritive, lets forget there is state code
and it wont work
because your CM tool has not considered properly all the states it might be in
thats why the immutable server thing is interesting
can say that my manifests get me from a known state (eg base ubuntu) to what I want
not 'hey just write what you want and we will make it happen, where you are does not matter and it will never hit a weird error because we made a DAG of what you said you needed and all those 3rd party things you rely on will also just work'
@otfrom looks interesting. Might try it out - looks synonymous with libraries like hamcrest in Java.
@otfrom I'm thinking of writing a port of yatspec in Clojure to 'publish' tests and notes in a format that can facilitate conversations with non-developers. matcha might fit into this as I need a structure that reads well when published (at least in English to begin with).
Matcha looks interesting. Mostly I use midje, but I keep planning to take another look at the alternatives. I don't like midje when it's macro nature breaks things, but the syntax generally suits me.
I like midje for the same reasons. I use clojure.test too but I find midje more readable although I can't quantify why. A fellow Java dev also commented that he preferred the style of midje when he saw both.