Xill Programming Language

Xillio - 2016 to 2019 - Lead Developer
frontendbackendtesting

Xillio has a mission to make content migration projects run as smooth and risk-free as possible.

Birds fly, matches burn, wind blows and content grows. There's little you can do about it. It seems like the longer we work with a certain system the faster its data starts to grow. This is all fine until we reach the point where the current system no longer fits our needs, and we have to replace it. This is where the complex migration projects start.

For Xillio I led the design and development of a domain specific scripting language called Xill. This language allows programmers to perform any operation on their content. This programming language is used by Xillio's migration consultants and available as an open source project. They use it to perform custom content migrations. The language was able to withstand the full force of the content thrown at it.

Xill is not about providing a standard boxed solution for every content related project out there. It is about making content integration simple. It features an extensible plugin system at its core allowing developers to add additional capabilities to the language through custom java code.

Technology

We developed the core of in a language definition framework called Xtext. On top of that we added a collection of Java plugin loaders using our custom plugin framework. These plugins are all isolated from each other on the class path allowing us to load multiple different versions of the sdk to not have to worry about backward compatibility.

To enhance the workflow of Xillio's consultants we developed a custom IDE with all the tools needed to do a migration project. This IDE runs on JavaFX and contains things like: context sensitive documentation, debugging tools, and deployment utilities to deploy a Xill script to a remote server.

By default Xill comes with a collection of plugins to anything from browser scraping and database access to fully fledged file analysis.

JavaFXJava 8XtextJenkinsSonarQubeElasticsearchMongoDBTIKAExiftool