ZeroMQ指南-第1章-基礎(chǔ)-修復(fù)這個世界 標(biāo)簽: zeromqzeroMQZeroMQZMQzmq 2013-02-17 23:05 2054人閱讀
第1章 - 基礎(chǔ)
修復(fù)這個世界
怎么解釋?MQ?我們有些人開始說著美好的方面。它是打了激素的套接字。它就像帶有路由的郵箱。它很快!其他人試著分享啟蒙時刻,這個“嚓-乓-轟”開悟的轉(zhuǎn)變時刻,當(dāng)它開始全部顯現(xiàn)。事情就變得更簡單了。復(fù)雜性走開了。它解放了思想。其他人試著通過比較來解釋。它更小、更簡單、但卻更加眼熟。個人而言,我想記住我們到底為何制作?MQ,因?yàn)槟鞘亲罱咏悖x者,今天仍處在的情況。
編程是一種被裝扮成藝術(shù)的科學(xué),因?yàn)槲覀兇蟛糠秩瞬欢浖锢韺W(xué)(physics of software),而且罕有傳授。軟件物理學(xué)不是算法、數(shù)據(jù)結(jié)構(gòu)、語言和抽象。這些只是我們制造、使用、丟棄的工具。真正的軟件物理學(xué)是人類物理學(xué)。
特別是,當(dāng)變得錯綜復(fù)雜時我們的極限,我們一起工作分片解決大型問題的需要。這就是編程科學(xué):制造積木讓人們輕松的理解和使用,人們將協(xié)作解決超大問題。
我們生活在一個連接的世界,現(xiàn)代軟件必須航行在這個世界。所以,用于將來超大解決方案的積木是連接的和大規(guī)模并行的。代碼僅僅“健壯而沉默”是再也不夠了。代碼必須與代碼交談。代碼必須健談、善于交際、關(guān)系良好。代碼必須像人腦一樣運(yùn)行,萬億的神經(jīng)元相互發(fā)射消息,沒有中央控制的大規(guī)模并行網(wǎng)絡(luò),沒有一個故障點(diǎn),才能解決龐大而困難的問題。代碼的未來看起來像人類大腦絕非偶然,因?yàn)槊總€網(wǎng)絡(luò)終端,在一定程度上,都是人腦。
如果你曾做過用到線程、協(xié)議、網(wǎng)絡(luò)的工作,你會意識到這幾乎是不可能的。這是一個夢。即使是穿過少量套接字連接少量程序都令人厭惡,而當(dāng)你開始處理真實(shí)生活狀況。萬億?代價將是不可想象的。連接電腦是如此困難,軟件和服務(wù)來做這事是一個幾十億美元的生意。
所以我們生活在一個線路落后于使用能力的世界。1980年代曾發(fā)生軟件危機(jī),那時軟件工程師領(lǐng)袖們例如Fred Brooks相信沒有任何“銀彈”來“承諾即使一個數(shù)量級的改善生產(chǎn)率、可靠性、簡易性”。
Brooks錯過了自由開源軟件,它解決了這個危機(jī),讓我們能夠有效的分享知識。但是今天我們面臨的另一個軟件危機(jī),卻少有人提及。只有最大、最有錢的公司才有財(cái)力創(chuàng)建連接的應(yīng)用程序。是有一個云,但卻是有專利權(quán)的。我們的數(shù)據(jù),我們的知識正從我們的個人電腦消失到了無法連接無法與之抗?fàn)幍脑浦小Ul占有了我們的社交網(wǎng)絡(luò)?它是像大型機(jī)到個人機(jī)的逆向革命。
我們可以將政治的哲學(xué)的問題留待下一本書。問題在于雖然互聯(lián)網(wǎng)提供了潛在的大規(guī)模連接的代碼,事實(shí)上大多數(shù)人卻無法取得,因此,廣泛關(guān)注的問題(健康、教育、經(jīng)濟(jì)、交通等)仍未解決,是因?yàn)闆]有辦法連接到代碼,就沒辦法連接到能夠協(xié)作解決這些問題的大腦。
有很多嘗試解決這個連接代碼的挑戰(zhàn)。有成千上萬的IETF規(guī)范,各自解決了部分難題。對于程序開發(fā)者來說,HTTP可算作夠簡單的一個方案,但也可以說讓問題更加惡化,它鼓勵開發(fā)者和設(shè)計(jì)師從大型服務(wù)器和瘦而愚蠢的客戶端的角度考慮問題。
所以今天人們?nèi)匀煌ㄟ^原始UDP和TCP,專有協(xié)議,HTTP,網(wǎng)絡(luò)套接字來連接應(yīng)用程序。它仍然是痛苦、緩慢、難成規(guī)模,且本質(zhì)上中央集權(quán)的。分布式P2P架構(gòu)多用于娛樂,而不是工作。有多少程序使用Skype或Bittorrent來交換數(shù)據(jù)?
這將我們帶回到編程科學(xué)中來。要修復(fù)這個世界,我們需要做兩件事。第一,要解決“如何讓代碼能夠隨時互聯(lián)”的普遍問題。第二,將它包裝為盡可能簡單的積木讓人們輕松的理解和使用。
聽起來荒謬般的簡單。也許是吧。這就是全部論點(diǎn)。

浙公網(wǎng)安備 33010602011771號