A Low-Code Platform that Bridges the Gap with 'Pro Coders'
Coreograph | Wed Mar 30 2022
Low-code platforms are rapidly becoming the technology of choice for companies to accelerate the development of new software applications and to address the growing skill shortage in the IT industry.
A conventional low-code environment targets ‘citizen developers’ without a formal IT background. It often presents a templated, form-driven, or drag-and-drop interface that helps to accomplish a certain task, after which code is automatically generated with the push of a button. At first glance, this interface gets you what you want. It is fast and it solves an immediate need.
In the long-term, however, it can be an uncomfortable way of building and maintaining a big software system, of building something long-lasting that will be an asset for the company. The reason for this is that over time you may need to occasionally intervene in this process between the button push and the code you get out: to alter the generated result or to ask the generator to produce things it has not been pre-programmed to do.
And this is where one can get stuck, as it exposes the chasm between the low-code way and the way software engineers work: they just code it. And this ultimately can be dangerous, as you have invested time, money, and effort in the low-code model, but down the road you realize you can not go further, and have reached a fundamental blockage – accumulated this technical debt – that would cost you even more resources to amend or advance.
The point here is that the paradigm of low-code development was not designed with software engineers in mind. It has been designed to end-run around software engineers altogether. Its conception is to automate a big chunk of what traditionally constitutes ‘software development’. And this is all for understandable reasons, given its origins. Yet, it does not need to be this way.
What we offer in Coreograph is a different paradigm, where the visual layer that we present is also simple - similar to conventional low-code platforms: just wiring components and building blocks together - but where, from the start, there is also a well-defined, formal, strongly-typed connection down to the source-code level of the program.
Coreograph provides a textual programming language, which the visual layer is rendered into, and a compiler, which compiles the generated code into an executable application. Importantly, this textual layer is extensible. From the code that is generated by a Coreograph visual program you can call into C or C++, Rust, or even assembly language if you wish. Or you can invoke REST or other APIs available within your company or obtained from third parties.
In other words, it is easy to stitch together, to make a seamless connection between the low-code part of the platform, the visual part, and the ordinary software engineering approach to the same problem.
Essentially, we think of our platform as a single, unified programming tool, but with a twist: it has this high-level abstract, visual part, which you can manipulate very quickly. It is visually intuitive and strongly typed, which means you can put things together quickly and securely, prototype them, and have a working application fast. But when you need to, this textual layer, beginning with the generated output and our Transparency programming language but going down into languages like C or Rust or open-source packages, is another, ‘pro-code’ level to work in if required. This is all a single continuum and an activity that is formally supported by our system.
In conclusion, Coreograph offers an extension of ordinary software development that should be appealing to both low-code programmers and skilled software engineers. We bring a big power tool to it for easy, visual, and rapid application development, but without the wholesale throwing out of ordinary software development, which can still be part of the process when necessary.