准确定义那种人的术语其实是“骇客” 黑客脑袋里随时充满了想法。他们的大脑不停地采集、消耗、或拆分事物、同时再重新组装。但似乎驱动他们的是一种强烈的本能,或者是进行分析和组织的需求。当黑客首次遇到技术,他们不是吸收其形,而是直奔细节。他们以技术的逻辑为食。当他们沟通时,他们可以很精准地说出或写下他们学到的东西。 黑客的态度 黑客解决问题并创建事物,他们相信自由并自愿互助。黑客精神并不局限于软件(或硬件)领域。黑客本质是独立于其工作的介质。 黑客主义思想已经超越了计算机行业。理想的黑客文化适用于任何投入激情去追求的人。苹果Macintosh 计算机团队的核心成员 Burrell Smith 说“黑客几乎可以做任何事情。你也可以是一个黑客木匠,并不一定要高科技。我认为它必须要有技艺,并关心你做的事。” 在他的《生物朋克》一书中,Marcus Wohlsen 给出了原因:修补匠的原始冲动是成为黑客的一个重要的先决条件。在这些天才从业者手中,修修补补是创造力的重要形式。相对于那种隐含的独行的艺术家或天才的发明家试图获取无中生有的灵感的浪漫形象,它是不同品牌的创造力、实践在不同的精神中。 修补一般是说摆弄或调整,周末在车库里试图把雅马哈 FZ 16 多挤几个马力出来。但这仍然停留在“工作并非真正的工作”的想法。顶起你吉普车的减震系统并换上低压轮胎并不是你想做而只是你必须做的事情。而修补是因兴趣而工作。 黑客们喜欢修修补补的乐趣,不过他们的信条中也有恶作剧:仅仅因为工作有乐趣并不意味着不重要。“玩”在黑客的感官里不仅仅是娱乐的方式,也是对待创新的态度,就像带有竞争力活力和天赋的夺冠的小动作和理智地羡慕。 玩象棋时,特级大师和普通人都是16个棋子。但在前者手中,游戏表现出了美丽和智慧的力量。同样的方式,天才工匠可以重新排列现有引擎零件或计算机代码片段,从而创造出全新的形式。 对于黑客来说,心灵的逻辑框架需要扩展到越来越多的普遍活动中。你可以问黑客问题,并去感受他们在给出确切答案前精神积蓄的过程。 玛吉·桑德斯每周六早上会开大众汽车到 Safeway 超市,回程时会问她的丈夫:“你愿意帮我生成杂货吗?”鲍勃·桑德斯会回答:“不。”惊呆了,玛吉会自己买杂货。这发生了几次,她突然爆发了,诅咒他并要求他解释为什么不帮她。 “这是个愚蠢的问题”,他说,“当然,我不会帮你生成杂货。如果你问我,能帮你买杂货吗,那就另当别论。“这就像玛吉提交了一份程序到TX-0,程序运行时发现语法不当,所以崩溃了。直到她调试成功,鲍勃·桑德斯心理计算机才能正确运行。 黑客伦理 维基百科把“黑客伦理”作为一个通用词组进行了精确地解释:黑客团队的道德价值观和哲学标准。早期的黑客文化和哲学产生在20世纪50、60年代的美国麻省理工学院(MIT)。 术语“黑客伦理”是源于记者史蒂芬,他的1984年的书把黑客描述为计算机革命的英雄。骇客伦理的指导方针使我们更容易的理解计算机是怎么演变成今天我们了解和依赖的个人设备的。 黑客伦理是一种充满哲学、伦理和梦想的新的生活方式。虽然,黑客伦理的内容没有经过公开辩论和讨论,但已被默默地认可和接受了。 正如史蒂芬描述的“黑客伦理已演变为免费和开源软件(FOSS)”。真正遵从黑客伦理的黑客——尤其勇于实践的——一直都是免费和开源软件运动的支持者。 黑客伦理的一般原则是:
黑客的奇特穿着 黑客穿着仅为舒适、功能和少维护,而不是特别在意外观。他们无法容忍套装和其他正装。因为不愿统一着装而辞去工作对黑客来说并非罕见。 当他们无故被要求统一着装,总是会想法破坏,比如,搭配一条荒谬新奇的领带。我认识的大部分黑客把领带看做能够妨碍大脑供血的凶器,客观解释了戴领带者的行为。一条领带彰显了你超级失败者的名声,就像没有本事却着正装的超级用户——某些用UNIX系统root特权却不清楚自己在干啥的人;相当于三岁的小孩拿AK-47当玩具。在严峻的压力下,他或许会挽起袖子、松开领带,但这毫无用处。女黑客几乎从不画浓妆,很多人一点儿都不化妆。 如何成为一名黑客 在他的同名散文中,Eric Steven Raymond 在其他事项中列出想成为黑客者需要的基本技能。他推荐了以下五种语言:Python、Java、C/C ++、Perl 和 Lisp。 Python——这是个对初学者来说设计清新、文档良好并简单易学的语言。作为一个好的第一语言,它不只是一个玩具;它是非常强大和灵活的,并且非常适合大型项目。Paul Graham 指出,许多黑客使用 Python 是因为他们喜欢源代码样式。 这样选择语言好似很轻率。其实并非看上去那么轻率——当你编程时,阅读代码时间远大于写代码的时间。你要像雕塑家处理陶器生的斑点一样处理你的源代码。所以源代码丑陋的语言会使严格的程序员发狂,就像满是肿块的陶器会逼疯雕塑家一样。 Java——Eric Raymond 认为 Java 是一门学习编程的好语言。当今的大多数黑客可能不会同意。最大的异议是 Java 不具备扩展性。编程时媒介的扩展性是探索过程的一部分,其中包括理解所有的要求和力量—— 内部的或外部的——一个系统的设计核心。 James Gosling——著名的Java语言之父,在他的论文《Java:概述》中说,“像 Lisp、TCL 和Smalltalk 这样的高动态语言通常用于原型设计。其中一个成功的原因是高鲁棒性;另一个原因是他们不要求早期决策。 Java 特性完全相反:它迫使你明确地做出选择“。 就像 Lisp 和 Java 之间的不同,Paul Graham 在他的书《黑客和画家》中指出,Lisp 用于指出计算的思路和表达方式,而 Java 则用了表达完整的程序。 正如 James Gosling 说的,Java 要求你早做决策。而且一旦确定下来,该系统——一组类型声明、编译器和运行时系统——就很难被更改了,即便是因为你无意的错误导致需要更改。其影响就像为了减少人为损伤而在你的赛车上装的调速器(车速限制器)。黑客不喜欢语言限制他们。黑客要的只是力量。 C/C++——如果你要正式编程,你将不得不学习 C 这个 UNIX 的核心语言。C++ 和 C 关系密切,如果你已知其一,学习另一个就不困难。然而,第一次学的话哪个都不容易学。 Perl——这是对黑客来说另一个尤其重要的语言,实践证明值得学习。它非常广泛用于动态网页和系统管理,因此,即使你从不写 Perl 代码,你也要会读。 Lisp——真正认真的黑客应该考虑学习 Lisp。学会 Lisp 就能得到渊博的启蒙经验;即使你从来没有真正使用 Lisp,这种体验也将使你余生成为一个更好的程序员。 |