Small essential languages ​​for the future of programming

During the last few years, high-level languages ​​have dominated software development programming, such as Python, Java, C, C++, or JavaScript. These languages, each with its own purpose and ability to solve certain problems, have allowed the creation of practically all digital space as we know it today. However, as technology advances, the code of software systems becomes larger and more complex, which is detrimental to productivity and programming efficiency. In this context, the need to simplify them arises and in the future we will see a greater use of “small languages”, better known as DSL or domain specific languages, designed to solve very specific problems and that will help to facilitate maintenance.

Currently, the software engineering community faces a growing challenge due to the increase in the size and complexity of the code, on the one hand, and on the other, the high growth in the number of existing applications, and all this while the ability to understanding large code bases remains largely limited.

In “The Emergence of Big Code”, In a survey conducted by Sourcegraph, most programmers estimated that their code base had grown between 100 and 500 times in the last ten years, and that the size of their code base caused code breaks due to issues such as increased debt technique, lack of understanding of the dependencies, difficulty when making changes (maintenance or corrections) and even increasing difficulty when incorporating new employees who could acquire skills to maintain said code in a reasonable time.

But where does all this code come from? Traditionally, and especially if we think of monolithic applications, the way in which software has been built has been based on “stacking” new functions to a program on top of what is already available, similar to how a pyramid is built. adding more lines of code. In this sense, many companies, especially large ones in which this type of situation is present, have before them a challenge that they must pay attention to.

One of the possible solutions to consider would be to define a system capable of simplifying the code by applying a DSL through two possible approaches:

  1. Internal DSL, for which the same programming language of the application would be used, applying characteristics of that language and techniques such as method chaining and operator overloading.
  2. External DSLthrough the creation or use of an independent and specific language for a particular domain, with its own syntax and rules (such as those that build SQL for database queries or HTML for page structure).

It is increasingly important to address, and quickly, the challenge of the “Big Code” and find new approaches aimed at solving problems and that also allow limiting or even reducing this volume of code, especially in a context where that large and small companies need to be more efficient in the process of developing and maintaining their products.

It is never an easy process and, in this sense, small languages ​​stand out as one of the options to find the solution to the “Big Code” problem, and in the coming years they will gain relevance, since they are specific solutions for specific problems with a shorter adoption and learning curve.

Signed: Íñigo Chaso Rico, BDM for the Industrialization of the SDLC in knowmad mood

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *