C ++ es rápido . Es muy útil cuando tiene que cargar una gran cantidad de datos y no está particularmente interesado en permitir la latencia. El CERN genera 50,000 GB en una ejecución del LHC, una gran cantidad de datos que debe analizar en un tiempo razonable. Python, en comparación, es lento y no es adecuado para operaciones vinculadas a la memoria.
C ++ es optimizable . Está lo suficientemente cerca del hardware para permitir una optimización notablemente buena, y su gestión explícita de la memoria significa que puede tener algunas aceleraciones muy rápidas. No es tan de bajo nivel como C, aunque no es tan de alto nivel que pierde la noción de lo que se propone lograr.
C ++ es popular . Muchos sistemas sobreviven con código heredado, construido mucho antes de que Java y Python se pusieran de moda. Los primeros físicos que construyeron esos sistemas usaron C ++, se lo enseñaron a sus alumnos, quienes a su vez lo enseñaron a sus alumnos, y así sucesivamente. Cuando eres físico y estás aprendiendo a codificar por primera vez, es mucho más probable que adoptes un lenguaje para el que tu laboratorio tenga un amplio respaldo.
- En JavaScript, cuando una función devuelve un objeto, ¿por qué se le pega ese objeto como la propiedad de un objeto?
- Tengo 14 años. ¿Debo aprender física cuántica o es demasiado difícil?
- El teorema de incompletitud de Godel no se aplica a todos los dispositivos computacionales, ¿solo a la máquina de Turing?
- Cómo medir la vibración cuántica
- Si tuviera que encontrar un método algo plausible para usar el entrelazamiento cuántico para la comunicación entre galaxias, ¿cómo lo describiría?
C ++ está en todas partes . Muchos sistemas de recopilación de datos solo necesitan algo un poco más alto que el ensamblador. Los físicos no solo están involucrados en la codificación, también están ocupados haciendo los instrumentos que eventualmente vuelan al espacio o se sientan en laboratorios subterráneos. Eso significa que necesita sistemas de microprocesador, y debe poder codificar esos sistemas de microprocesador, y muy a menudo esos sistemas de microprocesador se prestan a un uso fácil de C ++: Arduinos, por ejemplo, usa C ++ como su idioma predeterminado. ¿Por qué permanecer distante cuando su experimento depende de algo como esto?
Dicho esto, no es tan común como pretendes que sea. Yo mismo no conozco C ++, y la mayoría de los físicos teóricos que conozco se sienten mucho más cómodos usando algo como Mathematica, Sage o Python. Los físicos experimentales tienden a estar en todo el espectro, usando C ++ y cualquier cosa a la mano para realmente poner en funcionamiento sus sistemas, mientras que aquellos que trabajan con grandes conjuntos de datos terminan usando MATLAB, IDL o C ++. Un puñado de físicos conoce Java, particularmente si están haciendo actividades de divulgación o creando aplicaciones móviles (realmente, se sorprendería de lo útil que puede ser una notificación push si tiene equipos de laboratorio sensibles en funcionamiento). Usar procesos de shell y Linux no es infrecuente. Los físicos de partículas, en particular, son conocidos por usar ROOT, una plataforma de trazado basada en Linux y difícil de usar si no sabes lo que estás haciendo.
Los físicos, como los ingenieros de software, están en todo el espectro de codificación y software. Algunos son realmente buenos para implementar procesos multiproceso; otros en algoritmos numéricos de alta velocidad; otros en visualizaciones impresionantes; otros en la recolección de datos. El sesgo de muestreo probablemente tenga la culpa de darle esta impresión errónea del físico exclusivo de C ++.