
Traducimos un artículo para usted de Benoit Zen, desarrollador de software en Sqreen. Benoit está trabajando en un servicio web backend y recientemente cambió de Ruby a Python.
En 2008, cuando todavía estudiaba como desarrollador de software, dos de mis amigos decidieron fundar una compañía, nombrándola Feedbooks. Su objetivo era crear libros electrónicos de alta calidad que cualquiera pudiera encontrar y descargar rápidamente (si lo desea, compartir con amigos). El proyecto se les presentó como una biblioteca digital samizdat.
El sitio web, que se convertiría en la cara del servicio, tenía que ser rápido, eficiente y fácil de administrar. Alrededor de ese tiempo, apareció un video de demostración de Ruby on Rails "Cómo crear un blog en 15 minutos", después de lo cual los fundadores decidieron trabajar con él.
Skillbox recomienda: un curso práctico de dos años, "Soy un desarrollador web PRO" .
Le recordamos: para todos los lectores de "Habr": un descuento de 10.000 rublos al registrarse en cualquier curso de Skillbox con el código de promoción "Habr".
Unas semanas después, necesitaban ayuda y se volvieron hacia mí.
Al igual que muchos desarrolladores de mi generación, trabajé con PHP y Mysql, a veces incluso agregué mi parte al CMS de código abierto. Todo me era muy familiar en la tarea, excepto, de hecho, Ruby. Nunca he oído hablar de él (no se olvide, estamos hablando de 2008, nota del traductor). En general, comencé a trabajar con Ruby y pasé los siguientes diez años con él.
¿Por qué rubí?
El hecho es que este es un lenguaje muy expresivo. Su principal creador se propuso hacer felices a los programadores cuando trabajaban con Ruby. Y se salió con la suya. Casi cualquier elemento aquí es un objeto. La máquina virtual Ruby traduce la sintaxis en una declaración real. Está mejorando constantemente, de modo que el código generado mejora con cada nueva versión. Ruby es fácil de analizar, modificar o incluso crear interfaces especializadas.
En esencia, Ruby on Rails es una suite e infraestructura DSL para construir fácilmente aplicaciones web basadas en modelos. Hoy está especialmente adaptado y es bueno para crear aplicaciones en las que la lógica empresarial y el modelado desempeñarán un papel importante.
En mi empresa Sqreen, trabajé con Ruby en el backend. Pero luego, bastante rápido, la decisión llegó a usar Python.
Amo a Ruby, pero cambia a Python, ¿por qué?
En primer lugar, nuestro backend es un conjunto de varios servicios, algunos de los cuales están abiertos al mundo, otros no. Lo primero que ve un cliente es un sitio estático corporativo que se genera utilizando Jekyll. Luego se abre la barra de herramientas: esta es una aplicación dinámica React. El panel funciona con una API dedicada, lo llamamos "back-end para la interfaz externa". Él es nuestro principal.
Inicialmente, se decidió que no escribiríamos la API en diferentes idiomas, ya que nos gustaría que todos correspondieran a cierta lógica y modelos comerciales. Además, al comienzo del viaje, nos dimos cuenta de que al menos el backend para los agentes debería ser fácilmente escalable para soportar una base de clientes en expansión.
Desafortunadamente, Rails fue demasiado lento. Por supuesto, él no es el único; hay muchas microframas para Ruby, incluida la famosa Sinatra.
Pero aún así decidimos elegir Python. Hay dos razones principales. Primero, nuestra guía estaba familiarizada con él, ya que muchos productos se desarrollaron previamente en Python. En segundo lugar, necesitábamos un análisis de datos profundo, con lo que Ruby no funciona muy bien. Y la elección era obvia.
Comenzando con Python
En esta etapa, casi no tenía experiencia con Python; anteriormente escribí solo pequeños scripts que ayudaron a la implementación general del proyecto. Tuve que dominar y acelerar rápidamente todo en el desarrollo de la API en la que trabajamos. Afortunadamente, los componentes básicos no dependen del idioma que utilice: HTTP / HTML / JSON / REST; todos siguen siendo los mismos. La capacidad de las aplicaciones para comunicarse con la web en un nivel inferior se implementa en Ruby usando
Rack . Al final resultó que se sacó mucho Rack de Python, por lo que no fue muy difícil trabajar.
¿Pero qué hay del lenguaje? Ruby es un lenguaje orientado a objetos, Python también está orientado a objetos. Pero aún así, la diferencia entre los dos idiomas es significativa. Entonces, Ruby describe bloques usando palabras clave; en Python, se usan espacios para esto. Necesitaba acostumbrarme, y prefiero el camino de Ruby con su inicio / rescate / final. Sin embargo, Python le permite escribir código más eficiente que funcione rápidamente.
¿Qué hice personalmente para comprender rápidamente la sintaxis de Python? Lo principal: comencé a practicar con
Python Koans , es un proyecto de código abierto que te permite aprender Python, proporcionando pruebas unitarias cada vez más complejas.
Python Koans presenta las diversas características del lenguaje, la documentación aquí es muy detallada.
Además, también estudio la documentación de Python: es extremadamente completa en este lenguaje. El lenguaje se divide en módulos, cada uno de los cuales cuenta con una explicación detallada. Incluye la respuesta de por qué existe el módulo, qué problema está tratando de resolver y cómo implementar todo esto.
Consejos para aquellos que quieran cambiar a Python
Si usted es un desarrollador de Ruby que está considerando cambiar a Python, simplemente hágalo, puede que le guste. Es cierto que debe recordar que antes de comenzar a abrir nuevas oportunidades, tendrá que dominar muchas características del lenguaje. Un buen punto de partida es el tutorial interactivo y la documentación. Además, la capacitación debe estar respaldada por la práctica, vale la pena comenzar de inmediato a implementar una aplicación real.
Skillbox recomienda: