[翻译]冲洗掉

哈Ha!我向您介绍詹姆斯·米肯斯(James Mickens)撰写的文章“要全部洗掉”的译文



当我在安阿伯(Ann Arbor)读研究生时,我有一个对环保运动充满热情的朋友。他从当地农民那里购买食品,骑自行车而不是汽车,以减少排放,并保留了一个令人毛骨悚然的堆肥桶,这很可能是下一次流感大流行的根源。他告诉我说他要在一个农场住一个星期。我问为什么,他回答说,他想“离地面更近一些”-您可以用严肃的面孔发音,只评论一部关于南美古代部落的纪录片。我告诉我的朋友,这片土地不想靠近他,如果他真的仔细观察地面,他将不会看到牛奶河和果冻堤坝,而是会看到饥饿,秃鹰,使用独轮车过度劳累以及普遍无法接受的昆虫数量。他发表了一篇关于环境责任的冗长演讲,但我立即忽略了这件事,因为我意识到我的天真朋友会在这个农场上放橡木桶,并建议他如果那里不够健康就毫不犹豫地返回。他对我微笑,就像恐怖电影中的人们在见到斧头前一分钟微笑并起航一样。恰好37小时后,他致电。我问事情进展如何,他用一种长长而刺耳的声音回应,类似于交配季节的警笛声。我问他如何描述他的第一天,他回答说,他的一生都围绕着有毒的东西:给山羊除臭,饿了的乌鸦,他们想从使山羊吸食中吸食,以及由旋转的钢刀片组成且没有任何合理作用的机制申请,不计入您在“本月假肢”俱乐部的会员资格。
我问我的朋友何时回家,他回答说他是从安阿伯火车站打来的。他已经在这里了。然后他再次发出警笛声,那令人毛骨悚然的缠绵声音,然后我意识到-这是复合性流感的第一个症状。

IT专业人员经常在网页上看到我朋友在农场中看到的东西。人们认为网络浏览器是一种如此优雅的计算平台,并且网页是一种轻巧,蓬松的小物件,您可以通过在咖啡店与朋友抛出讽刺的评论来在记事本中进行编辑。没有什么比真理更远了。现代化的网页是一场灾难。它类似于其中一幅世界末日的中世纪绘画中的场景,描绘了Galactus的到来的后果:人们将脚跟高高地翻滚到火热的深渊中,饱受各种压碎物的折磨,并悬挂在无法通过安全认证的游乐场设备上。这正是在现代网页中查看HTML,CSS和JavaScript时将看到的内容。不,当然,没有人能够真正“浏览”此内容,因为如今典型的网页类似于第一版《星际迷航》中的V'Ger(一种我们曾经了解的技术,但现在我们甚至无法为了意识到人们所写的代码和标记如此残酷的Leviathan,以至于他们甚至都不是这里的第三方,他们是第五面,根本没有被这个方召唤,但还是出现了,因为嬉皮士是对的,自由的爱还是不在乎。我确信网络浏览器是Fox News经常谈论的“邪恶窝点”之一。我将通过在网上进行搜索来亲自检查此问题,但是在网上进行搜索将需要我使用浏览器,而这恰恰是环境自由主义者想要我的东西。

对网络为何如此糟糕的描述,类似于为什么对怀有小弗雷迪·克鲁格斯的河豚淹死在海洋中如此可怕的描述-每个细节本身都是噩梦,但总的来说,它却美味地添加到了常绿的恨花上。例如,万维网联盟(W3C)为许多客户端Web技术提供了“官方”规范。不幸的是,这些规范对浏览器制造商的约束程度与您原则上可以要求毒蛇在机场与您见面的程度相同[1]但是有毒的牙齿也许有更多有趣的活动。每个W3C文档都充满令人作呕的句子,主要由指向超链接的超链接组成。例如,如果您是浏览器制造商,并且要添加对HTML选择器的支持,则应记住,在分析选择器行的第三步中,“如果结果 无效([SELECT],第12节),则应引发 SYNTAX_ERR 异常([DOM-LEVEL-3-CORE ]第1.4节)并中止该算法。”如此浪漫的书记调研究无疑将吸引那些渴望将Doshirak成分清单变得愚蠢,再加上苏联多层官僚主义的人们。确实,可以想象一个世界,浏览器制造商从塔木德聘请了许多口译员,以了解SYNTAX_ERR是橙色而不是丁香的原因,以及这种橙色与裁剪后的丁香到底有什么关系([DOM-LEVEL-3-CORE])您还可以想象一个世界,浏览器供应商不这样做,而是实现每个规范的53%,然后希望没有网页会尝试使用HTML选择器,地理定位界面以及<canvas>标签,因此该组合将释放敌基督者和/或显示类似于您应该理解的毕加索作品之一的网页,但所有人都秘密地想扔进大海,因为没人愿意从他额头上长出的等腰三角形来思考一个蓝人的形象没有理由的吉他。

[1] « » — , . , « , », « , » « , , , ».

鉴于Web标准难以承受的膨胀以及这些标准的语义难以理解,浏览器制造商应该吐口水,并建议社会不要想要奇怪的东西。但是,这种观点并不受欢迎,因为如果您的乐观感是基于现实的,那么没人会看您在TED的表现。我一直在尝试向朋友们解释为什么他们应该放弃网页并使用从镜子系统反射的阳光,良好或充满活力的挥舞着彩旗的方式来交换信息。我的朋友们不可避免地会以毫无意义的措辞来回应,例如“人们发明了飞机,因此我们当然能够打造出不错的浏览器!”不幸的是,飞机成功的标准很简单(“我是但我是鸟”),网络浏览器的成功标准包括级联样式表-这种技术从其存在就注定了任何项目都会遭受重大失败。对于初学者而言,级联样式表就是由梅森(Masons)设计的密码术,用于隐藏现实的视觉本质并鼓励人们绘制带有伪图形的图片。 CSS文件应该允许您将内容的定义与内容外观的定义分开-使用CSS,您可以指定HTML标签的位置以及这些标签使用的字体和配色方案。不幸的是,CSS和HTML的组合方式与IKEA组装床的说明以及一套恶毒的木棍的用法相同,据说可以掩盖床的结构。 CSS与其说是对您的网页最终外观如何,对内容进行了简要的高层概述您的网页上发生的情况取决于天气,股市情况以及您上次给妈妈打电话的时间。就像一个天真的游戏大师一样,他并没有被成年后的痛苦所宠坏,您可以为<div>和<span>标签创建抽象的CSS类,分配它们的优缺点,并定义它们将在HTML的全面和崇高叙述中扮演的角色。一切都严格到位;您将页面加载到浏览器中并为光荣的胜利做准备。但是,您很快会发现<elf>标签超重。 ELF无法承受额外的重量。更糟糕的是,您的<barbarian>标签没有沉重的锤子或斧头。没有沉重的锤子或斧头,您的野蛮人仅仅是个小游戏。然后,您查看您的<mage>标签并看到那不是一个留着胡须的白人老头,而是来自布鲁克林的一个年轻黑人。对于许多复杂的原因,从欧洲殖民地故事开始,您的魔术师就必须是一只白熊,流淌的熊熊,并且不能短时间分享。这些就是CSS会给您带来的麻烦。否则你会收获。老实说,我不知道哪种动词和哪种形式在这里更合适,但我相信您能理解我。图1显示了CSS种子的特定示例。或CSS播种。我的风格逐步指南,为我的灵魂而战。而不是时髦的鞋子和豪华的板块黑色。这些就是CSS会给您带来的麻烦。否则你会收获。老实说,我不知道哪种动词和哪种形式在这里更合适,但我相信您能理解我。图1显示了CSS种子的特定示例。或CSS播种。我的风格逐步指南,为我的灵魂而战。而不是时髦的鞋子和豪华的板块黑色。这些就是CSS会给您带来的麻烦。否则你会收获。老实说,我不知道哪种动词和哪种形式在这里更合适,但我相信您能理解我。图1显示了CSS种子的特定示例。或CSS播种。我的风格逐步指南,为我的灵魂而战。



1: - . JavaScript , JavaScript' . - , — , HTML . . , , TM. CSS , , . : , , . - , HTML- Z, , , , . CSS , , , . , , , .

如果您是Web开发人员,CSS只是您的后顾之忧。 Web技术的累积堆栈是如此脆弱,以至于开发人员只是忍受这样一个事实,即网页的各个部分将在任意时间点掉落。显然,这是常态,因为没有人认真对待电子商务,并且如果您真的渴望安全的银行业务,那么您就不会像19世纪那样亲自访问银行,而不是使用银行的门户网站,门户网站会不断(但安静地)发出错误消息控制台日志中的执行(控制台日志,浏览器默认不会显示该日志,因为如果您了解它并听从其悲惨的史诗,您可能会放弃计算机科学,转而制作木鞋)。
图2显示了这种控制台日志的原始示例。该日志是由一个热门网站上的真实网页生成的。


图2:他们说我可以成为任何人,现在我有一个Web浏览器错误日志。我有十五只猫,聚会都在哪里?

  • , JavaScript, , MIME — text/html. : , , . , — , , , , . , : .
  • , , , . , , ? : , . . « » , HTML CSS. « » , . - , - , «--» . , - , . -, , , . « »; , , , . , , « » «» , , . , , , . , , - , , . .
  • JavaScript. - , , , . «, , ''». JavaScript , , , , , . , , , - init() , init(). , - , . . , « , », , , , , . , , . , - , , , , , , .

其余错误的解释作为练习提供给读者。请注意,了解第八个错误需要咖啡渣,the的眼睛和水晶球。

此时,应该变得直观,不同的浏览器可能会或可能不会为同一页面生成相同的错误日志。通常,如果网页包含超过三位的熵,则不同的浏览器将生成Web开发人员的意图和浏览器用来传达世界图片的精神分裂症动物调色板的奢侈独特组合。因此,选择“最佳浏览器”就像玩那些令人毛骨悚然的建立信任练习之一,在该练习中,您决定宁愿失去五种感觉中的三种,然后您的同事就必须做出的妥协来责骂您,尽管没有部分命令可以比较您失去眼睛和耳朵的潜水事故,发生工业事故,导致您不知所措。所有的选择都是不好的。这就是当场践踏的世界。确实,尝试选择最好的浏览器就像试图决定哪个不值钱的孩子应该继承家族企业。小奥利弗(Little Oliver)拒绝了事件循环应该做什么的普遍接受的想法,因此,每当用户按下键盘上的一个键时,奥利弗(Oliver)都不会触发一个keyPress事件,而是触发三个KeyDown事件,一个KeyUp事件和一个莫扎特第八交响曲中独奏的萨克斯风。最亲切的工作狂Fiona是最亲爱的Fiona,她设计了浏览器,因此当您“关闭”浏览器时,图形界面消失了,但主要过程在后台悄悄旋转,恶意且缓慢地消耗内核表中的条目,并且在不考虑错误消息“世界上其他地方正在使用浏览器的另一个副本;找到Carmen SanDiego,她将揭开秘密。”最喜欢的克里斯托弗(Christopher)为了使他的浏览器更加便捷,决定用打印“ Shockwave fall”的代码替换他的Flash插件,然后立即取消引用空指针。这样可以确保您在观看视频时进行的大多数尝试都导致人们渴望购买更平凡的眼镜,例如木雕或洞穴壁画。糟糕的IE6,“没有任何意义,因为IE6不是正确的基督徒名字”,以某种方式设法在全世界徘徊,比Fidel Castro幸存的暗杀事件还多。找到Carmen SanDiego,她将揭开秘密。”最喜欢的克里斯托弗(Christopher)为了使他的浏览器更加便捷,决定用打印“ Shockwave fall”的代码替换他的Flash插件,然后立即取消引用空指针。这样可以确保您在观看视频时进行的大多数尝试都导致人们渴望购买更平凡的眼镜,例如木雕或洞穴壁画。糟糕的IE6,“没有任何意义,因为IE6不是正确的基督徒名字”,以某种方式设法在世界范围内徘徊,比Fidel Castro幸存的暗杀事件还多。找到Carmen SanDiego,她将揭开秘密。”最喜欢的克里斯托弗(Christopher)为了使他的浏览器更加便捷,决定用打印“ Shockwave fall”的代码替换他的Flash插件,然后立即取消引用空指针。这样可以确保您在观看视频时进行的大多数尝试都导致人们渴望购买更平凡的眼镜,例如木雕或洞穴壁画。糟糕的IE6,“没有任何意义,因为IE6不是正确的基督徒名字”,以某种方式设法在全世界徘徊,比Fidel Castro幸存的暗杀事件还多。您大部分观看视频的尝试都会以对更普通的眼镜(例如木雕或岩石画)的渴望结束。糟糕的IE6,“没有任何意义,因为IE6不是正确的基督徒名字”,以某种方式设法在全世界徘徊,比Fidel Castro幸存的暗杀事件还多。您大部分观看视频的尝试都会以对更普通的眼镜(例如木雕或岩石画)的渴望结束。糟糕的IE6,“没有任何意义,因为IE6不是正确的基督徒名字”,以某种方式设法在世界范围内徘徊,比Fidel Castro幸存的暗杀事件还多。

每种浏览器在其自身的方式上都十分笨拙和怪异,但是所有浏览器都同样享有史诗般的磁盘交换经验。不是罕见的与文件系统位置对齐的微型I / O雨,不,我是在谈论读写风暴的冲突,是关于迫使您收集同胞部落并决定配对的生物以及是否忘记火的原始洪水。蚂蚁,因为火蚁破坏了夏天。浏览器不需要特定的理由来粘贴磁盘,不可以。交换是一种浏览器的生活方式,它是一种休闲活动,可以自己进行。如果您不是IT专业人员,那么您只是在回味一个事实,那就是访问CNN.com会使带有圆柱体图标的绿色闪烁灯停止闪烁并持续发出绿色光。但是,如果您仍然知道计算机的工作方式,然后无休止的交换会让你发疯。它使您变成Torquemada-一个可怜的人物,痴迷于您的整个意识形态只是一个幻想的谎言,只需要隐藏灰色主教的过多磁盘操作即可。打开任务管理器,您发现浏览器启动了67个不同的进程,所有进程都称为“ browser.exe”,并且它们都拼命地从文件系统神秘区域(如“ \ Roaming \ pots”)中的所有I / O中获取。 \ pans \ cache \ 4 $$ Dtub.partial“,其中” \ 4 $$“是在拉脱维亚双变音符中展开的奇异ESC序列。您在Internet上搜索潜在的解决方案,并遇到一堆相互矛盾且没有根据的观点:浏览器感染了病毒;您的病毒带有病毒;我不得不使用Emacs。您必须使用vi这就是为什么你的婚姻破裂了。

自然,解决任何问题的最受欢迎的建议 浏览器问题-清除浏览器的缓存。毫无疑问,清除缓存有时会有所帮助,就像用流氓踢树有时会导致一系列有趣的事件一样,最终会导致一大笔钱掉在地上,并注有“花光所有! Tsem,生活。”不幸的是,踢树通常不会带来财富,因此,您对树的信仰支持行为实际上只会使您成为受到儿童和对情感敏感的成年人所谴责的野性,踢树怪。同样,尽管出于好意,您对浏览器缓存的突然清除只是一个局部止痛药,可暂时减轻生活的痛苦。通过清除缓存来修复浏览器就像您父亲带您去幼儿园一样,当汽车突然开始冒烟时,尝试用引擎盖上的三个弹出声来修复它,然后问您是否仍然闻到一氧化碳,然后说:“是的,这更好。”因为您不想让您的父亲成为骗子,然后你们都静静地度过了其余的时间,努力不让自己失去意识。

因此,是的,如果修复浏览器与在语义上不等同于伏都教的动作有关,那将是很好的。但是,另一方面,情况可能更糟。例如,如果您的浏览器的脚本语言结合了Self的原型继承,从LISP借来的准功能主义,从C提取的结构化语法以及一个需要大量涉及非平凡的回调链的激进的I / O模型,那真是太糟糕了几代勤奋的美国人。哦,不,我只介绍了Javascript。真是令人不快的事件!人们渴望着Self,LISP和C的结合,就像中土世界的居民恳求Saruman与人一起穿越兽人,以便他得到Uruk-hai。兽人和人们为在各自的社区中生存而进行了艰苦的斗争,在两者的缺点下进行新的种族并不是成为村里第一个家伙的最佳方式。但是,尽管有缺点,JavaScript仍然很普及。调查这些原因类似于试图了解第一次世界大战的原因-每个人都同意五个主要原因,但是每个人都对其最重要的观点有自己的看法。底线是:在90年代,当JavaScript和Java在客户端上争夺优势时,Java applet的运行速度非常慢,无法与HTML交互。 JavaScript仅慢了一半,并且可能糟糕(但可以)与HTML交互。因此,Java尽管失败了:但是,尽管有缺点,JavaScript仍然很普及。调查这些原因类似于试图了解第一次世界大战的原因-每个人都同意五个主要原因,但是每个人都对其最重要的观点有自己的看法。底线是:在90年代,当JavaScript和Java在客户端上争夺优势时,Java applet的运行速度非常慢,无法与HTML交互。 JavaScript仅慢了一半,并且可能糟糕(但可以)与HTML交互。因此,Java尽管失败了:但是,尽管有缺点,JavaScript仍然很普及。调查这些原因类似于试图了解第一次世界大战的原因-每个人都同意五个主要原因,但是每个人都对其最重要的观点有自己的看法。底线是:在90年代,当JavaScript和Java在客户端上争夺优势时,Java applet的运行速度非常慢,无法与HTML交互。 JavaScript仅慢了一半,并且可能糟糕(但可以)与HTML交互。因此,Java尽管失败了:当JavaScript和Java在客户端上争夺优势时,Java applet的运行速度异常缓慢,无法与HTML交互。 JavaScript仅慢了一半,并且可能糟糕(但可以)与HTML交互。因此,Java尽管失败了:当JavaScript和Java在客户端上争夺优势时,Java applet变得异常缓慢,无法与HTML进行交互。 JavaScript仅慢了一半,并且可能糟糕(但可以)与HTML交互。因此,Java尽管失败了:

  • JavaScript , , , Monty Python. , 12 == «12», . ,  . , null == undefined. ; , null, , NULL. , , : "\r\n\t" == false. : , , false 0 . ( ), "\r\n\t" 0, - 0. — 0 0! . «Inception», , « false».
  • , — ! , JavaScript NaN (« »)? , , , ParseInt(«»). , NaN , . , typeof(NaN) … «». « , ", .
  • , NaN != NaN, « ».
  • , JavaScript (=== !==),  , ; , NaN !== NaN. , JavaScript, , ALU. , .
  • , , . C++, , JavaScript . , «» . ,   Circle JavaScript, - :

    // ,   "radius"
    //  .
    function Circle(radius){
        this.radius = radius;
    }
    
    //-   
    //  "prototype",  
    //  .
    Circle.prototype.getDiameter = function(){
        return 2*this.radius;
    };
    var circle = new Circle(2);
    alert(circle.getDiameter()); // "4".

    Circle Circle.prototype, - JavaScript. , , . , . , - , …

    Circle.prototype.getDiameter = function(){
        return -5;
    };

    … , , . , ,   ( «») JavaScript . - …

    Number.prototype.valueOf = function(){return 42;};

    , Number, , , , :

    
    alert((0).valueOf());   //0   0    0,   42.
    alert((1).valueOf());   // , 1  42.
    alert((NaN).valueOf()); //NaN  42.      

    , , , JavaScript , . , - - JavaScript , , . , « JavaScript» .
  • C, JavaScript . , JavaScript, , JavaScript , , , , , , , . , , . , . , , « ». , . JavaScript , , (, HTTP ), JavaScript - . « ». , - , , C++.

我可以无休止地谈论JavaScript之所以成为癌症的原因。我知道有些人喜欢JavaScript,我希望这些人会找到他们迫切需要的精神病学帮助。我不知道生活中所有问题的答案,但我知道所有不是这些问题的答案,JavaScript与科学论,顺势疗法同归于一类,并且因为错误的观点认为这是对狗的小毛衣狗若能接触到织布机和拇指,该怎么办。

总而言之,网络浏览器类似于量子物理学:充其量它们提供了概率保证,任何声称完全理解它们的人都是骗子。在人类发展的这个阶段,还有更多紧迫的问题:气候变化,心脏病,尼日利亚王子想要亲自与您联系的财务状况不佳。由于所有这些问题尚未解决,因此浏览网页是浪费时间的一种糟糕方法。启动为风扇编写的不稳定操作系统,并从陌生人那里下载奇怪的JavaScript文件- 最新我们应该怎么做。取而代之的是,我们应该使用固定长度的ASCII消息交换信息,该消息写在拉丁字母的可静态验证的子集中,图像表示为线段,圆弧和其他死神哲学家描述的永恒形式的数学组合,这些人认为牛头怪存在,但不存在能够摆脱迷宫。如此清晰的思想将帮助我们战胜从星际之门崛起的宇宙埃及人。好吧,还是什么。我是美国人,历史不强,但我坚信希腊人会说拉丁语来击败星际埃及人。 #吵架!简而言之,我想说的是浏览器过于复杂而无法信任。不幸的是,孩子们浪费了他们的青春,因此新一代软件开发人员深信浏览器需要更多的功能,而不是更少。因此,我们很高兴看到浏览器将我们的计算机从《星球大战》变成小酒馆,每个人都很高兴,在这里您可以喝一杯蓝色饮料,如果您想喝蓝色饮料,并且如果出了问题,那么也许绝地可以拯救您,如果没有,这就是达阿阿的星战塔弗恩。太空小酒馆不错,但是很棒。只是一堆可笑的细节缝在一起以娱乐大众。睁开眼睛,看看在您生活的真实,非双曲线的世界中,浏览器会不时地中断视频,然后显示癫痫像素的闪烁,发出与日本恐怖电影中的电视相同的声音,然后变苍白。该孩子将离开屏幕,并使您的保修无效。它实际上可能会发生我们必须洗净一切。

All Articles