Hello there,
zum Erlernen ist PHP deutlichst einfacher als Java.
Du musst dir aber auch überlegen, was du gerne machen möchtest. Wenn du Webseiten programmieren möchtest, ist für dich PHP definitiv die bessere Wahl. Mit Java lassen sich zwar Webseiten auch programmieren, aber diese Technik ist sehr wenig verbreitet und tritt gegenüber PHP- oder ASP.NET basierten Webseiten sehr deutlich in den Hintergrund.
Java ist eine Sprache, die vor allem auf die Programmierung von Anwendungen ausgelegt ist. Dabei geht es zum einen um Programme und Spiele, aber insbesondere in der heutigen Zeit um Apps für Googles Betriebssystem Android auf dem Smartphone. Diese sind in der Regel in Java (in Ausnahmefällen auch in C) geschrieben.
Ihre Stärke ist die Plattformunabhängigkeit, da sich auf fast jedem System eine Javalaufzeitumgebung installieren lässt, die dann deinen Javacode ausführen kann. Eine weitere Stärke ist die Robustheit des Codes, Javacode ist, wenn er gut programmiert ist, wenig anfällig für Fehler und Abstürze.
Eine große Schwäche sind die vielen Sicherheitslücken im Sprachkern, durch die Java immer wieder in Kritik gerät, gerade im Bezug auf Browserplugins in Java, wie etwa das browserbasierte Minecraftwidget.
Dennoch gibt es tausend Gründe, warum PHP deutlich einfacher ist. Ich nenne einfach mal ein paar....
- PHP ist eine implizite, dynamisch typisierte Sprache, Java ist eine explizite, statisch typisierte Sprache. Zu deutsch: In PHP musst du Variablen weder vor der Verwendung deklarieren, noch einen Datentyp wie etwa Text oder Zahl erzwingen. Dieser kannautomatisch bestimmt werden, in Java musst du jede Variable vor der Verwendung zunächst deklarieren und auch bei der Deklaration einen Datentyp zuweisen, sonst funktioniert es nicht.
-
PHP ermöglicht rein prozedurale Programmierung. Das heißt du kannst im Skriptstil Code schreiben, der dann abgearbeitet wird. In Java geht das nicht, du bewegst dich immer innerhalb von Objekten, das ist häufig etwas verwirrend. Allerdings bietet PHP trotzdem die Möglichkeit Objekte zu programmieren, das ist auch sinnvoll.
-
PHP hat bereits in der Sprachdefinition zahlreiche Möglichkeiten, wie eingebaute Funktionen und Klassen. In Java kannst du Out of the Box fast gar nichts machen. Du musst für alle Funktionalitäten, bis auf die reinen Sprachkonstrukte, die benötigten Klassen in dein Skript importieren. Sie werden dir zwar schon mitgeliefert, aber um sie zu verwenden, müssen sie alle importiert werden und du musst genau wissen, in welcher Datei die von dir benötigten Funktionalitäten drin stehen, um sie dann einzbinden.
- PHP hat einige Sprachkonstrukte, die man als "syntaktischen Zucker" bezeichnen könnte, das heißt du kannst Dinge recht schlank darstellen, die in Java nur sehr aufwändig zu beschreiben sind. Ein einfaches Beispiel ist die Darstellung einer Klassenkonstanten:
PHP:
const foo = 1;
Java
private static final int foo = 1;
Java hat vor allem für fortgeschrittene Programmierer aber auch ein paar nützliche Funktionen zur Hand, etwa die sogenannten Checked Exceptions. Um Fehler im Programmablauf zu handlen, bedient man sich der sogenannten Ausnahmebehandlung (Exception Handling). Die Idee ist, Fehler abzufangen und sie weiterzuverarbeiten, damit das Programm nicht abstürzt. Java bietet eine Möglichkeit durch Definition der zu erwartenden Ausnahme die Ausnahme dann automatisch abzufangen, in PHP müsstest du die Ausnahmebehandlung komplett selbst schreiben.
Ein weiteres Goodie von Java ist die sehr einfach Möglichkeit, Code aus anderen Programmiersprachen einzubinden, dazu kennt Java das Konzept der "nativen Methoden".
Das sind allerdings alles Dinge, die für dich als Anfänger absolut uninteressant sind.
Mein Tipp: Fang erst mal mit PHP an, für den Anfänger ist das eine der einfachsten Sprachen und PHP kann mittlerweile in der Version 5.6 fast alle wichtigen Konzepte der Programmierung umsetzen, du lernst fast alles, was du dann für den Einstieg in Java verwenden kannst. Außerdem hast du mit PHP schon ne ziemliche Nähe zu Datenbanken, diese sind ein sehr sehr interessantes Thema, das ungeahnte Möglichkeiten im modernen Internet und auch in Firmenenetzwerken bietet.
Hoffe ich konnte dir helfen, dann würd ich mich über einen Stern freuen
MfG
Alex