Invite People

Share 4 Engineers with your friends and help them get started!

Emails
Enter multiple email addresses by separating it with a comma.
Back
4Engineers
· Martin Fowler
AI summary

The article argues that code serves two intertwined roles: precise instructions for machines and a shared conceptual model of the problem domain for humans. It emphasizes building a clear domain vocabulary through names, types, and abstractions, noting that programming languages are tools that shape how we think and communicate about systems. As LLMs and agents generate more code, the human role shifts toward defining intent, crafting domain models and specifications, and validating that generated code faithfully represents the real-world concepts—suggesting code’s modeling function will remain essential even if its form changes.

Question: As AI handles more of the typing, which parts of software creation should stay primarily human-driven—domain modeling, specification and testing, architectural decisions, or something else?

What is Code

This article was originally posted on martinfowler.com.

Increasingly humans delegate writing code to agents. Will there even be source code in the future? To wrestle with this question, we have to understand what code is. Unmesh Joshi sees code as having two distinct but intertwined purposes: instructions to a machine and a conceptual model of the problem domain. He explores why it's vital to build a vocabulary to talk to the machine, how programming languages are thinking tools, and how this affects our future as we work with LLMs.

more…

Login to comment

Login
Report content
Reason Description