五千年(敝帚自珍)

主题:【原创】浏览器是怎么变成操作系统的 -- 美人他爹

共:💬233 🌺560
全看分页树展 · 主题 跟帖
家园 【番外】怪异的SQL

当年学SQL的时候,就觉得这个语言,怎么那么怪异呢?要说我也不怕学语言,当年C语言还是我大学里面唯一一个满分的科目呢。后来自学的C++,以及Pascal的新马甲Delphi,汇编,VB,Java,php, Javascript,Python。这些家伙,一个个都是换汤不换药,用图灵机的模型一套,全部现了原型。你面向对象也好,你内存管理也罢,都是图灵机的一种描述方式:对某数据进行操作,然后放到某个存储单位里面去。唯一不同的是这个数组,是一组数据,但是放到循环里面一看,还是对某个数据的操作。不过,循环貌似是图灵先生心口永远的痛,这个图灵停机问题,要是没有循环,就解决了一大半,只要把往回跳的goto都挑出来就可以了嘛。且慢,goto?循环不就是一种守规矩的goto吗?

可是SQL和各种语言都不一样。当年学SQL的时候,我正好知道已经保研,整天琢磨着多和老婆溜溜弯,对这种样子怪异的语言,我压根没怎么上心。

你看,这种语言首先操作的,都是数据集合。这首先就让人很心烦,哪有上来一个变量就是一个不定长数组的?而且操作的结果也是集合,从一个table,到另外一个view...

其次,这个语言,根本不关心底层的实现,到底这些数据是怎么放的?多大?多少bits?什么编码方式?都不说,听着就让人不放心。

第三,这个语言的操作对象的类型是什么?没有定义,只是一个简单的table。只要这个table里面有相应的column,就可以操作。至于是不是多一column少俩column,SQL大多数时候都不在乎。其实呢,仔细想想,这个table也是不需要的,对大多数select语句来说,这个table如果换成一个集合里面的数据,而这些数据,尽管参差不齐,但是只要都有这个SQL语句里面用到的property,那么就都可以处理。

最让人不满意的是:这个语言大多数时候是不需要循环的。虽然现在SQL已经有各种支持循环的版本,但是怎么看怎么觉得那些都是C语言的入侵,和SQL本身的风格不同。没有循环?或许图灵先生会喜欢吧,这样写出来的东西,肯定能把活儿干完,不用担心停机问题。

总之,这个语言,怎么看怎么不鸟机器硬件。它,貌似只关心数据,一堆一堆的数据。

关键词(Tags): #番外
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河