Roxy Survey

Author: Dave Cassel  |  Category: Software Development

Over the last week, I conducted a survey of how people use the Roxy framework. I got 34 responses. Let’s see what people said. Note that multiple answers were allowed to the first four questions (Roxy Components, MarkLogic Versions, Roxy Application Types, Architectures).

Amazon Gift Card

I’ll start with the results of the last question: “ To be eligible for the $10 Amazon card drawing, enter your email address (no spam, I promise). Winner will be notified by email and announced on http://davidcassel.net.”

22 participants provided their email addresses for this question. I inserted them into an empty MarkLogic database, like so:

for $e in $emails 
return
  xdmp:document-insert(
    '/' || xdmp:random() || ".xml",
    <email>{$e}</email>
  )

and then ran a randomized search:

cts:search(
  fn:doc(),
  cts:element-query(xs:QName('email'), cts:and-query(())),
  'score-random'
)[1]

I have sent an email to the winner to confirm that the email address is valid.

On to the survey results.

Roxy Components

What parts of Roxy do you use?

I anticipated that everyone would select the Deployer and a few would pick Unit Testing. I was very curious to see the mix between XQuery MVC and REST.

  1. Deployer (88.2%, 30)
  2. XQuery MVC code structure (73.5%, 25)
  3. REST API scaffolding & configuration (50%, 17)
  4. Unit testing (35.3%, 12)

I was very surprised that Deployer was not 100% — I’m actually not sure how someone uses Roxy without the deployer. (If you do, I’d be very interested to hear from you.) More people are using Unit Testing than I thought, which I’m glad to see.

The mix between MVC and REST is interesting. Given that Roxy originally only supported MVC, I’m not surprised to see that option get a high percentage, but it looks like the REST support is getting some good use as well.

Of the 12 who reported using the Unit Testing feature, 5 are ML Professional Services, 5 are customers, 1 is a MarkLogic Other, and 1 is a partner.

MarkLogic Versions

With what versions are MarkLogic do you have active or planned Roxy projects?

  1. MarkLogic 4 (5.9%, 2)
  2. MarkLogic 5 (41.2%, 14)
  3. MarkLogic 6 (82.4%, 28)
  4. MarkLogic 7 (52.9%, 18)

At this time, the most recently released version is MarkLogic 6, so there’s no surprise that it got the highest number of results. MarkLogic 7 has not yet been released, but is available to MarkLogic employees and Early Access program participants. I’m not surprised to see a number of MarkLogic 5 deployments, but I didn’t realize Roxy is being used with MarkLogic 4 still — very interesting. We have made an effort to keep Roxy backwards compatible. Some new features, such as anything to do with the REST API, require more recent versions.

Of the two respondents who reported using ML4, one is a customer, one is a partner. Among ML5 users, 5 are customers, 4 are Professional Services, 3 are ML Other, and 2 are partners.

Roxy Application Types

Which of the Roxy application types do you use for new projects? (–app-type parameter on new/init)

  1. MVC (XQuery applications using the Model View Controller pattern) (44.1%, 15)
  2. REST (Applications based on the MarkLogic REST API; no XQuery code provided) (35.3%, 12)
  3. Hybrid (MVC + REST) (58.8%, 20)
  4. I don’t use Roxy to manage my source code (17.6%, 6)

I added the last option after one of my colleagues reviewed my survey questions, and I’m glad I did. The Deployer is a useful tool, even if you choose to blow away the src directory and use your own structure.

Hybrid won this question. My own use of Hybrid has been a gateway: I started with MVC, wanted to work with REST, but wasn’t yet ready to give up what I was used to.

Architectures

In what kind of architectures do you use Roxy?

  1. Single-tier XQuery-based UI (HTML pages and back-end both built with XQuery) (50.0%, 17)
  2. Single-tier JavaScript-based UI (UI primarily built with HTML/JS hosted by MarkLogic; back-end implemented w/MarkLogic) (64.7%, 22)
  3. XML Services (implement services using XML; UI hosted elsewhere) (55.9%, 19)
  4. JSON Services (implement services using JSON; UI hosted elsewhere) (29.4%, 10)
  5. Other (11.8%, 4)

Of the four “Other” answers, I believe two of them involve hosting the GUI. Digging a little deeper into the responses, 29 of the survey participants reported one of the architecture choices that involves MarkLogic hosting the UI.

Participant Roles

Are you currently a:

  1. MarkLogic Professional Services employee (29.4%, 10)
  2. Other MarkLogic employee (23.5%, 8)
  3. MarkLogic partner (14.7%, 5)
  4. MarkLogic customer (32.4%, 11)

That’s a nice mix. I don’t actually know how many people are using Roxy overall, so it’s hard to say what percentage of users responded to the survey. But I’m happy to a mix of MarkLogic employees, partners, and customers working with Roxy.

Wrap Up

In retrospect, a really useful question would be “Have you used Roxy on a production application?” Maybe I’ll do another survey sometime in the future.

If you think of another way to look at the data that would be interesting, leave a comment.

Thank you to all the participants, this was very helpful for me!

Tags: ,

Leave a Reply