文章提交注意事项:
请在发布文章时用HTML代码加上至少一条新闻来源的链接;原创性消息,可加入相关信息(如涉及公司的网址)的链接。有任何问题,邮件至:he.fang#zhiding.cn
注意:收到邮件乱码的用户请修改客户端的默认字体编码,从"简体中文(GB2312)"修改为"Unicode(UTF-8)"。
solidot新版网站常见问题,请点击这里查看。
Firefox 浏览器从 v151 开始,Gzip 压缩/解压缩就依赖于 zlib-rs 库,用 Rust 语言开发的版本替代了 C 语言版本改进了性能,提供了更好的内存安全性,以及带来了英特尔第 13 代/第 14 代酷睿 CPU 不稳定导致的崩溃问题。致力于用 Rust 语言重写关键库的非盈利组织 Trifecta Tech Foundation 在 2024 年夏天就与 Mozilla 讨论在浏览器中集成 zlib-rs,但从测试到落地花了两年时间,一个重要原因就是 zlib-rs 触发了臭名昭著的英特尔 CPU bug。测试中 zlib-rs 中的一些代码导致英特尔 Raptor Lake CPU 频繁崩溃,开发者最终发现问题与 Huffman 编码写入内存的一个特定指令相关,识别问题之后解决起来就容易了,开发者通过加入一段“不安全代码”修复了该问题。
2025 年第 29 届国际 C 语言混乱代码大赛(IOCCC, The International Obfuscated C Code Contest)公布了获奖作品。IOCCC 是一项国际程序设计赛事,旨在写出最有创意和最让人难以理解的 C 语言代码。IOCCC29 的 22 部获奖作品包括:Nick Craig-Wood 开发的 GBA 模拟器,其源代码就像一部 GBA 游戏机;虚拟机的代码规模通常比较大,比如 QEMU 有大约 200 万行代码,而 Adrian Cable 开发的虚拟机只有 366 个字节,它能运行 DOOM;台湾开发者 jingp49 获奖作品的源代码形状来自《神秘博士》的时间机器塔迪斯(Tardis)。IOCCC 主办方表示,22 个获奖程序都极富创意,参赛作品数量和质量都达到历史最高水平。
83 岁的 Brian Kernighan 仍然在普林斯顿大学担任计算机科学教授,他参与了 Unix 系统的开发,与 Dennis Ritchie 合著了《C程序设计语言》(The C Programming Language)一书。他最近在新泽西州 InfoAge 科学历史博物馆做了一次演讲,在演讲之后的问答环节回答了一位现场观众的提问,这位观众询问了有关 Rust 语言是否会取代 C 语言的问题。Brian Kernighan 表示他只写过一个 Rust 程序,因此对 Rust 了解不多,但这次写 Rust 程序给他留下了非常糟糕的印象,他无法理解实现内存安全所需的机制,以及相应的支持机制。他花了好几天才写出一个 Rust 程序,用其它语言写五分钟时间就够了。他的结论是 Rust 不会很快取代 C。
2024 年第 28 届国际 C 语言混乱代码大赛(IOCCC, The International Obfuscated C Code Contest)公布了获奖作品,其中包括 OpenRISC 32 位 CPU 模拟器、能运行 Doom 的虚拟机,号称世界最小的大模型推理引擎(基于 70 亿参数的 Meta 开源模型 LLaMA 2),等等。IOCCC 是一项国际程序设计赛事,旨在写出最有创意和最让人难以理解的 C 语言代码。从 1984 年开始,该赛事基本每年举办一次,但有过多次中断,IOCCC28 是为了纪念比赛创办 40 周年。
至少从工业革命起,工人就担心被机器取代。然而当科技改变汽车制造、肉类加工甚至秘书工作时,结果并非是砍掉工作或减少工人人数,而是“降级”工作——也就是将工作进一步细分,让工人能快速重复的完成工作。由熟练技工组成的小作坊被数百名工人组成的流水线大工厂所取代。工人们抱怨“速度加快,强度增加,工作劣化(降级)”。AI 最广泛使用的领域——编程——可能正在发生类似的事情。程序员们称,AI 对他们的一个显著的直接影响是工作质量变化了。编程的工作变得更例行公事,更少深思熟虑,最重要的是节奏更快了。AI 就像流水线那样改变编程工作,写代码的人和仓库工作的流水线工人越来越相似。三名亚马逊软件工程师称,过去一年管理层越来越多的督促他们使用 AI,公司提高了产出目标,对截止日期也更严格。一名工程师称他的团队缩小了一半,通过使用 AI 代码量和以前差不多。其它科技公司也在发生类似的事情。以前开发一个功能需要数周时间,现在则必须在数天内完成。
Rust 语言的第一个稳定版本 1.0 于 2015 年 5 月 15 日发布。为庆祝发布十周年,Rust 项目的开发者在荷兰的 Utrecht 举办了一场活动,宣布发布 Rust 1.87。新版本的主要新特性包括:标准库加入匿名管道(Anonymous Pipes),安全架构 intrinsics,通过 asm!内联汇编可跳转到 Rust 代码中的标记块,稳定 API 等等。
国际 C 语言混乱代码大赛(IOCCC, The International Obfuscated C Code Contest)是一项国际程序设计赛事,旨在写出最有创意和最让人难以理解的 C 语言代码。从 1984 年开始,该赛事基本每年举办一次,但有过多次中断,过去四年就中断了举办。组织者在 Mastodon 上宣布了纪念 40 周年的 IOCCC28 竞赛,报名始于 2024-12-29 23:58:13.213455 UTC 截止日期 2025-04-01 23:29:31.374143 UTC。
Ruby 语言以在圣诞节这天发布重大更新闻名,今年的圣诞节当然也不例外,它释出了 Ruby 3.4。主要新特性包括:引入 it 用于引用一个没有变量名称的区块参数;默认解析器 Prism;socket 库支持 RFC 8305“Happy Eyeballs V2”;改进 YJIT just-in-time 代码性能,等等。
亚马逊 AWS 称程序员每天只花一小时时间写代码,但这并不意味着一天中的其它时间都是无所事事。AWS 称,程序员将大部分时间都花在比较琐碎的任务上,比如熟悉代码库,编写和审查文档,测试、管理部署、解决问题,查找和修复漏洞。AWS 表示 AI 工具能帮助程序员摆脱部分繁琐的工作。
BASIC 语言和达特茅斯分时系统合作者、美国计算机科学家 Thomas Kurtz 于 11 月 12 日去世,享年 96 岁。Kurtz 在获得博士学位后在达特茅斯任教,与同事 John Kemeny 教授合作开发了达特茅斯分时系统 (Dartmouth Timesharing System 或 DTSS) 的最初版本。DTSS 于 1964 年 5 月 1 日与 BASIC 语言同时发布,到秋天,数百名学生在分布在校园里的 20 个终端上学习 BASIC 语言。
chai2010 写道:2024年11月11日,经过开发组的努力,最新发布的凹语言v0.19.0版本支持 `defer`、复数,补齐了语言特性的最后几块拼图,顺利完成年度开发目标!回望2019年初立项之时,凹语言在我们脑海中,仅仅只是一个模糊的概念;6年过去,汇集1600多次提交的点滴之功,方使它成为现在的模样。2022年7月开源以来,我们获得了很多帮助,包括报道、评论、建言、授奖、贡献、推广等,这些帮助是我们一路走来的重要动力。在此向所有关注支持凹语言的机构、团体和个人献上诚挚的感谢!
JetBrains 开发的面向 JVM 的语言释出 Kotlin 2.0.0 版本。主要新特性包括:合并了 Jetpack Compose 编译器,使用 invokedynamic 生成 lambda 函数, kotlinx-metadata-jvm 库稳定,用 Objective-C 方法解决 Kotlin/Native 冲突,支持 Kotlin/Wasm 命名导出,等等。
1964 年 5 月 1 日早晨六点,计算机领域的一场悄无声息的变革在达特茅斯学院展开。数学家 John G. Kemeny 和 Thomas E. Kurtz 在通用电气 GE-225 大型机上成功运行了新开发的 BASIC(Beginner's All-Purpose Symbolic Instruction Code)编程语言的第一个程序。他们当时并不知道,新的语言将会推动计算的普及,在未来 60 年里激励一代又一代的程序员。BASIC 是一种解释性编程语言,逐行运行,带有行号。程序可使用 GOTO 等命令在行之间跳转,可用于创建简单的循环程序。今天的大多数编程语言都使用不同类型的结构范式(如函数和面向对象编程),但 BASIC 易于掌握的语法及简单的英语关键字受到了新手的欢迎。BASIC 之前的语言如 Fortran、Algol 和 COBOL 都相当复杂,主要由专业人士使用。1975 年保罗·艾伦 (Paul Allen) 和比尔·盖茨 (Bill Gates) 将 BASIC 语言带到了个人计算机上,创办了微软公司。沃茨在苹果电脑上开发了解释器 Integer BASIC。
Pascal、Euler 和 Oberon 等语言的作者和合作者 Niklaus Wirth 于 2024 年 1 月 1 日去世,享年 89 岁。Niklaus Wirth 于 1934 年 2 月 15 日出生于瑞士,先后任教于斯坦福、苏黎世大学、苏黎世联邦理工学院,曾在施乐帕洛阿尔托研究中心进修两年。他是 Algol W 、Modula、Pascal、 Modula-2、Oberon 等语言的主设计师
,是 Euler 语言的发明者之一。1984 年他因在编程语言上的贡献而获图灵奖。他亦是Lilith电脑和Oberon系统的设计和执行队伍的重要成员。他的文章《Program Development by Stepwise Refinement》视为软件工程中的经典之作。他写的书名《Algorithms + Data Structures = Programs(算法+数据结构=程序)》是计算机科学的名句。
最新一期的 TIOBE 语言流行度指数显示,Python 的榜首位置仍然很稳,但过去一年其流行度出现了下降。前 20 流行语言中 C#、PHP 、Scratch、Fortran、F#、Kotlin、Delphi/Object Pascal 和 Rust 有所增长,其中 C# 同比增长 2.38%,其余最高是 Fortran 的 0.64%。Python 流行度下降了 2.8%。流行度下降的原因是过去流行度较低的小语种语言的流行度在增长,一年前排名第 50 的语言流行度只有 0.14%,今天是 0.24%。前 10 的语言分别是:Python、C、C++、Java、C#、JavaScript、PHP、Visual Basic、SQL、Assembly language。
1983 年 11 月 20 日,Borland 公司发布了 Turbo Pascal 的第一个版本。在软件行业 Turbo Pascal 是一款具有里程碑意义的产品,是第一款流行的集成开发环境(IDE),它取得了惊人的成功。1995 年 Borland 公司开发了替代 Turbo Pascal 的 Delphi,但此时的 Borland 也在微软的竞争下逐渐衰退,2008 年它将开发 IDE 的子公司 CodeGear 出售给了 Embarcadero Technologies,Delphi 系列产品由 Embarcadero 继续开发,该公司前不久释出了编译器的第 36 版——Embarcadero Delphi for Win32 compiler version 36.0(Delphi 12 Athens 的命令行编译器版本),版本号中 36 可以追溯到 1983 年的第一代
Turbo Pascal。
指令式、通用、多范式、静态类型、编译型的编程语言 Nim 释出了 v2.0 版本。新版的一个主要新特性是默认 ORC 内存管理。开发者称,Nim 是一种适合各种用途但不适合所有人的编程语言。它专注于命令式编程范式,通过宏系统加以增强。可定制的内存管理使其非常适合硬实时系统和系统编程等要求苛刻的领域。
2005 年推出的 Ruby on Rails(或 Rails)Web 应用框架诞生于互联网发展的黄金时期,它一度被视为将接替 Java 语言,然而今天无处不在的 Web 语言是 JavaScript,它为何失败了?资深 Ruby 开发者 Matthew Boeh 说,Rails 诞生于 Web 转型和发展的关键时期,它同时受益和推动了 Web 的发展。它也可以说是自己成功的受害者。它在 2000 年代初期向从未听过 Lisp 语言的人引荐了 REPL(交互式命令行)驱动开发,向被 Perl 软件包库 CPAN 吓跑的人引荐了包管理器,向非企业开发者引荐了测试驱动的开发,诸如此类。所有这些今天已被视为理所当然。它们并不是 Rails 开创的,但它推广和普及了这些概念。今天的 JavaScript 的生态是早期无法想象的。从 1999 年到 2009 年只发布了一个 JavaScript 新标准,如今的 JavaScript 标准每年发布一个新版本。今天的全栈开发者必须掌握 JavaScript,而 Rails 是在 JavaScript 未流行前夕全栈开发者所需要掌握的东西。JavaScript 有着科技巨头如 Google 的支持,而 Rails 缺乏同等规模的企业赞助商,它在性能上被认为已经落后了。
很多软件项目的诞生是因为某个程序员有个人问题需要解决。2006 年,29 岁的 Graydon Hoare 是 Mozilla 的程序员。某天他返回位于温哥华的公寓,发现软件崩溃导致电梯发生故障。这不是第一次发生了。他的公寓在 21 楼。在爬楼梯时他感到很恼火,认为这太荒唐了,我们搞计算机的人甚至不能制造一部不崩溃的电梯。软件的崩溃通常与内存相关,而电梯等设备的软件通常是用 C 或 C++ 开发的,此类编程语言容易引入导致崩溃的内存漏洞。绝大部分人在生气之后可能就会选择换个地方。Hoare 则决定做点事情,他开始设计一种新的编程语言,希望能用它写出没有内存错误的高性能代码。他将其命名为 Rust 语言,以真菌锈菌的名字命名,这种真菌以生命顽强著称。17 年后,Rust 变成了世界最热门的语言之一。有 280 万名程序员在用 Rust 写程序。在编程问答社区 Stack Overflow,Rust 连续 7 年被评为最喜爱的编程语言。Hoare 本人在 2013 年退出了该项目,乐于将它交给其他工程师。
Ruby 语言在圣诞节这天释出了 3.2.0 版本,包含了众多新功能和性能改进。其中包括:基于 WebAssembly 的WASI 支持;YJIT 不再列入实验性功能,做好了生产准备,在 Linux 上支持 x86-64 和 arm64/aarch64 CPU,构建需要 Rust 1.58.0+;改进 Regexp 抵御正则表达式 DoS 攻击;SyntaxSuggest;等等。