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
Pues muchas gracias
Más información, en
Perl Beginner's Site (en inglés).