Ich habe mir vorgenommen, Java als meine zweite Sprache zu lernen (ich bin ein Perl-Entwickler). Aber wenn ich nur ein wenig von den Online-Tutorials lese, kann ich keine Ähnlichkeiten zwischen den beiden feststellen. Was wird mir beim Erlernen von Java leicht fallen?
14
Antworten:
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 :
und für allgemeine Zwecke :
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 undif
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 :
und dynamisch getippt 4 :
und Java ist statisch geschrieben :
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 .
quelle
Nun, beide verwenden eine C-ähnliche Syntax - Semikolons, geschweifte Klammern und dergleichen. Persönlich, als ich vor einigen Jahren versuchte, von Perl auf Java umzusteigen, war das größte Problem, das mir aufgefallen ist, die objektorientierte Programmierung. Ich hatte einige Objekte in Perl entwickelt, aber es tat meinem Kopf weh, mir das Leben im Königreich der Nomen vorzustellen.
quelle
Probieren Sie eine alternative Antwort aus, da sich die aktuell ausgewählte auf die Unterschiede zwischen beiden zu konzentrieren scheint (tatsächlich gibt es nicht viele Ähnlichkeiten zwischen Perl und Java).
Ähnlichkeiten
Wenn Ihr Perl-Code sehr streng und orthogonal ist (gut getestet, gut dokumentiert, verwendet Moose oder strenge Objektorientierung), sind diese Konzepte für Java sehr gut geeignet, da Java extrem orthogonal und nicht so aussagekräftig ist.
quelle