Penso que estou aprendendo Java como minha segunda linguagem (eu sou um desenvolvedor de Perl). Mas apenas lendo alguns dos tutoriais on-line, eu realmente não consigo encontrar nenhuma semelhança entre os dois. O que é fácil entender quando aprender Java?
14
Respostas:
Perl é uma linguagem de programação dinâmica de alto nível, de propósito geral, multi-paradigma, interpretada e dinâmica. Java é uma linguagem de programação de alto nível, de propósito geral e principalmente de paradigma único, tipicamente estaticamente.
Então, ambos são de alto nível :
e de uso geral :
Em essência, isso significa que tudo o que você pode fazer com Perl, também pode fazer com Java. E como o @KyleHodgson menciona , ambas as sintaxes derivam de C e C ++ e a sintaxe para coisas simples como
for
loops eif
instruções é essencialmente a mesma - e, como observa o @DipanMehta , ambas são coletadas como lixo . E é claro que ambos são extremamente populares e têm comunidades vibrantes.Mas é aí que as semelhanças param. Perl é multi-paradigma, suportando uma ampla variedade de paradigmas de programação:
O Perl não encoraja um único paradigma, eles são essencialmente iguais e você é livre para escolher o que achar melhor para o que estiver construindo, sem, obviamente, limitá-lo a um único paradigma, você pode misturar e combinar. Por outro lado, Java é principalmente uma linguagem orientada a objetos baseada em classe. Há suporte para programação genérica, mas como iniciante, você deve pensar em Java estritamente como uma linguagem orientada a objetos baseada em classe.
Portanto, o Perl permite mais de uma maneira de estruturar seu código 1 , enquanto o Java é apenas uma. Isso não é uma coisa ruim (ou uma coisa boa), é apenas diferente. Se você não escreveu nenhum código Perl orientado a objetos, o Java pode parecer um pouco estranho no começo. Não desanime, a orientação a objetos é algo que você precisará aprender, se estiver considerando uma carreira em desenvolvimento de software, e aprender Java é uma boa maneira de aprender os conceitos básicos de orientação a objetos - não é uma maneira perfeita, mas definitivamente uma boa maneira.
E como você sabe, Perl é interpretado, enquanto Java é ... bem ... um animal completamente diferente . Em Java, você escreve seu código como faria no Perl e depois o compila . O resultado não é um executável, mas um bytecode Java . Esse formato intermediário é executado (finalmente!) Na Java Virtual Machine , que é algo análogo ao interpretador Perl. Uma JVM deve ser instalada previamente para que um programa Java seja executado, de maneira semelhante a como você precisa instalar um interpretador Perl para executar um script Perl 2 .
Vindo de um plano de fundo Perl, a coisa mais importante a lembrar é a etapa de compilação para bytecode: toda vez que você faz uma alteração em um arquivo de origem Java, é necessário recompilá-lo. Pode parecer uma loucura no começo, mas a compilação tem uma consequência muito boa: seu código é verificado quanto a uma variedade de erros neste estágio, e o compilador se recusa a concluir o processo, se houver algum, e às vezes ajuda a identificar os erros com mensagens úteis (sempre há mensagens, mas apenas algumas vezes são úteis).
O que nos leva à última grande diferença:
Perl é dinâmico 3 :
e digitado dinamicamente 4 :
e Java é digitado estaticamente :
O que, para simplificar o máximo possível, significa que em Java você deve declarar o tipo de suas variáveis e métodos antes de usá-los. Existem outras diferenças, mas eu não gostaria de estragar a diversão de descobri-las sozinho :)
E, finalmente, há uma diferença muito importante: Java é a linguagem da academia 5 e do mundo corporativo, enquanto você raramente encontra Perl em um ambiente acadêmico (onde eu a conheci) e suas perspectivas de carreira estão diminuindo. (ainda há muitos trabalhos, mas nem de longe tantos como Java, linguagens .Net ou PHP). Não vou comentar sobre os motivos, apenas afirmo os fatos (tristes). Como você ainda é muito jovem, ao aprender Java, você estará um pouco mais preparado para o curso de Ciência da Computação, se optar por seguir esse caminho.
Não desista do Perl, é claro, mas explore Java. O fato de serem mais diferentes do que similares também significa que você aprenderá abordagens e mentais de programação bastante diferentes, é um caminho difícil, mas que o tornará um programador melhor.
1 "Tim Toady"
2 A comunidade Perl está explorando ativamente a possibilidade de uma máquina virtual Perl, via Parrot .
3 Dinâmico nem sempre significa digitado dinamicamente.
4 Perl é digitado dinamicamente para tipos definidos pelo usuário, estaticamente em relação a matrizes, hashes, escalares e sub-rotinas distintas e fortemente tipado via
use strict
, portanto, é essencialmente uma linguagem de sistema de tipo variável, mas para manter um senso de sanidade, vamos chamá-lo dinamicamente digitado.5 Ao ponto do abuso, como Joel Spolsky escreve em The Perils of JavaSchools .
fonte
Bem, os dois usam sintaxe C como ponto e vírgula, chaves e assim por diante. Pessoalmente, quando tentei mudar de Perl para Java há alguns anos - a maior coisa que me impressionou foi a programação orientada a objetos. Eu havia desenvolvido alguns objetos em Perl, mas doeu minha cabeça tentar imaginar a vida no Reino dos Substantivos.
fonte
Dar uma facada em uma resposta alternativa, já que a selecionada atualmente parece estar focada nas diferenças entre as duas (na verdade, não há muitas semelhanças entre Perl e Java).
Semelhanças
Se o seu código Perl for muito rigoroso e ortogonal (bem testado, bem documentado, usa Moose ou orientação estrita a objetos), esses conceitos serão muito importantes para Java, pois ele é extremamente ortogonal e não tão expressivo.
fonte