¿Por qué aún incorporamos descripciones en lenguaje natural del código fuente (es decir, la razón por la que se escribió una línea de código) dentro del código fuente, en lugar de hacerlo como un documento separado?
Dada la gran cantidad de bienes raíces que se brindan a los entornos de desarrollo modernos (monitores de alta resolución, monitores duales, etc.), un IDE podría proporcionar paneles semi-bloqueados en los que el código fuente se separa visualmente de, pero está intrínsecamente vinculado a sus comentarios correspondientes Por ejemplo, los desarrolladores podrían escribir comentarios sobre el código fuente en un lenguaje de marcado hipervinculado (vinculando a requisitos de software adicionales), lo que simultáneamente evitaría que la documentación saturara el código fuente.
¿Qué deficiencias inhibirían tal mecanismo de desarrollo de software?
Una maqueta para ayudar a aclarar la pregunta:

Cuando el cursor está en una línea particular en el código fuente (se muestra con un fondo azul, arriba), la documentación que corresponde a la línea en el cursor se resalta (es decir, se distingue de los otros detalles). Como se señaló en la pregunta, la documentación permanecería sincronizada con el código fuente a medida que el cursor salta a través del código fuente. Una tecla de acceso rápido podría cambiar entre "modo de documentación" y "modo de desarrollo".
Las ventajas potenciales incluyen:
- Más código fuente y más documentación en la (s) pantalla (s) a la vez
- Posibilidad de editar documentación independientemente del código fuente (¿independientemente del idioma?)
- Escriba documentación y código fuente en paralelo sin conflictos de fusión
- Documentación hipervinculada en tiempo real con formato de texto superior
- Traducción automática casi en tiempo real a diferentes idiomas naturales
- Cada línea de código se puede vincular claramente a una tarea, requisito comercial, etc.
- La documentación podría marcar la hora automáticamente cuando se escribió cada línea de código (métrica)
- Inclusión dinámica de diagramas de arquitectura, imágenes para explicar relaciones, etc.
- Documentación de fuente única (p. Ej., Fragmentos de código de etiqueta para la inclusión del manual del usuario).
Nota:
- La ventana de documentación se puede contraer
- El flujo de trabajo para ver o comparar archivos de origen no se vería afectado
- Cómo ocurre la implementación es un detalle; la documentación podría ser:
- guardado al final del archivo fuente;
- dividido en dos archivos por convención (
filename.c,filename.c.doc); o - totalmente basado en bases de datos
- Por documentación hipervinculada, me refiero a vincular a fuentes externas (como StackOverflow o Wikipedia) y documentos internos (es decir, un wiki en un subdominio que podría hacer referencia cruzada a la documentación de requisitos comerciales) y otros archivos fuente (similares a JavaDocs).
Tema relacionado: ¿Qué pasa con la aversión a la documentación en la industria?
Gson() se instancia el objeto en relación con la clase MainActivity, ni cómo se relaciona con la resolución de un requisito comercial particular. La descripción del código en sí, en lugar de las API que usa, podría estar en una ventana separada, independientemente de los JavaDoc de terceros.
