Low-code and pro-code are two different approaches to application development. Both of them have their strengths and weaknesses. But it is not always necessary to stick just to a single approach. To gain an optimal result in developing business applications, most often, it is reasonable to use both. In this article, we will discuss the peculiarities of each approach and how the 1C platform allows combining the low-code and pro-code.
What Is Pro-Code?
Pro-code approach implies that developers write code manually using common programming languages like Java or C# or special-purpose programming languages like HTML and SQL. Then they build their applications out of components coded from scratch.
The main advantage of the pro-code approach over low-code is that developers have complete control over the process and development results. They can introduce any functionality or UI without any limitations. The disadvantages, though, are long development times and the high cost of development.
Traditional programming languages and frameworks center around technology tasks and do not relate to business tasks, like accounting, inventory management, payroll, customer relationship, and similar. As a result, developers spend much time creating the core functionality of business applications with traditional programming languages and frameworks. The time of professional developers costs plenty of money as they need to invest years into learning and mastering their knowledge of pro-code technology stack to be able to create software business products.
Practically any business application in addition to web and desktop versions requires a mobile one. With the pro-code approach, it takes even more developer resources. For example, in the Java world, companies requiring a business application hire separate front and backend teams. Also, they need to pay extra to have two mobile versions for Android and iOS.
What is Low-Code?
Low-code approach implies a high level of abstraction from technology that allows developers to focus on applications’ business logic. Developers create applications using high-level components and templates as building blocks. This way low-code approach speeds up the development process, making it more responsive to changing requirements and customer feedback.
Besides, some low-code platforms allow creating web, desktop, and mobile versions within a single cross-platform development environment. A single, all-purpose IDE and a high level of abstraction make a barrier to entry into low-code technology much lower as compared to pro-code.
The key disadvantage of the low-code approach is that building blocks that developers can use to create applications are unified components designed for a specific task. Thus, the functionality of applications that rely on such blocks is limited. In other words, with low-code, your application gets only those options that platform developers initially designed. It is impossible to have a corporate automation project relying on unified components only because applications that handle such business processes as accounting, inventory, payroll, and similar require options to calculate product cost, price, recurring payments to employees, and also support other algorithm-based calculations that are unique for each case. Pro-code is the most efficient way to implement algorithm-based calculations, and any attempt to do the same with ready-made components is much less productive.
Nevertheless, by combining low-code and pro-code approaches, it is possible to make the development of the most advanced business applications really fast without losing flexibility or sacrificing application functionality.
Low-Code and Pro-Code Combined
Low-code approach offers ready-to-use components and templates that provide for standard functionality found in any business application, thus saving developers’ time as there is no need to create standard functionality from scratch. At the same time, we need pro-code to develop the unique parts of our application. It is not always that we need a minimal amount of code. In some cases like ERP, the code can be truly massive. Still, the key is that we use code only when it is necessary indeed.
A combination of low-code and pro-code approaches in the development of business applications is similar to the delivery of goods from city A to customers in city B. At first, all goods from A travel to B via the same path (unified ready-to-use low-code components for basic functionality). On arrival, carriers in B deliver goods to particular addresses via a specific route for each product (designated code for unique parts of an application).
In the effort to be more versatile, some low-code platforms allow using application parts that require the pro-code approach as extensions. Such platforms enable parts handling complex business logic and built with regular full-stack programming to connect to the core with external APIs.
Let's have a look at the 1С:Enterprise platform as an example. 1С:Enterprise represents a declarative model that describes a system’s data and processes, plus its user interface. At that, the abstraction level is pretty high, which protects developers from technological complexities. The platform gives developers ready-to-use objects and mechanisms containing core functionality for accounting systems. These objects include catalogs, documents, information registers, charts of accounts, and similar as seen on the 1C platform IDE object tree below.
Developers build an application structure with these objects as if in Lego construction toy, then add on top of standard functionality some specific algorithms describing how objects operate and interrelate. For example, the basic interface that comes with the platform offers a simple, ready-to-use form for data entry. When there is a need to append the form with specific business logic, like total sum (based on product quantity and price per unit), developers add necessary code within the respective mechanism. Feel free to check the detailed example here.
This way, the platform relieves developers of all technology-centered tasks so that they can focus on describing business logic both with low-code and pro-code features of the platform. Also, it makes it possible for in-house developers to support the respective business applications and modify complex business logic describing company processes. Thus, 1C customers often need not more than a single developer to customize and maintain their corporate solution.
To sum it up, there is a table to compare pro-code, low-code, and combined approaches.