Hay más de 500 lenguajes de programación actuales, y cada día se escriben más. Es cierto que la mayoría de estos se superponen y un gran número nunca fueron destinados a ser utilizados fuera de un entorno teórico o de laboratorio. Pero para los lenguajes de programación que se utilizan en la codificación diaria y las empresas, usted tiene que tomar una decisión. ¿Qué idiomas deberías aprender y por qué deberías invertir tu tiempo en aprenderlos?
Como este es un sitio dedicado a Python, ya te hemos dicho por qué Python es un gran lenguaje para aprender. Y probablemente sepa cómo Python es probablemente el lenguaje más preferido para la Raspberry Pi (como la mayoría viene precargado con él). Y sabiendo eso, sabes qué cosas increíbles puedes hacer con un kit Pi y solo un poco de ingenio. Si bien es fácil ver cómo puede jugar con Python, es posible que se pregunte cómo se traduce esto en aplicaciones comerciales y del mundo real.
Lo que vamos a hacer ahora es contarles acerca de ocho compañías de primer nivel que saben que usan Python. De esa manera, puede ver las grandes oportunidades del mundo real que existen para los desarrolladores de Python.
Contenido
Luz industrial y magia
Industrial Light and Magic (ILM) es la potencia de efectos especiales que fue fundada en 1975 por George Lucas para crear el FX para Star Wars. Desde entonces, se han convertido en sinónimo de FX, ganando múltiples premios por su trabajo en películas y comerciales.
En sus primeros días, ILM se centró en los efectos prácticos, pero pronto se dio cuenta de que los efectos generados por computadora eran el futuro de FX en general. Su departamento de CGI fue fundado en 1979 y su primer efecto fue la secuencia de explosión del Proyecto Génesis en Star Trek II: The Wrath of Khan.
Originalmente, el estudio CGI de ILM se escapó de un shell de Unix, pero esto solo manejaba una cantidad relativamente baja de trabajo. Debido a que el estudio previó el futuro de CGI, comenzaron a buscar un sistema que pudiera manejar el escalado agresivo que vieron en el futuro.
ILM eligió Python 1.4 sobre Perl y Tcl, optando por usar Python porque era mucho más rápido de integrar en su infraestructura existente. Debido a la fácil interoperabilidad de Python con C y C++, era fácil para ILM importar Python a su software de iluminación propietario. Esto les permitió poner Python en más lugares, usándolo para envolver componentes de software y extender sus aplicaciones gráficas estándar.
El estudio ha utilizado Python en muchas otras facetas de su trabajo. Los desarrolladores usan Python para rastrear y auditar la funcionalidad de canalización, manteniendo una base de datos de cada imagen producida para cada película. A medida que más y más de los programas de ILM eran controlados por Python, creó un conjunto de herramientas unificadas más simples que permitieron una línea de producción más efectiva. Para un ejemplo del mundo real, no busque más allá de OpenEXR, un formato de archivo HD utilizado por ILM. Como parte del paquete, se incluye PyIlmBase (aunque tiene una dependencia de Boost).
A pesar de las numerosas revisiones, ILM continúa encontrando que Python es la mejor solución para sus necesidades. La combinación de un código de código abierto combinado con la capacidad de realizar cambios de back-port garantiza que Python continuará satisfaciendo las necesidades de ILM durante mucho tiempo.
Google ha sido un partidario de Python desde casi el principio. Al principio, los fundadores de Google tomaron la decisión de “Python donde podemos, C++ donde debemos”. Esto significaba que C++ se usaba donde el control de memoria era imperativo y se deseaba baja latencia. En las otras facetas, Python permitió la facilidad de mantenimiento y la entrega relativamente rápida.
Incluso cuando se escribieron otros scripts para Google en Perl o Bash, a menudo se recodificaban en Python. La razón se debió a la facilidad de implementación y lo simple que es mantener Python. De hecho, según Steven Levy, autor de «In the Plex», la primera araña de rastreo web de Google se escribió por primera vez en Java 1.0 y fue tan difícil que la reescribieron en Python.
Python es ahora uno de los lenguajes oficiales del lado del servidor de Google (C++, Java y Go son los otros tres) que se pueden implementar en producción. Y si no está seguro de lo importante que es Python para Google, el propio BDFL de Python, Guido van Rossum, trabajó en Google de 2005 a 2012.
Para colmo, Peter Norvig dijo:
Python ha sido una parte importante de Google desde el principio, y sigue siéndolo a medida que el sistema crece y evoluciona. Hoy en día, docenas de ingenieros de Google usan Python, y estamos buscando más personas con habilidades en este lenguaje.
Los ingenieros de producción de Facebook están excepcionalmente interesados en Python, lo que lo convierte en el tercer lenguaje más popular en el gigante de las redes sociales (justo detrás de C ++ y su dialecto PHP patentado, Hack). En promedio, hay más de 5,000 compromisos con servicios públicos y servicios en Facebook, administrando infraestructura, distribución binaria, imágenes de hardware y automatización operativa.
La facilidad de usar bibliotecas Python significa que los ingenieros de producción no tienen que escribir o mantener tanto código, lo que les permite centrarse en obtener mejoras en vivo. También asegura que la infraestructura de Facebook sea capaz de escalar de manera eficiente.
Según una publicación de 2016 de Facebook, Python es actualmente responsable de múltiples servicios en la gestión de infraestructura. Estos incluyen el uso de TORconfig para gestionar la configuración y la generación de imágenes de conmutadores de red, FBOSS para CLI de conmutadores de caja blanca y el uso de Dapper para programar y ejecutar trabajos de mantenimiento.
Facebook ha publicado numerosos proyectos Python de código abierto escritos para Py3, incluyendo una API de anuncios de Facebook y un framework IRCbot Python Async. Facebook se encuentra actualmente en el proceso de actualizar su infraestructura y controladores a 3.4 de 2, y AsyncIO está ayudando a sus ingenieros en el proceso.
En 2016, el equipo de ingeniería de Instagram se jactó de que estaban ejecutando el despliegue más grande del mundo del marco web de Django, que está escrito completamente en Python. Es probable que esto siga siendo cierto hoy en día. Min Ni, un ingeniero de software en Instagram dice esto sobre su uso de producción de Python:
«Inicialmente elegimos usar Python debido a su reputación de simplicidad y practicidad, que se alinea bien con nuestra filosofía de ‘hacer lo simple primero'».
Desde entonces, el equipo de ingeniería de Instagram ha invertido tiempo y recursos para mantener su implementación de Python viable a gran escala ( 800 millones de usuarios activos mensuales). están operando en:
“Con el trabajo que hemos puesto en la construcción del marco de eficiencia para el servicio web de Instagram, estamos seguros de que seguiremos escalando nuestra infraestructura de servicios utilizando Python. También hemos comenzado a invertir más en el lenguaje Python en sí, y estamos empezando a explorar el movimiento de nuestro Python de la versión 2 a la 3.
En 2017, Instagram migró la mayor parte de su base de código Python de Python 2.7 a Python 3. Puedes ver la charla magistral de PyCon 2017 que Lisa Guo y Hui Ding dieron y escuchar sobre su experiencia con esta migración masiva de código:
Spotify
Este gigante de la transmisión de música es un gran defensor de Python, utilizando el lenguaje principalmente para el análisis de datos y los servicios de back-end. En el back-end, hay una gran cantidad de servicios que se comunican a través de 0MQ, o ZeroMQ, una biblioteca de redes de código abierto y un marco escrito en Python y C++ (entre otros lenguajes).
La razón por la que los servicios están escritos en Python es porque a Spotify le gusta lo rápido que es el desarrollo cuando se escribe y codifica en Python. Las actualizaciones más recientes de la arquitectura de Spotify han estado utilizando gevent, que proporciona un bucle de eventos rápido con una API síncrona de alto nivel.
Para proporcionar sugerencias y recomendaciones a los usuarios, Spotify se basa en un gran volumen de análisis. Para interpretarlos, Spotify hace uso de Luigi, un módulo de Python que se sincroniza con Hadoop. Este módulo de código abierto maneja cómo funcionan juntas las bibliotecas y consolida los registros de errores rápidamente para permitir la solución de problemas y la redistribución.
En total, Spotify utiliza más de 6000 procesos individuales de Python que trabajan juntos sobre los nodos del clúster de Hadoop.
Quora
Esta enorme plataforma de preguntas y respuestas de origen colectivo pensó largo y tendido sobre qué lenguaje querían usar para implementar su idea. Charlie Cheever, uno de los fundadores de Quora, hizo que su elección se redujera a Python, C, Java y Scala. Su mayor problema con el procedimiento con Python fue la falta de comprobación de tipos y su relativa lentitud.
Según Adam D’Angelo, decidieron no ir con C porque es un lenguaje propietario de Microsoft y no querían estar en deuda con ningún cambio futuro. Además, cualquier código fuente abierto tenía soporte de segunda clase en el mejor de los casos.
Java era más doloroso escribir que Python y no funcionaba tan bien con programas que no fueran Java como Python. En ese momento, Java también estaba en su infancia, por lo que estaban preocupados por el soporte futuro y si el lenguaje continuaría creciendo.
En cambio, los fundadores de Quora tomaron su liderazgo de Google, eligiendo usar Python donde pudieran debido a su facilidad de escritura y legibilidad, e implementaron C++ para las secciones críticas de rendimiento. Ellos sortearon la falta de comprobación de tipos de Python escribiendo pruebas unitarias que logran casi lo mismo.
Otra consideración clave para usar Python fue la existencia de varios buenos frameworks en ese momento, incluidos Django y Pylons. Además, porque sabían que Quora iba a involucrar interacciones servidor / cliente que no necesariamente serían cargas de página completas, tener Python y JS jugando tan bien juntos era una gran ventaja.
Netflix
Netflix usa Python de una manera muy similar a Spotify, confiando en el lenguaje para impulsar su análisis de datos en el lado del servidor. Sin embargo, no solo se detiene allí. Netflix permite a sus ingenieros de software elegir en qué lenguaje codificar, y han notado un gran aumento en el número de aplicaciones de Python.
Cuando son encuestados, los ingenieros de Netflix citan la biblioteca estándar, la comunidad de desarrollo extremadamente activa y la rica variedad de bibliotecas de terceros disponibles para resolver casi cualquier problema dado. Además, debido a que Python es tan fácil de desarrollar, se ha convertido en un eje en muchos de los otros servicios de Netflix.
Uno de los principales lugares donde se utiliza Python es en Central Alert Gateway. Esta aplicación web RESTful procesa alertas desde cualquier lugar y luego las enruta a personas o grupos que necesitarían verlas. Además, la aplicación tiene el poder de suprimir alertas duplicadas que ya se han manejado y, en algunos casos, realizar soluciones automatizadas como reiniciar un proceso o terminar algo que está empezando a verse inestable. Esta aplicación es una gran victoria para Netflix teniendo en cuenta el gran volumen de alertas. Manejarlos de manera inteligente significa que los desarrolladores e ingenieros no están inundados de llamadas redundantes.
Otra área en la que se utiliza Python en Netflix es con aplicaciones mono utilizadas para rastrear los cambios de seguridad y la historia. Estos monos se utilizan para rastrear y alertar cualquier cambio en las políticas relacionadas con la seguridad EC2 en cualquier grupo, rastreando cualquier cambio en estos entornos. También se utilizan para garantizar el seguimiento de las docenas de certificados SSL adjuntos a los múltiples dominios de Netflix. En el seguimiento, Netflix ha visto una reducción en los vencimientos inesperados de un trimestre a ninguno desde 2012.
Dropbox
Este sistema de almacenamiento basado en la nube utiliza Python en su cliente de escritorio. Si tienes alguna duda sobre cuán invertido está Dropbox en Python, considera que en 2012, lograron convencer a Guido van Rossum, el creador de Python y dictador benevolente de por vida, lejos de Google y en el pliegue de Dropbox.
Rossum se unió a Dropbox con la condición de que fuera un ingeniero, no un líder o incluso un gerente. En su primer año, pudo ayudar a lograr la capacidad de compartir almacenes de datos con otros usuarios dentro de la comunidad de Dropbox.
Si bien muchas de las bibliotecas e internos de Dropbox son propietarios y no de código abierto, la compañía ha lanzado una API muy eficiente codificada en Python que le permite ver cómo piensan sus ingenieros. También puedes leer entre líneas cuando leas entrevistas con ingenieros de Dropbox sobre cómo un gran porcentaje de su código del lado del servidor es Python.
También es interesante tener en cuenta que, si bien los programas del lado del cliente están codificados en Python, utilizan varias bibliotecas en máquinas Mac y Windows para permitir una experiencia unificada. Esto se debe a que Python no viene preinstalado en Windows y, dependiendo de su Mac, su versión de Python variará.
Este sitio web tuvo 542 millones de visitantes cada mes a lo largo de 2017, lo que lo convierte en el cuarto sitio web más visitado en los Estados Unidos y el séptimo más visitado en el mundo. En 2015, hubo 73.15 millones de presentaciones y 82.54 mil millones de páginas vistas. Y detrás de todo, formando la columna vertebral del software, estaba Python.
Reddit se codificó originalmente en Lisp, pero en diciembre de 2005, seis meses después de su lanzamiento, el sitio se recodificó en Python. La razón principal del cambio fue que Python tenía una gama más amplia de bibliotecas de código y era más flexible desde el punto de vista del desarrollo. El framework web que originalmente ejecutó el sitio, web.py, es ahora un proyecto de código abierto.
En una entrevista de 2009, a Steve Huffman y Alexis Ohanian se les preguntó durante Pycon por qué Reddit todavía usa Python como su marco. Según Huffman, la primera razón es la misma que la razón del cambio:
“Hay una biblioteca para todo. Hemos estado aprendiendo muchas de estas tecnologías y muchas de estas arquitecturas a medida que avanzamos. Y, entonces, cuando no entiendo los grupos de conexiones, puedo encontrar una biblioteca hasta que la entienda mejor y escriba la nuestra. No entiendo los frameworks web, así que usaremos los de otra persona hasta que hagamos los nuestros… Python tiene una muleta increíble como esa”.
La segunda razón para que Reddit se quede con Python es un hilo común que recorre todas las empresas que construyen con él. Según Huffman, es la legibilidad del código:
“Cuando contratamos nuevos empleados… no creo que hayamos contratado a un empleado que conozca Python. Yo solo digo, ‘todo lo que escribas debe estar en Python’. Solo para que pueda leerlo. Y es increíble porque puedo ver desde el otro lado de la habitación, mirando su pantalla, si su código es bueno o malo. Porque un buen código Python tiene una estructura muy obvia.
Y eso hace mi vida mucho más fácil. Es extremadamente expresivo, extremadamente legible y extremadamente escribible. Y eso simplemente mantiene la vida tranquila”
Actualizar: Y sí, eso ahora hace que 9 compañías de clase mundial usen Python en producción. Inicialmente no contamos Instagram por separado porque la compañía es propiedad de Facebook. Pero dada la impresionante escala en la que opera el equipo de Instagram, pensamos que tenía sentido darles un punto de bala separado.
¿Alguien más?
En esta publicación analizamos ocho compañías de software de clase mundial y exitosas que usan Python en producción. Pero no son los únicos. A partir de 2018, la adopción de Python ha alcanzado un nuevo pico y continúa subiendo.
¿Echamos de menos a alguien de esta lista? ¡Deja un comentario a continuación y háganos saber acerca de su tienda favorita de Python!
Enlaces Externos
- http://www.stevenlevy.com/index.php/books/in-the-plex
- http://www.openexr.com/index.html
- https://www.quora.com/Why-did-Quora-choose-Python-for-its-development-What-technological-challenges-did-the-founders-face-before-they-decided-to-go-with-Python-rather-than-PHP/answers/65731?srid=vt0q
- https://labs.spotify.com/2013/03/20/how-we-use-python-at-spotify/
- https://talkpython.fm/episodes/transcript/30/python-community-and-python-at-dropbox
- https://medium.com/dropbox-makers/guido-van-rossum-on-finding-his-way-e018e8b5f6b1
- http://quintagroup.com/cms/python/google
- https://en.wikipedia.org/wiki/Guido_van_Rossum
- https://www.statista.com/statistics/253577/number-of-monthly-active-instagram-users/
- https://github.com/openexr/openexr/tree/develop/PyIlmBase
- https://github.com/facebook/facebook-python-ads-sdk
- https://www.alexa.com/siteinfo/reddit.com
- https://code.facebook.com/posts/1040181199381023/python-in-production-engineering/
- http://zguide.zeromq.org/page:all
- https://brainsik.net/2009/why-reddit-uses-python/
- https://engineering.instagram.com/web-service-efficiency-at-instagram-with-python-4976d078e366
- https://www.quora.com/Why-did-Quora-choose-Python-for-its-development-What-technological-challenges-did-the-founders-face-before-they-decided-to-go-with-Python-rather-than-PHP/answer/Adam-DAngelo?srid=vt0q
- http://www.gevent.org/
- https://www.dropbox.com/developers/documentation/python
- https://www.davincicoders.com/codingblog/2017/2/10/love-movies-learn-to-code-python-and-you-might-work-for-ilm
- https://github.com/spotify/luigi
- https://thenewstack.io/instagram-makes-smooth-move-python-3/
- https://stackoverflow.com/questions/2560310/heavy-usage-of-python-at-google/2561008#2561008
- https://medium.com/netflix-techblog/python-at-netflix-86b6028b3b3e
- https://www.youtube.com/watch?v=66XoCk79kjM
- https://github.com/facebook/pyaib