TL; DR elige el que te ayude con tus objetivos más críticos. (Curva de aprendizaje / tiempo de codificación, tiempo de ejecución, seguridad crítica, etc.)
Siempre hay compensaciones al elegir una herramienta para una tarea. Digamos que para un martillo puede elegir uno que sea seguro para su dedo, fácil de usar, pero no tan eficiente para derribar las uñas rebeldes. Puedes conseguir uno de esos enormes de metal desnudo para hundir el clavo con un buen golpe, pero luego puedes golpear fácilmente tu dedo. Ah, y también están aquellos que ayudan a deshacer esos clavos de la madera.
Para hacerlo aún más extremo, si un lenguaje de programación fuera natural, ¿utilizarías el inglés si estuvieras en Tailandia (podrías, pero sería incómodo que hablar en un idioma nativo)?
- ¿Es mejor convertirse en desarrollador de software ahora o en el futuro?
- ¿Por qué el scrum (metodología ágil) siempre se describe teóricamente y no prácticamente en ningún sitio?
- ¿Qué haría si descubriera que el proyecto que inició para su cliente no puede hacerse técnicamente?
- Soy un graduado de BTech y trabajo como desarrollador de software. ¿En esta etapa puedo estudiar para una AC y convertirme en un contador público?
- ¿Tendrá éxito un programador súper competitivo (resolución de algoritmos) como ingeniero de software?
C / C ++ es un primer lenguaje clásico y el más rápido de ejecutar, pero no es fácil de aprender y muy inseguro.
Python es muy rápido de aprender y muy rápido de codificar y hacer el trabajo, muy utilizado científicamente, pero lento para ejecutar y mensajes de error mediocres.
JavaScript / Node se puede ejecutar (casi) en cualquier lugar, es muy fácil de aprender y productivo, pero es críptico y se comporta de manera inesperada, lo cual es difícil de depurar. La ventaja es que JavaScript también se ejecuta en la web, por lo que puede ejecutar un front-end web en el que su cliente pueda usar para interactuar fácilmente con el sistema (la mayoría de los otros idiomas tienen enlaces para la GUI nativa).
Go es genial, simple y fácil de aprender y codificar. Es casi tan rápido como C / C ++, creado para ejecutar tareas simultáneamente, además de mensajes de error y documentación es agradable.
Algunos, como yo, descubrieron que en realidad es más fácil entender la programación con un lenguaje funcional. Lenguajes funcionales (como Lisp, Clojure, Ocaml, Haskell,
Rust) habla lógica en lugar de obligarte a pensar como una computadora. También desalientan los valores globales / mutables, basados en el hecho de que los humanos son bastante malos para rastrear cualquier cosa compleja y fuera de su marco de enfoque. (¿por qué esta variable self_destroy
vuelve verdadera? Puede haber sido modificada por código en otro lugar o de otro programador, pero a juzgar por el nombre de la variable, su programa podría no estar disponible para que usted lo descubra).
Si tiene el privilegio de elegir su herramienta, elija la que sea divertida, cambie su forma de pensar y sea relativamente bueno en lo que prioriza para el proyecto.