so what are you researching?and I started by saying
I'm currently working with XACMLand I realized that was insufficiently expressive, so I decided to be a little more verbose. I then felt I should share it with you lot.
XACML is the following:
- a declarative programming language using XML syntax,
- a strong believer in being uselessly explicit,
- learned the wrong thing about URLs as element identifiers from XML Namespaces (hint, guys: extension is neat and all, but did you notice that XML Namespaces make it so you DON'T have to type the entire fucking URL EVERY SINGLE GODDAMNED TIME?),
- weak and flabby on top of all the other complaints,
- not even particularly well defined (whitespace in text nodes, for example, is left untalked about, even though several of their examples implicitly assume useless whitespace is being quashed),
- clearly the product of a committee whose members have forced upon them a gigantic hit of crack cocaine before they may discuss any technical issues, and
- generally a spectacular fuckup the likes of which I have not seen in years.
I have managed to translate, with no appreciable loss of precision, an entire page of XACML to one equation on one line, by thinking about it in an intelligent, reasonable fashion instead of investing most of my spare money in powerful hallucinogenics and attempting language design through use of a dialogue involving Coyote, an Invisible Pink Unicorn, and the Incan Monkey god. I forgive XSLT—another XML based programming language—its little indiscretions like having a laughably awful syntax, because its semantics are actually quite useful. I have yet to come up with anything this turkey can do better that a similar product from three amphetamine-crazed script kiddies could not do better in a heartbeat. To put out this pile of parrot droppings the committee must clearly have decided that no one except a few hapless implementors should have to actually deal with the absurd verbosity of the language; everyone should be using GUI editors who presumably construct XACML policies through Pure Fucking Magic.
Since I'm sure you're dying for an example, let's contrast Lisp, whose syntax many people complain about, and XACML by demonstrating how you ask if the urn:example:age
attribute is greater than 18.
- Lisp:
(> (attribute "urn:example:age" :only-one t) 18)
- XACML:
<Condition FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-less-than"> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only"> <SubjectAttributeDesignator AttributeId="urn:example:age" DataType="http://www.w3.org/2001/XMLSchema#integer"/> </Apply> <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#integer"> 18 </AttributeValue> </Condition>
Yes. Really. Imagine pages and pages of this. Imagine writing it. Imagine reading it. Imagine finding subtle errors in such a specification. Imagine six months of it.
I'm ready, nay thrilled to debug other people's C code after experiencing this.