Java vs Python

Einleitung

In meiner lesenswerten Hausarbeit geht es um ein recht interessantes Thema. Diese Arbeit sollte man lesen, wenn man Interesse hat mehr über Java und Python zu wissen.                                   

Wenn man diese Arbeit gelesen hat sollte man mehr über Java und Python wissen und diverse Hintergrundinformationen kennen. Danach sollte man sich im Klaren sein, welche wesentlichen Unterschiede oder gar Gemeinsamkeiten es bei den beiden Programmiersprachen gibt. Man bekommt Antworten auf diverse Fragen, die man sich vielleicht schon etwas früher gestellt hat.

In meiner Ausarbeitung über den Vergleich zweier Programmiersprachen geht es um Java und Python.  Ich soll durch Recherchen und Erkenntnisse herausfinden, was Java und Python ausmachen, und wo die Unterschiede liegen.

Ich werde im Folgendem ähnlich wie in einem Tutorial vorgehen und werde deutlich und einfach erklären wo die Unterschiede der beiden Sprachen liegen und welche Gemeinsamkeiten es gibt. Zudem erkläre ich diverse Dinge, die alle Programmiersprachen gemeinsam haben und werde aus all dem, was ich geschrieben habe ein Fazit ziehen.

Am Ende sollten wir einige ansehnliche Seiten haben, welche gefüllt sind mit Informationen und Erklärenden Bildern. An geeigneten stellen wird man Programme oder Codezeilen wiederfinden.

Java

Was ist Java?

Java ist eine Objektorientierte Programmiersprache.                                                           

Sie ist unabhängig von jeglichem Betriebssystem und lässt sich auf Windows, Linux, Unix, IOS und diversen anderen Betriebssystemen problemlos händeln. Heutzutage basieren fast alle Programme auf Java.

Java ist relativ einfach zu erlernen, da es sich um eine an die englische Sprache gelehnte Programmiersprache handelt. Java ähnelt von der Syntax C, C#, C++ und ein wenig Python.

Zum Java entwickeln braucht es nicht viel. Wir benötigen lediglich einen einfachen Text Editor. Natürlich kann man auch höhere und aufwendiger IDE‘s verwenden wie Ecliplse und Netbeans. Zudem ist es sinnvoll, wenn man sich das Java JDK (Java Devolopment Kit) herunterlädt.

Geschichte

1990 erfand die Firma Sun Microsystems Java. Es war das Ziel eine Sprache zu entwickeln, mit der man problemlos alltagsgegenstände Programmieren konnte. Jeder sollte die Programmiersprache verstehen.

Leider brachte Java, zu dem Zeitpunkt noch „Oak“, nicht den gewünschten Erfolg, weshalb Sun Microsystems auf die Idee gekommen ist Java Portabel zu machen indem man es 1995 für das Internet entwickelt.

Einige Monate später kam ein Browser auf dem Markt, welcher Java unterstützte.

Netscape verleiht Java also im ersten Schritt Anerkennung.

Da das Ziel anfangs schon war Java Plattformunabhängig zu machen versuchten Sie alles Mögliche. Zunächst kam die „Virtuelle Maschine“ ins Spiel.

Java wurde so wie C für den Einsatz auf Microcontrollern entwickelt.

Dabei entwickelten Sie Java-Chips. Die virtuelle Maschine wandelte dann Chip um und machte Java Betriebssystemunabhängig. 

Demzufolge endete Java so, dass der Sourcecode interpretiert wird. Das war damals aber noch schwierig, da Zeit und Speicherplatz sehr begrenzt waren und demzufolge war Java etwas zu langsam. Heutzutage ist das fast egal. Unsere Technik ist so fortgeschritten, dass man keine oder kaum Zeitverzögerung mehr merkt. Es sind Bruchteile von Sekunden, um die es sich Heutzutage handelt.

Java ist heutzutage auch als Applikationssprache bekannt. Was die meisten aber nicht wissen ist, dass sogar schon die erste Version eine von den heute bekannten Bibliotheken enthielt.

Python

Was ist Python?

Python ist auch eine Objektorientierte Programmiersprache.

Sie lässt sich auch verhältnismäßig einfach lernen, da die Syntax sehr der von C, C# und Java ist.

Zudem ist es auch bei Python kein Problem auf Windows, Unix, Linux oder IOS zu Programmieren.

Python würde ich momentan als „Newcomer“ bezeichnen obwohl Python eigentlich schon seit 1991 existiert. Momentan gibt es große Diskussionen, welche Sprache denn nun besser sei als Python. Oder Java? Beide Sprachen sind momentan unter den Top 5 der beliebtesten Anfängersprachen Deutschlands.

Aufgrund der Starken und minimalistischen Syntax sind Anwendungen mit wenigen Codezeilen und geringer Anfälligkeit für Programmierfehler realisierbar.  

In Python kann man beispielsweise Semikolons (;) einfach weglassen. In Java jedoch ist gerade das Semikolon der häufigste Programfehler.

Geschichte

Einige Leute in ganz Europa verbinden Python mit etwas Alten, da es nicht viel in Schulen gelehrt wird. Python ist aber eigentlich erst etwas über 20 Jahre alt.

Die Sprache geriet oft in Vergessenheit, da die über 40 Jahre alte Sprache C trotz seines Alters in der Fachoberschule der Klasse 11 gelehrt wird.

Der Mathematiker Guido van Rossum entwickelte Python erstmals in den Niederlanden. Er wollte sich eigentlich nur über die Weihnachtsfeiertage beschäftigen und schaffte damit eine bis heute noch benutzte Programmiersprache.

Man könnte natürlich aufgrund des namens Python darauf schließen das der Name von der Schlange stammt. Aber Guido war ein großer Fan des Komikers „Monty Python“ und vergab schließlich seiner Entwicklung seinen Nachnamen.    

Wie zu erwarten besteht das Logo von Python, dessen Urheber www.python.org zu sein scheint, aus zwei sich ineinander verdrehten Schlangen. Das wiederspricht der ganzen Geschichte Pythons, was das Ganze ein wenig irreführend macht.

Der Vergleich

Werden Java und Python Kompiliert oder interpretiert?

Ein Compiler wandelt unseren Sourcecode der Informationen in Form von Code und Befehlen enthallt in die Maschinensprache um. Die Maschinensprache besteht aus dem Binär Zahlensystem und ist sehr schwer zu lesen, weswegen wir nicht in diesem Programmieren.

Der Interpreter führt die Sprache ohne sie vorher zu Kompilieren aus. Er „interpretiert“ Zeile für Zeile, um dann eine Ausgabe zu tätigen.

An sich kann man sagen, dass beide Programmiersprachen das gleiche Verfahren verwenden. Java und Python kombinieren diese zwei Varianten. Sie werden erst kompiliert und dann interpretiert, sodass eine sehr genaue und sichere „Übersetzung“ stattfindet.

Zudem hat das auch den Vorteil, dass Java und Python damit Betriebssystem Unabhängig sind und man ein Programm auf allen gängigen Betriebssystemen laufen lassen kann.

Mit welcher IDE werden beide Programmiersprachen genutzt?

Eine IDE ist eine Integrierte Entwicklungsumgebung, welche die wichtigsten „Werkzeuge“ der Programmierung zusammen behält.

Sie enthallt einen Compiler oft auch einen Interpreter, einen Editor und eine Konsole. Das sorgt dafür, das es den Entwickler leichter gemacht wird ein Programm zu schreiben und zu Testen.

Java

Name IDEHersteller
EclipseEclipse Foundation
NetBeansOracle Corporation
intelliJ IDEAJetBrains
JBuilderEmbarcadero
XcodeApple Inc.
BlueJUniversity of Kent

Python

Name DIEHersteller
IDLE
Sublime Text 3
AtomGitHub
Thonny
PyCharmJetBrains
Visual StudioMicrosoft

Was ist Objektorientiertes Programmieren in Java & Python?

Objektorientierung kann man als Abstraktion der realen Welt bezeichnen. Wenn man in einem Raum sitzt, dann kann man sich ragen, ist alles was ich sehen und anfassen kann ein Objekt? Ja, dass ist es. Alles was wir in einem Raum sehen können ist ein Objekt mit bestimmten Eigenschaften. Ein gutes Beispiel dafür ist eine Flasche. Eine Halbvolle Babyflasche ist hierbei unser Objekt. Dieses Objekt „Babyflasche“ hat die eigenschafft: Füllmenge.

Siehe Text unten

Hierbei ist zu beachten, dass mit der Füllmenge nicht etwa die Striche auf der Flasche sind, die eine Menge anzeigen. Die Eigenschaft ist, dass diese Flasche überhaupt eine Füllmenge hat.  

Zudem gibt es in Java und Python ähnliche Objekte.

Eine Entität, welche wir aus dem Entität Relationship Modell kennen, ist ein Objekt mit einer unveränderlichen Identität. Das bedeutet das ein Objekt wie ein Mensch alle seine Ausweißdaten ändern kann ohne dabei jemand anderes zu werden.                                              

Das „Modul“ ist ein wichtiger Bestandteil der Programmierung. Wenn man eine Gruppe von Objekten zusammenfasst dann bekommt man ein Modul.

Die Syntax im vergleich

Python und Java ähneln sich in der Syntax ein wenig. Trotz dessen gibt es einige ausschlaggebende unterschiede, an denen sich erkennen lässt, um welche Sprache es sich handelt.         

Python und Java wurden so entwickelt, dass sie sich ausgezeichnet lesen lassen und sind, so wie bereits erwähnt, an die englische Sprache angelehnt.

In beiden Programmiersprachen gibt es zum Beispiel eine Übereinstimmung bei der Ausgabe befehlen. In Python verwendet man die Funktion print(); wobei bei Java der Befehl System.out.println(); mit dem print aus Python übereistimmt. Auch beim Importieren gibt es Übereinstimmungen wie der Befehl „Import“ aussagt.

In Java und Python gibt es auch die sogenannten „reservierten Schlüsselwörter“. Das bedeutet im Endeffekt nichts anderes, als das es in einer Programmiersprache Wörter gibt, welche eine bestimmte Bedeutung haben und somit nicht als Variablennamen oder Funktionsnamen benutzt werden dürfen.

Einige Unterschiede bei der Syntax erkennt man zum Beispiel daran, dass man bei Java immer die Klasse und die Main-Methode aufschreiben muss. Dies verbraucht viel platz, ca. 6 Zeilen mit Klammern, welche wir in Python nicht benötigen.

In Python können wir einfach ohne eine Methode oder Klasse anfangen zu Programmieren und benötigen also für das „Grundgerüst“ keine Zeile. Das spart uns viel Platz und man kann weniger Fehler machen. Das gibt definitiv einen Bonuspunkt an Python.

Ein weiterer sehr wichtiger Punkt für Entwickler ist der Kommentar. In Java gibt es 3 Arten von Kommentaren. Das Einzeilige Kommentar (//), dass Mehrzeilige Kommentar (/* */) und ein Automatisch Kreiertes Kommentar mit Informationen über Autor und Programm.                                     

In Python werden die Kommentare jedoch anders gemacht. Ein Einzeiliger Kommentar (#) und ein Mehrzeiliges Kommentar (‘‘‘‘  ‘‘‘‘).

Kurz gefasst können wir also sagen, dass Python es uns ermöglicht knackig kurze Programme zu schreiben, welche ohne viel Aufwand zu Programmieren sind.

Die Syntax ist mit Java und anderen Programmiersprachen vergleichbar, weshalb einige sich schnell an Python gewöhnen.

Beispiel anhand eines Hello Worlds

Wie wir im folgendem sehen können lässt sich eine Textausgabe in Python tatsächlich in nur einer Codezeile ausgeben. In Java hingegen benötigen wir, wenn wir die Syntax von Java einhalten bis zu 7 Zeilen. Auch der Befehl „print“ ist in Python leichter und kürzer. Trotz dessen ist der Befehl in Java Variabler. Denn mit der Syntax „.“ Zwischen den drei Bauteilen lassen sich viele andere Funktionen von Java hereinlegen. Das sorgt dann dafür, dass man den Befehl nicht nur zum Ausgeben von Text verwenden kann, sondern auch für Zeilenumbrüche, Konsoleninteraktionen und diverses andere. In Python jedoch bleibt „print“ in der Regel „print“.

Besonders gut zu erkennen ist auch, dass wir in Python kein Semikolon benötigt haben. Lässt man es in Java weg, dann funktioniert das Programm nicht und es wird der „Exception in thread „main“ java.lang.Error: Unresolved compilation problem: Syntax error, insert „;“ to complete BlockStatements“ Fehler gelmeldet. Demzufolge ist Java im Vergleich zu Python gerade bei Anfängern im Hello World schon Fehleranfälliger als Python.

Bibliotheken in Java & Python

Standartbibliotheken sind in jeder Sprache anders. Sie sind wie eine Bücherei mit vielen verschiedenen Büchern, welche nach Thema sortiert sind. In diesen Themenbüchern stehen dann die verwendbaren Befehle und deren Definition, was sie zu tun haben.                             

In den Programmbibliotheken stehen dann Unterprogramme und Funktionen, die bestimmte Aufgaben definieren.                                                                                                                                        

In Java sieht man sehr schön, dass man mit dem einfachen Befehl „import“ und der danach folgenden Bibliothek direkt weiter Programmieren kann. Eine der vielen Standartbibliotheken ist zum Beispiel die java.util.Scanner in der einiges über das Tastatureinlesen steht.

In Python ist das ganze wesentlich komplizierter. Man muss erst über die Python Konsole via Import seine Bibliotheken importieren, was das Einbinden von simplen Funktionen für einen Anfänger als fast unlösbar darstellt.

An dieser Stelle gibt es also einen klaren Vorteil für Java. 

Vergleiche der Datentypen

Datentypen gibt es in so gut wie jeder Programmiersprache. Sie sind der Hauptbestandteil der Programmierung. Ohne Datentypen ist es uns als Entwickler nicht möglich einen Unterschied zwischen Wort und Zahl oder gar Zahl und Kommazahl.

Vor vielen Jahren stellte man fest, dass Speicherplatz wichtig war und man diesen nicht zu verschwenden hat. Es gab wenig davon also musste man schaue, wo man spart. Die Erfinder von Java und Python nahmen also von älteren sprachen, welche schon diese Datentypen hatten, einfach dieselben Begriffe, damit man bei lernen keine Schwierigkeiten bekam. Ein altes Sprichwort besagt schließlich: „Was der Bauer nicht kennt, dass frisst er nicht“.

Somit gibt es in Java sowie auch in Python die folgenden Datentypen:

  1. int
  2. float
  3. In Java: double
  4. In Python: bool und in Java: boolean
  5. In Python: unicode und in Java String

Wie wir sehen können nehmen sich die Datentypen von der Funktion und dem Namen nicht viel. Sie Funktionieren in einer ähnlichen Art und Weise. An den Datentypen können wir im Vergleich also sagen, dass sich lediglich die Namen ganz dezent unterscheiden. 

Vorgegebenes Bsp. Programm in Java – Datei Erzeugen

In unserem Vorgegebenen Programm, welches wir bekommen haben, wurde etwas Programmiert, was eine Test.txt Datei erstellt. Im folgendem werde ich einen Screenshot davon einfügen und dasselbe in Python nach Programmieren, um den Unterschied zu verdeutlichen.

Wie wir sehen können ist das Programm, das lediglich eine neue Datei erstellt sehr umfangreich. Es wurden trotzdem recht kurzgehalten. Hierbei sehen wir jedoch trotzdem, dass wir einige Fehlerquellen Abfangen mussten, damit alles funktioniert.

Programm in Python – Datei Auslesen und Erzeugen

Um zu zeigen, dass Python wesentlich kürzer ist als Java habe ich einmal ein Programm zum Auslesen einer vorhandenen Datei programmiert und eines, dass eine Datei erzeugt. Wie wir in Folgendem sehen können, ist das Programm um mehr als die Hälfte kürzer und lässt sich unkommentiert für einen Anfänger besser lesen.

Das Auslesen in Python

Zuerst ein Programm, dass eine Datei erstellt. Im Folgendem befindet sich ein Code ausschnitt, was dies beschreibt.                                 

Wichtig zu wissen ist dazu, dass das Programm eine schon Vorhandende Textdatei liest, welche in demselben Ordner ist, wie die Sourcedatei. Sollte das Programm also nicht direkt Funktionieren, dann muss man in demselben Ordner eine Textdatei erstellen und den Namen, den Sie trägt in Zeile 5 in den Anführungsstrichen eintragen. Der ausgelesene Text in der Datei wird in Python also in einem Array abgespeichert.

Das Erzeugen in Python

Nun haben wir schon ein Programm in Java gesehen, welches eine einfache Textdatei erzeugt. Natürlich macht das Programm in Java noch etwas mehr, was ich in diesem Programm aber nicht tun werde. Zum Beispiel testet es noch, ob es die Datei schon gibt usw.

Mein Programm in Python kann lediglich eine Datei erzeugen. Trotzdem erkennt man, dass es sehr viel Kürzer und besser lesbar ist als das in Java.                                                                      

Wie ähnlich sind Java und Python wirklich?

Es ist Ansichtssache. Ich bin der Meinung, dass Java und Python sich im Wesentlichen ähneln, da die Sprachen auf den „dummen“ Benutzer abgestimmt sind. Beide Sprachen können sehr ähnliches und sind zudem auch noch beide Objektorientiert.

In der Bezeichnung jedoch sehen wir schnell, Java statisch typisiert ist und Python dynamisch.                                                                                                                                                                        

Das bedeutet im Klartext nichts anderes als:

Dynamisch

  • Es wird zu der Laufzeit des Programmes schon auf Fehler getestet.
  • Auch wenn Python Fehler im Code findet wird kompiliert.

Statisch

  • Es wird erst zur Zeit des Kompilierens auf mögliche Fehler geprüft.
  • Es passiert nichts, solange der Code nicht fehlerfrei ist.

Wir erkennen auch schnell, das Java Kooperationen hat, Python hingegen eine Open Source ist.

Fazit zum Vergleich

Man kann sagen was man will, Java und Python sind zwei sehr gute Programmiersprachen. Sie sind recht einfach zu händeln und für Anfänger recht gut geeignet. Jedoch muss ich sagen, dass die vor und Nachteile der beiden Sprachen sich ziemlich gut gegenseitig ausgleichen. Es wird auch in 10 Jahren noch Diskussionen geben, welche Sprache schöner ist als die andere. Zudem ist es logisch, dass jemand der beiden Sprachen beherrscht eine davon lieber mag.

Ich finde für mich persönlich ist Java die schönere Sprache. In meinem Jahrespraktikum 2018/19 habe ich bereits Java, Python, C und C++ und diverse andere Programmiersprachen gemacht und bin der Meinung, dass Python zwar die leichtere Syntax hat und man weniger Fehler machen kann. Jedoch ist Java ein wenig Strukturierter und man kann es Systematischer lernen. Mein Persönliches Problem, was ich in Python bisher immer hatte, war die Konsole. Ich arbeite mit PyCharm in einer Virtuellen Umgebung. Oft musste ich, wenn ich programmiert habe in den Einstellungen suchen, was gemacht werden muss und was ich über die Konsole einbringen muss, damit alles Funktioniert.                                                             

Demzufolge kam ich mit Eclipse für Java einfach besser klar und habe besser verstanden was ich tue.

1. https://de.wikipedia.org/wiki/Java_(Programmiersprache)#Syntax

2. https://java.com/de/download/faq/whatis_java.xml

3. https://panjutorials.de/tutorials/java-tutorial-programmieren-lernen-fuer-anfaenger/lektionen/jdk-ide-und-hello-world/

4. https://praxistipps.chip.de/wofuer-braucht-man-java-einfach-erklaert_43880

5. http://www.javakurs-online.de/javakurs01.html

6. https://www.programiz.com/python-programming/ide

7. https://www.programmierenlernenhq.de/java-programmieren-lernen-die-besten-java-entwicklungsumgebungen/

8. https://www.dev-insider.de/was-ist-eine-ide-a-600703/

9. https://de.wikipedia.org/wiki/Python_(Programmiersprache)

10. https://www.bigdata-insider.de/was-ist-python-a-730480/

11. https://www.dev-insider.de/was-ist-python-a-843060/

12. https://py-tutorial-de.readthedocs.io/de/python-3.3/appetite.html

13. https://www.python-kurs.eu/entstehung_python.php

14. https://de.wikipedia.org/wiki/Datei:Python_logo_and_wordmark.svg

15. https://www.python-forum.de/viewtopic.php?t=29032

16. https://www.google.com/search?client=firefox-b-  d&q=Syntaxunterschiede+Java+und+PYton

17. https://de.wikipedia.org/wiki/Objektorientierte_Programmierung#Objekte

18. https://www.google.com/search?client=firefox-b-d&q=python+datentypen

19. https://www.python-kurs.eu/klassen.php

20. Eigenes Wissen

21. Private Dokumente aus meinem alten Praktikumsbetrieb

22. Buch „Java ist auch eine Insel“

Alle Quellen befinden sich im Quellenverzeichniss.

Kommunikation

Um Programmieren zu lernen braucht man oft Hilfe von anderen Leuten.

Fantasie

Lasst eurer Fantasie dabei freien lauf.

Learning by doing

Nur wer übt wird besser.

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten