Desde el punto de vista de un físico y el tipo de problemas que le gustaría que resolviera un programa de computadora, ¿cuáles son los lenguajes de programación esenciales que un físico debería saber?
Sé C++ y he trabajado en ROOT. También he encontrado que Mathematica es silencioso y esencial, sin embargo, desde que cambié a una máquina Linux, he estado probando Sage, que también es bueno, aunque no silencioso al mismo nivel en este momento. Descubrí que C ++ es realmente rápido, eficiente y más adecuado para cosas como las simulaciones de Monte Carlo. Sin embargo, parece que scimpy también es bastante popular. ¿Valdría la pena invertir tiempo en aprender Python, es decir, tendría ganancias significativas?
También encuentro muy atractivo el concepto de lenguajes de programación funcionales. Creo que los físicos, a diferencia de muchos programadores, están más inclinados a pensar de esta manera que de forma iterativa. Haskell parece un buen candidato y también he oído que es ideal para simular algoritmos cuánticos en máquinas clásicas. ¿Alguien está familiarizado con eso?
Además, ¿qué pasa con los lenguajes de secuencias de comandos? No conozco ninguno de esos, excepto la navegación básica de directorios en bash. ¿Hay alguna utilidad en Perl y lo que sea que esté disponible (sé poco sobre esto)
En física computacional (y otras disciplinas computacionales), no se presta suficiente atención (la mayor parte del tiempo) a los problemas de reproducibilidad y se presta demasiada atención a la velocidad de ejecución. La principal ventaja de los lenguajes "alfabetizados" como Python es que es bastante fácil escribir código legible, fácilmente documentable y comprobable, y hacerlo rápidamente. Eso hace que sea más probable que el código sea "correcto", y más probable que otros puedan entender lo que ha hecho (requisitos básicos en el trabajo experimental). Como mínimo, python y otros lenguajes de alto nivel como este son excelentes para crear prototipos de algoritmos antes de dedicar el esfuerzo a ajustar C ++ o código fortran, y para muchas tareas en las que la velocidad de ejecución no importa en absoluto, uno también podría hacerlo. todo el trabajo "literalmente".
Consulte el proyecto Software Carpentry (http://software-carpentry.org/) para obtener más información sobre computación científica, reproducibilidad y Python.
dmckee --- gatito ex-moderador
Marcos Eichenlaub
bjornw
dmckee --- gatito ex-moderador
Pedro Shor
aproximativo
Vladimir F Героям слава