Tengo la mente puesta en que estoy aprendiendo Java como mi segundo idioma (soy un desarrollador de Perl). Pero solo por leer un poco de los tutoriales en línea, realmente no puedo encontrar ninguna similitud entre los dos. ¿Qué me resultará fácil de entender cuando aprenda Java?
14
Respuestas:
Perl es un lenguaje de programación dinámico, de alto nivel, multi-paradigma, interpretado y dinámico. Java es un lenguaje de programación de alto nivel, de propósito general, en su mayoría de un solo paradigma, de tipo estático.
Entonces, ambos son de alto nivel :
y de uso general :
En esencia, esto significa que todo lo que puede hacer con Perl, también puede hacerlo con Java. Y como menciona @KyleHodgson , sus sintaxis derivan de C y C ++ y la sintaxis para cosas simples como
for
bucles yif
declaraciones es esencialmente la misma, y como señala @DipanMehta , ambas son basura recolectada . Y, por supuesto, ambos son extremadamente populares y tienen comunidades vibrantes.Pero ahí es donde terminan las similitudes. Perl es multi-paradigma, apoyando una amplia gama de paradigmas de programación:
Perl no fomenta un solo paradigma, son esencialmente iguales y eres libre de elegir lo que creas que se adapta mejor a lo que sea que estés construyendo, sin, por supuesto, limitarte a un solo paradigma, puedes mezclar y combinar. Por otro lado, Java es principalmente un lenguaje orientado a objetos basado en clases. Hay soporte para programación genérica, pero como principiante debe pensar en Java como un lenguaje orientado a objetos estrictamente basado en clases.
Entonces, Perl permite más de una forma de estructurar su código 1 , mientras que Java solo una. Eso no es algo malo (o algo bueno), es simplemente diferente. Si no ha escrito ningún código Perl orientado a objetos, Java puede parecer un poco extraño al principio. No se desanime, la orientación a objetos es algo que eventualmente tendrá que aprender, si está considerando una carrera en desarrollo de software, y aprender Java es una buena manera de aprender los conceptos básicos de orientación a objetos, no es una manera perfecta, pero Definitivamente una buena manera.
Y como saben, Perl se interpreta, mientras que Java es ... bueno ... una bestia completamente diferente . En Java, escribe su código como lo haría en Perl, y luego lo compila . El resultado no es un ejecutable, sino un código de bytes de Java . Este formato de intermediación se ejecuta (¡finalmente!) En la máquina virtual Java , que es algo análogo al intérprete de Perl. Se debe instalar una JVM de antemano para que se ejecute un programa Java, de manera similar sobre cómo necesita instalar un intérprete de Perl para ejecutar un script Perl 2 .
Viniendo de un fondo Perl, lo más importante para recordar es el paso de compilación a bytecode: cada vez que realiza un cambio en un archivo fuente Java, necesita volver a compilarlo. Puede parecer una locura al principio, pero la compilación tiene una muy buena consecuencia: su código se verifica por una variedad de errores en esta etapa, y el compilador se niega a finalizar el proceso si hay alguno, y a veces lo ayudará a identificar los errores con mensajes útiles (siempre hay mensajes, pero solo a veces son útiles).
Lo que nos lleva a la última gran diferencia:
Perl es dinámico 3 :
y tipeado dinámicamente 4 :
y Java se escribe estáticamente :
Lo cual, para decirlo de la manera más simple posible, significa que en Java debe declarar el tipo de sus variables y métodos antes de usarlos. Hay otras diferencias, pero no me gustaría arruinar la diversión de descubrirlas por ti mismo :)
Y, finalmente, hay una diferencia muy importante: Java es el lenguaje ideal de la academia 5 y del mundo corporativo, mientras que rara vez se encontrará con Perl en un entorno académico (donde la conocí por primera vez), y sus perspectivas profesionales se están reduciendo. (todavía hay bastantes trabajos, pero ni mucho menos como Java, lenguajes .Net o PHP). No comentaré las razones, solo estoy exponiendo los hechos (tristes). Como todavía eres muy joven, al aprender Java estarás un poco más preparado para un título en Informática, si eliges seguir ese camino.
No renuncies a Perl, por supuesto, pero explora Java. El hecho de que sean más diferentes que similares también significa que aprenderá enfoques y mentalidades de programación bastante diferentes, es un camino difícil pero que finalmente lo convertirá en un mejor programador.
1 "Tim Toady"
2 La comunidad Perl está explorando activamente la posibilidad de una máquina virtual Perl, a través de Parrot .
3 Dinámico no siempre significa tipeado dinámicamente.
4 Perl se escribe dinámicamente para tipos definidos por el usuario, estáticamente escrito con respecto a la distinción de matrices, hashes, escalares y subrutinas, y fuertemente tipeado a través de
use strict
, por lo que esencialmente es un lenguaje de sistema de tipo variable, pero para mantener un cierto sentido de cordura, llamémoslo dinámicamente mecanografiado.5 Hasta el punto de abuso, como Joel Spolsky escribe en The Perils of JavaSchools .
fuente
Bueno, ambos usan una sintaxis tipo C: punto y coma, llaves y similares. Personalmente, cuando intenté hacer un cambio de Perl a Java hace varios años, lo más importante que me hizo tropezar fue la programación orientada a objetos. Había desarrollado algunos objetos en Perl, pero me dolía la cabeza tratar de imaginar la vida en el Reino de los sustantivos.
fuente
Tomar una puñalada en una respuesta alternativa, ya que la seleccionada actualmente parece centrarse en las diferencias entre los dos (realmente no hay muchas similitudes entre Perl y Java).
Similitudes
Si su código Perl es muy riguroso y ortogonal (bien probado, bien documentado, utiliza Moose u orientación estricta a objetos), esos conceptos se llevarán muy bien a Java, ya que Java es extremadamente ortogonal y no tan expresivo.
fuente