(五)集算器凭什么

那么,集算器凭什么能够提供出更高效的程序设计语言呢?换句话问,集算器为什么能比作为主流语言的SQL做得更好?


SQL的基础是关系代数,而关系代数是个七十年代发明的理论,已经有五十年历史了,期间虽有多次完善,但并没有关键性的革新。

五十年前的理论,难以适应当前的计算需求和硬件环境是很容易理解的。

在发明关系代数的时代,计算机用于信息管理还不够普及,数据计算需求相对简单,一些常规查询统计就够了。而当代企业不用计算机管理已经不可能运转,数据计算需求的复杂度大大提高,那个时代的理论体系能难适应这些新需求。举个例子,基于无序集合理论的关系代数很难处理有序计算,而有序计算又是用户天然需要的(比上期、比去年同期等)。而且,那个时代的计算机硬件还很差,要确保实用性,代数理论的设计也只能适应当时的环境,不可能考虑到今天的硬件情况,具体来讲主要是大内存、多CPU和集群,这使得SQL很难充分利用当代计算机的硬件能力以获得最优的性能。


而集算器不同,我们有自己发明的理论模型,并在这个理论体系下设计了新的语言SPL(Structured Process Lanage)

对于模型体系提升的意义,我们可以举两个通俗的例子来说明:

  1. 我们从小学过的算术体系都采用阿拉伯数字,用来表示数值和做四则运算都很方便,但如果用罗马数字来表示数,你还会作四则运算吗?
  2. 所有整数乘法都可以用加法表示,但如果我们在算术体系中引入了乘法来表示若干个相同数相加这种运算,然后就可以发明九九表来做而不必硬加,效率可显著提高。

SPL能比SQL做得更好,是因为SQL有点象是在用罗马数字做运算,非常别扭,而SPL象是用阿拉伯数字,会顺手很多。性能上的优势也是类似,SPL中发明了许多”乘法“,这些运算就不需要再用”加法“硬算了。

再解释一下集算器在许多场合测试出来的性能优势,这并不是我们的程序代码写得比别人好(特别是和那些老牌数据库厂商相比,当然我们也写得挺好,大家差不多),而是模型上占到便宜,能够采用复杂度更低的算法来实现。对于某些简单运算,已经想不出更好的算法时,集算器就不会比传统数据库做得更快了,人家毕竟也不是白吃饭的。运算越复杂时就越有机会想出优化算法,集算器的性能优势就越明显,同时还会伴随着代码更简单的好处,结果集算器的案例常常会发生代码短了数倍,性能还能提高数倍。