Programming Languages
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.
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.
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.
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.
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.
Neut is a functional programming language featuring static memory management without GCs or regions, using a type-directed approach for resource handling. The language supports full λ-calculus and automatic memory management without type system annotations, while offering built-in LSP support and formatter capabilities.
Julia programming language's 1.11 release brings significant improvements in binary size reduction, web browser compatibility, and tooling enhancements through juliaup. The upcoming 1.12 release promises refined static compilation capabilities, potentially expanding Julia's reach beyond its scientific computing roots.
A comprehensive exploration of Tcl programming language's core concepts, highlighting its powerful features including dynamic command substitution, runtime flexibility, and built-in event-driven programming capabilities. The article defends Tcl's legitimacy as a serious programming language while explaining its unique approach to command-based programming and list manipulation.
A developer shares their journey transitioning from Java/Kotlin to Go, highlighting significant improvements in startup times and resource consumption. The switch brought unexpected benefits despite initial hesitation, with Go proving particularly effective for cloud-native applications and Kubernetes tooling.
A developer introduces scheme-rs, a work-in-progress R6RS implementation designed for seamless interoperability with async Rust. The project aims to solve async Rust's debugging and iteration challenges while serving as a foundation for a future language called Gouki, which will combine Scheme's macro system with advanced typing features.
A comprehensive compilation of the top 100 most-watched software engineering talks from 2024, featuring presentations from major tech conferences with topics ranging from AI and language models to system architecture and programming languages. The most-viewed talk reached 139k views, focusing on Large Language Models, while other popular topics included OpenTelemetry, DuckDB, and web development.
A comprehensive introduction to k, a family of concise vector-oriented programming languages designed by Arthur Whitney, exploring its various generations and implementations. K emphasizes terseness and execution speed, making it particularly powerful for data analytics and transformation, while maintaining a minimalist approach with no standard libraries.
A comparative analysis between Ada and Rust programming languages in safety-critical applications highlights Ada's 40-year dominance and Rust's recent emergence in this space. The presentation focuses on Ada's distinctive features for bug prevention, particularly its subtype declarations, and evaluates Rust's current capabilities in comparison.
An in-depth comparison of memory safety features between Rust and Ada programming languages, examining how each handles common memory-related errors like buffer overflows, use-after-free, and race conditions, while highlighting their unique approaches to preventing these issues through compile-time checks and runtime protections.
Game developer Jonathan Blow argues that software abstraction and loss of low-level programming knowledge threatens civilization's stability, while the author presents extensive counterarguments showing historical inaccuracies and misconceptions in Blow's claims, particularly regarding software robustness and programmer productivity over time.
Carbon is Google's experimental open-source project aimed at developing tooling for automated migration of C++ code to a modern programming language with improved governance. The project emerges from Google's disagreements with the C++ Standard Committee and focuses on solving C++'s evolution challenges while maintaining interoperability with existing codebases. Unlike other successor languages, Carbon prioritizes automated code migration and fundamental language rework while building stronger abstractions.
An experienced software developer shares evolving perspectives on industry practices, highlighting shifts in views about simplicity, technology choices, and team dynamics over a decade. The insights cover technical aspects like database selection and programming paradigms, while emphasizing the importance of communication and mentorship in engineering.
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.
A detailed explanation of the decision to rewrite the Roc compiler from Rust to Zig, highlighting how self-hosting is common in compiler development and discussing the technical advantages of Zig for this specific project. The rewrite aims to implement significant design changes for Roc 0.1.0, focusing on improved reliability, documentation, and maintainability.