Programmiersprachen & Werkzeuge
Hier bekommst du eine Einführung in Programmiersprachen und erfährst, welche Entwicklunsgwerkeuge du für dieses Lernangebot benötigst.
Programmiersprachen
Seit der Entwicklung des Computers wurden verschiedenste Programmiersprachen entwickelt. Vielfach wurden diese Sprachen für eine sehr spezielle Problemstellung konstruiert. Sie wurden dann aber erweitert, sodass mit den meisten heute verbreiteten Programmiersprachen, alle Aufgaben lösen, die mit Computern gelöst werden können. Für die Wahl einer geeigneten Programmiersprache ist der Funktionsumfang meist kein entscheidendes Argument. Es ist eher zu berücksichtigen, wie gut die Sprache sich in das jeweilige Umfeld eingliedert. Aus diesem Grund eignen verschiedene Programmiersprachen sich für manche Aufgaben sehr gut und für andere eher schlecht.
Im Folgenden soll eine grobe Einordnung gegeben werden, um sich in der Menge der Programmiersprachen, besser orientieren zu können.
Die Maschinensprache ist die, für den Computer verständliche, Sprache. Sie ist nicht für alle Computer gleich sondern ist vom Prozessor und dessen Architektur abhängig. Sie wird vom Prozessorhersteller festgelegt.
Im Sprachumfang sind rudimentäre Funktionen enthalten für die Grundrechenarten, Vergleiche, die Ablaufsteuerung und das Laden und Speichern von Daten. Programme die in dieser Sprache geschrieben sind, sind für den Prozessor direkt ausführbar. Für Menschen ist sie kaum lesbar oder schreibbar. Auch die menschenlesbare Sprache Assembler, die fast die selben Befehle schreibt, eignet sich nicht, um komplexe Logik zu programmieren.
Als höhere Programmiersprachen bezeichnet man Sprachen, deren Quelltext erst durch einen Compiler übersetzt werden muss, damit er vom Prozessor verstanden werden kann. Sie haben den Vorteil, dass sie wesentlich lesbarer für Menschen sind und, dass man sie mit Hilfe des Compilers für verschiedene Architekturen übersetzen kann.
Es gibt aber auch Programmiersprachen, die nicht durch einen Compiler übersetzt werden, sondern durch ein anderes Programm, den sogenannten Interpreter, interpretiert und ausgeführt werden. Diese Interpretersprachen lassen sich leichter auf andere Plattformen übertragen. Sie sind aber meist minimal langsamer in der Ausführung.
Eine Besonderheit ist die Programmiersprache Java. Denn hier wird der Quelltext compiliert. Aber nicht in Maschinensprache, sondern in eine Zwischensprache den sogenannten Bytecode. Der Bytecode wird dann wiederum von einem Interpreter der Java-Virtual-Machine ausgeführt. Die Java-Virtual-Maschine kann für viele verschiedene Plattformen bezogen werden. So funktionieren in Java geschriebene Programme plattformunabhängig. Java ist heute eine der wichtigsten Programmiersprachen und in Java geschriebene Programme laufen sowohl auf den Großrechnern von Banken und Versicherungen als auch auf kleinen Geräten wie z.B. Android-Smartphones. Auch in noch kleinere Computer wie Waschmaschinensteuerungen hat die Sprache einzug erhalten, dann aber wieder richtig compiliert in Maschinensprache.
Da Java eine sehr vielseitige und gut strukturierte Sprache ist soll dieser Kurs die Programmierung anhand der Sprache Java vermitteln. Die gelernten Konzepte lassen sich später leicht auf andere Programmiersprachen übertragen.
Zusätzlich zu der Unterscheidung nach der Ausführbarkeit können Programmiersprachen aber auch nach sogenannten Programmierparadigmen unterschieden werden. Ein Programmierparadigma beschreibt den Stiel mit dem Probleme gelöst werden. Ein Programmierparadigma wäre zum Beisiel die Strukturierte Programmierung in der der Fokus auf eine klare Pragramstruktur gelegt wird. Es wird auf Sprünge im Programmablauf verzichtet. Ein weiter gehender Ansatz wäre die Modulare Programmierung. Hier wird das Programm in möglichst viele, klar abgetrennte Module aufgeteilt um eine bessere Lesbarkeit und Wiederverwendbarkeit zu erziehen. Beide Paradigmen werden von den oben genannten Sprachen, mit Ausnahme von Assambler, unterstützt.
Ein weiteres Programmierparadigma ist die Objektorientierte Programmierung. Hier werden die Daten und die damit ausführbaren Aktionen, in sogenannten Klassen, zusammengefasst. Java gehört zu den objektorientierten Sprachen und ist eigentlich vollständig von diesem Paradigma geprägt. Wir wollen in diesem Kurs trotzdem so gut es geht darauf verzichten, da die Objektorientierung ein zu großes Thema für den Einstieg wäre. Sie kann in einem weiteren Kurs erlernt werden.