Ein Java Glossar

Java ist eine universelle Programmiersprache, welche gleichzeitig, objektorientiert, klassenbasiert und so konzipiert wurde, sodass sie so wenig Implementierungsabhängigkeiten wie möglich aufweist. 1995 wurde Java erstmals von der Firma Sun Microsystems angekündigt, Hauptentwickler war Dr. James Gosling. Seit 2016 gehört sie zu den beliebtesten Programmiersprachen, vor allem für die Entwicklung von skalierbaren Cloud-basierten Services, modernen Client-Web-Anwendnungen und für die Entwicklung von mobilen Apps.

In diesem Artikel möchten wir Ihnen nun die wichtigsten Begriffe aus der Java-Welt erläutern.

JRE
Mithilfe der Laufzeitumgebung von Java (JRE), werden Java-Anwendungen unabhängig von dem darunter liegenden Betriebssystem ausgeführt. Um dies zu bewerkstelligen, muss die JRE auf dem jeweiligen Computersystem installiert sein. Diese steht für alle gängigen Betriebssysteme, wie Windows, macOS und Linux, zur Verfügung. Für die plattformunabhängige Ausführung der Anwendungen definiert das JRE eindeutige und betriebssystemunabhängige Schnittstellen (APIs).

JVM
Die Java Virtual Machine, JVM bzw. Java VM genannt, ist der Teil der Java-Laufzeitumgebung, welche für die Ausführung von Java-Anwendungen verantwortlich ist. Hierzu wird die Java-Anwendung zunächst in einen plattformunabhängigen Java-Bytecode umgewandelt, bevor dieser auf der JVM ausgeführt wird. Somit funktioniert die Anwendung, die einmal geschrieben worden ist, auf jeder Computerplattform für die es eine JVM gibt.

OpenJDK
Das OpenJDK ist eine freie, sowie offizielle Implementierung der Java-Plattform und stellt damit den freien Nachfolger, veröffentlicht unter der GPL-Lizenz, des JDKs dar. Der Begriff JDK steht dabei für Java Development Kit. Durch die Zuhilfenahme des OpenJDKs ist es Entwicklern möglich, Anwendungen für die Java-Plattform zu realisieren. Dabei beinhaltet das OpenJDK, neben den Entwicklungswerkzeugen, ebenfalls die JRE. Das OpenJDK stellt somit nicht nur eine kostenfrei und offene Alternative zu prioritären Varianten dar, es ist aktuell eines der von Java-Entwicklern am meisten eingesetzte Java-SDK.

Java-Applet
Ein Java-Applet ist ein Programm, welches mittels Java-Technologie erstellt und in einem Webbrowser ausgeführt wird. Java-Applets wurden entwickelt um Programme in Webseiten ablaufen zu lassen. Ende der 1990er Jahre waren diese für die schnelle Verbreitung von Java mitverantwortlich. Heutzutage wird Java-Applets kaum noch Bedeutung zugeordnet. Darüber hinaus haben unterschiedliche Webbrowser inzwischen die Unterstützung von Java-Applets vollständig entfernt.

Java
Java ist eine objektorientierte Programmiersprache zum Erstellen von Java-Anwendungen, welche als erste Sprache für die JVM konzipiert wurde. Von der Syntax ist sie den Sprachen C++/C und Objective-C angelehnt. Andere Sprachen, wie z.B. C# haben sich stark von den Konzepten von Java beeinflussen lassen. Die Vorteile von Java sind neben ihrer Robustheit, Einfachheit, Sicherheit auch ihre weite Verbreitung. Zudem eignet sie sich sehr gut als Lern- bzw. Erstprogrammiersprache.

Kotlin
Kotlin ist eine statisch typisierte Programmiersprache, welche in Java-Bytecode für die JVM übersetzt wird, jedoch zusätzlich ebenfalls in JavaScript-Quelltext umgewandelt werden kann. Die Programmiersprache wurde zu großen Teilen in Sankt Petersburg, von dem dort sitzenden Unternehmen JetBrains entwickelt und hat den Namen einer dort liegenden Insel Kotlin geerbt. Kotlin bietet eine Alternative zur Klassischen Java-Programmierung. Hierbei zeichnet sich Kotlin durch moderne, verschlankte und funktionalere Sprachansätze aus. Inzwischen wird Kotlin offiziell als Alternative für die Entwicklung von Android-Apps von Google unterstützt.

Groovy
Groovy ist eine Skriptsprache welche statische, als auch dynamische Typisierung unterstützt. Sie wird auf der JVM ausgeführt, welches die Verfügbarkeit auf Plattformen wie z.B. Linux, macOS und Windows ermöglicht. 2003 wurde das Groovy-Projekt initialisiert und bereits ein Jahr später als JSR (Java Specification Request) 241 in den Java Community Process zur Standardisierung aufgenommen. Seit 2015 wurde es als Incubator-Projekt der Apache Software Foundation hinzugefügt. Dabei zeichnet sich Groovy durch eine kurze und lesbare Syntax aus sowie über die gute Interaktion mit Java aus. Im Allgemeinen, kann Groovy überall dort eingesetzt werden, wo auch Java in Verwendung ist, z.B.:

  • Skripte
  • Servlets
  • Benutzeroberflächen
  • zur Zugriffsregelung auf Datenbanken, etc.

 

Maven
Maven ist ein Werkzeug, welches, wie auch ANT, den Build-Prozess eines Java-Projektes, unterstützt. Beide Werkzeuge werden von der Apache Software Foundation entwickelt und kostenfrei zur Verfügung gestellt. Wenn man sich die Architektur anschaut, sieht man, dass sich Maven stark vom klassischen Buildsystem ANT abhebt, da sich ein ANT Build-Skript aus einer Menge von Targets aufbaut, welche die einzelnen Build-Ziele realisieren. Bei der Entwicklung von Maven sollten Probleme, z.B. den nicht genau zu erkennendem Build-Ablauf bei einem ANT-Skript, sowohl die Wiederverwendung gelöst werden. Darüber hinaus unterstützt Maven die automatische Auflösung von benötigten Abhängigkeiten aus Repositories.

Gradle
Gradle ist ein Automatisierungs-Tool für das Build-Managment, welches vergleichbar mit Apache Ant und Apache Maven ist. Dabei nutzt Gradle eine Groovy basierende und domänenspezifische Sprache (DSL) zur Beschreibung der zu bauenden Java-Anwendnungen. Im Gegenzug zu Maven, setzt Gradle auf direkt ausführbare Skripte.

GraalVM
Die GraalVM ist eine universelle virtuelle Maschine (VM) um Anwendnungen zu betreiben, welche in JavaScript, Python 3, Ruby, R, JVM-basierten Programmiersprachen wie Java, Scala, Kotlin und LLVM-basierten Sprachen wie C und C++, geschrieben wurden. Hierzu entfernt GraalVM die Isolation zwischen Programmiersprachen und ermöglicht die Interoperabilität in einer gemeinsamen Laufzeitumgebung. Sie stellt einen neuartigen und übergreifenden Ansatz zur Entwicklung und Ausführung von Anwendungen dar, welcher viel Potenzial zugesprochen wird.

Android Programmierung
Java ist für die Entwicklung von Android-Apps als Standardsprache gewählt worden, daher wird von Android auch die Attraktivität von Java weiter vorangetrieben. Das Einsatzfeld entwickelt sich für Android, als auch für Java stetig weiter, z.B. für Smartwatches, Fernseher oder Autos, weswegen Android für die clientseitige Java-Programmierung, die am stärksten verbreitete Plattform ist. Mithilfe des Android-SDKs können Anwendungen, bzw. Apps für das mobile Betriebssystem Android programmiert werden. Das Android SDK enthält dabei verschiedene Komponenten wie einen passenden Compiler, Debugger oder einen Geräteemulator. Mithilfe vorgefertigter Bibliotheken lassen sich relativ einfach User Interfaces, 2D/3D Grafiken, z.B. Mit OpenGL ES oder auch der Zugriff auf Dateisysteme und die interne SQLite Datenbank programmieren. Inzwischen werden neben Java auch weitere Programmiersprachen, wie Kotlin, zur Realisierung von Android-Apps unterstützt.

JavaServer Faces
JavaServerFaces, kurz auch JSF, ist ein Framework zur Entwicklung von Benutzeroberflächen für Webanwendungen, welches auf Techniken der JSP (JavaServer Pages)/Servlets basiert. Mithilfe von JSF ist es dem Entwickler möglich relativ einfach Komponenten für Benutzerschnittstellen in Webanwendungen einzubinden und die Navigation zu definieren. Um in JSF zu programmieren, wird das JDK, ein Servlet-Container (z.B Apache Tomcat) sowie Grundverständnis von HTTP vorausgesetzt.

PlayFramework
Im Mai 2008 wurde das PlayFramework durch Guillaume Bort veröffentlicht. Das PlayFramework ist ein freies Webanwendungsframework, welches in Scala geschrieben wurde und auch in anderen JVM-Programmiersprachen nutzbar ist, welche in Bytecode geschrieben werden, z.B. Java. Dabei folgt die Realisierung von Webanwendungen durch das PlayFramework dem MVC-Entwicklungsmuster. Mithilfe des PlayFrameworks wird die Entwicklungsproduktivität durch „convention over configuration“, Fehlermeldungen im Browser, als auch Hot-Code Reloading, optimiert. Wichtig zu erwähnen ist die Skalierbarkeit, sowie die Robustheit. Namenhafte Firmen, wie z.B. LinkedIn setzen auf das PlayFramework um Ihre Cloud-basierten Webanwendungen anzubieten.

Spring Framework
Mithilfe des Spring Frameworks, ein Open Source Java Applikationsframework, werden Plain-Old-Java-Objects, in kurz POJO, als Spring Beans verwaltet. Zur Verfügung wird ein Inversion of Control (IoC) Container gestellt, über den per Dependency Injection (DI) abhängige Spring Beans miteinander verknüpft und konfiguriert werden. Durch diese Technik können Objektnetze aufgebaut werden. Ziel des Projekts ist es, die Entwicklung mit Java/Java EE zu vereinfachen, sowie Programmierpraktiken zu fördern. Hierzu fördert das Spring Framework unter anderem die Verwaltung der Objekte innerhalb der Mittelschicht und übernimmt die Funktionalität unterschiedlicher Entwurfmuster, wie z.B. die des Singleton. Darüber hinaus lassen sich, aufgrund der verlangten strikten Trennung von Logik, Anwendungen des Spring Frameworks leichter automatischen Testverfahren unterziehen.

JUnit
Junit ist ein Open Source Framework zum Testen von Java-Anwendnungen, welches besonders für automatisiert ablaufende Unit-Tests verwendet wird. Dabei wurde JUnit ursprünglich von Kent Beck und Erich Gamma entwickelt und gilt bis heute als ein Meilenstein für die Evolution der testgetriebenen Softwareentwicklung. Das Konzept sowie die Funktionsweise wurde heute in viele weitere Sprachen überführt, wie z.B. zu NUnit, das Framework zum Schreiben von Unit-Test für die Programmiersprache C#.

 

JS, TR