Búsqueda de sitios web

Profundice en el debate entre Python y Perl: ¿qué debo aprender Python o Perl?


A menudo, cuando se introduce un nuevo lenguaje de programación, surge un debate entre algunas de las mentes geniales de la industria en el que se compara el lenguaje con el que ya está echando raíces. A menudo se extiende una especie de rumor en la industria de TI y el nuevo a menudo se compara en todos los aspectos, ya sean características, sintaxis o aspectos centrales de CPU y memoria, incluido el tiempo de GC y todo, con el existente de su tipo.

Se pueden recoger e investigar muchos ejemplos de este tipo de casos del pasado, incluido el debate entre Java y C#, C++, etc. Uno de esos casos que llamó mucho la atención fue el debate entre dos lenguajes que surgieron uno tras otro en un corto período de tiempo, es decir, Python y Perl.

Mientras que Python se inventó inicialmente como sucesor del lenguaje ABC simplemente como un proyecto de programación de “hobby” (que atraería a los hackers de Unix/C) para el autor que le puso el nombre del serie de su mayor estrella Monty Python.

Lectura sugerida: Introducción a la programación y secuencias de comandos Python en Linux

Perl existía casi dos años antes como un lenguaje de programación Unix cuyo objetivo era facilitar el procesamiento de informes. Era una mezcla de muchos lenguajes, incluidos C, awk, sed y shell script.

Lo que vale la pena señalar es que estos lenguajes que evolucionaron con diferentes intenciones se comparan constantemente, lo que me ha hecho estudiar y descubrir las razones, de las cuales algunas importantes se enumeran a continuación:

  1. Ambos apuntaban al sistema operativo Unix, uno para piratas informáticos y otros para procesar informes.
  2. Ambos están orientados a objetos (Python es el más) e interpretados, uno está fuertemente tipado y es claro cuando se trata de codificación, es decir, Python, y el otro permite una escritura fea con llaves para representar un bloque, es decir, Perl.
  3. Ambos son opuestos en principio cuando decimos que Perl tiene muchas formas de realizar una sola tarea, mientras que Python se centra en una y sólo una forma de hacer las cosas.

Python vs Perl: características comparadas

Profundicemos en este debate e intentemos descubrir los aspectos generales en los que estos dos idiomas se diferencian entre sí. Además, intentemos descubrir la fuente de verdad de muchos clichés que se pueden escuchar en la industria que dicen “Python es Perl con ruedas de entrenamiento” o “Python es similar a Perl pero diferente.” para que podamos intentar concluir con una solución precisa a este debate interminable.

1. La sintaxis limpia de Python frente a la compleja de Perl

Python tiene una gran ventaja sobre Perl en lo que respecta a la legibilidad del código. El código de Python es mucho más claro de entender que el de Perl, incluso cuando se lee código después de años.

Con una sangría que representa el bloque de código y una estructura adecuada, el código de Python es mucho más limpio. Por otro lado, Perl toma prestada su sintaxis de varios lenguajes de programación como C, scripts de shell e incluso filtros awk y sed cuando se trata de expresiones regulares.

Lectura sugerida: 15 comandos 'sed' útiles para las tareas diarias de administración del sistema Linux

Aparte de esto, con '{' y '}' representando un bloque de código y la adición innecesaria de ';' al final de cada línea, el código en Perl podría volverse un problema de entender si lo lees después de meses o años debido a que permite secuencias de comandos feas.

2. Soporte de operaciones de SO y expresiones regulares de terceros integrado de Perl frente a Python

El lenguaje Perl toma prestada su sintaxis de C y otros comandos UNIX como sed, awk, etc. debido a lo cual tiene un soporte de expresiones regulares muy potente e integrado sin importar ningún módulo de terceros.

Además, Perl puede manejar operaciones del sistema operativo utilizando funciones integradas. Por otro lado, Python tiene bibliotecas de terceros para ambas operaciones, es decir, re para regex y os, sys para operaciones del sistema operativo que deben asegurarse antes de realizar tales operaciones.

Las operaciones de expresiones regulares de Perl tienen una sintaxis similar a 'sed', lo que facilita no solo las operaciones de búsqueda, sino también las operaciones de reemplazo, sustitución y otras operaciones en una cadena que se pueden realizar fácil y rápidamente que Python, donde una persona necesita saber. y recuerde las funciones que se adaptan a la necesidad.

Ejemplo: Considere un programa para buscar un dígito en la cadena en Perl y Python.

Import re
str = ‘hello0909there’
result = re.findall(‘\d+’,str)
print result
$string =  ‘hello0909there’;
$string =~ m/(\d+)/;
print “$& \n”

Verá, la sintaxis de Perl es muy sencilla y está inspirada en el comando sed, que aprovecha la sintaxis de Python que importa el módulo de terceros ‘re’.

3. Programación orientada a objetos avanzada de Python versus frases ingeniosas de Perl

Una característica en la que Python eclipsa a Perl es su programación avanzada OO. Python tiene un amplio soporte de programación orientada a objetos con una sintaxis limpia y consistente, mientras que el objeto OOP en Perl está desactualizado cuando el paquete se usa como sustituto. para clases.

Lectura sugerida: Introducción a Python Django Web Framework

Además, escribir código OO en Perl agregará mucha más complejidad al código, lo que eventualmente haría que el código fuera difícil de entender; incluso las subrutinas en Perl son muy difíciles de programar y eventualmente difíciles de entender más adelante.

Por otro lado, Perl es mejor por sus frases ingeniosas que se pueden usar en la línea de comando para realizar diversas tareas. Además, el código Perl puede eventualmente realizar varias tareas en menos líneas de código que Python.

Un ejemplo de código abreviado de ambos lenguajes que destaca la capacidad de Perl para hacer más con menos LOC:

try:
with open(“data.csv”) as f:
for line in f:
print line,
except Exception as e:
print "Can't open file - %s"%e
open(FILE,”%lt;inp.txt”) or die “Can’t open file”;
while(<FILE>) {
print “$_”; } 

Pros y contras: Python frente a Perl

En esta sección, discutiremos los pros y los contras de Python y Perl.

Ventajas de Python:

  1. Tiene una sintaxis limpia y elegante que hace de este lenguaje una excelente opción como primer lenguaje de programación para principiantes que desean tener experiencia práctica en cualquier lenguaje de programación.
  2. Tiene programación OO muy avanzada e inherente, además la programación de subprocesos en Python es mucho mejor que Perl.
  3. Hay muchas áreas de aplicaciones en las que se prefiere Python e incluso supera a Perl. Me gusta: se prefiere Perl para secuencias de comandos CGI, pero hoy en día, Django de Python y web2py, lenguajes de secuencias de comandos web similares, se están volviendo más populares y tienen una gran atracción por parte de la industria.
  4. Tiene varios contenedores SWIG para diferentes lenguajes de programación como CPython, IronPython y Jython y el desarrollo de estos ha precedido al desarrollo de envoltorios SWIG para Perl.
  5. El código Python siempre tiene buena sangría y es fácil de leer y comprender, incluso si estás leyendo el código de otra persona o incluso tu código después de años.
  6. Python es bueno para varias aplicaciones como Big Data, Infra Automation, Aprendizaje automático, NLP, etc. Gran apoyo de comunidades activas por ser Open Source.

CONTRAS de Python:

  1. Hay pocas áreas donde la ejecución en Python suele ser más lenta que la de Perl, incluidas las operaciones regex y basadas en cadenas.
  2. A veces es difícil obtener el tipo de variable en Python, ya que en casos de código muy grande, hay que ir hasta el final para obtener un tipo de variable que se vuelve agitado y complejo.

Ventajas de Perl:

  1. Perl tiene frases ingeniosas potentes e incluso garantiza una sintaxis similar a la de UNIX que se puede utilizar en la línea de comandos para realizar diversas tareas, además está influenciado por Unix y su programación de línea de comandos, por lo que integra muchos comandos influenciados por UNIX en su codificación.
  2. Perl es conocido por sus poderosas operaciones regex y de comparación de cadenas, ya que está influenciado por sed y awk, como poderosas herramientas UNIX. En el caso de operaciones de expresiones regulares y cadenas como sustitución, coincidencia, reemplazo, Perl supera a Python, lo que requeriría unas pocas líneas de código para lograr el mismo. Además de muchas operaciones de E/S de archivos, el manejo de excepciones se realiza más rápido en Perl.
  3. Cuando se trata de un lenguaje para la generación de informes, Perl siempre ha tenido fama desde su introducción como una de las principales razones por las que el autor desarrolló un lenguaje como lo fue Perl para la generación de informes.
  4. Muchas áreas de aplicación donde Perl encuentra su uso son Programación de redes, Administración de sistemas, Scripting CGI (aquí Python está superando a Perl con Django y web2py), etc.
  5. Es fácil identificar el tipo de variable con los símbolos que Perl usa antes, como: ‘@’ identifica matrices y ‘%’ identifica hashes.

Perl CONTRAS:

  1. Perl tiene un código muy complejo que hace que sea difícil de entender para un principiante. Las subrutinas e incluso otros símbolos como: ‘$`’, ‘$&’, etc. son difíciles de entender y programar para un programador menos experimentado. Además, el código Perl, cuando se lee, sería difícil y complejo de entender a menos que tenga una experiencia de calidad.
  2. La programación OO en Perl está un poco desactualizada ya que nunca ha sido conocida por la programación OO y muchas operaciones como el subprocesamiento también son menos pronunciadas en Perl.

Conclusión

Como se vio anteriormente, donde ambos lenguajes son buenos en cuanto a las aplicaciones a las que se dirigen, Python tiene un poco de ventaja sobre Perl como primera opción para un principiante debido a su código limpio y fácil de entender, mientras que, por otro lado, Perl supera a Python cuando se trata de operaciones de manipulación de cadenas y algunas frases ingeniosas avanzadas para UNIX como el sistema operativo y varias otras operaciones por las que es conocido.

Entonces, al final, todo depende del área específica a la que te diriges. Todos sus comentarios sobre este artículo son bienvenidos y le solicitaremos que dé su opinión sobre el tema si, según usted, gana Python o Perl.