Cómo renuncié a Ruby a favor de Python mientras trabajaba en un backend



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:

Source: https://habr.com/ru/post/438960/


All Articles