Perl est un langage de programmation dynamique, interprété et polyvalent de haut niveau. Java est un langage de programmation de haut niveau, à usage général, principalement à paradigme unique, de type statique.
Donc, les deux sont de haut niveau :
Un langage de programmation de haut niveau est un langage de programmation avec une forte abstraction des détails de l'ordinateur.
et à usage général :
Dans les logiciels informatiques, un langage de programmation à usage général (GPL) est un langage de programmation conçu pour être utilisé pour écrire des logiciels dans une grande variété de domaines d'application.
Essentiellement, cela signifie que tout ce que vous pouvez faire avec Perl, vous pouvez également le faire avec Java. Et comme @KyleHodgson le mentionne , leurs syntaxes dérivent de C et C ++ et la syntaxe des trucs simples comme les for
boucles et les if
instructions est essentiellement la même - et comme le note @DipanMehta , les deux sont des ordures ménagères . Et bien sûr, les deux sont extrêmement populaires et ont des communautés dynamiques.
Mais c'est là que s'arrêtent les similitudes. Perl est multi-paradigme, prenant en charge un large éventail de paradigmes de programmation:
Perl n'encourage pas un seul paradigme, ils sont essentiellement égaux et vous êtes libre de choisir celui qui vous semble le mieux adapté à ce que vous construisez, sans bien sûr vous limiter à un seul paradigme, vous pouvez mélanger et assortir. D'un autre côté, Java est principalement un langage orienté objet basé sur une classe. Il existe un support pour la programmation générique, mais en tant que débutant, vous devriez considérer Java comme strictement un langage orienté objet basé sur une classe.
Perl permet donc plus d'une façon de structurer votre code 1 , alors que Java une seule. Ce n'est pas une mauvaise chose (ou une bonne chose), c'est juste différent. Si vous n'avez écrit aucun code Perl orienté objet, Java peut sembler un peu étranger au premier abord. Ne vous découragez pas, l'orientation objet est quelque chose que vous devrez éventuellement apprendre, si vous envisagez une carrière dans le développement de logiciels, et l'apprentissage de Java est un bon moyen d'apprendre les concepts de base de l'orientation objet - pas un moyen parfait, mais définitivement un bon moyen.
Et comme vous le savez, Perl est interprété, alors que Java est ... enfin ... une bête complètement différente . En Java, vous écrivez votre code comme vous le feriez en Perl, puis vous le compilez . Le résultat n'est pas un exécutable, mais un bytecode Java . Ce format d'intermédiation est exécuté (enfin!) Dans la machine virtuelle Java , qui est quelque peu analogue à l'interpréteur Perl. Une machine virtuelle Java doit être installée au préalable pour qu'un programme Java s'exécute, de manière similaire à la façon dont vous devez installer un interpréteur Perl pour exécuter un script Perl 2 .
Venant d'un arrière-plan Perl, la chose la plus importante à retenir est l'étape de compilation en bytecode: chaque fois que vous modifiez un fichier source Java, vous devez le recompiler. Cela peut sembler fou au début, mais la compilation a une très bonne conséquence: votre code est vérifié pour une variété d'erreurs à ce stade, et le compilateur refuse de terminer le processus s'il y en a, et parfois vous aidera à localiser les erreurs avec messages utiles (Il y a toujours des messages, mais seulement parfois ils sont utiles).
Ce qui nous amène à la dernière différence majeure:
Perl est dynamique 3 :
Le langage de programmation dynamique est un terme largement utilisé en informatique pour décrire une classe de langages de programmation de haut niveau qui exécutent au moment de l'exécution de nombreux comportements courants que d'autres langages peuvent exécuter lors de la compilation, le cas échéant. Ces comportements peuvent inclure l'extension du programme, en ajoutant du nouveau code, en étendant les objets et les définitions, ou en modifiant le système de type, tout cela pendant l'exécution du programme.
et tapé dynamiquement 4 :
Un langage de programmation est dit être typé dynamiquement lorsque la majorité de sa vérification de type est effectuée au moment de l'exécution plutôt qu'au moment de la compilation.
et Java est typé statiquement :
On dit qu'un langage de programmation utilise un typage statique lorsque la vérification de type est effectuée pendant la compilation plutôt que pendant l'exécution.
Ce qui, pour le dire le plus simplement possible, signifie qu'en Java, vous devez déclarer le type de vos variables et méthodes avant de les utiliser. Il y a d'autres différences, mais je ne voudrais pas gâcher le plaisir de les découvrir par vous-même :)
Et, enfin, il y a une différence très importante: Java est le langage chéri du monde universitaire 5 et du monde de l'entreprise, alors que vous rencontrerez rarement Perl dans un cadre universitaire (où je l'ai rencontrée pour la première fois), et ses perspectives de carrière se réduisent (encore pas mal d'emplois, mais loin d'être aussi nombreux que Java, les langages .Net ou PHP). Je ne commenterai pas les raisons, je ne fais qu'énoncer les (tristes) faits. Puisque vous êtes encore très jeune, en apprenant Java, vous serez un peu mieux préparé pour un diplôme en informatique, si vous choisissez de suivre cette voie.
N'abandonnez pas Perl, bien sûr, mais explorez Java. Le fait qu'ils soient plus différents que similaires signifie également que vous apprendrez des approches et des mentalités de programmation assez différentes, c'est un chemin difficile mais qui finira par faire de vous un meilleur programmeur.
1 "Tim Toady"
2 La communauté Perl explore activement la possibilité d'une machine virtuelle Perl, via Parrot .
3 Dynamique ne signifie pas toujours typé dynamiquement.
4 Perl est typé dynamiquement pour les types définis par l'utilisateur, typé statiquement en ce qui concerne les tableaux, les hachages, les scalaires et les sous-routines, et fortement typé via use strict
, c'est donc essentiellement un langage système de type variable, mais pour garder un certain sens, appelons-le dynamiquement tapé.
5 Au point d'abuser, comme l'écrit Joel Spolsky dans The Perils of JavaSchools .