ZeroMQ指南-第1章-基础-修复这个世界 标签: zeromqzeroMQZeroMQZMQzmq 2013-02-17 23:05 2054人阅读

第1章 - 基础

修复这个世界

怎么解释ØMQ?我们有些人开始说着美好的方面。它是打了激素的套接字。它就像带有路由的邮箱。它很快!其他人试着分享启蒙时刻,这个“嚓-乓-轰”开悟的转变时刻,当它开始全部显现。事情就变得更简单了。复杂性走开了。它解放了思想。其他人试着通过比较来解释。它更小、更简单、但却更加眼熟。个人而言,我想记住我们到底为何制作ØMQ,因为那是最接近你,读者,今天仍处在的情况。

编程是一种被装扮成艺术的科学,因为我们大部分人不懂软件物理学(physics of software),而且罕有传授。软件物理学不是算法、数据结构、语言和抽象。这些只是我们制造、使用、丢弃的工具。真正的软件物理学是人类物理学。

特别是,当变得错综复杂时我们的极限,我们一起工作分片解决大型问题的需要。这就是编程科学:制造积木让人们轻松的理解和使用,人们将协作解决超大问题。

我们生活在一个连接的世界,现代软件必须航行在这个世界。所以,用于将来超大解决方案的积木是连接的和大规模并行的。代码仅仅“健壮而沉默”是再也不够了。代码必须与代码交谈。代码必须健谈、善于交际、关系良好。代码必须像人脑一样运行,万亿的神经元相互发射消息,没有中央控制的大规模并行网络,没有一个故障点,才能解决庞大而困难的问题。代码的未来看起来像人类大脑绝非偶然,因为每个网络终端,在一定程度上,都是人脑。

如果你曾做过用到线程、协议、网络的工作,你会意识到这几乎是不可能的。这是一个梦。即使是穿过少量套接字连接少量程序都令人厌恶,而当你开始处理真实生活状况。万亿?代价将是不可想象的。连接电脑是如此困难,软件和服务来做这事是一个几十亿美元的生意。

所以我们生活在一个线路落后于使用能力的世界。1980年代曾发生软件危机,那时软件工程师领袖们例如Fred Brooks相信没有任何“银弹”来“承诺即使一个数量级的改善生产率、可靠性、简易性”。

Brooks错过了自由开源软件,它解决了这个危机,让我们能够有效的分享知识。但是今天我们面临的另一个软件危机,却少有人提及。只有最大、最有钱的公司才有财力创建连接的应用程序。是有一个云,但却是有专利权的。我们的数据,我们的知识正从我们的个人电脑消失到了无法连接无法与之抗争的云中。谁占有了我们的社交网络?它是像大型机到个人机的逆向革命。

我们可以将政治的哲学的问题留待下一本书。问题在于虽然互联网提供了潜在的大规模连接的代码,事实上大多数人却无法取得,因此,广泛关注的问题(健康、教育、经济、交通等)仍未解决,是因为没有办法连接到代码,就没办法连接到能够协作解决这些问题的大脑。

有很多尝试解决这个连接代码的挑战。有成千上万的IETF规范,各自解决了部分难题。对于程序开发者来说,HTTP可算作够简单的一个方案,但也可以说让问题更加恶化,它鼓励开发者和设计师从大型服务器和瘦而愚蠢的客户端的角度考虑问题。

所以今天人们仍然通过原始UDP和TCP,专有协议,HTTP,网络套接字来连接应用程序。它仍然是痛苦、缓慢、难成规模,且本质上中央集权的。分布式P2P架构多用于娱乐,而不是工作。有多少程序使用Skype或Bittorrent来交换数据?

这将我们带回到编程科学中来。要修复这个世界,我们需要做两件事。第一,要解决“如何让代码能够随时互联”的普遍问题。第二,将它包装为尽可能简单的积木让人们轻松的理解和使用。

听起来荒谬般的简单。也许是吧。这就是全部论点。

posted @ 2013-02-17 23:05  炽火  阅读(101)  评论(0编辑  收藏  举报