4B If Statements #
https://andreasjhkarlsson.github.io//jekyll/update/2023/12/27/4-billion-if-statements.html
文章讨论了一个程序员尝试使用大量 if 语句解决计算机科学中的一个经典问题的情况。作者通过实现一个检查数字是奇数还是偶数的算法来探索这个想法,并展示了在不同位宽下的实验结果。最后,作者提出了一种使用汇编语言编写的解决方案,并展示了如何将其与主机程序结合使用。
文章链接:4 billion if statements
摘要:
这篇文章讨论了一个程序员尝试使用大量 if 语句解决计算机科学中的一个经典问题的情况。作者通过实现一个检查数字是奇数还是偶数的算法来探索这个想法,并展示了在不同位宽下的实验结果。最后,作者提出了一种使用汇编语言编写的解决方案,并展示了如何将其与主机程序结合使用。
详细内容:
文章开头提到了一个程序员尝试使用大量 if 语句解决一个经典问题,并引发了一系列评论和批评。作者认为这个问题涉及到时间和内存的权衡,并决定用 C 语言实现这个算法。作者展示了在不同数字范围内使用 if 语句来判断数字是奇数还是偶数的结果,并发现在某些情况下存在问题。
为了解决这个问题,作者决定使用 Python 编写一个程序来生成包含所有可能比较的 C 代码文件。通过这种方式,作者成功地解决了数字范围的限制,并展示了算法在不同位宽下的可扩展性。
然而,当作者尝试将位宽扩展到 32 位时,遇到了编译器和文件格式的限制。编译器无法处理如此庞大的代码文件,而文件格式也无法容纳超过 4GB 的比较操作。为了克服这些限制,作者决定手动编写 x86-64 汇编代码,并将其编译成机器码。通过将机器码映射到内存中,作者成功地实现了一个可以判断任意 32 位数字是奇数还是偶数的程序。
最后,作者指出了一些问题,并进行了修复。作者还展示了这个算法的性能表现,并指出在处理大量数据时仍然能够返回结果。
HN 评论 398 comments | 作者:r4um | 19 hours ago #
https://news.ycombinator.com/item?id=38790597
这篇评论中的观点主要涉及以下几个方面:
- 编程学习过程中的需求驱动学习:评论者提到,学生在学习抽象概念时,最好是在解决实际问题中应用这些概念,这样更容易理解和接受。
- 游戏中的教学机制:评论者指出,在游戏设计中,如果将关键要素放在玩家必须经历的地方,而不是直接给予玩家,那么玩家在无法继续游戏时会更有效地学习和理解这些要素。
- 缺乏编程知识导致的不规范实现:评论者分享了自己早期编程经历中的一些问题,比如不了解循环和数组等概念导致代码冗长和重复,以及使用不当的编程技术如 GOTO 语句。
- JavaScript 社区中的包滥用问题:评论者讨论了 npm 包管理器中出现的包滥用现象,指出某些开发者滥用包名,创建大量相似的包,这会对项目造成不必要的依赖。
- ESM 和 CommonJS 的迁移问题:评论者批评了某个 JavaScript 库的维护者对 ESM(ES Modules)的迁移问题的固执态度,认为他应该更加关注社区的需求和趋势。
- 编程社区中的个别维护者问题:评论者提到在 GitHub 的问题讨论中,经常看到一个维护者给出不好的解决方案或态度,这引发了一些社区成员对这个维护者的负面看法。
- 对编程维护者在行业未来角色的担忧:评论者认为,作为一个 TC-39 成员,某个维护者在 JavaScript 社区具有重要地位,对其在行业未来的角色表示担忧,并希望社区对此展开讨论。
NY Times copyright suit wants OpenAI to delete all GPT instances #
《纽约时报》起诉 OpenAI 和微软侵犯版权,要求删除所有 GPT 实例。文章提供了证据,表明基于 GPT 的系统可以在被要求时复制《纽约时报》的文章。
起诉指向 OpenAI 旗下的各个公司,以及微软作为 OpenAI 的合作伙伴,微软不仅使用 OpenAI 的技术来提供 Copilot 服务,还为训练 GPT 大型语言模型提供基础设施。但这起诉讼不仅仅涉及在训练中使用了受版权保护的材料,还声称 OpenAI 的软件可以绕过《纽约时报》的付费墙,并为《纽约时报》编写虚构的错误信息。
《纽约时报》指出,由于投入了大量资源,报纸能够拥有大量员工,从而能够进行广泛的报道和重要的调查新闻,因此在许多事务上被认为是权威来源。为了维持声誉,报纸通过严格的付费墙限制对其报道的访问,并对其作品的复制和使用进行限制。
起诉指控 OpenAI 在训练 GPT 的过程中未经许可使用了《纽约时报》的内容。在 GPT-3.5 之前,训练数据集的信息是公开的,其中包括了一个名为"Common Crawl"的在线材料库,起诉指控称其中包含了《纽约时报》发布的 1600 万条唯一记录的信息。起诉指控 OpenAI 目前不再公开最新 GPT 版本的训练数据集的详细信息,但所有迹象表明,全文的《纽约时报》文章仍然是训练过程的一部分。
起诉还展示了 GPT-powered 系统轻松提供通常受《纽约时报》付费墙保护的内容的例子。起诉中展示了 ChatGPT 被给予《纽约时报》的一篇文章标题,并要求提供第一段,它也能够提供后续的段落。起诉还展示了 Bing Chat(现在更名为 Copilot)的输出,询问《纽约时报》一篇特定文章的第一段,Copilot 会复制文章的前三分之一。
起诉对将此行为合理化为公平使用的尝试持否定态度。起诉指出,OpenAI 坚称他们的行为受到"公平使用"的保护,因为他们未经许可使用版权内容来训练 GenAI 模型,这是一种新的"变革"目的。但在未支付费用的情况下使用《纽约时报》的内容来创建替代《纽约时报》并窃取其受众的产品,并没有什么"变革"的内容。
起诉还指出,AI 的幻觉也可能损害《纽约时报》的声誉价值,并可能对人类健康产生副作用。起诉指控 GPT 模型完全虚构了《纽约时报》发表了一篇名为"Study Finds Possible Link between Orange Juice and Non-Hodgkin’s Lymphoma"的文章,而实际上《纽约时报》从未发表过这样的文章。
起诉还指出,通过 Copilot 可以获取大量《纽约时报》和 Wirecutter 文章的摘录,但这些文章摘录中的附属链接被删除,使 Wirecutter 无法从中获得主要收入来源。
起诉针对开发该软件的 OpenAI 公司以及微软提出指控,微软既提供基于 OpenAI 技术的服务,又开发了用于训练过程中使用受版权保护的材料的计算系统。指控包括直接、从属和代理版权侵权,以及 DMCA 和商标侵权。起诉要求删除使用《纽约时报》材料训练的任何 GPT 实例,并销毁用于训练的数据集。此外,起诉还要求永久禁令,以防止类似行为的再次发生,并要求赔偿金。
HN 评论 808 comments | 作者:justinc8687 | 20 hours ago #
https://news.ycombinator.com/item?id=38790255
有人认为,如果忽略 LLM(Language Model)方面的问题,只是通过合法的方式爬取纽约时报的文章并构建产品,是否属于合理使用(fair use)?他们提出了一个假设,即他们托管这些文章,提供一些索引,并对文章进行改写,比如对过去 5 年美英关系的所有文章进行总结。他们对此收费,而且每月向纽约时报支付订阅费。但是,他们从未完全复制纽约时报的文章,只是提供了很短的摘要。然而,有人认为这并不属于合理使用,因为他们不能将产品的某个层次拿出来,并向第三方收取其衍生产品的费用。
另一位评论者认为,这种做法完全属于合理使用。
有人指出,合理使用的问题是非常模糊的,任何人如果毫不含糊地宣称某个事物是“完全合理使用”,几乎总是错误的,除非是在一些非常明显的情况下。法官在确定合理使用时有很大的自由裁量权。此外,人们应该熟悉合理使用决定的四个因素。特别是,如果一个作品纯粹是源作品的衍生作品,并且对原作品的市场产生了实质性的负面影响,那么很可能不会被认为是合理使用。
还有人提到,OpenAI 的情况与纽约时报的情况有所不同。纽约时报可以展示实际的“记忆”文本,而不仅仅是摘要。但是,这些记忆是训练过程中的意外失效,并且来自已经更新以不再复制记忆文本的旧版本模型。因此,目前的 GPT 模型很难被认为是一个衍生作品。
还有人提到,新模型是否仍然在内部嵌入源文本,但在输出中进行了过滤。如果是后者,那么这种做法更具有合理性。
总体而言,这篇帖子涉及了关于合理使用和版权法的讨论,以及 OpenAI 与纽约时报之间的法律争议。评论者们对于是否属于合理使用存在不同的观点,这需要在法庭上进行裁决。
请注意,这些摘要仅代表了帖子中的一部分观点,阅读整个帖子以获取更全面的信息和观点。
Amazon receives FDA warning letter for supplements with undeclared ingredients #
根据 FDA 的警告信,亚马逊公司(Amazon.com, Inc.)被指控分销违反《联邦食品、药品和化妆品法案》(FD&C Act)的产品。FDA 在亚马逊的网站上购买了标称为增强能量的补充剂或食品,但实验室分析确认这些产品含有未声明和潜在有害的活性药物成分。亚马逊分销的产品中,部分含有未声明的磷酸二酯酶-5(PDE-5)抑制剂西地那非(sildenafil)或他达拉非(tadalafil),这些成分是治疗勃起功能障碍的处方药物(如伟哥和 Cialis)的活性成分。这些未声明的成分可能与一些含硝酸酯的处方药物相互作用,可能导致血压降低到危险水平。
此外,这些产品标榜为膳食补充剂,但根据 FD&C Act 的定义,它们不符合膳食补充剂的定义。因为西地那非和他达拉非在伟哥和 Cialis 获得 FDA 批准之前并未作为膳食补充剂或食品销售。因此,这些含有西地那非或他达拉非的产品被排除在膳食补充剂的定义之外。
根据 FD&C Act 的规定,这些产品被认定为未经批准的新药,因为它们被标榜为用于诊断、治愈、缓解、治疗或预防疾病,或者用于影响人体结构或任何功能。这些产品还被认定为标签虚假或误导,因为它们的标签未声明含有 PDE-5 抑制剂,也未提供足够的使用说明。此外,这些产品还被认定为违反 FD&C Act 的禁止行为,因为它们含有未经批准的药物成分。
根据 FD&C Act 的第 301(ll)条款,向食品中添加已获得批准的药物或已进行重大临床研究并公开宣布存在的药物是被禁止的行为。FDA 确认该产品含有未声明的他达拉非,因此根据第 301(ll)条款,将其引入或交付给跨州商业是被禁止的。
亚马逊公司被要求在 15 个工作日内回复此信,并解释已采取的具体措施来解决违规问题,并提供相关文件的副本。如果亚马逊认为其分销的产品不违反 FD&C Act,可以在 15 个工作日内提供相关理由和支持信息供 FDA 考虑。
这封信中列举的违规行为并不是对亚马逊公司过去或现在所有违规行为的全面陈述。亚马逊公司有责任调查和确定任何违规行为的原因,并防止其再次发生。亚马逊公司有责任确保其公司符合联邦法律的所有要求,包括 FDA 的规定。
来源:FDA Warning Letter to Amazon.com, Inc.
HN 评论 351 comments | 作者:mkmk | 10 hours ago #
https://news.ycombinator.com/item?id=38794068
有人认为 FDA 的监管是必要的,因为这些补充剂可能对人们的生命造成威胁,普通人很难保护自己。
有人建议 FDA 建立一个数据团队,监控亚马逊的持续合规情况,类似于 SEC 监控资本市场数据流以发现违法行为的数据团队。
有人指出,如果亚马逊不遵守法律规定的审计要求,美国联邦政府可以关闭其整个零售运输业务,并且 FDA 只需要证明亚马逊在产品审计职责方面存在疏忽的模式,就可以实施严厉的处罚,包括关闭亚马逊的 FBA 业务。
有人认为关闭亚马逊这样的大公司是一个政治手段,需要有坚实的理由和证据,他们认为这种情况可能不会发生,因为亚马逊的创始人杰夫·贝索斯在美国的共和党和民主党以及监管机构中都有很大的影响力。
有人认为监管行动的缓慢和难以证明是一件好事,否则公众将更容易受到权力滥用的影响。
有人分享了他在保健品行业工作的经历,指出 FDA 对保健品几乎没有监管或监控,存在一些不规范的制造行为。
有人认为食品和药品之间存在一个奇怪的差距,认为如果产品是用于食用的,FDA 应该对其进行全面监管。
有人提到,1994 年,美国参议员奥林·哈奇阻止了 FDA 对保健品进行监管的法律规定,这导致 FDA 无法对保健品进行有效监管。
有人指出,尽管 FDA 仍要求保健品遵循安全标准并正确标注,但不需要获得批准即可生产和销售。
有人认为小型企业在市场上销售保健品将受到影响,因为每份报告都必须包含产品的来源,这将给小型企业带来很大的法律责任。
有人认为亚马逊作为分销商可能会受到影响,因为他们是国际分销商,而且从中国、俄罗斯、印度尼西亚等国家的制造商那里获得产品,这些制造商可能不受 FDA 的监管。
有人提到 FCC 也应该对亚马逊采取行动,因为他们销售的许多无线产品没有注册。
有人认为 FDA 应该限制亚马逊等分销商的行为,因为他们有不遵守规定的动机,而不遵守规定可能导致消费者生病甚至死亡。
有人认为亚马逊应该为此负责。
Firefox Sync actually works #
https://www.howtogeek.com/the-best-reason-to-use-firefox-is-sync-that-actually-works/
这篇文章介绍了 Firefox 浏览器的同步功能,指出它的连续性功能比其他浏览器更好。
作者提到,尽管 Chrome Sync 的功能一度令人满意,但随着时间的推移,他在使用 Chrome Sync 时遇到了一些问题。其中,历史记录和标签同步是他遇到的最大问题。
他发现 Chrome 无法准确地从地址栏中找到他的历史记录,而标签同步功能也存在延迟的问题。因此,作者尝试了 Firefox,并发现它的同步功能比 Chrome 更好用。
在 Firefox 中,作者可以轻松地从历史记录中找到所需的网页,并且标签同步功能也更加流畅。因此,作者建议那些经常在不同设备之间切换的用户尝试使用 Firefox 浏览器。
HN 评论 289 comments | 作者:Vinnl | 11 hours ago #
https://news.ycombinator.com/item?id=38793414
有人认为使用 Firefox Sync 的最有吸引力的原因是它具有客户端加密功能,Mozilla 存储的数据是不可解密的,即使执法机构请求数据,也无法获取浏览历史等信息。
有人提到,Firefox Sync 还可以自己搭建同步服务器,提供更多的控制权和隐私保护。
有人指出,相比之下,Edge 浏览器存在一些不支持端到端加密的功能,而 Chrome 可以开启端到端加密,但需要用户手动设置。
有人抱怨 Firefox Sync 将手机和电脑的书签分开存储,导致使用体验不佳。
有人对 Firefox 的内存使用量表示不满,认为它占用了过多的内存资源。
有人提到使用第三方密码管理器比使用浏览器内置的密码管理器更好。
有人分享了自己使用 KeePass 的经验,并提到 KeePass 可以在不同浏览器和设备上使用。
有人讨论了 Firefox Sync 的加密方式和安全性。
有人提到可以选择不同步浏览历史等敏感信息,只同步插件、配置和书签等内容。
请注意,这只是帖子中的一些观点摘要,具体观点可能更多。
IDEs we had 30 years ago #
https://blogsystem5.substack.com/p/the-ides-we-had-30-years-ago-and
这篇文章主要讨论了 30 年前的纯文本 IDE 与现代 IDE 的差异。作者回顾了他在 20 世纪 80 年代末和 90 年代初学习编程的经历,并对当时的纯文本 IDE 进行了回顾和比较。
他提到了一些当时的 IDE,如 MS-DOS 编辑器、SideKick Plus、Turbo Pascal 和 Borland Turbo 系列。这些 IDE 在当时的硬件限制下具有令人印象深刻的功能,如文本窗口、颜色、鼠标支持等。
作者还提到了一些现代的纯文本 IDE,如 Neovim、Doom Emacs 和 Helix,对它们的功能和用户体验进行了评价。
作者还提出了一个问题,即在过去的 30 年中,IDE 是否有很大的进步。他认为现代 IDE 在一些方面有所改进,如重构工具、功能支持和语言支持,但在根本上并没有发生太大的变化。作者还讨论了一些现代 IDE 的问题,如资源消耗和性能问题。
HN 评论 361 comments | 作者:titaniumtown | 13 hours ago #
https://news.ycombinator.com/item?id=38792446
有人认为早期的 IDE(如 Visual Basic 6、Delphi)在创建桌面 GUI 方面的速度比现代的 Web 和移动开发工具更快。
有人认为 Visual Basic 6 是唯一一个真正实现了“低代码/无代码”承诺的工具。
Delphi 被认为是比 Visual Basic 更好的 RAD GUI 体验,它具有更快的编译速度、更小的可执行文件大小和更好的错误处理。
一些人认为现代的 IDE(如 VS Code)通过远程开发功能提供了与远程服务器的更好的交互体验,但也有人对此持不同意见。
请注意,这些观点仅代表帖子中的一部分评论,可能不代表所有人的观点。
Generation Junk #
https://walterkirn.substack.com/p/generation-junk
这篇文章由 Walter Kirn 撰写,题为《GENERATION JUNK》。作者描述了他在生活中遇到的物品质量下降的问题,从家电到日常用品,都存在着短命和低质量的现象。
他提到了自己拥有的一些物品,如咖啡研磨机、冰箱、吸尘器等,它们都在短时间内失效了。他还列举了一些细节,如不锈钢钉无法穿透五层纸张、火柴不易点燃、购物袋易破裂等。
作者还通过在 Twitter 上发起调查,得到了许多人的回复,他们也纷纷抱怨物品质量的下降。有人将问题归咎于政府的环保法规,有人将其归咎于与中国的贸易安排,还有人认为这是对一切人类事物质量下降的趋势。
然而,也有人认为物品质量下降是因为人们追求更低廉的价格。文章最后,作者引用了 19 世纪英国的思想家约翰·拉斯金和威廉·莫里斯的观点,认为物品的质量反映了社会和精神的质量。
文章以对未来的担忧结尾,作者担心自己和他所拥有的物品都将被淘汰。
HN 评论 436 comments | 作者:blueridge | 22 hours ago #
https://news.ycombinator.com/item?id=38789411
有人认为这篇文章提到的一些之前购买的物品确实更耐用,比如厨房电器。但这些观点主要是基于人们在 Twitter 上回应作者征求意见的帖子,证据不够有说服力。
也有人提到现代汽车比过去任何时候都更可靠和耐用,举出了一些数据来支持这一观点。
一些人分享了他们家中的旧家电的例子,这些家电至少使用了 30 年以上。他们认为现在很难买到能够真正预期使用 30 年的家电,因为现代家电中的控制板等部件在 10-15 年后可能会损坏且无法再得到维修。
还有人认为现代家电趋向于过时。
一些人提到了计划性陈旧(planned obsolescence)是行业标准,从烤面包机到 iPhone 都存在这个问题。
还有人认为现代汽车更安全,旧车虽然更简单易修,但绝对不会比现代车更耐用。
也有人认为现代汽车更可靠,因为现代引擎采用了涂层和材料,可以在大多数引擎部件上持久耐用,但同时也依赖于需要定期更换的传感器和电子设备。
一些人认为现代汽车的电子系统不够可靠,而旧车的机械系统更容易修复。
还有人提到社会资本的大幅下降,导致人们更倾向于将损坏的产品扔掉而不是修复。
也有人认为现代汽车的用户界面设计很糟糕。
这些是对该帖子评论的主要观点摘要。请注意,这些观点来自于不同的用户,可能存在不同的观点和经验。
Mozilla 2023 annual report: CEO pay skyrockets, Firefox market share nosedives #
根据这篇文章,Mozilla 基金会发布了他们最新的年度报告,涵盖了 2022 年 12 月之前的时间。报告中的数据显示,Mozilla 首席执行官的薪酬大幅增加,而 Mozilla 的收入和 Firefox 的市场份额却出现下滑。尽管这一现象一开始看起来非常不平衡,但从 Mozilla 的角度来看,Firefox 市场份额的下降可能是有道理的。
首先,让我们看一下 Mozilla 首席执行官的薪酬。根据 Mozilla 基金会 2022 年的 IRS 990 文件,Mozilla 首席执行官在 2022 年的薪酬为 690 万美元,比前一年的 560 万美元增加了 130 万美元。这是一笔不错的年度增长。
然后,让我们来看一下 Mozilla 的核心业绩,即整体收入和核心产品 Firefox 的市场份额。然而,事实证明,在 2021 年到 2022 年期间,Mozilla 的收入实际上有所下降,从 2021 年的 6 亿美元降至 2022 年的 5.93 亿美元。虽然降幅不大,但仍然是一个下降趋势。
接下来,让我们看一下 Mozilla 的主要产品 Firefox 的市场份额。从 2021 年底到 2022 年底(Mozilla 首席执行官获得 130 万美元加薪期间),Firefox 的市场份额大幅下降,从已经在下降的 3.79% 降至 3.04%。这似乎表明 Firefox 的市场份额与 Mozilla 首席执行官的薪酬存在一种相反的关系,即市场份额下降,首席执行官的薪酬相应增加。
那么,为什么 Mozilla 首席执行官会获得如此巨额的加薪呢?事实上,Mozilla 似乎有两个重要的可衡量目标,并且在这些目标上表现出色:持续增加整体公司财务资产和将 Mozilla 从 Firefox 转型。
首先,Mozilla 希望不断增加公司的财务资产,这是非常明显的目标。在 2022 年,Mozilla 的总资产增长到了惊人的 13 亿美元,比前一年增加了 1.57 亿美元。这是他们财务资产的巨大增长。
其次,让我们再来看一下 2022 年的收入构成。其中,“版税”这一项收入大幅下降了 1700 万美元,这主要是由于 Firefox 中的默认搜索引擎放置,而这个搜索引擎的唯一客户就是谷歌。考虑到 Firefox 市场份额的显著下降,这种减少是可以理解的。但是,第二行“订阅和广告收入”却有所增加,从 5600 万美元增加到了 7500 万美元。虽然这只是 Mozilla 整体收入和财务资产中的一小部分,但对于 Mozilla 来说,这是一项重要的战略,用于将收入来源从 Firefox 多样化。
事实证明,摆脱 Firefox 正是 Mozilla 的计划。今年早些时候,Mozilla 明确提出了他们组织未来的愿景,而这个愿景并不包括 Firefox。根据 Mozilla 的说法,Mozilla 未来的重点主要是基于人工智能服务。实际上,Mozilla 的领导层明确表示,他们打算将 Mozilla 带入“不同的方向”。
综上所述,从 Mozilla 的目标来看,Firefox 市场份额的下降不再是一个很大的问题。事实上,将收入从 Firefox 转移,并投资于人工智能系统和其他订阅服务成为主要目标。在这方面,Mozilla 首席执行官表现出色。
对于 Mozilla 的未来意味着什么?从 Mozilla 的声明和财务报告中我们可以得出什么结论?Mozilla 奖励那些管理 Firefox 逐渐失败和减少依赖的高管,因此我们可以预期这种趋势将继续下去。相应地,未来几年可能会减少对 Firefox 开发和推广的投资。Mozilla 打算专注于人工智能,因此我们可以预期在未来一年中会有更多的人工智能投资和可能的人工智能服务。如果你是 Firefox 的粉丝,这些都不是一个特别光明的未来。但是,如果你是 Mozilla 的首席执行官,你可能很快就能赚到足够的收入来购买自己的岛屿堡垒。谁不想要一个岛屿堡垒呢?
文章来源:Mozilla 2023 Annual Report: CEO pay skyrockets, while Firefox Marketshare nosedives
HN 评论 271 comments | 作者:stl_fan | 8 hours ago #
https://news.ycombinator.com/item?id=38795308
有人指出,Firefox 的市场份额下降可能与其增加的隐私保护功能有关,包括在启用"增强跟踪保护"时去除 Google Analytics。
一些用户提到他们在自己的网站上使用的统计数据与 Google Analytics 的数据不一致,可能导致 Firefox 的市场份额被低估。
有人表示,现代互联网用户中使用除 Google 和 Apple 之外的浏览器的人数非常少,大部分用户只使用移动设备上的浏览器。
一些用户提到他们在移动设备上使用 Chrome 浏览器,因为 Firefox 移动版的渲染问题较多。
也有用户表示他们在移动设备上使用 Firefox,并且没有遇到渲染问题。
有人认为 Firefox 的市场份额下降是一个令人担忧的情况,对 Mozilla 的财务状况和长期可持续发展构成威胁。
有人对 Mozilla 将重点放在人工智能服务上表示质疑,并认为这并不符合 Mozilla 的使命和核心业务。
这些是从评论中摘录的观点,涉及了 Firefox 的市场份额下降、移动设备上的渲染问题以及 Mozilla 的战略方向。请注意,这些观点来自于 Hacker News 上的用户评论,可能代表个人观点,并不一定代表普遍共识。
来源:Hacker News
Cold-blooded software #
https://dubroy.com/blog/cold-blooded-software/
这篇文章是 Patrick Dubroy 的一篇博客文章,标题为《Cold-blooded software》。文章讲述了作者在大学期间上一门关于自然历史的选修课时的经历,教授通过展示一只冷冻的小海龟向学生们展示了冷血动物的特点。
作者将冷血动物与软件项目进行了类比,指出某些技术决策会导致软件项目变得"温血",即在项目持续运动时一切都很顺利,但一旦项目停滞不前,就会变得脆弱不堪。
相比之下,冷血项目更像是那只小海龟,即使冷冻了一年后再次启动,也能继续进行。冷血项目使用的是稳定的技术,不依赖可能发生变化、中断或消失的外部服务,并使用本地存储的依赖项。
作者还举了自己的博客网站作为冷血项目的例子,该项目在近十二年的时间里几乎没有修改,仍然能够正常运行。
HN 评论 111 comments | 作者:arbesman | 12 hours ago #
https://news.ycombinator.com/item?id=38793206
有人提到在 Node.js 和 JavaScript 生态系统中,Express 是一个使用广泛的 Web 框架,尽管它的当前主要版本 4.x.x 已经超过 10 年了。尽管 Express 在某些功能上存在缺陷,并且不是最高性能的选择,但是很多人喜欢它,因为它可以快速稳定地开发和长期规划,而不用担心 API 的剧变和旧版本的安全补丁缺失。此外,提到 Go 语言也提供了更好的稳定性,可以运行 10 年以上的程序,得益于其广泛的标准库和向后兼容性的承诺。
也有人提到 Python 是一个不好的冷血软件的例子,因为它经常发生破坏性的变化,包括运行时和工具链的变化。相比之下,Java 和 Go 是更好的例子,因为它们的代码可以在现代工具链下运行良好,甚至是 10 年前的代码。还提到 Perl,30 年前的代码至今仍然可以正常运行。
有人提到在 Java 中使用 Maven 可以很好地保持稳定性,只要选择 LTS(长期支持)版本并选择良好的依赖项,就可以始终保持项目正常运行。相比之下,使用 Python 时可能会遇到依赖项的突然 API 变化导致的问题。
还有人对 Python 的观点有所不同,认为自从 Python 2 升级到 Python 3 之后,Python 在他个人的经验中一直表现良好。尽管 Python 仍然存在工具链问题,但是一旦团队达成一致的工具集,就可以顺利进行开发。
还有人提到,对于一些语言和框架来说,保持向后兼容性是很重要的,尤其是在 Web 前端的构建系统和框架中,变化非常频繁。同时也有人指出,一些库可能需要根据环境的变化进行更新,以适应生态系统的变化。
有人认为,检查库的最近更新时间是一个很好的启发式方法,因为在绝大多数情况下,长时间没有更新意味着该库已被放弃,而不是完整且没有错误。然而,也有人指出,有些库可能确实是静态的,只要它们所使用的环境也是静态的,它们就可以一直正常工作。
这些是帖子中的一些观点摘要。请注意,这些观点来自于帖子的评论,代表了不同人的个人观点和经验,并不一定代表普遍共识。