更新UPDATES

Swift 6.2 并发实战:严格并发检查与服务端 Swift
开发
Swift 并发的终局形态 Swift 从 5.5 引入 async/await 与 Actor,到 6.0 引入完整的数据隔离检查(Complete Concurrency Checking),再到 6.2 的一系列易用性改进,目标始终清晰:让数据竞争在编译期被消灭,而不是靠运行时排查。 Swift 6 语言模式下,跨 actor 传递非 Sendable 类型会直接编译报错。这曾让迁移痛苦,6.2 则大幅降低了心智负担。 一、async/await 与结构化并发 swif...
.NET 10 与 C# 14 实战:性能、语法糖与云原生三管齐下
开发
.NET 10 的主线 微软把 .NET 10 定为 LTS(长期支持)版本,重点在三件事:极致性能、AI 集成、云原生体验。配合 C 14 的语法改进,写 .NET 代码的舒适度又上了一个台阶。 一、C 14:让样板代码消失 field 关键字:属性不用再写后备字段 csharp public class Order { public decimal Total { get; set; } // 以前需要 private decimal _discount; public ...
Java 25 新特性实战:虚拟线程、作用域值与结构化并发
开发
并发模型的彻底转向 Java 21 引入虚拟线程后,Java 的并发编程范式发生了根本变化:一个请求一个线程的写法重新变得可行,而且不再需要为了吞吐去写反人类的异步回调链。 Java 25 在这一方向上继续收敛:虚拟线程的性能与可观测性更好,配套的作用域值(Scoped Values)与结构化并发(Structured Concurrency)进入更成熟的阶段,同时语言层面的模式匹配也更加完整。 虚拟线程:便宜到可以随便创建 java import java.util.con...
Zig comptime 入门:把编译器当成你的运行时
开发
Zig 为什么值得看 Zig 是一个定位为“更好的 C”的系统级语言:没有隐藏控制流、没有隐藏内存分配、没有宏、没有异常,同时提供了 C 无法想象的元编程能力——comptime。 它的思路是:既然编译器在编译时已经知道所有类型信息,那为什么不干脆让你在编译期执行普通 Zig 代码? comptime 基础:编译期执行的普通代码 zig const std = @import("std"); // 编译期计算斐波那契,结果直接内联为常量 fn fib(comptime n: ...
WebAssembly 组件模型与 WASI 0.2:一次编译,到处嵌入
开发
从 "wasm 模块" 到 "wasm 组件" 传统 WebAssembly 的痛点在于接口:模块之间只能传递 i32/i64/f32/f64 四种数值,字符串、结构体都要靠手工管理线性内存和偏移量,跨语言调用极其痛苦。 组件模型(Component Model) 用 WIT(Wasm Interface Type) 解决这件事:用 IDL 描述接口,工具链自动生成绑定代码,让不同语言写的组件可以像函数调用一样互相调用。 第一个组件:用 Rust 编写 先定义接口: wit ...
Vite 7 + Rolldown:Rust 打包器如何重塑前端构建
开发
现状:Vite 的双引擎困境 Vite 之所以快,是因为它把工作分给了两个工具: - 开发态:esbuild 做依赖预构建(Go 编写,极快),浏览器原生 ESM 直接加载源码; - 生产态:Rollup 做打包(JS 编写,插件生态丰富,但受限于单线程 V8)。 问题在于两个引擎的行为不完全一致,某些插件在 dev 正常、build 报错;而且 Rollup 在超大项目上构建时间常常以分钟计。 Rolldown:用 Rust 重写 Rollup Rolldown 是 Vit...
Vue 3.6 Vapor Mode 与 alien-signals:响应式内核的再一次进化
开发
Vapor Mode 是什么 Vue 3 的渲染器走的是“虚拟 DOM”路线:组件渲染产生 VNode,再由 diff 算法找出最小变更。这套方案通用性强,但要付出创建 VNode、遍历、diff 的运行时开销。 Vapor Mode 是 Vue 的新一代编译策略:在编译阶段分析模板,直接生成“更新某个 DOM 节点属性/文本”的命令式代码,完全跳过虚拟 DOM 与 diff。它借鉴了 Solid 的思路,同时保留了 Vue 的模板语法与单文件组件体验。 开启方式 bash ...
Deno 2.x 实战:权限模型、npm 兼容与边缘部署
开发
Deno 2 的定位变化 Deno 最初以“修正 Node 的历史错误”为卖点:默认安全、原生 TypeScript、用 URL 导入模块。但现实是 npm 生态太大了,绕开它等于自我孤立。 Deno 2 因此做了一个关键转向:向后兼容 Node 与 npm。现在你可以在 Deno 里直接 import express from "npm:express",甚至运行一个已有的 Node 项目。这让 Deno 从“另一个运行时”变成了“更安全的 Node 替代”。 权限模型:默...
Bun 2.x 全栈实战:一个运行时搞定包管理、测试与部署
开发
为什么是 Bun Node.js 生态经过十几年演化,形成了一条“缝合”的工具链:npm/yarn/pnpm 装包、esbuild/swc 转译、jest/vitest 测试、tsc 类型检查、nodemon 热重载、dotenv 配置。每多一层,就多一份冷启动成本和配置心智负担。 Bun 用 Zig 编写、基于 JavaScriptCore,把包管理器、运行时、转译器、测试运行器、打包器塞进了一个二进制。它的口号很直白:让 JS 项目“开箱即跑”。 安装与初始化 bash ...
Go 1.25 深度解读:容器感知调度、泛型实践与结构化并发
开发
一、容器感知的 GOMAXPROCS Go 运行时终于“认识”cgroup 了。旧版本里 GOMAXPROCS 只按宿主机 CPU 核心数设置,一个限制为 1 核的容器跑在 64 核机器上,会创建 64 个 OS 线程去抢那 1 核的配额,结果是疯狂的上下文切换与 CFS throttling。 Go 1.25 起,运行时会自动读取 cgroup 的 CPU quota 并设置 GOMAXPROCS,且在 quota 变化时动态更新: go package main impo...
Python 3.14 三大革新:自由线程、t-string 与注解延迟求值
开发
一、自由线程:GIL 终于变成可选项 Python 3.14 最重磅的变化,是 free-threaded(无 GIL)构建正式进入支持阶段(PEP 703)。过去 CPython 靠全局解释器锁保证对象安全,代价是多核 CPU 上多线程只能“轮流跑”。现在官方提供了 python3.14t 这样的自由线程构建,CPU 密集的多线程代码终于能真正并行。 bash 安装自由线程版本(pyenv 示例) pyenv install 3.14t pyenv global 3.14t...
TypeScript 原生化编译器 tsgo 来了:10 倍提速下的类型体操新实践
开发
为什么要重写编译器 TypeScript 正在经历诞生以来最大的一次底层变革:官方把编译器从自举的 TypeScript/JavaScript 移植到了 Go,代号 tsgo(TypeScript Native)。原因很现实——tsc 与 VS Code 的语言服务跑在 V8 上,单线程、GC 压力大,在中大型仓库里一次全量检查动辄几十秒,编辑器跳转与补全也会随项目规模线性变慢。改用 Go 之后,可以天然利用多核并行、更紧凑的内存布局和更低的 GC 开销,官方给出的目标是编辑...