Rails is better low code than low code

What “low code” means and common tools

  • Defined broadly as drag‑and‑drop / visual tools (Power Apps, Access, SSIS, Zapier, Make.com, Salesforce, FME, APEX) where most work is configuration; often with an “escape hatch” to real code (e.g., JavaScript, VBA, lambdas).
  • Some argue Excel and Access are the original and most successful low‑code platforms; also domain tools like Simulink, Houdini, game/shader node graphs.
  • Others ask for tools that generate clean, ejectable code in a mainstream language, not opaque runtimes.

Strengths and limits of low/no‑code

  • Very fast for simple internal tools, prototypes, or when non‑developers need self‑service automation.
  • Ubiquity and zero‑install friction (e.g., spreadsheets, SharePoint/PowerAutomate) are major advantages.
  • Pain points: duplication-heavy GUIs, poor refactorability, hidden complexity, weak version control, lock‑in, scaling/maintenance nightmares, and security/compliance blind spots.
  • Some see them as effective for organizations where IT can’t meet demand; others say such “shadow IT” later has to be rewritten or absorbed by central IT.

Rails vs low code (and other frameworks)

  • Many agree Rails (and similar frameworks like Django, Phoenix, Elixir, ASP.NET) already feel “low code” due to scaffolding, conventions, batteries‑included features, and rich ecosystems.
  • Rails praised for: rapid greenfield CRUD development, predictable structure, easy onboarding, and Ruby’s metaprogramming/monkey‑patching for extension.
  • Critiques: long‑lived large Rails apps can devolve into tightly coupled “big balls of mud,” especially with fat models and heavy magic; refactoring and upgrades can be risky.

Static vs dynamic typing and LLMs

  • Strong disagreement over dynamic languages (Ruby, Python, JS) vs statically typed ones (C#, Rust, Kotlin, TypeScript, etc.).
  • Pro‑static camp: static types catch LLM hallucinations and library breakages earlier; dynamic ecosystems can hide breaking changes until production.
  • Pro‑dynamic camp: tests plus flexibility suffice; Ruby’s dynamism simplifies testing and monkey‑patching; static typing can feel like unnecessary drag.
  • Some argue LLM‑assisted coding reduces the appeal of low‑code, and may favor languages/models with strong type information and good training coverage.

Broader perspectives

  • Several note that low‑code/RAD ideas (4GLs, VB, Delphi, Access) have cycled for decades; the underlying complexity never disappears.
  • Consensus: right tool depends on who builds/maintains it, expected lifetime, complexity, and organizational constraints; knowing when to stop using low‑code and rewrite is crucial.