ventajas sociales sobre programación programacion lenguaje importancia desventajas cual ciencias caracteristicas python perl comparison perl6

python - sociales - ventajas y desventajas de ruby



Sé que Perl 5. ¿Cuáles son las ventajas de aprender Perl 6, en lugar de pasar a Python? (9)

En mi opinión, la sintaxis de Python es mucho más limpia, simple y consistente. Puede definir las estructuras de datos anidados de la misma manera en todas partes, ya sea que planee pasarlas a una función (o devolverlas desde una) o usarlas directamente. Me gusta mucho Perl, pero tan pronto como aprendí lo suficiente de Python para "obtener", nunca volví.

En mi experiencia, los fragmentos aleatorios de Python tienden a ser más legibles que los fragmentos aleatorios de Perl. La diferencia realmente se reduce a la cultura en torno a cada idioma, donde los usuarios de Perl a menudo aprecian la inteligencia, mientras que los usuarios de Python prefieren la claridad con mayor frecuencia. Eso no quiere decir que no puedas tener Perl claro o Python desviado, pero esos son mucho menos comunes.

Ambos son buenos idiomas y resuelven muchos de los mismos problemas. Personalmente me inclino hacia Python, aunque no sea por otra razón, ya que parece estar ganando impulso mientras Perl parece estar perdiendo usuarios a Python y Ruby.

Tenga en cuenta la abundancia de palabras comadreja en el anterior. Honestamente, realmente se reducirá a las preferencias personales.

Procedentes de un entorno de Perl 5, ¿cuáles son las ventajas de cambiar a Perl 6 o Python?

Editar: si has votado negativamente porque crees que es solo un juego de palabras, lee las respuestas a continuación. No están delirando argumentos; son discusiones bien escritas sobre los pros y los contras de cada idioma. Dale un poco de crédito a la comunidad de Stack Overflow.


No has dicho por qué quieres alejarte de Perl *. Si mi bola de cristal funciona hoy, es porque no conoces el idioma por completo y eso te frustra.

Quédese con Perl y estudie bien el idioma. Si lo hace, un día será un gurú y sabrá por qué su pregunta es irrelevante. La iluminación llega a aquellos para buscarla.

  • Lo llamaste "Perl5" pero no hay tal lenguaje. :PAG

No se gana ventaja al cambiar de Perl a Python. Tampoco se gana ventaja cambiando de Python a Perl. Ambos son igualmente capaces. Elija sus herramientas en función de lo que sabe y del problema que está tratando de resolver, más que de algún tipo de noción de que, de alguna manera, es inherentemente mejor que el otro.

La única ventaja real es si cambia de un idioma que no conoce a un idioma que conoce, en cuyo caso su productividad probablemente aumentará.


Python no tiene cruces . De hecho, creo que solo Perl tiene uniones hasta el momento. :-)


Python tiene una gran ventaja: está implementado, hay un compilador bastante estable para él.

Perl 6 es un lenguaje bastante visionario, y todavía no es lo suficientemente estable como para producir. Pero tiene un conjunto de características muy interesantes, entre ellas: uniones, gramáticas (sí, puede escribir analizadores completos con expresiones regulares Perl 6 "), manejo unicode a nivel de grafema, listas diferidas y macros potentes.

En su caso particular, cuando conozca Perl 5, se familiarizará con la sintaxis de Perl 6 muy rápidamente.

Para obtener una lista más completa de las fantásticas características de Perl 6, consulte las preguntas frecuentes .


IMO python''s regexing, esp. cuando intentas representar algo como el operador de perl / e como en s/whatever/somethingelse/ e , se vuelve bastante lento. Así que, en caso de duda, puede que necesite quedarse con Perl5 :-)


Perl 6 tiene algunas características excelentes sobre Python. Creo que estas son todas las características que Python 3 no tiene:

  • un sistema de tipo extensible, pero opcional
    • incluido el envío de métodos múltiples y la comprobación de tipos
    • incluso para builtins y "operadores"
    • con tipos de subconjuntos
  • Roles: clases no instanciables para la reutilización de código (también conocido como mixins)
    • con algunas ventajas adicionales sobre la mayoría de mixins:
    • comprobación de colisión de nombre de método en tiempo de compilación,
    • la capacidad de exigir, en una definición de rol, que ciertos métodos estén presentes en la clase de host, y posteriormente invocar métodos de la clase de host en la implementación del rol.
  • Gramáticas (composiciones de expresiones regulares que devuelven datos estructurados)
  • Regex extendidas potentes. Fancier que las capacidades regex integradas de python.
  • Juntas y uniones de tipo
  • Metaoperadores
  • La capacidad de definir operadores circumfix, postcircumfix, infix, prefix y postfix.
  • Teóricamente, la capacidad de trabajar con el AST como datos estructurados. (Aka: lisp macros)
  • Alcance de bloque
  • El * término para generar cierres de cualquier expresión
  • Construcciones de concurrencia implícitas ([] meta, uniones)
  • Construcciones de concurrencia declarativa (hiper para)
  • El sub MAIN convierte su firma de función en una interfaz de línea de comando y una guía de uso de línea de comando.
  • Listas perezosas (pero puede hacer las suyas propias con generadores)

Y comparte con Python las siguientes ventajas sobre Perl 5:

  • El concepto de una "clase", la palabra clave de la clase y el azúcar asociado **:
    • La palabra clave self
    • getter / setter sugar con el concepto de datos privados
  • un protocolo meta-objeto bien definido y accesible
  • gran soporte Unicode
  • gran soporte de fecha / hora incorporado
  • En general, "pilas incluidas": muchas funciones integradas
  • variables de ámbito no global por defecto

La implementación de Perl6 no está completa al 100%, o sintonizada lo suficiente como para usarla con ciertos valores de aplicaciones "sensibles al rendimiento". Pero el 80-90% de las especificaciones que se necesitan para el 95-99% de los casos de uso está completo en Rakudo, en este momento *

* Una omisión evidente es cualquier provisión para E / S asíncrona. Esa parte de la especificación está en flujo.

** Aunque el popular proyecto Moose proporciona esto en Perl 5.


Python tiene una gran ventaja de estar disponible en un formato de producción listo hoy.

Python tiene Jython e IronPython, si necesita trabajar estrechamente con Java o .net clr.

Perl 6 tiene las ventajas de estar basado en los mismos principios que Perl (1-5); Si te gusta Perl, te gustará Perl 6 por las mismas razones. (Hay más de una forma de hacerlo, etc.)

Perl 6 también tiene la ventaja de ser implementado solo parcialmente: si quiere piratear las partes internas del lenguaje o ayudar a definir las bibliotecas estándar, este es un buen momento para comenzar en Perl 6.

Edit : (2011) Todavía es un gran momento para hackear las partes internas de Perl6, pero ahora hay una distribución Perl6 mucho más madura y utilizable, Rakudo Star . Si desea usar Perl6 hoy, esa es una gran opción.