Qu'est-ce qui arriverait si les programmeurs écrivent que des papiers sans faire de code pour expliquer comment faire les programmes ?
Code vs. documentation

— Alistair Cockburn
Programmeurs

Les programmeurs informatiques sont ceux qui écrivent des logiciels. Leur travail implique généralement :

Bien que la programmation soit souvent présentée dans les médias comme une matière plutôt mathématique, certaines recherches montrent que les bons programmeurs possèdent de solides compétences en langues naturelles et que l'apprentissage du code est similaire à l'apprentissage d'une langue étrangère.
### Query ###
Qu'est-ce qui arriverait si les programmeurs écrivent que des papiers sans faire de code pour expliquer comment faire les programmes ?

### Main Text ###
Code vs. documentation

— Alistair Cockburn

### Supplementary Text ###
Programmeurs

Les programmeurs informatiques sont ceux qui écrivent des logiciels. Leur travail implique généralement :

Bien que la programmation soit souvent présentée dans les médias comme une matière plutôt mathématique, certaines recherches montrent que les bons programmeurs possèdent de solides compétences en langues naturelles et que l'apprentissage du code est similaire à l'apprentissage d'une langue étrangère.

### Draft ###

### 1. Query Parsing

"Qu'est-ce qui arriverait si les programmeurs écrivent que des papiers sans faire de code pour expliquer comment faire les programmes ?"

Breaking down: "écrivent que des papiers" = write papers/documents only. "expliquer comment faire les programmes" = explain how to make programs.

Key assumption to challenge: writing ≠ coding. False binary.

### 2. Problem Identification

Core issue: User thinks papers replace code. Wrong framework.

Reality check → Software = executable specifications. Papers are interpretive.

Gap between:
- Intentional system design  
- Runtime behavior

### 3. Consequences Analysis

**Immediate problems:**

No compilation → no execution → no verification against reality.

Papers become:
- Academic exercises ◐
- Documentation artifacts ●  
- ~~Executable~~ → interpretive specifications ○

**Communication breakdown:**

Human → Natural language → Formal specification → Code

Missing step: formal verification that natural language maps to intended behavior.

### 4. Historical Context

⟨H≈0.8⟩ Think Dijkstra's "Notes on Structured Programming," Knuth's "The Art of Computer Programming" - these are *foundational* not replacements for implementation. Academic papers in CS often pseudo-code heavy, mathematical, but still incomplete without actual compilation... ⟨/H⟩

NB: Academic CS ≠ practical software development

### 5. Verification Problem

Papers lack:
- Type checking
- Runtime error detection  
- Performance metrics
- Boundary condition testing

∴ Papers become marketing materials, not engineering artifacts.

### 6. Practical Constraints

Software development reality:
- Code reviews mandatory ●
- Testing pipelines essential ●
- Deployment requires compilation ●

Papers alone = academic exercise, not software product.

### 7. Synthesis

Answer framework:
1. Challenge premise (writing ≠ coding)
2. Explain verification gap
3. Historical context 
4. Practical constraints
5. Consequence: academic artifacts, not software

**Key insight !** 
Good programmers know: documentation IS code. Comments, variable names, function signatures - all executable specifications.

Papers without code = incomplete communication. Code without papers = unmaintainable mess.

∴ Balance essential. Papers supplement, don't replace.

### Answer###
Cette question soulève une distinction importante entre la programmation et la documentation technique. Les programmeurs informatiques sont principalement chargés d'écrire du code logiciel, mais leur travail va bien au-delà de l'écriture de programmes. Ils doivent également documenter leur travail pour expliquer comment les logiciels fonctionnent et comment les développer.

La programmation implique généralement plusieurs étapes : la conception du logiciel, l'écriture du code, les tests, la maintenance et la documentation. L'aspect documentation est crucial car elle permet aux autres programmeurs de comprendre le code existant, de le maintenir et de le développer.

Écrire uniquement des documents sans code créerait un écart significatif entre l'intention et la réalisation. Les documents pourraient expliquer comment faire les programmes de manière théorique, mais ils ne fourniraient pas les spécifications techniques détaillées nécessaires pour la mise en œuvre pratique. De plus, l'absence de code rendrait difficile la vérification des hypothèses et la mise en œuvre des solutions proposées.

Cette approche académique ne correspond pas aux standards pratiques du développement logiciel professionnel, où le code et la documentation travaillent en symbiose pour produire des logiciels fonctionnels et maintenables.