A menudo, cuando se introduce un nuevo lenguaje de programación, hay un debate que comienza entre algunas de las mentes geniales de la industria en el que se compara el lenguaje con el que ya está extendiendo sus raíces. Una especie de rumor a menudo se extiende en la industria de TI y el nuevo a menudo se compara en todos los aspectos, pueden ser características, sintaxis o CPU central y aspectos de memoria, incluido el tiempo de GC y todo, con el existente de su tipo.
Se pueden recoger e investigar muchos ejemplos de tales 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 lapso corto, es decir, Python y Perl .
Mientras que Python se inventó inicialmente como un sucesor del lenguaje ABC simplemente como un proyecto de programación de ” pasatiempo ” (que atraería a los hackers de Unix / C) para el autor que lo nombró en honor a la serie de su mayor estrella Monty Python .
Lectura sugerida: Introducción a la programación y las secuencias de comandos de Python en Linux
Perl era casi 2 años antes como un lenguaje de scripting de Unix que pretendía facilitar el procesamiento de informes. Era una mezcla de una combinación 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 están comparando constantemente, lo que me ha hecho estudiar y descubrir las razones, de las cuales algunas importantes se enumeran a continuación:
- Ambos tenían como objetivo el sistema operativo Unix, uno para piratas informáticos y otros para procesar informes.
- Ambos están orientados a objetos (Python es el más) e interpretados, uno de ellos 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.
- Ambos son opuestos en principio cuando decimos que Perl tiene muchas formas de hacer una sola tarea, mientras que Python se enfoca en una y solo 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 la verdad de muchos clichés que se pueden escuchar en la industria diciendo ” 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. Sintaxis limpia de Python frente a la compleja de Perl
Python toma una gran ventaja sobre Perl cuando se trata de legibilidad de 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 la sangría que representa el bloque de código y la estructuración 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 la ‘{‘ and ‘}’
representación de un bloque de código y la adición innecesaria de ‘’
al final de cada línea, el código en Perl podría convertirse en un problema de entender si lo lee después de meses o años debido a que admite secuencias de comandos desagradables.
2. Compatibilidad con operaciones de SO y expresiones regulares de terceros de Perl frente a Python
El lenguaje Perl toma prestada su sintaxis de C y otros comandos de UNIX como sed , awk, etc. <strong>,</strong> debido a lo cual tiene un soporte de expresiones regulares integrado y poderoso sin importar ningún módulo de terceros.
Además, Perl puede manejar las operaciones del sistema operativo usando funciones integradas. Por otro lado, Python tiene bibliotecas de terceros para las operaciones, es decir, re para regex y os, sys para operaciones de os que deben asegurarse antes de realizar dichas operaciones.
Las operaciones de expresiones regulares de Perl tienen una sintaxis similar a ‘ sed ‘ que facilita no solo las operaciones de búsqueda, sino que también las operaciones de reemplazo, sustitución y otras en una cadena se pueden realizar de manera fácil y rápida que Python, donde una persona necesita saber y recordar las funciones que atienden a la necesidad.
Ejemplo: considere un programa para buscar un dígito en la cadena en Perl y Python .
Pitón
Import re str = ‘hello0909there’ result = re.findall(‘d+’,str) print result
Perl
$string = ‘hello0909there’ $string = m/(d+)/ print “$& n”
Verá que la sintaxis de Perl es muy fácil y está inspirada en el comando sed que aprovecha la sintaxis <strong>de Python</strong> que importa el módulo de terceros ‘re’ .
3. Programación avanzada de OO de Python frente a One-Liners de Perl
Una característica en la que Python eclipsa a Perl es su OO
programación avanzada . Python tiene un amplio soporte de programación orientada a objetos con una sintaxis limpia y coherente, mientras que el objeto OOP
en Perl está desactualizado cuando el paquete se usa como sustituto de las clases.
Lectura sugerida: Introducción a Python Django Web Framework
Además, escribir OO
código en Perl agregará mucha más complejidad al código, lo que eventualmente hará que el código sea 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 breves que se pueden usar en la línea de comandos para realizar las 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 idiomas que destaca la capacidad de Perl para hacer más en menos LOC:
Pitón
try: with open(“data.csv”) as f: for line in f: print line, except Exception as e: print "Can't open file - %s"%e
Perl
open(FILE,”%ltinp.txt”) or die “Can’t open file” while(<FILE>) { print “$_” }
Pros y contras: Python vs Perl
En esta sección, discutiremos los pros y los contras de Python y Perl.
PROS de Python:
- Tiene una sintaxis limpia y elegante que hace de este lenguaje una gran elección como el primer lenguaje de programación para los principiantes que quieren tener la práctica en cualquier lenguaje de programación.
- Tiene una programación muy avanzada e inherente
OO
, también la programación de subprocesos en Python es mucho mejor que en Perl. - Hay muchas áreas de aplicación en las que se prefiere Python e incluso supera a Perl. Me gusta: Perl es el preferido para la creación de scripts CGI, pero hoy en día, los lenguajes de scripting web Django y web2py de Python se están volviendo más populares y tienen una gran atracción por parte de la industria.
- 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 contenedores SWIG para Perl.
- El código de Python siempre está bien sangrado y es fácil de leer y comprender, incluso si está leyendo el código de otra persona o incluso su código después de años.
- Python es bueno para varias aplicaciones como Big Data , Infra Automation , Machine Learning , NLP, etc., tiene un gran apoyo de comunidades activas debido a que es de código abierto.
CONTRAS de Python:
- Hay pocas áreas en las que la ejecución en Python suele ser más lenta que la de Perl, incluidas las operaciones basadas en cadenas y expresiones regulares .
- A veces es difícil obtener el tipo de variable en Python, ya que en los casos de código muy grande, tienes que ir hasta el final para obtener un tipo de variable que se vuelve frenético y complejo.
PROS de Perl:
- Perl tiene una sola línea poderosa e incluso asegura una sintaxis tipo tubería UNIX que se puede usar en la línea de comandos para realizar varias tareas, también 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.
- Perl es conocido por sus poderosas operaciones de comparación de cadenas y expresiones regulares , ya que está influenciado por sed y awk como potentes herramientas de UNIX. En el caso de operaciones de regex y cadenas como sustitución , coincidencia , reemplazo , Perl supera a Python, lo que requeriría algunas líneas de código para lograr lo mismo. Además, en muchas operaciones de E / S de archivos, el manejo de excepciones se realiza más rápido en Perl.
- 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 Perl para la generación de informes.
- Muchas áreas de aplicación en las que Perl encuentra su uso son Programación de red , Administración de sistemas , Scripting CGI (aquí Python está superando a Perl con Django y web2py), etc.
- Es fácil identificar el tipo de variable con los símbolos que Perl usa antes que ellos, como:
‘@’
identifica matrices e‘%’
identifica hashes.
CONTRAS de Perl:
- Perl tiene un código muy complejo que lo hace 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. - La programación <strong>OO</strong> en Perl está un poco desactualizada ya que nunca se ha conocido 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 lo que respecta 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 sencillas avanzadas para UNIX como OS 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 solicitamos que brinde sus puntos de vista sobre el tema si, según usted, Python gana o Perl.
Charlas Generales