# What Behind esProc?

Why esProc is a more efficient programming language? In other words, why esProc can do better than SQL, the mainstream programming language?

SQL is founded on relational algebra, which was developed in 1970s. The over half-century-old theory has undergone modifications but has still remained its core.

It’s understandable that the ancient theory struggles with dealing with the current computing needs and hardware environments.

Back then when relational algebra budded, computers were not so popular for information management and data processing needs are as simple as some ordinary queries and aggregates. Now Computers are an indispensable part of contemporary organization management, and data computing needs reach a new height of complexity. The old theory begins to stagger and limp. One example is that the unordered-sets-based relational algebra has trouble handling order-related computations, which have strong user needs (scenarios include computing link relative ratio and Y-O-Y growth ratio). Besides, the 1970s’ hardware was unsophisticated. The algebraic theory was invented to fit in the hardware environments in order to be practically feasible. It was hard for the inventors to predict a hardware environment that features large memory, multi-CPU and clusters. The genes of SQL decide that it can hardly take advantage of the hardware capabilities of contemporary computers to achieve the optimal performance.

esProc belongs to now because **it is based on an innovative theoretical model. **By the way, the esProc programming language has its own name – SPL, which stands for Structured Process Language.

The significance of revolutionizing an old theoretical model can be illustrated through the following two examples:

- It is convenient to use Arabic numerals to represent numbers and perform four arithmetic operations. But if Roman numerals are used, can you still make it?
- All multiplications between integers can be represented by additions. But by introducing multiplication into the arithmetic system to represent additions of multiple same integers and inventing the multiplication table, we can do the calculation very fast.

esProc and SQL are like the Arabic numerals and Roman numerals. One is awkward but the other is convenient to use. esProc has the performance advantage because it enables a series of “multiplication operations” to replace the slow “addition operations”.

This performance advantage, proved in many field tests, isn’t derived from more elegant programming code – actually in this aspect we are not better than others, particularly the established database products – but comes from its innovative data model that enables the description of simple and efficient algorithms. For simple computations for which algorithms cannot be further optimized, esProc cannot do better than the traditional databases, which, after all, are still powerful. Generally a complicated computation has more room for algorithm optimization, thus the performance increases more significantly while having the extra benefit of simplifying the code. That’s the situation where esProc shows its strength. It can produce a much shorter program with performance many times higher.