Showing items from Language Engineering

Risks when your low code app becomes too complex

Low code sounds like a great idea but there are some caveats. One of those problems are that applications, over time, tend to grow in features, complexity, and corner cases.

IT professionals have the tools to deal with such problems, for example:

  • version control
  • continuous deployment/continuous integration
  • unit testing
  • production, staging, and development environments
  • refactoring

The risk that you might encounter when creating a low code application on some platform is that your application becomes so large and complex, that you end up needing this kind of tools in you low code application platform. Some platforms already include such features, others not. If you are building your own, you should carefully consider if you need or will need to include those concepts.

Continue Reading

What is being done with low-code in the industry?

You might have heard of the term low-code, specially if you read this blog. But what can be done with low code? Can I use a low code solution that is already in the market, or should I create my own solution for my business needs? Let us try to answer these two questions.

What can be done with low code?

First, low code is used to create or build software. This software can be something as simple as a set of rules that are applied when an event happens or a full fledged web or mobile app. Let us looks at the marketing materials that we find in the websites of well known low code platforms. Each item contains the name of the tool next to an excerpt of their web site copy that says what you can do with it:

Continue Reading

Who is your DSL for?

When you are thinking of creating a DSL (or custom low-code/no-code app, if we use the trendy terms of the day). It is important to think of who your user will be and how do you plan to improve his life.

There are two main target groups that you can consider: developers, and well, non developers. Depending on the target you can serve them in different ways.

Developers

Developers can already create with code. Thus, for developers you can improve their lives (and productivity) with a low code tool. Low code tools enable the developer to do the same thing they did before but much faster. For developers, DSLs and low code tools are an accelerator. An example of a commercial tool that does this is Retool.

Continue Reading

Ledger: A DSL for accounting

Ledger is a Unix command line tool to do double-entry accounting using only text files. I personally use this tool to manage my personal finances, but since this blog is about Domain Specific Languages, in this post I focus on the domain-specific language used by this tool to model the general ledger used in accounting.

The goal of the language is to represent an accounting ledger, and the core construction is the transaction. So to represent a transaction, you just write the following in a text file and you have your first ledger file.

Continue Reading

How DSLs can remove the bottleneck from the development team

In his book, The Goal, Eliyahu M. Goldratt presents a way to optimize a plant using his Theory of Constraints. This book lays out the concepts that later will inspire the agile methodologies, which is applying the Theory of Constraints to the development of software. The book The Phoenix Project relates the concepts explained in The Goal with IT and software development.

The gist of the approaches in these books is the following. To optimize a system (for example, a development organization) we must:

Continue Reading