我的朋友丹尼尔发布了一些积极、积极、有建设性的内容,所以我不得不回复我的观点:
这也会过去的。 https://t.co/oHuo3Z2Gst
— 亚历克·穆菲特 (@AlecMuffett) 2024 年 2 月 27 日
https://twitter.com/AlecMuffett/status/1762391165226139788
@WhiteHouse (ONCD) 关于安全和可测量软件之路的一份很好的报告……内存安全语言被推到了队列的前面。
噢,我多么希望,我可爱的夏日孩子们,可惜世界不是这样运作的;我从 1988 年开始就专业从事这行工作,到现在已经有 36 年左右的时间了,再加上作为一个幼虫黑客书呆子的时间大约有 5 年左右,所以在我 40 年的经验中,我看到了:
- 至少有两次“人工智能即将到来并将摧毁一切”的迭代,包括 BASIC 时代的“会自己编写的第四代语言”,以及 20 世纪 80 年代的第二波人工智能,即使在那时也被美化为模式匹配
- 至少有两次“内存安全语言将修复一切”的迭代,包括 Erlang(这意味着我们可以实时修补机器,因为“功能性”,因此我们不需要 DevOps!)和 Java(这可以/将会永远、永远、永远不安全,因为有一个手工工具
和未经验证的软件定理检查验证器动态加载器,人们知道永远不会为了部署方便而进行黑客攻击。 - VMS 和 Unix 的消亡——macOS 和 *BSD 不算——以及它们在企业中被 Windows 和 Linux 取代……前者都有缺陷,但实际上被设计为对企业有利,而不是聚集——和-固定(Linux)或过度拉伸的桌面软件(Windows)
- 我们曾经有代码注入;然后我们有SQL注入和XSS;现在我们可以立即注射。看来“注射”是常年
在 20 世纪 80 年代,几乎每所大学计算机科学系都有一个“Sun Lounge”或“Solarium”,里面摆满了 Sun 计算机;当学生们离开后,他们进入了华尔街,并带走了他们所知道的知识,孙宇晨的财富也随之蓬勃发展。
Sun 削减了其教育销售,将重点放在华尔街,专业知识的渠道崩溃了,学生们只能在 Linux 和 Windows 上“成长”;当他们离开时,他们进入了工业界,并带走了他们所知道的知识,Linux 和 Windows 尽管有缺陷,但成为了部署平台。
我第一次经历文化代际不匹配是在 2000 年左右,当时在 Sun 公司引入EDS来管理 Starfires 和其他企业套件的数据中心,这些套件本应维持超过 5 个九的正常运行时间,而且数百万美元取决于他们提供了这一点; EDS 的“专家”制定了“每周重新启动”以保持最新状态(就像 Windows 一样),EDS 在 48 小时内立即被踢出了数据中心。
出现了各种“Web”平台,并构建了严重过度设计的部署解决方案,例如“Enterprise Java Beans”等,但学校里没有人真正学习过它们,因此当他们进入工业界时,他们将它们抛弃了,转而选择他们喜欢的东西– 通常是他们自己滚动的东西(例如在学校)(因此可以理解)或从他们信任的朋友那里得到的东西(因此可以获得社区帮助)
总结经验教训
没有魔杖,也没有灵丹妙药;没有一种语言可以“解决所有问题”,并且任何用于解决问题的候选语言(即使是解决一小部分问题)也将具有有限的保质期,直到认为它很性感的人群晋升到管理层并且新员工想要使用他们想要的东西为止。他们自己建造的。迪克·加布里埃尔(Dick Gabriel)始终正确地认为“更糟就是更好” (有多个版本,请全部检查),任何大肆宣传的新“胜利”都会随着时间和人类记忆而消失。
唯一的胜利之举就是不要玩“这一次,一定!”的游戏。而是教人们安全是如何运作的,最好是在学校。