准备奔向新时代的技术nodejs+express+mongodb+json

这些年,一个在找一个中意的框架和技术,试用了许多,都不满意。


这里我们来批一批这些本不该出现的垃圾技术:

1. XML , Linux 对XML说了句实话:本不该存的在技术。

当然,他的意思当然不是说这玩意一无是处,实在是我们用错了地方。

XML这种语言发明的本意是什么?

本意有两个,一个叫自我描述,意思是说,如果有一天,地球被一个小行星给撞了,虽然地球没大事,但人类灭绝了。

外星人来地球,他们想了解一下我们的文明,打开硬盘,找到的是XML信息,而不是二进制信息。

第二个目的,是XML的本意:使记算机能理解!!!!!


可是,现在我们看看,我们在干什么?许许多多的地方,在用XML存线性数据,在用XML作为传输议,其中一个最恶心的就是web serivce 中的wsdl.

soap,好吧,简单对象传输出协议。


这些真是纯粹垃圾。一无是处,不是最糟的,最糟的是,一无是处,但却被许多人接受。

XML的一个问题,就是它的唐僧本质——太罗索。

而且,XML 是给计算机看的,本质上来讲,人只是将就看就行了。可读性也极差。

而且,XML相当难解析。当然,这是计算机的事,我们人类不关心。但linux对这一点也表示不满。


当然,在个人看来,XML有其意义,比如用xml来描述本地文档,如word,这是对的。

再比如,在网页上,嵌入MathML,这也是对的,数学公式,这样的专业性强的,定式的文档性的,用XML来描述,是相当正确的。


记得有本书里,提到,我们可以用XML来描述一门语言,这当然是废话:所有的计算机语言都是基于正则表达式和巴斯科。诺尔范式,当然XML能描述,但我说那还读吗?

所以,幸运的是,没人真的这么去做,大家总算是松了一口气。


2. web service , wsdl ,soap :这也是垃圾中的精品。

当然,我们知道,我们的web世界就是用这些技术搭建的。

但也不是很满意。


因为,什么好的?两个要求,一个目的。

一个就是简单,一个就是效率高,因为只有这样,用户才能满意。

就是这么简单。


然而,这几样技术,完全是在拖后腿。传输效率极低。


总想对程序员们说:好不是你编程方便就是好,得用户说好,才是真的好。


3.java

java也是一个典型的程序员说好,但用户并不认可的技术。


java,是不是一个垃圾技术?不好说,但也不算是什么好技术。90年还始炒,要用在嵌入式上,结果没成;95年重新炒,因为出了网景公司,不论网景还是微软都尝试过,结果都失败了;

然后,java被用于非windows平台的界面设计,但问题是,java在设计之初,设计者根本看不上UI技术(或是他们不会),IBM的强势参与,修改了JAVA “最小化"的规则,有了eclipse,java终于火了;

但不久,人们发们,在大众领域,无法应用这种十分钟才能启动的技术——过于先进了,大众无法接受~

所以,java就一直在企业用户里生存着。

一直到了android出现。

google 抄袭了早就在VB等语言中使用的字节码技术,去除了java唐僧式的所谓的一切为了安全的、还没启动先自宫自次的习惯。

终于,使java 真正快了很多。不输当年VB的效率。


这才使得JAVA才真正对大众见面。不过,java的老东家此时,却只能在oracle大骂google用的不是“真的”java.


4. .Net

这个东东,完全照抄JAVA,特别是照抄了绝大部分的java的缺点,除了能用visual studio上编程,实在无什么可称道之处。

微软把当年VB的思想全都忘了,或是因为外包给阿三的原因吧。

好处是有一些大公司开发了一些界面库。

执行效率,winform还算是不错。

但asp.net 就没有什么了。


5.TCP和HTTP

当然,他们不算是很不好。

但也有问题。

TCP是面向连接的。


这个事,我们很快就得重新思考一下——马斯克,正张罗着送人去火星呢。

好吧,我们在火星建了个服务器,地球人想去访问看看火星殖民者的生活。


问题来了。无线信号要20多分种才能到。

当然,也没啥,多等会呗。TCP的mac等的keeplive好象是2小时吧,也不会掉线——但会有许多问题O,比如ACK包。比如流量控制。

当然,也可以在地球建个镜像,这是最可行的。


但一些需要实时交互的事情怎么办?


再说,HTTP。

HTTP是基于TCP的,HTTP也有个问题:

HTTP是状态无关的。


也就是说,你F5一次,就需要重传一次。要是实时访问火星上的服务器,这好象不太好吧?

所以说,老实说,从来也没习惯过HTTP。太慢,太没效率。


HTTP与关系数据是本质冲突的。

oracle和SQL Server等许多数据库,在服务端做对session了许多优化和缓存。结果,我们编程时,却不断地open connection ,close connection.

说实话,看到这样的代码,我就想,盖茨你哭去吧!99%的Sql server的代码,白写了。这部分,才是数据库里面最值钱的部分。

但因为HTTP,就这样,白费了。


好在有了XMLHttp,也就是ajax.

但ajax又是xml吧?真是没有碰不到这些垃圾的时候。


6.PHP

不得不说,PHP是一种挑战人类极限的垃圾发明。

怎么编语言不好?要搞成这个样子?

一堆$$$$$$$$$$$$$$$$$

还没用先崩溃了。


但是,有位哲人说了,我们的世界是不完美的。最后我还是习惯了——吐啊吐啊,终于习惯了。

装了个vs的php插件后,总算是好了许多。

要说这里,最可恶 的,可以说是PHP。

为什么?

最家伙是最后出来的,寄托了我们多少希望?

结果希望越大,失望越大。

后来的,但是。。。。。。。。。。。


再说数不清的PHP框架。老实说,不习惯。包括WP,drupal,等等吧。

出来一个简单的,然后变复杂了,一直是这个路子。无有止境啊。


PHP的一个问题在于没有创新。

语法是继承自Perl的。但用过Perl之后发现,php比perl差远了。


PHP没有在异步上有什么建树。

等等吧。


虽然,在互联网上,就php,jsp,asp三个来选,我会选php,但真的是不满意。


异步+简单是未来

从03年起,开网管软件多年,先是VPN的业务级网管,后来是无线通信网的网管。

大多是基于UDP的SNMP+MIB的网管。

SNMP 的好处是异步的。

另外,MIB数据是OID+Value这种方式存在的,不象我们日常用的关系数据库。

这种方式是我比较习惯的。因为在分布式的环境下,这种思维也比较符合现实。


但是一直没有找到可以在“民用”方面可用的类传异步架构。


直到,后来出现了nodejs+mongodb+json


眼前一亮。就好象你一直在等的姑娘,终于出现了,而且,不出所料,来自于google.

这个体系,与我熟悉的SNMP异步体系的对应关系

node.js相当于这个体系的服务端的Agent,代理端。

我们当年的SNMP是基于一个叫envoi还是什么的公司的SNMP协议栈,应该是很贵,也是C语言的。运行在vxWorks上,后来移植到linux。

上面有个PKT数组,目的是存下发的请求,当Manager下发一个请求,就存在那里,处理完,把响应和请求号发回。

这样就实现了异步。


json相当于oid加值

mongodb相当于mib的数据


从现在起,开始转向这个体系。

因为这才是未来的技术。当然,相信,未来,不止有这一种异步体系。


当然,jsp,asp,php,也应该能json实现对node.js的调用,但以后,还是尽可能,少在他们身上花工夫为好。


后记

分析完这些不正确的技术,联想一下我们的现实世界。

比如 iPhone的成功,上面的许多应用,许多都是用的本地化技术。少去服务端取数据。

这正是HTTP缺少的。


对的事情,会被彰显。

HTTP只是一个“将就”的技术。

如果想做一个用户满意的产品,需要有投入。



你可能感兴趣的:(node.js,nodejs,异步,json)