Sie Software umfasst alle Programme, die es auf einem System gibt.
Die erste primitive Software waren auf den Lochkarten. Generell gilt:
Alles was auf wechselbaren Datenträgern gespeichert ist (also Festplatten,
Disketten, CD-ROMs, usw.) ist Software.
Interessant bei der Entwicklung der Software ist, dass sich das Prinzip
kaum geändert hat; auf den Entwicklungen der 40er und 50er Jahre basieren
auch noch heutige Programme.
4.2.1 - Die Anfänge und Grundlangen
Programme gab es schon, mehr oder weniger, seit der Entwicklung von
Rechenmaschinen. Zuerst waren es Lochkarten, dann Lochstreifen. Sie hatten
aber einen entscheidenen Nachteil: Oft sich wiederholende Prozeduren in
Programmen mussten immer wieder neu auf eine Lochkarte geschrieben werden,
da die Lochkarten nicht beliebig nach vorne oder hinten gelesen werden
konnten.
Erst John von Neumann lud nicht nur Daten sondern auch das Programm
in den Speicher, sodass sogenannte Schleifen möglich wurden, die Programme
kleiner und schneller wurden.
Die ersten Programmiersprachen waren noch nah an der Maschinensprache
des Computers orientiert. Die ersten Programmiersprachen wie FORTAN (1958),
ALGOL (1960) und COBOL (1960) vereinfachten die Programmentwicklung. Zu
dieser Zeit entstand auch die früheste Version des Betriebssystem
Unix, das speziell dafür programmiert wurde, Systemübergreifend,
also nicht spezialisiert auf nur einen Prozessortyp, zu arbeiten. Auch
heute noch ist es auf vielen Rechnern zuhause (auf dem PC heisst es Linux).
Zur gleichen Zeit wurden übrigens auch erste militärische Netzwerke
geschaffen, aus dem später das InterNet entstand. Tatsächlich
sind die Entwicklungen von Unix und InterNet eng verbunden, noch heute
laufen die meisten InterNet-Server mit Unix-Systemen, auch die Internetadressenstrukturen
(FTP, WWW) sind ursprünglich auf dieses Betriebssystem zurückzuführen.
Selbst die Mailboxprogramme basieren auf Unix (Einlogg- bzw. Anmeldeprozeduren,
die Befehls- und Benutzerstrukturen, die hierachische Brettstruktur). Auch
MS-DOS, und damit letztlich Windows 95 hat einige Elemente von Unix übernommen,
wie z. B. die Verzeichnisstruktur.
1964 wurde die bekannte BASIC-Programmiersprache (Beginners All-Purpose
Symbolic Instruction Code; also symbolischer allzweck Anweisungs-Code für
Anfänger) von John Kemeny und Thomas Kurz als Lernsprache für
Studenten entwickelt. Es gibt seit her zahlreiche Dialekte auf verschiedenen
Computersystemen.
4.2.2 - Moderne Programmiersprachen
in den siebziger und achtziger Jahren gab es dann die Pascal-Sprache,
die immer noch leicht zu erlernen war, aber komplexer als BASIC. Auch hiervon
gab es mehrere Dialekte. Eine Systemübergreifende Sprache war C (bzw.
C+/ C++). Mit ihr war es möglich, die Source, also den reinen Befehlstext,
im üblichen ASCII-Format zu speichern und auf anderen Rechnern zu
compilieren, das heisst Programme, obwohl auf einem anderen Rechner-Typ
geschrieben, werden Mittels der Computersprache passend übersetzt.
Eine rasante Entwicklung ist die neue sogenannte objektorientierten Programmiersprachen.
Sie ermöglichen mit einfachsten Mitteln das Programmieren unter grafischen
Betriebssystemen wie Windows 95 (Trotzdem ist immer noch eine Menge zu
programmieren!).
Vor einigen Jahren wurde nun eine neue Art Programmiersprache entwickelt,
die mit den entsprechenden Übersetzern (Compilern) alles, von der
Kaffemaschine bis hin zum Grossrechner alles steuern sollte: Java.
4.2.3 - Low-Level-Programmierung: Assembler
Die Programmierung eines Programms ist sehr kompliziert. Es wäre
praktisch wäre es auch purer Wahnsinn, alles in Maschinensprache zu
schreiben. Um trotzdem, mehr oder weniger, leicht auf einer möglichst
niedrigen Systemebene zu programmieren, gibt es für jeden Computer
eine sogenannte Assembler-Sprache. Sie wurde mit Maschinensprache geschrieben.
Wozu braucht man eine solche Sprache, schliesslich gibt es ja Pascal,
BASIC, usw.. Genau darum geht's. Ohne Assembler gäb es die meisten
Computersprachen überhaupt nicht. Eben weil Assembler eine "Low Level"
Programmiersprache ist, also quasi mit dem Compi auf Du und Du, sind komplexere
Programme darauf aufgebaut. Assembler ist extrem schnell, weil direkte
Befehle an die Systemkomponenten gegeben werden. Programmiersprachen sind
etwas allgemeiner und sparen nicht so sehr mit Resourcen. Ein Beispiel:
Um einfach nur den Satz "Das Wetter ist schön!" auszugeben, ist das
ausführbare Programm das in Pascal geschrieben genau 1936 Bytes
gross, das in Assembler nur 41 Bytes (kein Schreibfehler!). Genau
aus diesem Grund sind alle wichtigen DOS-Programme und Treiber in Assembler
geschrieben. Auch Spiele wie Doom und Quake, also Spiele bei der es darum
geht, möglichst schnell und effiziert den Computer zu nutzen.
4.2.4 - Systemübergreifende Programmierung: Java
Wenn es nicht so sehr auf Resourcen ankommt, dann werden "höhere"
Programmiersprachen benutzt. Für den PC hauptsächlich Pascal
und C, inzwischen auch Delphi. Speziell aber durch das InterNet wurde aber
nach einer anderen hohen Sprache gearbeitet. Sun Mircosystems, ein Hersteller
von Gross- und Industrierechnern, beauftragte ein kleines Programmiererteam
"Green Team" mit der Entwicklung einer solchen Sprache. Zuerst wurde ihr
der Name "Oak" gegeben, allerdings war dieser Name schon von einer anderen
Firma in Benutzung und es wurde unbenannt in Java. Nach einigem hin und
her und sogar nach der Auflösung des Green Teams, dass nun den Firmennamen
FirstPerson Inc. hatte, etablierte sich Java fast sofort durch den Netscape
Navigator, der dies bald unterstützte.
Im InterNet muss man allerdings unterscheiden: Es sind keine reinen
Java-Programme, sondern "Java-Applets" bzw. "Java-Scripts" die auf Java
basieren. Applets sind nur kleine Programme von wenigen Zeilen, die in
einem HTML-Text (dem Textformat im InterNet) eingebettet sind (die Zähler
zum Beispiel). Java-Scripts sind zwar immer noch innerhalb eines HTML-Dockuments,
aber grundsätzlich sind die Seiten dann in Java geschrieben. Neue
Programme, wie z. B. Xelphi, ein Java-Editor, oder WordPerfect sind komplett
in Java geschrieben. Sie brauchen nur einen entsprechenden frei erhältlichen
"Compiler" (dieses Programm führt das Java-Programm auf dem Computer
aus). So entfällt eine lange Entwicklungszeit für jedes Programm
für jede einzelne Plattform und die Java-Programme sind vom Atari
über den Amiga und den PC bis zum Grossrechner benutzbar.