Voici une comparaison détaillée du SLOC (Source Lines of Code) entre Java et COBOL, basée sur des études récentes, des rapports industriels et des analyses de code source. Les chiffres varient selon les sources, mais voici une synthèse des tendances actuelles (2024-2026) :
Pourquoi moins de SLOC par projet ?
Un programme Java pour gérer une base de données peut tenir en 500 lignes grâce à Spring Boot, alors qu’un équivalent COBOL pourrait nécessiter 2 000 lignes (avec gestion manuelle des fichiers, des erreurs, etc.).
Pourquoi plus de SLOC ?
Un simple calcul de salaire en COBOL peut nécessiter 300 lignes (avec des divisions IDENTIFICATION, DATA, PROCEDURE, et des PERFORM explicites), alors qu’en Java, cela tiendrait en 50 lignes avec des objets métiers.
Taille moyenne des applications :
COBOL a une complexité cyclomatique plus élevée (beaucoup de IF…GOTO), ce qui le rend plus difficile à maintenir.
1 ligne de COBOL coûte 2 à 5 fois plus cher à maintenir qu’une ligne de Java, en raison de :
Java :
COBOL :
En Java (avec Spring Boot) :
@Service public class SalaryService { public double calculateSalary(Employee employee) { return employee.getBaseSalary() * (1 + employee.getBonusRate()); } }
Soit environ 10 lignes (hors imports et configuration Spring).
En COBOL :
IDENTIFICATION DIVISION. PROGRAM-ID. CALCUL-SALAIRE. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-BASE-SALARY PIC 9(7)V99. 01 WS-BONUS-RATE PIC 9(1)V999. 01 WS-TOTAL-SALARY PIC 9(7)V99. PROCEDURE DIVISION. MOVE EMPLOYEE-BASE-SALARY TO WS-BASE-SALARY. MOVE EMPLOYEE-BONUS-RATE TO WS-BONUS-RATE. COMPUTE WS-TOTAL-SALARY = WS-BASE-SALARY * (1 + WS-BONUS-RATE). DISPLAY "Salaire total: " WS-TOTAL-SALARY. STOP RUN.
Soit environ 20-30 lignes (sans compter les divisions LINKAGE SECTION ou FILE SECTION si le programme lit/écrit des fichiers).
Verbosité syntaxique :
Gestion manuelle des fichiers :
Absence de frameworks : COBOL n’a pas d’équivalent à Spring ou Hibernate. Tout est codé à la main.
Code dupliqué : Les programmes COBOL anciens contiennent souvent du code dupliqué (copier-coller historique).