python perl

Siguiente paso después de PHP: Perl o Python?



(14)

Puede parecer que se lo han pedido muchas veces, pero en realidad no lo ha hecho. Hice mi investigación y ahora estoy ansioso por escuchar las opiniones de los demás .

Tengo experiencia con PHP 5 , tanto con métodos de programación funcionales como orientados a objetos. He creado algunos sitios web con características minimalistas.

Los profesionales pueden estar de acuerdo en que PHP no es un lenguaje de programación que fomente los buenos hábitos de desarrollo. (Creo que no es la tarea de la herramienta, pero esto no importa). Además, su rendimiento también es controvertido y, a menudo, se dice que es deficiente en comparación con los competidores.

En el 42º podcast del blog Stack Overflow, un desarrollador de Polonia le preguntó qué idioma debería aprender para mejorar sus habilidades. Jeff y Joel sugirieron que cada uno de ellos ayudaría , aunque hay algunos que son mejores en algunos aspectos. A pesar de que hicieron algunos grandes puntos, no me ayudó mucho.

Desde un punto de vista de principiante, no hay uno que no pueda ver (corrección sugerida por S. Lott ) muchas diferencias entre Perl y Python . Me gustaría que enfatice sus fortalezas y debilidades y nombre algunos servicios únicos.

Por supuesto, esto no sería justo, ya que también podría revisar a ambos. Así que aquí está mi lista de deseos y los requisitos para ayudarle.

En primer lugar, me gustaría seguir las estructuras OOP y utilizarlas fundamentalmente. Planifiqué en parte un CMS multiusuario utilizando MySQL y XML, por lo que cuanto mayor sea la implementación, mejor. Debido a su naturaleza prevista, la manipulación de cuerdas se utilizará intensivamente.

Si no hay grandes diferencias, las comparaciones probablemente deberían mencionar la sintaxis y otros pequeños detalles que no importan en primer lugar.

Entonces, aquí está mi pregunta: ¿cuál debería probar primero? - Perl || ¿Pitón?

Conclusión

Tanto Perl como Python tienen sus propios fans, lo que es genial. Me gustaría decir que estoy agradecido por toda la participación, no hay rastro de ninguna guerra de fuego.

Acepté la respuesta más valiosa, a pesar de que hay muchos artículos pequeños a continuación. Como se sugiere más a menudo, iré con Python primero. Entonces intentaré Perl más tarde. Déjame ver cuál se adapta mejor a mi mente.

Durante el desarrollo de mi CMS especial, voy a preguntar más sobre las dudas de programación, ¡porque los desarrolladores ahora pueden contar entre sí! Gracias.

Edición: hubo algunas personas que sugirieron elegir Ruby o Java en su lugar. Java realmente me ha decepcionado. Tal vez tiene grandes características, tal vez no tiene. No me gustaría usarlo.

Además, me dijeron que usara Ruby. Hasta ahora, la mayoría de los desarrolladores con los que me comunico tienen una opinión bastante mala sobre Ruby. Lo veré yo mismo, pero ese es el último elemento en mi lista de prioridades.


"Me gustaría seguir la estructura de OOP ..." defiende Python o, más aún, si está abierto, Ruby. Por otro lado, en términos de bibliotecas existentes, el orden es probablemente Perl> Python >> Ruby. En términos de su carrera, es poco probable que Perl en su currículum lo haga sobresalir, mientras que Python y Ruby pueden llamar la atención de un gerente de contratación.

Como programador de PHP, es probable que vea a los 3 como algo "engorroso" para obtener una página web. Todas tienen buenas soluciones para los marcos web, pero ninguna está tan enfocada en renderizar una página web como PHP.

Creo que es muy probable que Python sea una mejor opción para ti que Perl. Tiene muchos buenos recursos, una gran comunidad (aunque no tan grande como Perl, probablemente), "sobresale" un poco en un currículum, y tiene una buena reputación.


¿Por qué no hay Ruby en tu lista? Tal vez deberías intentarlo.


Cada lenguaje dinámico es de la misma familia. No importa cuál sea la herramienta con la que trabajas, importa cómo lo hagas.

PHP VS PYTHON OT PERL O RUBY? Para

Como se mencionó en muchos comentarios, python está más limpio en algún momento cuyos rizos se usan por completo. Solo tienes que practicar.


Como programador de Perl, normalmente diría que Perl. Pero viniendo de PHP, creo que Perl es demasiado similar y realmente no obtendrás mucho de eso. (No porque no haya mucho que aprender, pero es probable que programe en Perl usando el mismo estilo que programa en PHP).

Sugeriría algo completamente diferente: Haskell (sugerido por Joel), Lisp, Lua, JavaScript o C. Cualquiera de estos te haría un mejor programador al abrir nuevas formas de ver el mundo.

Pero no hay razón para dejar de aprender PHP mientras tanto.

Para ver bien el lado oscuro de estos idiomas, recomiendo de todo corazón: ¿Cuáles son las cinco cosas que odias de tu idioma favorito?


Honestamente, la "mayoría" de mi programación ha estado en Perl y PHP y recientemente decidí hacer mi último proyecto en Python, y debo admitir que es muy bueno programarlo. Tenía mis dudas de que no había ningún paréntesis, ya que eso es lo que siempre he hecho, pero es realmente muy limpio. Sin embargo, al final del día, puedes hacer buenas aplicaciones web con las 3, pero si estás decidido a dejar caer PHP para probar algo nuevo, te recomendaría Python y el framework Django.


No he trabajado mucho con Python, pero puedo decir por qué no me gustó de Perl cuando lo usé.

  1. OO soporte se siente pegado en. OO en perl es muy diferente de la compatibilidad con OO en los otros idiomas que he usado (que incluyen cosas como PHP, Java y C #)
  2. TMTOWTDI (Hay más de una forma de hacerlo). Buena idea en teoría, terrible idea en la práctica, ya que reduce la legibilidad del código.
  3. Perl usa muchos símbolos mágicos.
  4. Perl no admite los argumentos de función con nombre, lo que significa que debe profundizar en la matriz @_ para obtener los argumentos pasados ​​a una función (o, mejor dicho, un sub como perl no tiene la palabra clave de función). Esto significa que verá muchas cosas como el ejemplo a continuación (movido porque a SO no le gusta el código en las listas numeradas)

Habiendo dicho todo eso, miraría Python. A menos que quiera ir con algo más pesado como C ++ o C # / Java.

Oh, antes de que lo olvidara: quería poner un ejemplo para 4 arriba, pero a SO no le gusta poner el código en listas numeradas:

sub mySub { #extremely common to see in Perl, as built-ins operators operate on the $_ scalar or @_ array implicitly my $arg1 = shift; my $arg2 = shift; }


No tengo experiencia con Python. Me atrevo a aprender a Perl, no por desgaste, sino porque hay un TON para aprender en la plataforma. Los conceptos clave de Perl son: Haz lo que quiero decir ( DWIM ) y hay más de una forma de hacerlo ( TMTOWTDI ). Esto significa que, hipotéticamente, a menudo no hay una manera incorrecta de abordar un problema si el problema se resuelve adecuadamente.

Comience con el aprendizaje del lenguaje base de Perl, luego extienda el aprendizaje de los módulos clave de Perl, como IO :: File, DBI, HTML :: Template, XML :: LibXML, etc. etc. search.cpan.org será su recurso . perlmonks.org será su guía. Casi todo lo que sea útil para hacer tendrá un módulo publicado.

Tenga en cuenta que Perl es un lenguaje dinámico y poco estructurado. Perl no es la plataforma para hacer cumplir los estándares drásticos de OOP, pero por una buena razón. Encontrarás el lenguaje extremadamente flexible.

¿Dónde se usa Perl? Los administradores del sistema lo usan mucho, como ya se mencionó. Todavía puede hacer aplicaciones web excelentes, ya sea por CGI simple o MVC framework.


Perl es un lenguaje muy bueno y CPAN tiene una tonelada de módulos maduros que le ahorrarán mucho tiempo. Además, Perl se está moviendo hacia adelante hoy en día con muchos proyectos interesantes (a diferencia de lo que a los fanboys desinformados les gusta repartir). Incluso una implementación de Perl 6 ya está lanzando Perl 6 en funcionamiento.

Si quieres hacer OO, recomendaría a Moose .


Python es limpio y elegante, y el hecho de que LOTS of C APIs haya sido envuelto, te brinda poderosos ganchos. También me gusta el " zen de pitón ".

  • Lo bello es mejor que lo feo.
  • Explícito es mejor que implícito.
  • Lo simple es mejor que lo complejo.
  • Complejo es mejor que complicado.
  • Plano es mejor que anidado.
  • Lo escaso es mejor que lo denso.
  • La legibilidad cuenta.
  • Los casos especiales no son lo suficientemente especiales para romper las reglas.
  • Aunque la practicidad supera la pureza.
  • Los errores nunca deben pasar en silencio.
  • A menos que sea explícitamente silenciado.
  • Ante la ambigüedad, rechace la tentación de adivinar.
  • Debería haber una, y preferiblemente solo una, obvia forma de hacerlo.
  • Aunque esa forma puede no ser obvia al principio a menos que seas holandés.
  • Ahora es mejor que nunca.
  • Aunque nunca es a menudo mejor que ahora.
  • Si la implementación es difícil de explicar, es una mala idea.
  • Si la implementación es fácil de explicar, puede ser una buena idea.
  • Los espacios de nombres son una gran idea, ¡hagamos más de ellos!

Recientemente hice el paso de Perl a Python, después de un par de años solo de Perl. Poco después, descubrí que había empezado a leer todo tipo de códigos Python como si fuera cualquier otro texto fácil de leer, algo que nunca he hecho con Perl. Tener que ahondar en el código Perl de terceros siempre ha sido una especie de pesadilla para mí, ¡así que fue una sorpresa muy, muy agradable!

Para mí, esto significa que el código Python es mucho más fácil de mantener, lo que a la larga hace que Python sea mucho más atractivo que Perl.


Si esos 2 son tus únicas opciones, elegiría Python.

De lo contrario deberías aprender javascript.

No me refiero realmente a aprenderlo ...


Si no vas a hacer desarrollo web con este lenguaje, cualquiera de ellos lo haría. Si es así, es posible que el desarrollo web en perl sea un poco más complicado, ya que todos los marcos requieren un mayor conocimiento del idioma. Puedes hacer cosas buenas en ambos, pero mi opinión es que Perl permite un desarrollo más rápido.
Además, las expresiones regulares de perl rock!


Te sugiero que hagas un tutorial para principiantes de cada uno y decidas por ti mismo cuál te queda mejor. Encontrará que puede hacer lo que necesita hacer en cualquiera de los dos:

Tutorial de Python ( Clases de Python )

Tutorial de Perl ( Clases de Perl ) (No se pudo encontrar un solo tutorial de Perl "oficial", no dude en sugerir uno)

En mi experiencia, Python proporciona una experiencia más clara y directa.

Mis problemas con perl:

  • ''uso estricto'', Mancha, Advertencias? - Idealmente, esto no debería ser necesario.

  • Pasando variables: @ ; vs. $ , vs turno

  • ¿Mirando my , local , ours ? (La definición local parece indicar en particular cierta confusión con perl, "Realmente es probable que quieras usar mi, porque local no es lo que la mayoría de la gente considera" local ".)

En general, con mis habilidades de perl todavía encuentro mi propia documentación de referencia para las características integradas. Donde como en python me parece menos. (He trabajado en aproximadamente la misma cantidad de tiempo, pero mi experiencia en programación en general ha crecido con el tiempo. En otras palabras, probablemente ahora sea un mejor programador de Perl)

Sin embargo, si eres un gurú de la línea de comandos de Unix, Perl puede ser más natural para ti. O, si lo usa principalmente como reemplazo o extensión de las tareas de administración de la línea de comandos, puede satisfacer sus necesidades. En mi opinión, perl es "más rápido en el sorteo" en la línea de comandos que python.


Yo iría con Perl. No todos estarán de acuerdo conmigo aquí, pero es un gran lenguaje que se adapta bien al trabajo de administración del sistema y lo expondrá a algunas construcciones de programación más funcionales. También es un gran lenguaje para aprender a usar la cantidad más pequeña de código para una tarea determinada.

Sin embargo, para el escenario de uso que mencionaste, creo que PHP puede ser tu mejor apuesta. Sin embargo, Python tiene algunos grandes marcos web, por lo que si solo quieres probar un nuevo lenguaje para desarrollar aplicaciones web, Python podría ser tu apuesta.