Alternative Tools Lead to Creative Solutions

Here at the DISTek products department, we’re always looking for ways to make our user’s lives easier.  As engineers that use our own products, this is doubly important to us!  We’ve identified that open source tools can be one possible solution to alleviate potential issues down the road.

We spend a lot of time designing user interfaces for ISOBUS VT clients.  There are a few tools currently on the market, and while these tools get the job done, we’ve found a few shortcomings:

  • Merging changes between multiple commits is very difficult.  We avoid having to do this at all costs, which slows down development.
  • Making mass changes to component layout can be tedious.
  • We often want to group ISOBUS objects together to create reusable controls.  With current tools, this involves a lot of copy and paste when it’s even possible.

Instead of continuing to listen to me complain about these pain points until the end of time, DISTek engineers Ian, Jason, and I decided to donate a few lunch hours towards a solution.  What we came up with is called op-lang.  It’s a declarative domain specific language for defining ISOBUS object pools.

As of today, the result of those lunch hours is available as an MIT-licensed open source project.  We haven’t yet solved all of the issues we’d like to, but the project is mature enough that we feel confident we’re going in the right direction.

As an example, here is the op-lang code for a minimal object pool: https://gist.github.com/thebeekeeper/3ab305da7cf56adc8bcf629eae495ee3

For more information, check out the documentation site.  To contribute code, create a fork of the GitLab project and submit a merge request.