The Folly of Natural Language Programming

2025-04-03

This article critiques the notion of natural language programming. The author argues that while using natural language as a programming interface seems to simplify human-computer interaction, it drastically increases machine complexity and potentially leads to more undetectable errors. Historical experience shows that the precision and rigor of formal languages (like mathematical notation) are key to efficient information processing. The ambiguity and vagueness of natural language, conversely, would hinder the advancement of computer science. Instead of pursuing the convenience of natural language programming, the author advocates for appreciating the precision and efficiency offered by formal languages as the correct path for the advancement of computer science.

Read more
Development

Why Array Indices Should Start at Zero

2025-03-21

This essay argues why array indices in computer science should begin at zero, not one. Through mathematical reasoning and examples from programming languages, the author demonstrates the superiority of zero-based indexing: it's more mathematically consistent, avoids ambiguous boundary conditions, and leads to cleaner, more efficient code. The piece also touches upon historical inconsistencies in programming language index choices and their resulting inconveniences.

Read more
Development indexing arrays

The Essence of Computing Science: Elegance over Complexity

2024-12-24

This essay by Edsger W. Dijkstra explores the nature of computing science. Dijkstra argues that computing science should be a highly formalized branch of mathematics, emphasizing methodology over factual knowledge, thus bridging the gap between theory and practice. He criticizes the current academic world's pursuit of complexity and the resulting neglect of simple and effective solutions, and calls on computer scientists to pursue elegant solutions and find joy in the process.

Read more