Borg « 4G spaces

Star trek 是基本上属于 Geek 必看的科幻剧了,虽然年代久远了一点,但里面很多词和符号都成了 Geek 文化的一部分。
我甚至怀疑乔布斯老师是按照 Star trek 里面人手一个 PADD 的创意发明 iPad 的。

Startrek 剧集中塑造了一个外星种族,叫做 Borg. 我觉得很有意思,来八卦一下。

首先,Borg 这个种族常常和邪恶帝国挂上等号。如果你去翻 , 他就会告诉你, See also: Evil Empire. 如果你是 geek 网站 slashdot 的常客,你就会发现, 上面每条微软的新闻旁边,都是比尔盖茨同学戴了一个机械状的头盔/帽子, 是的, 这就是隐喻了比尔盖茨的微软是个邪恶帝国。

为什么说 Borg 是邪恶帝国呢? 这要从 Borg 的生存方式说起。 所有的 Borg 成员,都随时听从一个中央命令机构,叫做 Collective (集体). 这个集体, 随时能够和任何一个 Borg 成员通信, 在 Borg 成员里共享一切信息. 每一个 Borg 成员并没有名字,而是以代号相称, 比如{dy}联合方阵{dy}分队 9 人组第 7 号(xx的 Seven of nine)。 这些成员也没有任何所谓的个人意志,都是属于 Borg 集体里的一个工蜂而已。

Borg 本身只是一种社会组织方式,蜜蜂和蚂蚁基本上也是这样组织的。 Borg 的邪恶之处在于,他生存的{wy}目标,就是不断的同化其他的种族,以达到自身种族的xx。 他们对其他种族的同化显然非其他种族自愿的,于是他们就不断的发动战争,其中就包括对人类的战争。 同时,他们的武器系统还很发达,能够自动适应对手的武器系统,所以基本上同化其他种族好不费力气。 Startrek 剧集放到 Voyager 的时候,他们基本上已经统治了银河系第四象限的绝大多数星球系统了。 一个种族一旦被同化,就彻底变成了 Borg 集体里面的一个零件,所以,Borg 几乎是所有其他种族的敌人。

Borg 同化的方法也很神奇,就是给你注射一种纳米级别的生物芯片,这种生物芯片一旦到了被同化的生物的体内,就开始改造这个生物。 以人类为例,Borg 认为人的视觉系统不够发达,所以同化人类为 Borg 的时候,人就会被添加一个发红光的眼睛部件。 Borg 的这个特征很显著,盖茨大叔的图就是这么回事。

Borg 这种集中的,集体的,一致对外的组织方式,是效率xx之高的。 当然,Borg 也有一个致命的弱点: 他们的技术非要通过同化其他生物才能获得,他们本身的研发技术却不见得怎么样。用句流行的话说就是 “一直在模仿,从来不创新”。 所以假如遇到不能同化的生物,他们就非常郁闷。比如说,Borg 编号为 8472 的生物的免疫系统特别强, Borg 的生化武器xx不起作用,这时候 Borg 就被打得落花流水。 {zh1}还是靠英勇的人类船长和神奇的医生研发的技术才勉强打败了 8472 号生物的一次进攻。

Star trek 中有多次 Borg 的成员被同化后脱离了组织再次变成一个个体的例子。 最显著的就是 Seven of Nine 的去 Borg 过程了。 Seven 是一个人,很小的时候就被同化成 Borg, 一开始是作为合作来到 Voyager 船上的,但是时刻不忘和集体保持联系。因为一次事故,她和集体的连接被切断了,她立即感觉到“我再也听不到集体的声音了,我很孤独”。 的确,Borg 集体的力量和声音是非常有安全感的,一瞬间失去了之后必然会感到很孤独。 船长 Janeway 就说,你不是 Borg, 你首先是一个人,不要感到孤独,我们船上所有的人都是你的朋友。 Seven 最终摆脱了 Borg 集体的影响,成了 Startrek 系列中最性感的角色,哈哈。

{zh1}附送一个和 Borg 有关的好玩的技术八卦。 大家都知道 GoF 的 Design Pattern 里面的 Singleton Pattern, 就是一个类只能有一个实例。 在 C++ 等标准的静态语言上,实现方法是私有化构造函数等等。 在 Python 这种藏不住构造函数又动态的语言中,
实现 Singleton 看上去是比较麻烦的。 不过,有一个叫做 Borg Pattern 的实现,优雅得实现了 Singleton。 如果你了解了 Borg 种族的特点,又知道 Python 的一些基本知识, 你看下面的这个代码肯定会赞叹到笑出来。

class Borg:
    __collective_mind = {}
    def __init__(self):
        self.__dict__ = self.__collective_mind

    # and whatever else you want in your class -- that's all!

Borg Pattern 就这么简单。对于小项目中顺手写一些控制资源访问的 Singleton 来说,这个 Borg Pattern 实在是不能再好了。

5 comments to “Borg”

Leave a Reply

郑重声明:资讯 【Borg « 4G spaces】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——