Một dự án open source mang tên sp.h vừa xuất hiện trên Hacker News, hứa hẹn tái định nghĩa cách lập trình viên viết C. Đây là một single-header library, dài 15.000 dòng code C99, không phụ thuộc vào libc trừ khi bắt buộc bởi nền tảng. Tác giả cho rằng libc đã trở nên có hại: nó không cung cấp interface hữu ích cho cả chương trình đơn giản lẫn phức tạp, đặc biệt trong kỷ nguyên lập trình bất đồng bộ.

Thay đổi cách quản lý bộ nhớ

sp.h loại bỏ khái niệm heap mặc định, thay vào đó buộc lập trình viên dùng allocator rõ ràng. Thư viện định nghĩa kiểu sp_mem_t gồm con trỏ hàm và user data, giúp lập trình viên kiểm soát chính xác cách cấp phát, giải phóng bộ nhớ. Điều này phản ánh thực tế: hệ điều hành chỉ cấp page, còn malloc() chỉ là ảo tưởng hữu ích. Với sp.h, heap allocation là opt-in, không phải default.

Bỏ null-terminated strings, dùng slices

Tác giả gọi null-terminated strings là \"công việc của quỷ\". Thay vào đó, sp.h dùng string slices (con trỏ + độ dài), giúp tránh lỗi tràn bộ đệm (buffer overflow) phổ biến trong C truyền thống. Đây là bước tiến quan trọng cho các ứng dụng cần độ tin cậy cao như hệ thống nhúng, máy chủ, phần mềm bảo mật.

Dự án sp.h hiện có sẵn trên GitHub, kèm nhiều ví dụ và các \"baseball libraries\" mở rộng. Đối với cộng đồng lập trình viên công nghệ, đây là tín hiệu cho thấy ngay cả ngôn ngữ 50 năm tuổi như C vẫn có thể được cải tiến triệt để. Các dự án cần hiệu năng cao và kiểm soát bộ nhớ chặt chẽ sẽ có thêm lựa chọn để viết code an toàn hơn, gần với syscall hơn.