¿Por qué parece que más personas eligen Python o Ruby sobre Perl?

Como alguien que ha hecho Perl durante más de 15 años y ahora está haciendo mucho más Python que Perl, puedo decir qué motivó la transición en mi caso:

Primero, algunas cosas que NO SON el caso:

* Perl no es malo en lo que hace. Sigue siendo una herramienta de referencia para mí.

* La legibilidad y el mantenimiento son mucho más una cuestión de práctica de codificación y familiaridad que la elección del idioma. Un argumento de que es más fácil evitar el código feo en Python podría ser cierto, pero estaba siguiendo las mejores prácticas en Perl para evitarlo mucho antes de recoger Python. Todavía encuentro ciertas prácticas de Python (¿por qué se llama lambda? Aunque históricamente relevante, seguramente otro nombre habría sido más amigable) para no estar en línea con sus afirmaciones de amigabilidad súper-usuario

* Las expresiones regulares son fantásticas en lo que hacen y Perl las hace muy accesibles, mientras que la comunidad de Python las usa como último recurso porque su misma densidad hace que sea casi imposible que sean triviales de mantener. Ninguno de los enfoques ha afectado mi elección de idioma y ahora uso cualquier enfoque que cumpla con mi poder deseado vs nivel de evidencia caso por caso.

* Perl a menudo ha sido difamado por las características orientadas a objetos “añadidas”. Sin embargo, el uso de “->” nunca me ha molestado, ni encuentro bendecir y otras características similares como un problema. Los objetos Perl funcionan de manera ligeramente diferente, eso es todo.

* Espacio en blanco. No me importa que Python tenga un espacio en blanco significativo, y no me importa que Perl no. Cuando se escriben bien, se ven bastante similares independientemente. (Una excepción: el código de Python a menudo se destroza en los correos electrónicos modernos html-ey, lo que hace que las listas de correo sean un poco más difíciles de usar con los usuarios nuevos que controlan su correo).

* He encontrado que ambas comunidades son amigables, accesibles y técnicamente competentes. Hay diferencias, pero esas diferencias han resultado ser bastante triviales.

Ahora, las cosas que SÍ pesan sobre por qué estoy haciendo más Python que Perl:

* Una biblioteca estándar sólida. CPAN para Perl es increíble, pero a veces solo desea una biblioteca central sólida sin tener que descargar paquetes y preocuparse por el mantenimiento, la confiabilidad y los requisitos previos. Python proporciona esto y regularmente extrae material a medida que se vuelve de uso común.

* Una sintaxis definida. Esto parece trivial, pero afecta las opciones con respecto a las bibliotecas para el análisis, la verificación de sintaxis y una gran cantidad de otras opciones. Si bien Python no es el lenguaje más rigurosamente definido, está mucho mejor definido que Perl y la existencia tanto de las variantes de Python como de varias herramientas de soporte sirven como demostraciones.

* Peso de las masas. Mucha gente nueva está tomando Python. Se están creando nuevas aplicaciones en intérpretes de Python. Esto significa que tengo más oportunidades, lo que me atrae a mí (y a otros). Esto es en parte una profecía autocumplida, sin embargo, esta migración no se produjo sin ninguna razón (ver arriba), y ahora sirve como un punto a favor en sí mismo.

* No perder. Python es muy flexible, muy rápido de desarrollar. No estoy sacrificando la alegría de la codificación al pasar de Perl a Python.

Ya sea Perl, Python, Ruby, Javascript u otros lenguajes dinámicos, los sorteos básicos son los mismos. La mayoría de los codificadores prosperarían en cualquiera de ellos si prosperasen en uno, después de un tiempo de ajuste adecuado. Por lo tanto, la preferencia se convierte en una cuestión de problemas menores. No son problemas insignificantes, sino problemas que se vuelven más personales en el gusto. Las molestias de las mascotas son exasperantes para algunos y triviales para otros, mientras que una característica puede ser amada por uno e ignorada por otro. Definitivamente te recomiendo que pruebes algunas cosas en cada una y veas qué atrae a tus peculiaridades particulares. También agregaré que definitivamente soy un mejor programador por haber trabajado en varios idiomas.

Uno de los objetivos de Larry Wall en Perl era tener un idioma que pudiera ser “hablado” por casi cualquier persona. Cuando ese sea el caso, la difusión de los programas disponibles en el idioma definitivamente incluirá muchos programas de personas que piensan que son buenas pero que son terriblemente incorrectas al respecto. Piense en los programas BASIC de una era anterior: la gente escribió el código más increíblemente malo en BASIC porque era fácil de iniciar y acumular un programa por un esfuerzo sostenido.

Además, Python y Ruby nunca tuvieron que pasar por la transición de Perl 4 a Perl 5: desde un lenguaje sin variables léxicas, con un empaquetado de código regular, y sin referencias (a menos que realmente haya entendido los globos) a un lenguaje con verdadero OO y espacio de nombres real. Tanto Ruby como Python tenían todo este poder y disciplina extra desde el día 1 y, en consecuencia, ambos tenían una mayor barrera de entrada y mejores herramientas.

Perl 5 no te obliga a renunciar a todos tus supuestos de Perl 4, y debido a esto, aún puedes escribir programas malos con todas las variables siendo globales, sin espacios de nombres y todo tipo de acciones desagradables a distancia. No tiene que hacerlo, pero si no ha aprendido la disciplina para usar las nuevas herramientas que le permiten evitar estas cosas, lo hará de manera predeterminada porque el lenguaje no le impide automáticamente hacerlo.

Hay mucha religión y moda en la elección de un lenguaje de programación. En blekko, no hemos tenido ninguna dificultad debido a nuestra elección de perl para nuestro motor de búsqueda y código de base de datos NoSQL, y hemos obtenido muchos beneficios de los módulos CPAN.