No puedo mejorar la respuesta de Charles H Martin para “por qué”, pero tal vez pueda arrojar algo de luz sobre la pregunta secundaria de cómo podría verse el código escrito por los científicos desde una perspectiva de ingeniería de software. Estas son las cosas que noté cuando miré el código de los científicos durante la depuración.
- Alto acoplamiento interno. Funciones largas, muchas variables globales, cálculo mezclado con E / S mezclado con interacción del usuario.
- No a prueba de futuro. Pocas funciones de biblioteca diseñadas para ser llamadas desde muchos lugares, sin clases o separación de políticas versus mecanismos, sin versiones de estructura / formato. El código resuelve un problema, unidireccional, una vez.
- Inescrutabilidad general. Nombres de variables cortos / sin sentido, pocos comentarios, sangría loca.
- Sin makefiles, control de versiones primitivo. No son exactamente problemas de código. pero también característico.
Ninguno de estos es indicativo de estupidez o incompetencia. Solo son indicativos de no haber sido entrenados como programadores , lo cual es natural para las personas que estaban ocupadas entrenando en algo aún más difícil. Más clases de “ingeniería de software para científicos”, o emparejamiento de científicos con programadores, podrían ayudar. Por otra parte, si el código de los científicos hace lo que los científicos quieren, puede que no valga la pena. Es posible que nuestros estándares no se apliquen, y nuestra estética ciertamente no.
- ¿Qué opinas de los programas de maestría ofrecidos por Data Science Tech Institute (París)?
- ¿Cuál es el mejor curso de especialización en ciencias de datos en línea?
- ¿Cuánto conocimiento de estadísticas básicas se utiliza realmente en la ciencia de datos moderna?
- Aprendizaje profundo: ¿Cuándo aplicamos la eliminación de ruido en el codificador automático de eliminación de ruido?
- ¿Cuál es el caso de uso más importante de la ciencia de datos en telecomunicaciones?