The Problem with Judging Programming Languages by Declaration Syntax Alone
By
todsacerdoti
Sesame, salt, and substance. A flagship bake.
Summary
The article critiques the practice of judging programming languages based solely on their declaration syntax, arguing that syntax is superficial and can be easily changed without affecting the language's core semantics. The author categorizes declaration syntax into three types (type-focused, name-focused, qualifier-focused) and emphasizes that language semantics are more important than syntactic preferences when choosing a programming language.
Key quotes
· 4 pulledI am still perplexed by how people judge a language purely by its declaration syntax, and will decide whether to use the language purely based on whether they like that aspect or not
When designing a language, if your semantics are pretty clear you can trivially change this declaration syntax and the semantics of the language will be mostly the same (if not identical)
The general categories of declarations can be classified as the following: type-focused, name-focused, qualifier-focused
People seem to get hung up on these superficial aspects rather than focusing on what really matters - the language's semantics and capabilities
You might also wanna read
Dynamic Borrow-Checking in a Toy Programming Language: Implementing Rust-like Memory Safety Without Static Types
This article presents a demonstration of a toy programming language that implements borrow-checking without static type-checking. The langua
C++26 Standard Draft Finalized with Reflection, Memory Safety, Contracts, and New Concurrency Framework
The C++26 standard draft has been completed, introducing major new features including reflection capabilities that allow C++ to describe its
Understanding Fil-C: A Simplified Model of Memory-Safe C/C++ Implementation
The article presents a simplified model of Fil-C, a memory-safe implementation of C/C++. It explains that while the real Fil-C uses a compil
Sky: An Experimental Elm-Inspired Programming Language That Compiles to Go
Sky is an experimental programming language that combines Go's pragmatism with Elm's elegance to create a fullstack functional programming l
Analyzing Rust's Coherence and Orphan Rules: Ecosystem Development Challenges and Proposed Solutions
This article critiques Rust programming language's coherence rules and orphan rules, which prevent implementing traits for types defined in
SBCL Fibers: Implementation Design for Lightweight Cooperative Threads
This is a draft design document describing the implementation of lightweight userland cooperative threads (called 'fibers') for SBCL (Steel
