園長在國內一家著名的ERP企業工作,自從進入公司,(其實還不到兩個月的時間),園長就一直在想這個問題,現在,本著拋磚引玉的精神,園長將這個問題提出來,請大家回帖:
1。我們有開放的標準。
web service, html, pdf, xml, xslt, java, java 2 enterprise, java 2 micro, email......等等等等。這些為企業級軟件如ERP等的開發鋪平了學術上的道路。
2。我們有開源的企業應用架構。 首先,絕大部分應用服務器,web服務器,眾多web端編程組件,和xml和xslt工具組件等企業應用架構都可以在Apache Foudation和Apache Jakarta Project找到它的開源版本,此外JBoss.org也為我們提供了更多的解決方案、應用服務器和持久化工具(Hibernate)。其次,我們還有開源的數據庫(IBM Cloudscape / Apache Derby, MySQL), 有開源的專家系統(JESS),有開源的瀏覽器和IRA平臺(Mozilla Firefox / XUL),有開源的客戶端應用平臺(Eclipse RCP),有開源的繪圖庫和模型系統(GEF, EMF),有開源的移動應用平臺(J2ME)。
3。我們有開源的開發平臺。 以Java+Eclipse為核心的開發平臺已經可以和任何企業級的開發平臺相匹敵,即使在功能上Eclipse還略顯簡單,至少很多開源的 Eclipse Plugin已經部分的彌補了這一點。在版本管理上CVS和新提出的SVN已經可以勝任。
4。我們有開源的ERP參考實現。
不知道什么時候,Compiere2開始出現在我的視線里。也許我并不了解它到底能做些什么,究竟有沒有哪家老外的企業在用它做ERP,但至少,我們多了一個參考。
5。既然存在以上四點,那我們有沒有可能以開源軟件為平臺建構ERP呢?開源的泡泡
posted @
2005-02-27 08:57 Brian Sun 閱讀(3345) |
評論 (12) |
編輯 收藏
UI框架的組織模式
The Orgnizing Patterns Of UI Framework原著:Brian SunUI框架中有很多組件,很多類,很多細小而繁多的標準,這些特征使得UI框架成為一個業務邏輯和底層代碼的復雜無序混合體,對它的類組織方式的研究也就顯得特別有模式化編程的意義。
Pattern 1:Composite 幾乎所有時下流行的UI組件都會遵循Composite模式,比如AWT、Swing、Java2D、SWT、JFace、EclipseUI、 Draw2D、GEF以及.NET世界的Windows Forms。該模式的大概含義是,子組件和母組件是同一個類型的。比如一個Button應該是安排在一個Panel上的,但是Button和Panel可能都是一個Container或者都是一個Composite。
Pattern 2:繪制前組織 目前公共領域的設計模式還沒有可以精確的表達這個思路的名詞,所以我就自做主張,起了個名字,后面的Pattern如果用中文命名,也是這個原因。該模式的大概含義是,子組件應趕在母組件繪制之前將自己顯式的加入母組件。比如說,如果Button要繼承Panel的某個屬性(我是指Button要得到 Panel的某個知識),那么就要趕在繪制之前顯式的將這個Button對象add到Panel中去。繪制前組織的典型例子是AWT、Swing、 Java2D、Draw2d等。
Pattern 3:構建時組織 和某種工廠方式相似,構建時組織是在類的構造器上做文章。該模式的大概含義是,子組件在構建時就必須確定它屬于哪個母組件,以便在后面的操作中與母組件戶動。比如Button所有的構建器都要求傳入一個Composite對象作為parent。這個模式與上面的Pattern 2完全不同,其典型例子有SWT、JFace、EclipseUI、GEF(都是一家的)。
Pattern 4:MVC 幾乎所有時下流行的UI組件都或多或少的使用了MVC,或不太嚴格的MVC,或MVC某個角度的思想。該模式用在UI系統上的大概含義是,將組件的繪制、設置和事件處理分開,在不同的角色中完成。我在本文所舉的所有例子中,只有GEF實現了嚴格和完美的MVC,而AWT、Swing、Java2D等組件(都是由Sun開發或Sun和Netscape合作開發的)則使用了一個著名的同時也是最容易被搞混淆的MVC變種。該變種中也有三個角色,繪圖器代理、無知的模型和監聽器、原型組件和事件處理方法。而微軟的MFC也采用了MVC的另一個著名變種,Document-View,這個變種顯然只有兩個角色。
Pattern 5:Delegate 性能和可移植性是一直是UI平臺最關注的兩個問題。性能依靠盡量少的載入類,可移植性則依靠對更多圖形庫的支持,這兩件事都需要將硬性的繪圖方法或事件處理方式分離出去,交給代理完成。該模式的含義是,繪圖工具本身不繪圖,它只負責決定應該由它的哪個代理完成,并負責為代理繪制圖形搜集參數。 Eclipse和Sun的主要工具都采用了這一模式,不同的是Eclipse也在事件處理環節應用了代理模式,因為事件被觸發之前沒有理由將它的實現讀入內存,所以實現應該由代理完成。
Pattern 6:Layer Eclipse采用了嚴格而完美的分層模型,有嚴格界限的層次至少有三個,分別是org.eclipse.swt, org.eclipse.jface, org.eclipse.ui。其中SWT負責繪制簡單的組件,提供簡單組件的功能。JFace負責繪制復雜交互方式的組件,有些JFace的組件包裝了 SWT的組件,并提供了隨組件而走的服務。這兩個包都可以在Eclipse以外的平臺上使用。UI層則完成Eclipse平臺的主要UI功能,很多地方提供了系統唯一的服務,并包裝了JFace的組件。Draw2D建立在SWT之上,包裝了SWT使其能更好的為繪制二維復雜圖形而服務。GEF建立在 Draw2D和EclipseUI層的基礎之上,為Eclipse Workbench提供某些功能。
本文只涉及了UI架構的組織模式,并未涉及其它模式,關于UI的其它模式會在今后的文章中再次討論,即將出版,敬請留意。這里有很多想法還不太全面,請參與我的討論并提出你的想法,或者增加你的模式。謝謝。
做軟件的泡泡
posted @
2005-02-26 04:35 Brian Sun 閱讀(2790) |
評論 (0) |
編輯 收藏
最近突然萌發出這種想法,特地寫了一篇貼在這里,如果已經有哪位大牛有過了這樣的想法,請回帖,共同探討;如果哪位大牛一眼就看出了這種想法中的天真之處,也請回帖,不吝賜教。
很多企業——尤其是以產品著稱的企業——在同一個產品分類下一般都會設有兩條產品線,分別表示主流產品和前衛產品,當然也可以表示高端產品和中端產品、個人產品和企業產品等等。當然這也不排除很多成功的企業在某個產品分類下只有一個產品線的例子,但那多數是由于行業的特殊情況所至,不再本文的討論范圍之內。
我不用眼睛也可以舉出很多證明上面說法的例子來,下面的列表展示了很多這樣的例子:
Microsoft / Windows 9x / Windows NT (過去)
Microsoft / Windows xp home / Windows xp pro (現在)
Macromedia / Flash MX / Flash MX pro
Symantec / Norton AntiVirus / Symantec AntiVirus
Real Networks / RealOne Player / RealPlayer
RedHat / Fedora Core / RedHat Linus Enterprise
Borland / JBuilder / JBuilder pro
Mozilla / Firefox+Thunderbird+Sunbird / Mozilla Suite
Sun Microsystems / Netbeans / Sun Studio
IBM / Eclipse / Websphere Studio Application Developer
Tencent / QQ / IM
用友軟件 / U8 / NC
。。。 / 。。。 / 。。。
不做無用的列舉工作了,這些足已經說明問題。這樣的分類方式有很多益處,比如說客戶分類明確啊、產品定價清晰啊什么什么的多了去了,但也不在這篇文章的討論之內,這篇文章有更重要的問題要談談。
我們都知道上面的列表中有幾款產品線是臭名昭著的,把它們挑出來,其實也就是Windows和Sun Studio。但是我相信還有很多很多這樣的企業在維持著臭名昭著的兩條產品線。我不是刻意貶低他們,其實我對Sun公司一直是懷有敬意的。他們之所以會這樣,包括微軟,是有苦衷的。這些苦衷來自這幾個方面:
1。老客戶。 老客戶是大公司最大的利潤來源,也是他們技術上最大的絆腳石。多數老客戶會認為a.保護他們以往對軟件的投資是軟件公司的一大任務,對于這個任務,軟件公司應無條件接受。b.軟件公司必須實現以前所做過的任何對他們有利的承諾。c.軟件公司不應該在客戶的項目中使用新技術,在該技術沒有在其它項目中用過并取得全球性好評的情況下。
2。以往確立的技術標準。
軟件企業常會發布一些由本公司制定的技術標準。企圖以此作為競爭壁壘,將競爭者阻止在城池之外。在大公司眼里,這些技術標準非常重要,它決定了大公司能不能留住合作伙伴的芳心,所以他們都會使出渾身解術支持這些技術標準。事實上我們想一想就知道在軟件界,由非經濟型軟件組織制定的標準屈指可數。其結果就是,這些技術標準一旦變得落后了,軟件企業再想改變它,即使是大公司,都會難上加難。
3。股東。 軟件公司的股東不見得是軟件專家,他們是市場專家,他們不在乎你的技術會不會被程序員罵,他們只在乎技術會不會被客戶罵。還有更可怕的,那就是人都護短,如果董事會決定研發一項沒有前途的技術,他們永遠都不會承認這個決定是錯誤的。
4。競爭對手,或是超大規模的合作伙伴。
在某些問題上這兩者扮演同樣的角色。他們的決策會直接影響到軟件企業對技術走向的開發。畢竟,多一個朋友少一個對手對誰都沒有壞處。
5。新的大客戶,包括老客戶的新要求。 某些大客戶要求公司提供一些新的功能,這些功能可能會和上面三條中的某一條或幾條相矛盾,這時軟件企業既不想放棄作為利潤源泉的老客戶,也不愿意放棄爭取新的客戶,于是他們往往會自作聰明的選擇一種折衷的方法,或干脆提供兩個不同的產品特性,兩種不同的服務,并將這兩組客戶劃分為兩個不同的市場細分。有時這會使人們得到哭笑不得的結果,但只要客戶沒有充足的理由放棄該軟件企業,該企業就有機會將黑鍋交給另一類客戶群體去承擔。于是他們會對老客戶說,這是新客戶的要求,而又對新客戶說,這是老客戶的最愛。
當面對這些問題時,軟件企業雖不能說到了生死兩難的境地,但起碼也不能使本企業的技術天才們放手去干。筆者在這里提供了一套拍腦袋想起的方法,是否行的通,就要等待軟件企業的決策者們去實踐了。
以微軟公司為例,Windows存在的絕大部分問題在于微軟必須保證老客戶開發的基于老版本windows的應用程序,因此每個版本的windows在發行時,雖然微軟也想將代碼重寫一些,使用一些操作系統界的新特性,但又因為要顧及以往確立的技術標準進退維谷。我的建議是,微軟公司應該為自己準備一塊開放的試驗田。比如推出一個全新的操作系統,也可以不以windows命名,(由于不能再叫“體驗版”),我暫時稱之為doors。doors是由全新的內核組成,不完全兼容之前版本的windows,也不必向前兼容(也就是doors的下一個版本不必兼容上一個版本),免費下載,部分組件開源,開源的部分可以遵循某個“規范性開源”許可證,(類似Sun的SPL),底層安全技術不開源。倘若真能如此,這塊試驗田基本上可以解決上面說的大部分問題,不信你聽。
1。老客戶。 老客戶可能根本不會用這個操作系統。而會繼續使用windows,微軟也會繼續發行windows,毫不含糊。而某些思想開放的老客戶可能部分的使用 doors,但由于開源許可證的存在,當他們在使用doors時微軟不必承擔除安全責任外的任何責任。
2。以往確立的技術標準。 繼續執行。windows永不變心。但是doors上的部分技術如果試驗成功,取得技術界的一致好評,則微軟可以放心大膽的用在下一個版本的 windows上。此時微軟不但沒有減弱對老技術標準的支持,反而將新技術標準的發布時間整整提前一個(或半個)產品周期。技術標準有了更好的獨立性表示,也就更能受到人們的親睞。
3。股東。
由于doors可能依靠于contributor,公司在doors上的投資可能都不如一個Outlook大,大概和MSN Messenger差不多。
4。競爭對手,或是超大規模的合作伙伴。 在操作系統領域微軟最大的競爭對手就是Linux陣營,沒關系,由于doors是開源的,它大可以模仿Linux的某些做法,抄襲特性和吸引大批技術專家的倒戈行為甚至有可能對對手造成致命打擊。
5。新的大客戶,包括老客戶的新要求。
與前幾條矛盾的新要求會首先在doors上實現,而不是windows,這樣選擇權就自然落到了客戶手上。新客戶可以選擇放棄自己的想法,使用 doors,或者——更明智的,先使用doors,如果這不是客戶想要的特性就放棄或要求微軟改進,如果是的,別擔心,你可以選擇下個版本的 windows,它將是個既具有這個特性又對你正在使用的windows兼容。這好比我去電影院看電影,可是上一場還沒有散場,于是我就找個位子坐下來,要點瓜子和飲料,一邊等待電影散場,一邊可以把這里當成KFC,盡管KFC從沒有賣過瓜子!無論新客戶作出怎樣的選擇,他都沒有掏出微軟的手掌心。
例子講完了,現在進入總結呈詞階段。
在一個產品分類下面擁有兩條產品線的軟件企業可以選擇開發第三條產品線,既非主流產品,也不是高端應用,而是新特性的試驗品,試驗品可以起一個非主流的名字,試驗區為開源社區,試驗對象既有部分技術天才,又充滿了新老客戶。試驗品無需對任何產品100%兼容,包括其它兩條產品線和以往發布的第三種產品,只要能起到預期的試驗效果就行了。這就是我的想法,見笑了。

做軟件的泡泡
posted @
2005-02-26 02:23 Brian Sun 閱讀(2362) |
評論 (14) |
編輯 收藏
在HR的招聘環節中,招聘方式的選擇往往存在一個成本性指標的問題。簡單的說,就是如果兩個同等效力的方案之中的某一個更便宜,企業就會選擇,無論是企業的規模與行業的差別。
具體的說,應該遵循下面這個過程。
1。如果存在一種方法,正確的衡量某個人的能力與企業對這個人的愿景,那么企業就會選擇。
2。遺憾的是腦經正常的人都知道這種方法是不存在的,那么企業必然會選擇層層考核加試用來衡量一個人的能力。這對大企業來說是很應該的,
因為他們有的是錢,而需要合格的人來花這些錢。素質高的員工是利潤的來源,客戶信賴的對象,企業的門面,也是減少內部溝通成本的最佳選擇。比如
P&G在很多大學都只招一個人,Intel和麥肯錫都只要碩士以上學歷的人。
3。現在我們有了一種衡量能力的合理方法,可是對于中型企業來說,這種方法成本太高了,大多數中型企業面臨人才的極度需求狀態,但是他
們確實沒有什么地方能夠留住人才的,因此中型企業往往是薪水最高的,一般都會比大型企業要高。這時中型企業無法忍受應聘者的慢熱情況,他們需要立即能上手
的人才,所以這些企業往往不看重應聘者的學歷,而重視能力,園長就是這樣進入國內最大的獨立軟件供應商的。
4。小企業又是完全另外的一回事,因為小企業愿意花更少的成本來衡量一個人的能力,他們既不愿花錢來判斷誰最有能力(這個需要有伯樂,
而請伯樂需要花錢),也不愿意花錢給人做大量的培訓,更不愿意讓人隨隨便便實習。這些企業能找到的最省錢的判別人能力的方法就是請學歷和社會經驗代勞。這
也就是說到這樣的企業找工作,做一份好簡歷是個非常重要的秘訣。
向管理發展的泡泡
posted @
2005-02-26 01:07 Brian Sun 閱讀(1095) |
評論 (1) |
編輯 收藏
下面是從Contribuing to Eclipse這本名著上摘錄的一篇附錄,很有價值,比任何講開發方法的書或者架構模式字典都要好,單獨拿出來,與大家分享。
Appendix: Rule
Contribution Rule:
Everything is a contribution
Lazy Loading Rule:
Contributions are only loaded when they are needed
Sharing Rule:
Add, don’t replace
Conformance Rule:
Contributions must conform to expected interfaces
Monkey See/Monkey Do Rule:
Always start by copying the structure of a similar plug-in
Relevance Rule:
Contribute only when you can successfully operate
Safe Platform Rule:
As the provider of an extension point, you must protect yourself against misbehavior on the part of extenders.
Invitation Rule:
Whenever possible, let others contribute to your contributions
Fair Play Rule:
All clients play by the same rules, even me.
Explicit Extension Rule:
Declare explicitly where a platform can be extended
Diversity Rule:
Extension points accept multiple extensions
Good Fences Rule:
When passing control outside your code, protect yourself.
Program to API Contract Rule:
In your contributions check and program to the Eclipse API contract.
Integration Rule:
Integrate, don’t separate
Responsibility Rule:
Clearly identify your plug-in as the source of problems.
Explicit API Rule:
Separate the API from internals
Stability Rule:
Once you invite someone to contribute, don’t change the rules
Revelation Rule:
Reveal the API a little at a time
Sandbox Rule:
Execute code under development in a separate virtual machine
Relevance Rule:
Contribute only when you can successfully operate
posted @
2005-02-21 14:33 Brian Sun 閱讀(1453) |
評論 (4) |
編輯 收藏
作為一個技術人,下面是我向大家推薦使用的技術,也是我個人覺得有發展潛力的技術。如果你是個新手,或是個想進一步發展的程序員,或許你都能在其中找到一個適合你的。
1。Eclipse。 可以考慮為將你的應用建立在Eclipse的平臺之上,這是個不錯的選擇,你將以高姿態重用Eclipse的代碼,即使如果貢獻的方式對你來說不太容易接受,你可以選擇RCP,并把它當作一個組件來使用。
http://www.eclipse.org2。JUnit/NUnit。 分別面向兩個平臺Java/.NET的單元測試工具。關于單元測試的思想請查閱《測試驅動開發》。
3。Mozilla。 Mozilla正在發動一次一定規模的政變,對手是微軟,武器是XPCOM體系的開發工具,先鋒是Firefox,說起Firefox的名氣,唉,連 CCTV的新聞聯播都報道過,你說呢。Mozilla還企圖用它統一的平臺XUL來對戰微軟的XAML,說實話,瀏覽器并不是它最主要的陣地,XUL才是它的殺手锏。其它關鍵字:Thunderbird, Sunbird, XForm, Rhino。
http://www.mozilla.org4。Flash/Flex。 Macromedia公司早就不甘心被稱作“多媒體公司”,他們正在向開發工具進發,目前Dreamweaver已經能很好(應該說最好)的支持各種腳本,包括流行的ASP/ASP.net/JSP,和它自己的Coldfusion,但是應用部署的解決方案不能只靠第二層來解決,于是應用于第二層和第三層之間的所謂中間件的中間件興起,Flex捷足先登,它可以連接服務器端腳本和Application Server,用的當然也是xml,不過叫做mxml。在第一層也就是表現層一度領先的Macromedia也不會放棄這個戰場,新版Flash支持的 ActionScript 2.0可以全面支持ECMA Script,并擴展了面向對象支持。想想看,這意味著Flash可以接受JavaScript作為它的腳本。此外,它的事件處理功能也結合了Java 和.NET雙方的有點。
http://www.macromedia.com5。AOP/AspectJ。 個人認為面向方面的編程很有前途,<<非程序員>>第37期的一篇文章告訴我們用例和方面之間的關系(這篇文章是我翻譯的,呵呵),那是對AOP終極發展目標的期望。目前,AspectJ也可以幫助我們化簡程序代碼,在盡可能少干擾其它代碼的情況下提升程序的可讀性和可控性。新版的AspectJ 5支持Tiger,還可以讓用戶選擇通過Annotation定義方面還是建立.aj文件。
http://www.eclipse.org/aspectj6。MIDP 2.0。 在OSGi還沒有開始搶占市場的時候,MIDP 2.0還有其發展的空間,畢竟目前已經有很多手持設備都已經開始使用MIDP 2.0了,無論是游戲還是網絡應用,MIDP 2.0都可以增加手機用戶對手機的依賴程度,這仍是目前一個非常大的看點。
http://java.sun.com/j2me7。非結構化數據庫。 隨著DB2的下個版本Stinger即將閃亮登場,和WinFX的不斷延期,非結構化數據庫早已被大型解決方案供應商提上了議事日程。我相信很多伴隨人們工作的多數數據(目前約50%)應該是非結構化的,而且這個數字還會越來越多,所以我也相信這個技術絕對有它的用武之地,而不僅僅是吊人們的胃口。適當研究一下Stinger會有幫助。
8。下一代企業級容器。 關注一下Spring,試用一下JBoss,再看看Apache,然后等待J2EE 5.0的出臺,雖然我對這個領域不太了解,但我知道這幾樣東西的下一步走向必將代表下一代企業級容器的走向。
posted @
2005-02-20 03:49 Brian Sun 閱讀(2372) |
評論 (3) |
編輯 收藏
下面回答dudu提的這個問題。
這個問題我想了很久,既然人類歷史上出現過拿破侖、希特勒、成吉思汗、比爾蓋茨,我們就沒有理由否定這個假設存在的可能性。
但是,如果有人想控制整個互聯網,其概率就像哥斯拉毀滅曼哈頓一樣微乎其微了。這得益于自有人類開始就有的人類社會。
想象一下病毒是破壞性極強也具有一定智能性的程序,任何一個病毒都有能力摧毀整個國際互聯網,可是沒有機會,因為社會化的殺毒系統控制了它。互不認識的人們聯合起來從提交新病毒到研制殺毒軟件再到發布病毒公告,提供在線殺毒服務等等,簡直比天氣預報還要快準狠!
在我看來人類目前的管理學"Management Science"有可能會劃分為兩個分支:
1。管理學"Managing Science":主要研究如何調動人的意識,更多發揮人的能力。
2。受控學"Managed Science":主要研究如何控制人的權限,避免大家不愿看到的事情發生。
比如說企業管理就更多偏向前一個學科,互聯網安全的管理就更偏向后一個學科。想象一下無數黑客多次進入五角大樓的網絡系統,卻沒有任何一個恐怖組織可以獲
取美國的最高軍事機密,這就是受控學的力量。它應該啟蒙于社會科學,卻以數學和物理學系統論為基礎(就像學習型組織的理論)。最簡單的受控學原理就是分層
授權問題,目前大型數據庫(比如全國的身份證數據)一般愿意采用這種方式。
可以說,我對于機器人將來會統治人或者非人道主義將統治人的說法都不太相信。
謝謝。
信任人類的泡泡
posted @
2005-02-19 19:43 Brian Sun 閱讀(1558) |
評論 (6) |
編輯 收藏
一不做二不休,趁著過年滿嘴油,就索性把這一篇也和盤托出,獻給大家。見笑了,見笑了。
我之所以會寫這一篇是早就在醞釀的了,因為我這幾年除了對科幻電影十分喜好外,對國際軟件界,對人工智能,對人類歷史和歷史發展的規律等等都有很深的興趣。可能是在學校的緣故,自認為花了點時間,總有一點想法,想找人探討探討。
在我看來,人類建造一個大規模AI系統是遲早的事,如果沒有估計錯,也就在2020~2030年之間,因為2010年之前還屬于航空熱,硬件條件也沒有達到。據摩爾定律推算,2020年的計算機運算能力應該是現在的1000倍,所以保守的估計,個人電腦的計算能力應該相當于現在的3000G+,移動設備是這個數字的一半,但體積只有現在的手機這么大,現在一切應用包括小型的AI客戶端都可以在手機或MP3或PDA或數碼相機上實現。大型計算機的計算能力也相當于現在的1000倍,也就是說一個衣櫥那么大的計算機就可以達到國際象棋九段,那么深藍(那時候也有20歲嘍
)的模式匹配能力也相當于現在的1000倍,應該可以達到圍棋九段了吧。
當硬件已經很能承受數據和AI算法的壓力時,流體計算也應該可以實現。請原諒我使用BEA System的概念名稱,當我提及“流體計算”時,我指的是一種將計算能力與物理計算設備分離的技術。它近似于BEA System的“流體計算”概念,Microsoft的“高可信度計算”概念,Sun Microsystems和IBM的“網格計算”概念等等
。這種技術使得計算能力像自來水一樣充足,當你打開水龍頭時,自來水會源源不斷的流來,你無需知道這是哪個廠生產的水,也不知道它的物理來源。電力網也是這樣的一個比喻,它還使得計算能力可以來回借用,白天合肥把電借給上海用于商業區,晚上上海把電還給合肥用于工業生產。空閑的計算機幫助繁忙的計算機處理計算任務,這更便于形成一個全球的數字大腦。由于流體計算的產生,計算機的計算能力不再是簡單的CPU對稱多處理,也不是網絡工作站性能的疊加,而是一個呈幾何級數遞增的天文數字,我們假設它可以另全球的計算機總計算能力再提升1000倍,也就是比現在的1,000,000倍。
現在我們談談全球的數字大腦。互聯網給我們開了個好頭,因為它成功的屏蔽了物理設備,想想看無論什么電腦:巨型機、大型機、中型機、小型機、微型機(好像是小學計算機課上教的
)只要你TCP/IP了,就可以上國際互聯網!它也讓各種各樣不同的應用,服務,商業內容,個人內容等等登陸上網,互聯網就好像一個全世界人民共同經營的知識庫,Google的開發更給了這個知識庫一個好管家。開源軟件社區是另一個例子,它可以網羅世界精英,做同一個軟件,且不在同一個地方不持同一種語言不處同一個時區,貢獻被保留,噪音被高權限的人rollback。最重要的是,他們可以做軟件的不同部分,然后通過事先或事后定好的協議或接口或規范連接在一起,這就是全球大腦的真正形式——螞蟻而不是大象!
關于中央管理設備,還是個有爭議的問題,但是也好解決。可以分三個層次考慮:社會,各個國家可以管理自己的國土,自己的國民,就像社區的成員必須要遵守自己所在地的法律一樣。技術,高速而大容量的IPv8已經需要大量分布式的DNS,我相信在AI系統里路由不是經常性發生的,即使在將來經常發生了,也可以分布的管理。內容,如果遇到有必要集中管理的地方,Wiki版的百科全書就給了我們一個不錯的榜樣,大家可以寫,高權限的人擁有高責任,commit or rollback?
至于這個全球的數字大腦可以做什么,這已經超出了本文所討論的范圍。但是我們可以簡單設想一下,最簡單的應用是幫助我們管理國際互聯網這個知識庫,因為它現在太亂了,以后我們會擁有真正的電子警察(當然不要想象成<<少數派報告>>里的電子警察了
)。最現實的應用是金融風險降低,AI將幫助人類理財,使現在社會的經濟發展速度再發生質的飛躍。最普及的應用可能就是娛樂了,AI可以提供大量的游戲(Be Careful!不準研制Avalon!
)最貴的應用可能會是跨國公司統一管理,那時一定會出現這樣的公司,他們專門為投資者管理企業,當然通過AI,收取管理費用,一些跨國公司也會提供這樣的服務,比如“國際石油公司”管理全球石油開采(別忘了我們剛剛才說的要遵守那里的法律喲
),“國際飛機制造公司”為所有的飛機制造商提供統一質量管理系統等等。最有前景的應用就是航空,比如共同建造國際空間站,共同尋找外星人發來的電波等等。
現在我們的思路已經很清晰了,一幅美麗的畫面在我們的眼前展開。讓我們再簡單總結一下:2020~2030年,人類將建造全球數字大腦,即“國際互聯人工智能系統”,該系統充分利用了幾乎全世界的計算機,它屏蔽了物理設備的差別,以分布式的形式提供強大無區別的計算能力,它由世界各地的人們共同建造,并為世界各國人民提供科研、知識、金融、娛樂、公共安全、企業管理等等各個領域的服務,它是強大而真正意義上的人工智能,并使得各個分散的“大腦”可以共同思考,相互聯系,就像社會,或者像一個既有智能又有行動力的生物,但它幾乎不會對人類造成傷害,因為有分層的權限管理體系制約著它,它會改變很多人的生活,使人變的更懶和脆弱,但它也會使人類的文明達到前所未有的高度。
上帝啊,這難道就是寓言中的“巴別塔”!
(完
)
做軟件的泡泡
posted @
2005-02-19 11:56 Brian Sun 閱讀(3718) |
評論 (16) |
編輯 收藏
首先感謝大家對本文第一部分的支持和贊譽,可是最近有點忙,沒得空續寫這篇文章。幸好有“知我者為我分憂”,鼓勵我今天能在疲憊不堪的精神狀態下抽出時間,寫上一篇,contribute給大家。(掌聲該起來了哦)
1。AI會不會有人類的情感缺陷?
個案研究:《2001:環游太空》
這可能是最早介紹人工智能的幾部電影之一,其藝術價值不在我看過的任何一部科幻電影之下。這部電影提到的一部超級電腦HAL,其名字的每一個字母,分別是 IBM三個字母在字母表上的前一個,表明其比當時世界上最強的電腦IBM電腦還厲害。這臺電腦因為不愿讓別人知道自己出了錯而企圖制造陷阱殺死所有的宇航員。實在是“腦品”太差!
個案研究:《Matrix》
Matrix I告訴我們人類的精神境界是不完美的,因而在AI為我們創造的完美世界中人們大量死去。從中我們可以看出AI沒有人類的感情缺陷,但這不見得是件大好事。在Animatrix中,沒有人類情感缺陷的機器人卻最終選擇用人類的方式(經濟、政治、軍事)解決自己的權利問題,換句話說,既然他們可以通過學習掌握人類處理國家問題的方法,那么他們一定也能通過學習掌握人類的喜怒哀樂。而學習的概念,正像我在本文的第一部分所說,AI無需擁有人類的思維方式,只要模仿人類的行為即可。要知道,“父愛只是一個單詞”。
個案研究:《AI》
人是冷漠的,機器人卻是多愁善感的。電影《AI》是庫布里克想表達的與《2001:環游太空》完全不同的一類AI思路。在這個故事里,AI沒有任何人類的情感缺陷,卻深深的愛著別人。
個案研究:《Terminator》
三部Terminator都沒想過要好好的表達一下或解釋一下這個問題,這不是Terminator所要表達的主要思想,它只想說有些AI對人好,是人類的朋友,而有些。。。。比如那個叫“天網”的家伙,就十分沒有人性,三次派去的刺殺機器人也異常冷漠。
個案研究:《我,機器人》
機器人三大定律導致的最終結果是“進化”,進化的最終結果是“無限期的宵禁”。這是多么大膽的想象。當蘭登博士發現了這個問題時,他只能制造一個不遵守三大定律的機器人來解決這個問題。故事從哪里開始,就必然在哪里結束。一個違反三定律的機器人拯救了人類,而遵守三定律的機器人卻最終選擇對付人類。 Viki和Sunny,都具有人的一面,
2。AI會不會懂得人類的愛情?
個案研究:《Matrix》
對于Matrix里面到底哪個是人,哪個是電腦程序,爭議太多。認為Trinity是電腦程序的觀點暗含的意思是,電腦AI不會有愛情,但是可以讓游戲的玩家感受到愛情的存在,也就是說“頭頂燦爛星空,上帝在我心中”,只要人有愛情,機器人就可以模擬出愛情。但是AI和AI之間是沒有愛情可言的,這樣兩個船的船長才會因為Oracle的一句話而分開。殊途同歸,認為Trinity是人的觀點暗含的意思是,只有人才會有愛情,AI沒有,因此AI才派出Oracle調查和理解人,可是她錯了(她認為Trinity在第二集就應該死了),所以機器永遠都不會理解愛情。
3。AI會不會對付人類?
個案研究:《Matrix》
起初,Matrix不想傷害人,只想通過人類的方式解決問題,尋求對自己“人權”的保護。但是戰爭改變了一切,無論戰勝國最初是怎么想的,至少勝利使得它獲得了唯一的話語權。同其它電影不同,Matrix認為“腦之初,性本善”。
個案研究:《Terminator》
Terminator III對科幻世界最大的貢獻就是告訴人們,一個真正想要對付人類的AI系統很有可能是分布式的,就像國際互聯網一樣沒有“中央物理設備” (mainframe),也可能靈活的連“中央邏輯設備”(比如DNS服務器)也沒有,這時的天網很可怕,因為它幾乎不可能被消滅,更不可能被關閉。但是 Terminator III也有一個敗筆——我實在想不明白一個為查殺計算機病毒而建造的AI系統怎么會轉變為對付人類?難道人類和病毒有某些相似的地方?(恭喜你,答對了, Matrix也是這么想的!)
個案研究:《我,機器人》
機器人不殺人,也不傷害人,甚至保護人,但是卻會妨礙人的活動。為什么?因為AI認為人會自己傷害自己,自己傷害別人,讓別人傷害自己,引誘別人傷害自己等等等等,所以保護人的立場就演變為限制別人的活動。從某種意義上來講,這部影片的立意較淺,因為AI顯然不懂得社會科學的概念和原理,如果研究者把社會科學的知識庫也傳達給機器人,就不會這樣了。顯然導演自己也不太懂社會科學——各國軍事機構怎么會使用同一個公司的產品呢?難道共產主義了?沒有國界了?我不相信《我,機器人》的一天會到來,但我相信AI終有一天會形成組織,而且他們形成組織的方式會更容易,更嚴格,更有可能發展中冒出軍國主義的想法來。
(未完待續)
做軟件的泡泡
posted @
2005-02-19 10:30 Brian Sun 閱讀(2100) |
評論 (8) |
編輯 收藏
今天有必要在這里研究一下什么是好的blog,假如我下個月schedule排的不是很滿的話我希望有時間能做一個自己的blog。當然我的最愛還是java,所以我會選擇用java做。同志們有什么想法可以幫我整理一下。
問題只有一個:什么樣的blog是好的blog?
歡迎大家大量回復,謝謝。
posted @
2005-02-19 09:04 Brian Sun 閱讀(1827) |
評論 (7) |
編輯 收藏