Magpie Engineer


My own thoughts on fun with Data, MarkLogic, XQuery, fp, emacs, opencv, unix and anything shiny that catches my eye ...


Giving up @XQuery, but not on XQuery

A surprising number of people have asked me the question:

'Why did you give up the @XQuery twitter account ?'

So many that I should reiterate the reasons why here.

Time and space

Admittedly, it takes very little time to maintain any twitter account. Even so every year I do a 'spring cleaning' (sic: in January) and reallocate my time commitments. However big or small I make a list of my commitments then decide where I would like to spend my open source time as contrasted to everything else I do (Life, Work, etc). I did a similar reorg 5+ years ago when I moved from working solely in XSLT to XQuery; though in that instance I stopped trying to teach others of the wonders of XSLT - much easier for programmers to grok XQuery (though I use XSLT often and very much enjoy it).

Last year I wanted to invest some time refreshing myself in c/cplusplus11/14 which makes c/cplusplus interesting again (CLANG, llvm, fp). Breaking off this 'rust' lets me efficiently apply some ideas to some new open source projects as well as learn from other genius works (XQilla, etc).

This year my focus is on:

  • xproc v2 processor - this work is related to the new version of XProc

  • xquery- updating RXQ an implementation of RESTXQ for MarkLogic

  • genetic algorithm - I will continue doing the work I started many moons ago …​ maybe this year will result in released 'bits' but as ever no promises made.

and whatever else may distract me.

XQuery is my language of choice

At my day job I sling XQuery all day, every day - I feel very lucky to be able to work on something that also happens to be one of my passions and I hope that remains the same for many years to come.

Latest versions of the language (XQuery 3.1) make me even more excited for its future (maps/arrays, annotations and even the humble arrow operator).

I hope others will not begrudge me for 'looking over the fence' at other programming languages. Like many programmers, I’ve always worked in a few languages, here’s my list of languages that I am uptodate on (though not an expert!): XQuery, Java, python, c, javascript, emacs lisp and Perl(6). Sometimes I’ve had to learn them out of some short term need, sometimes my curiosity (or boredom) inspires me to learn more.

For example, a few months ago when using docker I wondered why things were so fast in a certain situation; docker is written in Go and I learned that maps in Go are not thread safe (!) which was answer enough for this newbie but asking that question led me to the definition of goroutines which are interesting grist for the concurrency mill. This kind of 'thigh bone is connected to the leg bone' research is probably not the most efficient, but motivating nevertheless.

So while I think its important to avoid becoming a magpie developer that doesn’t mean we should avoid regular small investigations into other languages. Many of the good things that have happened to me in programming often were preceded by 'little investigations' though its important to learn how to timebox your efforts!

Lastly, learning idioms or better ways to do something in one language often help me become a better programmer in another.

Avoiding sentimentality in software

If you work long enough in the software industry eventually you will experience the thrill of your favourite language coming into favour as well as the despair when it falls out.

Doing a regular moral inventory of what open software projects I work on allows me to gauge sentimality - holding onto 'precious' only because of previous commitment sunk can be a sign that you are in an evolutionary 'dead end'.

I do not think XQuery is a waste of time, I do believe we are entering an era of 'boutique' languages and we all learn a lot more DSL’s to get work done. XQuery represents a sweet spot in terms of data model, functional programming and good fun.

We should embrace diversity in programming and shudder at a future which espouses a single paradigm for expression.

@XQuery is in good hands

@joewiz stewardship of @XQuery has far surpassed my paltry efforts and he does a great job at being focused on xquery.

I would heartedly recommend you follow @XQuery and contribute in the discussion.

comments powered by Disqus