Que puedes hacer cualquier cosa con el tiempo y la memoria suficientes. Dejando de lado todas las bromas de Turing, Python es un muy buen lenguaje general, pero las compensaciones son lo que los ingenieros de software deben saber a medida que se involucran. Aquí hay algunos que aparecen todo el tiempo.
- Global Interpreter Lock (GIL), esto evita que Python se meta en muchos problemas y todos deberíamos alegrarnos de que Guido lo haya puesto. La otra cara es que en muchos casos sus hilos no usarán esos núcleos adicionales. Hay muchas formas de esquivar el GIL, pero su kilometraje puede variar. Si está buscando hacer cantidades masivas de Python paralelo, entonces la siguiente viñeta puede haber anulado la ganancia.
- Rendimiento, en general Python es lento. A menudo 1-3% de C. Cuando ingresa a una biblioteca o hace E / S, puede comenzar a acercarse a las velocidades de C, pero en general será lento. Puede volver a escribir algunas de sus funciones / bucles clave en C o Cython y aumentar radicalmente la velocidad, a menudo para estar a una distancia sorprendente de cualquier otro idioma. En el medio, puede usar bibliotecas como NumPy para obtener un gran impulso.
- La sangría es importante, este es a menudo el mayor obstáculo para muchos programadores, pero uno que termina siendo una queja tonta. Al igual que las personas que vienen de las calculadoras ALOS se quejan de RPN, una vez que se acostumbran no hay problema. Para algunos es una mejor manera de trabajar, para otros es casi lo mismo.
- Es multiplataforma, hasta que las plataformas no quieren que sea. El código de Python en general se ejecutará en Unix, Windows, JVM e incluso en los navegadores Javascript. Sin embargo, el fregadero de la cocina Pythons no cabe en cada una de esas encimeras. Leer un dispositivo de bloque sin formato o configurar un MMAP en UNIX es fácil. Hacer lo mismo en Windows ni siquiera es obvio y requiere un enfoque diferente. Python te permite hacerlo, pero el código ya no es portátil. La profundidad de Python describe las diferencias entre las plataformas mejor que cualquier otra cosa que haya visto. Debido a esto, algunas cosas no solo se moverán y correrán.
- 2 a 3, la diferencia entre ellos parece pequeña al principio, pero puede ser sustancial a medida que crece la base de código. La buena noticia es que existen buenas herramientas para convertir de 2 a 3, y el ser humano puede solucionar muchos de los problemas encontrados rápidamente.
En general, alguien que vaya a Python debería saber que van a tener una buena experiencia si tienen una mente abierta. Si bien no calculará los resultados más rápido, a menudo el tiempo del ingeniero es el activo más valioso y realmente puede ser una victoria allí.
- Cómo implementar un administrador de descargas para descargar archivos que tiene un identificador único mientras se mueve de una carpeta a otra
- ¿Es este el momento adecuado para cambiar de trabajo en la industria del software?
- Estoy trabajando con Solid Edge. ¿Cuál es el alcance adicional para mí en diseño mecánico?
- ¿Cómo es ser ingeniero de soporte en Palantir?
- ¿Qué salario base debo solicitar para un puesto de ingeniero de software de nivel básico en el norte de Virginia?