Counterexamples in type systems (2021)22 days agohttps://counterexamples.org/该文本列举了类型系统中的31个反例,涵盖了多态引用、协变容器、变体检查和递归等问题。涉及的主题包括对象构造、Curry悖论、运行时类型信息错误、重载以及子类型与继承。其他要点涉及自私性、隐私侵犯、不稳定表达式、规避问题、作用域逃逸和全称量化。本整理由Stephen Dolan完成,感谢Andrej Bauer、Leo White和Jeremy Yallop的贡献,并包含视觉主题切换功能。
Local Reasoning for Global Properties21 days agohttps://tratt.net/laurie/blog/2026/local_reasoning_for_global_properties.html作者曾认为AI不会从新编程语言中受益,因为AI能用许多现有语言生成代码。然而,AI常能生成良好的局部代码(如函数),但在全局程序理解上存在困难,导致不必要的防御性检查,可能引发指数级状态复杂度。如果AI的全局推理弱点持续存在,编程语言设计可能通过强制局部推理来确保全局属性,类似于Rust防止数据竞争的方式,从而提供帮助。Rust的所有权类型和Send/Sync特征能静态防止数据竞争,允许局部推理确保全局数据竞争自由,无需新的子语言。这表明编程语言能以最小程序员负担来强制执行令人惊讶的全局属性(如数据竞争自由)。AI生成的代码常包含过多的防御性检查,这些检查不必要、损害性能,并误导程序状态,导致指数级状态爆炸。未来的编程语言可能纳入效果系统等特性,以强制执行更多全局属性,这可能有益于AI代码生成和人工审查。尽管并非所有全局属性都能强制执行,但有证据表明,实用语言能提供更多保证,从而在AI时代改变语言设计的激励机制。
Odin, Wikipedia and Engagement Farming18 days agohttps://katamari64.se/posts/2026/odin-wikipedia/维基百科关于 Odin 编程语言的条目因缺乏知名度及可靠来源而被删除,引发争议。Odin 的创作者 GingerBill 起初将维基百科视为由活跃分子把守的意识形态游乐场而嗤之以鼻,但后来对其关于编程语言的指导方针表示担忧。Casey Muratori 认为维基百科的引用规则对现代编程知识不公平,后者往往缺乏传统学术覆盖。维基百科的政策强调可验证性、可靠来源和知名度,其指导方针旨在保持客观性并避免无差别收录。GingerBill 的矛盾行为——声称毫不在乎却又广泛参与——暗示了“互动刷量”及与他关注的推特右翼煽动者保持一致。对参与删除的维基百科编辑的分析未显示存在针对 Odin 的意识形态偏见;他们似乎更专注于一般内容审核。作者批评 GingerBill 和 Casey 的小圈子培育了一种有毒、反动的文化,这种文化将自我与怨恨置于建设性讨论和软件质量之上。
Returning to Zig17 days agohttps://gracefulliberty.com/articles/return-to-zig/作者在2020年最初被Zig吸引,视其为一个有前景的C语言替代品,并欣赏其编译时代码执行和简洁的抽象机制。由于Zig的不稳定性、频繁的破坏性变更以及不成熟的生态系统,作者转而使用Rust,看中其稳定性和强大的工具链。对Rust治理问题的担忧,包括企业影响和对LLM生成代码政策的缓慢响应,促使作者重新考虑使用Zig。到2026年,Zig虽然仍不稳定但已较熟悉,并增加了包管理器等功能,不过其生态系统相比其他语言依然有限。Zig优先考虑简洁性而非类似Rust的内存安全,通过发布模式和测试来确保安全,作者认为这适合特定使用场景。
Rust is in TIOBE Index top 1015 days agohttps://www.tiobe.com/tiobe-index/Rust于2026年7月首次进入TIOBE指数前十名。TIOBE指数于2026年7月庆祝其成立25周年。在2026年7月的TIOBE指数中,Python排名第一,其次是C和C++。TIOBE推出了编程语言流程图,帮助开发者根据具体用例选择语言。TIOBE指数基于熟练工程师、课程、供应商和网络搜索数据来衡量语言流行度。长期趋势显示,C、C++和Java在25年来一直保持顶级语言地位。反馈促使该指数得到改进,包括处理方言和增加SQL。该指数包含前50名语言的数据以及年度获奖者名人堂。对指数增强的建议包括添加非英语查询和跟踪最近添加的页面。完整的历史数据需付费获取,涵盖了自2001年以来的150多种语言。
Scarf has moved away from Haskell11 days agohttps://avi.press/posts/2026-07-10-after-7-years-in-production-scarf-has-relucta...由于AI改变了开发经济学,使得编译时间和生态系统摩擦成为显著瓶颈,Scarf从Haskell转向了Python。AI允许更快的代码生成,但Haskell的长编译周期阻碍了快速反馈,特别是在并行AI辅助的工作流程中。这一转变使得开发周期更快、测试覆盖率提高、热修复更迅速,且未因类型安全性降低而出现明显损失。如果Haskell不通过优化快速构建、文档和代理友好型工具来适应AI,将面临停滞风险。
G#: A modern .NET language with Go, Kotlin, and Swift ergonomics10 days agohttps://davidobando.github.io/gsharp/G# 是一种现代化的 .NET 语言,融合了受 Go、Kotlin 和 Swift 启发的人体工学设计特性。它包含包、函数、数据类、使用 'if let' 的可空处理以及带作用域的结构化并发等功能。源代码直接编译为托管程序集,可在 .NET 运行时上执行。提供的示例展示了一个包含打印“Hello, world!”的问候函数的简单包。
Python Is So Slow. Can Julia Solve the Two-Language Problem?7 days agohttps://www.wired.com/story/python-is-so-slow-can-julia-solve-the-two-language-p...图灵奖得主计算机科学家的获奖演讲常能在这一体裁的平庸中脱颖而出,成为具有影响力的例外。例子包括约翰·巴克斯坦1977年激发函数式编程的演讲、肯·汤普森1984年关于编译器后门的警告,以及埃兹赫尔·戴克斯特拉1972年对谦逊的呼吁。肯尼斯·艾佛森1979年的演讲《作为思维工具的符号》主张数学符号能促进发现,APL语言便是例证——这种编程语言专为融合数学与编程语言而设计。当今科学计算中的双语言问题表现为:用缓慢的Python进行原型开发,再用C++或Rust等快速语言重写性能关键部分。诞生于2012年的Julia语言旨在成为兼具Python人性化设计与C语言速度的统一语言,以解决此问题。Julia已形成严谨的学术社区,能实现显著加速(比Python快10至1000倍),但因Python生态强大且缺乏科技巨头采用,仍属小众语言。Julia被应用于ASML、CERN、NASA等机构的高性能领域,如药物研发与机器学习。双语言问题普遍存在于多个领域(如游戏开发中的C++/Lua、后端中的Python/Go),尚无语言能确定完全解决该问题。本文是AI赋能语言系列文章之一,反思了未来出现类似艾佛森洞见的创新潜力。
SendLang: A DSL for Email Automation6 days agohttps://www.sendlang.comSendLang 包含 SendQL(用于定义细分用户群的查询)和 SendFlow(用于管理滴水式工作流)。该语言支持版本控制、发送前错误检查,并与编程代理工具兼容。SendQL 整合原始事件流、联系人属性和送达规则,实现精准定向。SendFlow 提供结构化的控制流,避免使用 goto 或无限制循环,可直接映射为流程图。编程代理可利用机器可读文档和类型检查器来编写和迭代营销活动。设计侧重于黄金锚定语法、精确的诊断信息以及无损的文本-画布转换。
A Road to Lisp: Which Lisp4 days agohttps://scotto.me/blog/2026-07-17-which-lisp/Lisp是一个拥有多种方言的编程语言家族,不像Python或Java那样是单一语言的演化过程。初学者应专注于学习Lisp的编程概念,而无需纠结选择哪种方言,因为后续切换相对容易。Common Lisp(CL)成熟且自1994年标准化,拥有SBCL等多种实现,提供高性能、强大的REPL以及包含面向对象编程CLOS在内的全面功能。Clojure是运行在JVM上的现代Lisp,强调使用不可变数据结构进行函数式编程,被Nubank和Netflix等公司广泛应用于生产环境。Racket是一种面向语言设计的方言,非常适合创建新语言,具备卫生宏和Typed Racket等特性,并附带DrRacket集成开发环境。Elisp专门用于定制Emacs,可实时扩展编辑器功能。选择方言需根据需求:需要现代语法和JVM集成选Clojure,追求原生性能和交互性选Common Lisp,用于语言设计和图形界面选Racket,而Emacs定制则选Elisp。