• Publicidad

Perl o Delphi ¿Por qué Perl?

Todo lo relacionado con lenguajes de programación distintos de Perl: PHP, Java, C++, Ruby, Python, etc.

Perl o Delphi ¿Por qué Perl?

Notapor vematom » 2010-09-18 03:48 @200

Por diversión estoy leyendo sobre sockets, protocolos, captura de paquetes... etc.

Como proyecto para aprender quiero programar un "wake-on-lan", un detector de tarjetas de red en modo promiscuo y un "detector de detectores de tarjetas red en modo promiscuo".

Mis conocimientos de Perl y Delphi son muy básicos y quiero profundizar pero... debo elegir y hasta ahora solo veo ventajas de Delphi con respecto a Perl:

1º.- Es un lenguaje compilador. Genera ".exe" y por lo tanto es más fácilmente portable. Ya sé que hay un módulo para que Perl genere exes pero, ¿genera buen código teniendo en cuenta que Perl fue creado como lenguaje intérprete?
2º.- El entorno de desarrollo es más amigable.
3º.- Generar programas con menús, barras y botones es más fácil. Se que hay un módulo Tk para Perl, pero tengo la impresión de que no es tan potente ni sencillo.
4º.- La sintaxis en Delphi me parece más sencilla de entender. Los programas en Perl a veces parecen jeroglíficos.

Así pues, me pregunto, ¿cuál de los dos genera programas (para temas de redes) más rápidos? ¿Hay algo que se pueda hacer en Perl que Delphi no pueda? ¿Qué ventajas tiene Perl?

P.D. Bueno, dentro de las ventajas de Perl podemos apuntar la existencia de esta página. No he visto nada parecido en ningún otro lado :D
vematom
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2010-09-02 15:40 @694

Publicidad

Re: Perl o Delphi ¿Por qué Perl?

Notapor creating021 » 2010-09-18 11:06 @504

¿Por qué Perl es mejor que X lenguaje?
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Re: Perl o Delphi ¿Por qué Perl?

Notapor explorer » 2010-09-18 13:09 @590

vematom escribiste:Como proyecto para aprender quiero programar un "wake-on-lan", un detector de tarjetas de red en modo promiscuo y un "detector de detectores de tarjetas red en modo promiscuo".
¿No sería mejor empezar por algo más sencillo?

vematom escribiste:Mis conocimientos de Perl y Delphi son muy básicos y quiero profundizar pero... debo elegir y hasta ahora solo veo ventajas de Delphi con respecto a Perl:
Yo aprendí los dos. Si eres joven, puedes hacerlo también.

vematom escribiste:1º.- Es un lenguaje compilador. Genera ".exe" y por lo tanto es más fácilmente portable. Ya sé que hay un módulo para que Perl genere exes pero, ¿genera buen código teniendo en cuenta que Perl fue creado como lenguaje intérprete?
Te equivocas.

Un lenguaje es más portátil si es capaz de funcionar o de ser compilado en más sistemas. Un .exe, como lo llamas tú, solo funciona en sistemas operativos Windows. Según la Wikipedia, puede generar programas para Windows, Linux y .Net. Pero nada más. Como te ha dicho creating021, Perl se ejecuta en un centenar de sistemas distintos. Y sin tener que ser compilado.

El que el resultado sea compilado o interpretado depende de los requerimientos iniciales con respecto a la ejecución del programa: si se va a ejecutar centenares de veces por segundo, las 24 horas del día, y, su ejecución va a ser larga o costosa en recursos hardware, nos interesa que sea lo más rápido posible. Por contra, si solo se va a ejecutar solo unas miles de veces al cabo del día, o, ejecuta un proceso muy corto, lo podemos realizar con cualquier lenguaje, compilado o no, ya que en este caso valoramos más el coste del desarrollo -el tiempo que tardará el programador en hacer su trabajo- que el coste de servicio del programa -el tiempo que tarda el programa en dar el resultado al usuario-.

Hace años, la idea imperante era que una sola herramienta era suficiente para resolver todos los casos. Era la época del lenguaje C, Pascal, Fortran y mucho más. Pero con los años, han aparecido nuevas situaciones o hábitats, y nuevos lenguajes adaptados a esas situaciones. Fue el caso de Perl, para el tratamiento de registros (logs) o procesar cualquier tipo de información textual. Otros, como JavaScript, nacieron para dar respuesta a la necesidad de procesar información desde el lado del cliente, en un entorno web.

Hoy en día, esa idea está cambiando, y se busca cada vez más resolver los problemas usando varios lenguajes, a la vez, y especializados.

Pero también ocurre un desarrollo paralelo de los lenguajes de programación. Delphi (al igual que Visual Basic, Perl y muchos otros lenguajes) han ido incorporando ideas de otros lenguajes de programación, haciéndoles cada vez más universales, en cuanto a qué aplicaciones se pueden desarrollar y qué problemas resolver.

Perl ha ido cambiando con los años. Está en la versión v5.12 (la v5.14 para el año que viene), y es un completísimo lenguaje que resuelve muchísimos problemas, de forma fácil, rápida, y a veces, hasta divertida. Pero... no resuelve todos los problemas, aprender a pensar en "Perl" lleva un tiempo, y escribirlo, mucho más.

Como se trata de una herramienta de propósito general (te recomiendo una lectura rápida de la página Perl en Wikipedia), te encontrarás con usuarios de Perl que lo usan de formas muy variadas: unos solo para escribir programas de una-línea, para calcular unas estadísticas rápidas en sus sistemas Unix, hasta gente que hace investigación bioinformática, o la propia NASA, como elemento de unión para el procesado de todas las imágenes e información que llega de los satélites artificiales.

En resumen... es como cualquier otro lenguaje. La diferencia es que en este foro... nos sentimos muy a gusto con él :)

vematom escribiste:2º.- El entorno de desarrollo es más amigable.
La palabra amigable se acuñó hace más de 25 años, para distinguir los sistemas basados en terminal o consola con los nuevos sistemas operativos gráficos (Apple, XWindow...). Hoy en día se aplica a un sistema que ofrece una mejor usabilidad que otro.

Así que... se supone que un sistema gráfico, en ventanas, menús, accionado con teclado y ratón, es mucho más amigable que otro que solo ofrezca un aspecto textual (o no tenga ningún aspecto, como Perl).

Ahora bien... precisamente ese maravilloso entorno gráfico no me sirve de nada si estoy en un taxi, yendo a ver un cliente, y necesito entrar de forma urgente en mi servidor, para corregir un programa o añadir una funcionalidad, a través de mi teléfono móvil, cosa que con Perl sí que puedo hacer.

Bueno, pues yo elijo aquel sistema que me permite interactuar de forma fácil, rápida, y en la mayor variedad de situaciones.

vematom escribiste:3º.- Generar programas con menús, barras y botones es más fácil. Se que hay un módulo Tk para Perl, pero tengo la impresión de que no es tan potente ni sencillo.
Perl dispone de varios entornos gráficos, algunos portátiles, otros exclusivos de algunos sistemas operativos. Padre usa el entorno Wx, con lo que se pueden realizar programas gráficos en Windows, Linux y MacOS.

vematom escribiste:4º.- La sintaxis en Delphi me parece más sencilla de entender. Los programas en Perl a veces parecen jeroglíficos.
Pascal es un lenguaje muy sencillo de entender, incluso con la adiciones que Delphi ha ido añadiendo con los años. A mi me gustaba muchísimo e incluso tengo todavía libros de programación de él.

Perl también tiene una sintaxis sencilla (resumida en la página de Wikipedia), pero acompañada de una riquísima variedad de funciones incorporadas, que permite escribir un programa de muchas formas, algunas más oscuras que otras, pero tienes la libertad de hacer cualquiera de ellas.

Y por eso algunos programas parecen muy complicados de entender: porque el programador no tuvo cuidado de hacerlo más claro o no puso los comentarios necesarios. Algo que se puede repetir en casi todos los lenguajes informáticos (programadores desastrosos los hay por todas partes).

vematom escribiste:Así pues, me pregunto, ¿cuál de los dos genera programas (para temas de redes) más rápidos?
Eso depende de la cantidad de información que a través de la red quieres procesar.

vematom escribiste:¿Hay algo que se pueda hacer en Perl que Delphi no pueda?
No lo sé. Yo usé Delphi durante 3 años, pero hace mucho años que lo dejé, porque dejé de programar para entornos Windows. Quizás exista algún otro miembro que pueda darte mejor opinión.

Yo te diría que si la mayor parte de los programas que quieres hacer es del tipo gráfico, es mejor que uses Delphi, aunque eso te limite a unos pocos sistemas operativos.

Lo mejor: aprender los dos.

vematom escribiste:¿Qué ventajas tiene Perl?
A mi me encanta CPAN, y las reuniones de los Perl Mongers y las YAPC. En definitiva, la comunidad. No sé si eso existe en Delphi.

Como regla general, a mí me da igual qué lenguaje vaya a usar un programador. Solo me interesa que lo haga con un lenguaje que para él le sea cómodo, ya que así lo hará de forma rápida (quien le paga el sueldo soy yo, claro).

vematom escribiste:P.D. Bueno, dentro de las ventajas de Perl podemos apuntar la existencia de esta página. No he visto nada parecido en ningún otro lado :D
Pues muchas gracias :)

Más información, en Perl Beginner's Site (en inglés).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Perl o Delphi ¿Por qué Perl?

Notapor vematom » 2010-09-18 16:07 @713

No esperaba una respuesta tan larga ni tan precisa. Gracias. Espero no molestar a nadie ya que en el mundo de la programáción hay verdaderos hooligans y si dices algo negativo del que ellos usan es como nombrarles la madre....
Evidentemente, he hecho algunas afirmaciones incorrectas y agradezco que me las aclares aunque con lo del "exe" y la portabilidad de Delphi me refiero a que si hago una aplicación y se la quiero dar a un amigo, con Delphi, le paso un simple fichero "exe" y punto mientras que con perl tendría que tenerlo instalado. El hecho de que perl se ejecute en cientos de S.O. y Delphi no, a los usuarios normalitos como yo no les significa ventaja alguna ya que casi todos usamos o windows o linux.
Con respecto a la gratuidad creo que hay algo parecido al Delphi de Borland que se llama Lazarus y si no me equivoco, se pueden generar "ejecutables" para linux no sé si con kylix o con el mismo Lazarus que es gratis.
Del resto de correciones que me indicas sólo puedo leerlas y aprender aunque estarás conmigo en que las expresiones regulares de Perl requieren de bastante experiencia para acostumbrarte a ellas.

Voy a tomar tu consejo. Intentaré aprender ambos lenguajes, aunque si como dices con perl se pueden crear aplicaciones con ventanas y botones...etc no voy a necesitar Delpphi y una vez más si a pesar del cuidado que he tenido alguien se ha molestado pido disculpas por hacer algunas afirmaciones sin conocer demasiado bien el tema.


P.D. La pagina que me recomiendas para principiantes tiene muy buena pinta. Gracias
vematom
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2010-09-02 15:40 @694

Re: Perl o Delphi ¿Por qué Perl?

Notapor erv-Z » 2010-09-18 16:31 @729

Humm... Para mi, Delphi y Perl son lenguajes muy diferentes...
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Perl o Delphi ¿Por qué Perl?

Notapor explorer » 2010-09-18 17:03 @752

Entonces, no se dice portabilidad, sino compatibilidad. En algunas situaciones es más necesaria una que otra. Y viceversa.

Sí, estamos rodeados de usuarios con Windows y Linux, pero esos no son mis clientes, sino aquellos cuyos ordenadores son tan grandes como un frigorífico de dos puertas. Las necesidades son distintas de las de un usuario "normal". Y en esos ambientes necesitas dar respuestas rápidas, a veces, con sistemas operativos "muy raros".

Por ejemplo, hoy en día, se pueden correr buena parte de los programas escritos en Perl v4 (de 1994). La comunidad y la licencia como producto de software libre me garantizan una supervivencia muy larga de mis códigos. Pero si programase en Delphi, no tendría ninguna garantía de que mis códigos sigan funcionando dentro de diez años (Delphi ha pasado por varias empresas privadas en estos años). ¿Recuerdas lo que pasó con Visual Basic? Pues que llegó Micro$oft en el 2001 y dijo que a partir de ese momento dedicaría sus esfuerzos a desarrollar Visual Basic .Net, con el consecuente enfado de la comunidad de programadores: el trabajo de diez años tenía que ser reescrito. Es el peligro de cuando dependes de una empresa privada... que puede "desaparecer" o "cambiar las condiciones" de la noche a la mañana.

Las expresiones regulares, su sintaxis, son casi como un lenguaje independiente. Cuesta mucho aprenderlas, sobre todo si te obligan a ello, porque para muchas programadores es peor que aprender egipcio antiguo. Para los que hemos aprendido lenguajes cercanos a la máquina, vemos natural el ver representaciones minimalistas de sintaxis que funcionan en un determinado espacio de soluciones. Además, como en cualquier otro lenguaje, no es necesario aprender la sintaxis completa para usarlas eficazmente.

Eso sí, una vez que entiendes su potencia, aplicarlas a algo tan cotidiano en informática, como la detección de patrones de regularidad, se convierte en algo cotidiano... más que eso... se te vuelve inevitable no usarlas.

Finalmente... una nota curiosa... puedes llamar a Perl desde dentro de Delphi, como se indica en la distribución PLDelphi.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Programación en general

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 16 invitados