SShortSingh.
Back to feed

Programming Language Progress Works by Removing Capabilities, Not Adding Them

0
·1 views

Software architect Robert Martin, in his book Clean Architecture, argues that the three major programming paradigms—structured, object-oriented, and functional—each advanced the field by prohibiting dangerous capabilities rather than introducing new ones. Structured programming banned the unrestricted 'goto' jump, object-oriented programming replaced wild indirect function calls with compiler-guaranteed methods, and functional programming eliminated mutable assignment to prevent shared-state bugs. Martin concluded from this pattern that no fourth paradigm exists, since there is nothing left to remove. However, his 2017 bet was already being undermined: Rust, released in 2015, removed shared mutation to eliminate data races at compile time, and structured concurrency, introduced in 2018, banned unconstrained task spawning. These two developments suggest the subtraction-as-progress model continues beyond the three classical paradigms Martin identified.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

AI-Built Apps Ship Fast But Miss Security Basics, Leaving Sites Exposed

A founder who built and launched a SaaS product entirely using an AI coding assistant discovered within days that API keys were exposed in client-side code, allowing bad actors to bypass paywalls and corrupt the database. The incident highlights a broader pattern: AI coding tools deliver what they are asked for, but launch security depends on checks that no one thinks to request. Similar oversights recur in WordPress deployments, including leaving search-engine indexing disabled, exposing debug logs containing credentials, and keeping the default 'admin' username that bots routinely target. An industry study found that nearly half of AI-generated code samples contained security weaknesses, not due to model failure but because security requirements were absent from the original prompts. The core problem is a shared blind spot — experienced reviewers catch these issues automatically, but faster, AI-assisted development means more code reaches production without that layer of scrutiny.

0
ProgrammingDEV Community ·

Probo-UI Lets Python Developers Write HTML Without Template Files

A new tutorial series on DEV Community introduces Probo, a Python-first declarative UI rendering framework that eliminates the need for HTML template files. The framework allows developers to write all presentation logic directly in Python using functions and classes, removing reliance on template languages like Jinja2. Probo auto-escapes user-submitted text content by default, offering built-in protection against cross-site scripting vulnerabilities. The series aims to guide developers from basic HTML element creation to building production-grade interfaces, including server-side DOM manipulation and HTMX-based interactivity. Completed projects can be deployed using Gunicorn or Uvicorn web servers.

0
ProgrammingDEV Community ·

Why AI Agents Fail on Accessible-Looking Websites That Pass All Scans

Static accessibility scanners evaluate a webpage's DOM at a single point in time, meaning they never interact with dynamic elements like modals, error messages, or date pickers that only appear after user actions. Unlike scanners, AI agents navigate entire user flows step by step, reading the accessibility tree after each interaction, making them vulnerable to structural gaps invisible to automated tools. Common problem patterns found in real audits include modals lacking proper dialog roles and focus management, form errors rendered without ARIA live regions, and custom components that intercept keyboard events. These issues routinely pass automated WCAG checks yet consistently cause AI booking agents to fail, retry endlessly, or abandon tasks entirely. As AI-driven automation becomes more widespread, the cost of skipping robust dynamic accessibility practices extends beyond individual users to every automated process interacting with a site.

0
ProgrammingDEV Community ·

How to Add Newsletter Opt-In to Rails 8 Signup Using Vault and Courrier

A new tutorial demonstrates how to integrate newsletter subscriptions into a Rails 8 signup flow using two Ruby gems: Rails Vault and Rails Courrier. Developers add a simple opt-in checkbox to the signup form, storing the user's preference via Rails Vault, which manages settings and preferences for ActiveRecord models. Rails Courrier then handles API-powered email delivery, supporting providers such as Mailgun, Postmark, Resend, and Buttondown. The guide walks through gem installation, database migration, model updates, and initializer configuration to wire the subscription logic together. All accompanying code is available in the Rails 8 Authentication repository for reference.

Programming Language Progress Works by Removing Capabilities, Not Adding Them · ShortSingh