Perl ist eine universelle, interpretierte, dynamische Programmiersprache mit mehreren Paradigmen. Java ist eine allgemeine Programmiersprache auf hoher Ebene, die zumeist aus einem einzigen Paradigma besteht und statisch typisiert ist.
Also sind beide auf hohem Niveau :
Eine High-Level-Programmiersprache ist eine Programmiersprache mit starker Abstraktion von den Details des Computers.
und für allgemeine Zwecke :
In Computersoftware ist eine Allzweck-Programmiersprache (GPL) eine Programmiersprache, die zum Schreiben von Software in einer Vielzahl von Anwendungsbereichen entwickelt wurde.
Im Wesentlichen bedeutet dies, dass Sie alles, was Sie mit Perl tun können, auch mit Java tun können. Und wie @KyleHodgson erwähnt , leiten sich beide Syntaxen von C und C ++ ab, und die Syntax für einfache Dinge wie for
Schleifen und if
Anweisungen ist im Wesentlichen dieselbe - und wie bei @DipanMehta- Notizen handelt es sich bei beiden um Garbage Collected . Und natürlich sind beide sehr beliebt und haben lebendige Communities.
Aber hier hören die Ähnlichkeiten auf. Perl ist ein Multiparadigma, das eine Vielzahl von Programmierparadigmen unterstützt:
Perl unterstützt nicht ein einziges Paradigma, sie sind im Wesentlichen gleich und Sie können frei wählen, welches für Sie am besten geeignet ist, was auch immer Sie erstellen, ohne Sie natürlich auf ein einziges Paradigma zu beschränken. Sie können mischen und anpassen. Auf der anderen Seite ist Java meist eine klassenbasierte objektorientierte Sprache. Es gibt Unterstützung für die generische Programmierung, aber als Anfänger sollten Sie sich Java als eine streng klassenbasierte objektorientierte Sprache vorstellen.
Perl bietet also mehr als eine Möglichkeit, Code 1 zu strukturieren , während Java nur eine Möglichkeit bietet. Das ist keine schlechte Sache (oder eine gute Sache), es ist einfach anders. Wenn Sie keinen objektorientierten Perl-Code geschrieben haben, scheint Java zunächst etwas fremd zu sein. Lassen Sie sich nicht entmutigen, die Objektorientierung muss irgendwann erlernt werden, wenn Sie über eine Karriere in der Softwareentwicklung nachdenken, und das Erlernen von Java ist eine gute Möglichkeit, die grundlegenden Konzepte der Objektorientierung zu erlernen - aber keine perfekte Methode Auf jeden Fall ein guter Weg.
Und wie Sie wissen, wird Perl interpretiert, während Java ... nun ja ... ein ganz anderes Biest ist . In Java schreiben Sie Ihren Code wie in Perl und kompilieren ihn dann . Das Ergebnis ist keine ausführbare Datei, sondern ein Java-Bytecode . Dieses Zwischenformat wird (endlich!) In der Java Virtual Machine ausgeführt , die dem Perl-Interpreter etwas analog ist. Zuvor muss eine JVM installiert sein, damit ein Java-Programm ausgeführt werden kann, ähnlich wie Sie einen Perl-Interpreter installieren müssen, um ein Perl-Skript 2 auszuführen .
Das Wichtigste, das Sie von einem Perl-Hintergrund aus wissen sollten, ist der Schritt der Kompilierung in Bytecode: Jedes Mal, wenn Sie eine Änderung an einer Java-Quelldatei vornehmen, müssen Sie diese neu kompilieren. Zunächst mag es verrückt klingen, aber die Kompilierung hat eine sehr schöne Konsequenz: Ihr Code wird in diesem Stadium auf eine Vielzahl von Fehlern überprüft, und der Compiler lehnt es ab, den Vorgang abzuschließen, falls vorhanden, und hilft Ihnen manchmal dabei, die Fehler zu lokalisieren hilfreiche Nachrichten (Es gibt immer Nachrichten, aber nur manchmal sind sie hilfreich).
Was uns zum letzten großen Unterschied bringt:
Perl ist dynamisch 3 :
Dynamische Programmiersprache ist ein Begriff, der allgemein in der Informatik verwendet wird, um eine Klasse von Programmiersprachen auf hoher Ebene zu beschreiben, die zur Laufzeit viele häufig vorkommende Verhaltensweisen ausführen, die andere Sprachen möglicherweise während der Kompilierung ausführen. Zu diesen Verhaltensweisen könnte die Erweiterung des Programms durch Hinzufügen von neuem Code, durch Erweitern von Objekten und Definitionen oder durch Ändern des Typsystems während der gesamten Programmausführung gehören.
und dynamisch getippt 4 :
Eine Programmiersprache wird als dynamisch typisiert bezeichnet, wenn der Großteil ihrer Typüberprüfung zur Laufzeit und nicht zur Kompilierungszeit ausgeführt wird.
und Java ist statisch geschrieben :
Eine Programmiersprache verwendet die statische Typisierung, wenn die Typüberprüfung während der Kompilierung und nicht zur Laufzeit durchgeführt wird.
Dies bedeutet, dass Sie in Java den Typ Ihrer Variablen und Methoden deklarieren müssen, bevor Sie sie verwenden können. Es gibt noch andere Unterschiede, aber ich möchte nicht den Spaß verderben, sie selbst zu entdecken :)
Und schließlich gibt es einen sehr wichtigen Unterschied: Java ist die Liebste Sprache der Wissenschaft 5 und der Unternehmenswelt, während Sie werden selten Perl in einem akademischen Umfeld treffen mehr (wo ich traf sie zuerst), und ihre Karriereperspektiven schrumpfen (noch etliche Jobs, aber bei weitem nicht so viele wie Java, .NET-Sprachen oder PHP). Ich werde nicht auf die Gründe eingehen, sondern nur die (traurigen) Tatsachen darlegen. Da Sie noch sehr jung sind, werden Sie durch das Erlernen von Java ein wenig besser auf ein Informatik-Studium vorbereitet, wenn Sie diesen Weg wählen.
Geben Sie Perl natürlich nicht auf, sondern erkunden Sie Java. Die Tatsache, dass sie sich mehr unterscheiden als ähnliches, bedeutet auch, dass Sie ganz andere Ansätze und Programmiermentalitäten erlernen werden. Es ist ein schwieriger Weg, der Sie letztendlich zu einem besseren Programmierer machen wird.
1 "Tim Toady"
2 Die Perl-Community untersucht aktiv die Möglichkeiten einer virtuellen Perl-Maschine über Parrot .
3 Dynamisch bedeutet nicht immer dynamisch getippt.
4 Perl ist dynamisch typisiert für benutzerdefinierte Typen, statisch typisiert hinsichtlich der Unterscheidung von Arrays, Hashes, Skalaren und Subroutinen und stark typisiert über use strict
, daher ist es im Wesentlichen eine Systemsprache mit variablem Typ getippt.
5 Bis zum Missbrauch, wie Joel Spolsky in The Perils of JavaSchools schreibt .