What ORMs have taught me: just learn SQL (2014)
The author argues that Object-Relational Mappers (ORMs) often create more problems than they solve by hiding SQL complexity, and that developers should instead invest time in properly learning SQL for better database performance and understanding.
Background
- The author (Wozniak, no relation to Apple's Steve Wozniak) argues that Object-Relational Mappers (ORMs)—libraries like Rails' ActiveRecord, Django's ORM, or Hibernate—do more harm than good by hiding SQL behind an object-oriented abstraction layer.
- An ORM lets developers write code in a programming language (e.g., Python, Ruby, Java) to query a database instead of writing raw SQL. But the abstraction often leaks: complex queries produce slow, inefficient SQL, and developers end up fighting the tool rather than learning the underlying database language.
- This post reflects a longstanding debate in web development (circa 2014 but still relevant): many programmers came to ORMs to avoid learning SQL, only to discover that understanding SQL directly is unavoidable for building performant, correct database interactions.
- The piece is representative of the "back to basics" sentiment that has since grown into a broader rejection of heavy framework abstractions in favor of simpler, more explicit tools.