Current Solution

Normally, the current solutions for data computing are SQL, R language and other high-level programming languages. The former two are more common in the Desktop BI. On one hand, these solutions have advantages indeed, on the other hand, their disadvantages can really be a big deal which add more difficulties for data computing.

SQL (or MDX)
Advantage: have enough computational ability to handle the structured data
Disadvantage: Hard to edit codes and difficult to understand

SQL owns the comprehensive computation ability for the massive structured data. However, SQL does not support the step by step computation, lacking the computation ability to handle the set data, sequence and order, and the mechanism of object reference. Due to this disadvantage, SQL completes computing in a unnatural human thought pattern, adding difficulty for codes editing and understanding. Thus, it is cumbersome and inefficient to use SQL for complicated computation. Although MDX offers a simpler editing style for complex computations, its abstraction model level is much higher, and understanding its statements becomes ever more difficult.

R Language
Advantages: optimized for structured data; rich library functions
Disadvantages: technical experts oriented obscure syntax
Disadvantages: primitive interactive computing

R language is the tool of technical experts oriented. It is complicate to install and you need to download a variety of third-party plug-ins, such as Perl runtime, the Excel library functions, database connection wizard. The style of R syntax is also technical experts oriented. The business algorithm is difficult to be converted into scripts. R language has a certain degree of interactive computing ability for step by step computing. But this interactive computing ability is not ease-of-use with abstract manifestations and it is difficult for business experts to understand. The functions with different names often have slight differences, you need to remember a batch of function names before normal computing.

High-level Programming Languages
Advantage: Powerful enough to control the flow
Disadvantage: Application environment is complex
Disadvantage: Lack of the support for structured data, and the complexity is too high

JAVA, C#, C++, and other high-level programming languages have a complete mechanism for branch and loop and are flexible at data computation. However, their application environments are too complicated. To carry out a computing task, you will have to go through the procedure of discussion, development, compilation, deployment, delivery, and even other steps. Besides, the high-level programming languages don’t support for massive structured data. It’s not easy to operate on the record, set, dataset and other data type directly. Due to these drawbacks, one will get half the result with twice the effort and unable to accomplish a data computation task independently.