2025-02-05

Zig; what I think after months of using it

A developer shares their experience with Zig after months of usage, highlighting both strengths and significant concerns about the language's design choices and safety guarantees, particularly comparing it to Rust and questioning its approach to simplicity over memory safety.

Original archive.is archive.ph web.archive.org

Log in to get one-click access to archived versions of this article.

read comments on news aggregators:

Related articles

0.14.0 Release Notes

Zig 0.14.0 introduces major updates including expanded cross-compilation capabilities, improved target support, and incremental compilation features aimed at reducing edit/compile/debug cycle latency, along with significant build system upgrades and language changes.

Effective Rust

A comprehensive guide presenting 35 specific methods to enhance Rust programming practices, covering essential topics from type systems to FFI boundaries. The guide is structured into six main sections, focusing on types, traits, concepts, dependencies, tooling, and advanced Rust features. Each item provides detailed insights for writing more effective and maintainable Rust code.

Smart Pointers Can't Solve Use-After-Free

Smart pointers in C++ cannot fully prevent use-after-free vulnerabilities due to internal raw pointers in types beyond user control. Examples with std::vector, std::span, and std::lock_guard demonstrate how iterator invalidation and pointer mismanagement can still lead to memory safety issues regardless of smart pointer usage.

Abusing C to implement JSON Parsing with Struct Methods

A detailed guide on building a JSON parser in C, focusing on creating a memory-safe implementation with an ergonomic API and struct-attached functions as methods. Key features include comprehensive compiler flags setup, robust memory management, and simplified JSON value representation.

Securing tomorrow's software: the need for memory safety standards

Memory safety vulnerabilities have been a persistent security challenge costing billions, prompting a call for industry-wide standardization and secure-by-design practices. Recent advancements in memory-safe languages like Rust and hardware technologies offer promising solutions for widespread adoption. Google advocates for establishing a common framework to assess memory safety assurances and drive industry-wide adoption of secure practices.

Gleam, coming from Erlang

A developer shares their experience building a feed aggregator using Gleam, a type-safe language running on the Erlang VM. The article explores Gleam's features, including its type system, error handling, and OTP integration, while highlighting both strengths and challenges in implementing a real-world application.

Wiki

A developer explores GDScript, Godot's custom programming language, providing detailed analysis of its features, type system, and design choices. The language combines Python-like syntax with stronger typing and modern features like pattern matching, proving to be surprisingly well-designed for game development despite initial skepticism.

Introduction

Vine is an experimental programming language built on interaction nets, offering seamless integration between functional and imperative programming paradigms. The language is currently under active development with examples available for exploration.

The Vine Programming Language

Vine is a new programming language designed for web development that aims to combine modern features with simplicity and performance. The language emphasizes safe concurrency, static typing, and seamless JavaScript interoperability while maintaining a familiar syntax for experienced developers.