Am Anfang war das Wort
Am Anfang war das Wort und um die Worte formten sich Sprachen und das Bewusstsein hatte nun ein Werkzeug um logische Zusammenhänge zu begreifen. Der Apfel der Erkenntnis?
Sprache und Bewusstssein
Mit Hilfe der Sprachen und ihrer innewohnenden Grammatik entsteht in unserem Bewusstsein ein logisches Abbild, der uns durch unsere Sinne übermittelten Wirklichkeit. Dies setzt uns in die Lage Geschehnisse zu verstehen, zu beurteilen und vorausschauend zu handeln.
Sprache und Wirklichkeit
Sprachen sind ein überaus interessantes Thema. Jedes Ding scheint seine eigene Sprache zu haben.
Die DNS definiert das biologische Leben, die Mathematik beschreibt physikalische Vorgänge und
unsere menschlichen Sprachen verleihen uns fast magische Kräfte.
Soweit ich es verstehe, denke ich in Worten, in Sätzen, innnerhalb eines Modells, dass sich sowohl aus
der mir durch meine Sinne übermittelten Wirklchkeit, als auch durch die, der Sprache
innewohnenden, Logik ergibt.
Jede Sprache hat seine eigenen Definitonen, Regeln und Bereiche in der sie hilfreich sein kann.
Denken wir an die boolsche Logik. Sie ist die Grundlage des Informationszeitalters.
Boolsche Logik ist eigentich sehr einfach. Man hat ein paar Definitionen, Operatoren und viele Objekte auf die
die Definitionen und deren Verknüpfungen angewendet werden. Ein Vorteil dieser Sprache ist, dass
innerhalb des Denkmodells, Ereignisse sowohl vorhersehbar, als auch nachvollziehbar sind.
Mehr über boolsche Algebra.
Boolsche Algebra: Ob Sie es glauben oder nicht, Boolsche Algebra ist die Grundlage des Informationszeitalters. Eigentlich ist es ganz einfach. Man trifft Aussagen, bestimmt deren Wahrheitsgehalt und wendet dann logische Operationen auf Kombinationen von diesen an: Definitionen (Aussagen): Frieden ist gut, Krieg ist schlecht, ... Logische Operatoren: und, oder, nicht Objekte: Frieden, Freude, Eierkuchen, Krieg, was auch immer... Wahrheitsgehalt von Aussagen: Der Wahrheitsgehalt von Aussagen wird oft als relativ empfunden, da dieser sicherlich auch durch den Blickwickel des Betrachters beeinflusst wird. Isst man Schweinefleich, so ist dies für das Schwein offensichtlich nicht so gut, auch wenn man dies nicht so empfindet. Wie auch immer, es gibt Dinge auf die sich alle einigen können. Z.B. Wasser ist nass. Hat man also den Wahrheitsgehalt mehrerer Aussage festgelegt, so kann man Schlussfolgerungen ziehen. Operationen auf Aussagen:
Frieden ist gut = ja Frieden ist nicht gut = nein (Frieden ist gut) und (Krieg ist schlecht) = ja und ja = ja (Frieden ist nicht gut) und (Krieg ist schlecht) = nein und ja = nein (Frieden ist gut) oder (Krieg ist nicht schlecht) = ja oder nein = ja
Regeln: Mit Regeln kann man dann bedingte Sachverhalte beschreiben, wie z.B.: Wenn etwas Räder hat, dann ist es wahrscheinlich nicht meine Oma. Binäres Rechnen auf Grundlage boolscher Logik: Mit boolscher Algebra kann man also binär rechnen, Verknüpfungen herstellen, Regeln definieren und Abläufe steuern. Mit anderen Worten gesagt, Computer bauen.
Sprachen sind also mächtige Werkzeuge des Verstandes, die uns von Empfindungen und Glauben unabhängig machen können, wenn sie richtig verstanden und angewendet werden. Und hier kann ein Hacken sein. Wissen kann sowohl zum Guten, als auch für schlechtes eingesetzt werden.
Natürliche Sprache und Logik
Natürlich ist es in der Wiklichkeit nicht ganz so einfach. Jede Sprache impliziert ein gewisses Modell mit Geltungsbereich und Grenzen. Andersherum gilt aber auch, dass wenn eine Spache ein Stück Wirklichkeit ausreichend gut repräsentiert, man sich auf dieses Modell auch verlassen kann. Die Elektrotechnik ist ein gutes Beispiel. Meist sind Fehlschlässe eher auf Anwendungsfehler zurückzuführen. Ist eine Wissenschaft plausibel und wird sie richtig angewendet, so führt sie auch zu den gewünschten Resultaten.
Schrift, Mathematik und Software
Schrift ist ein, wenn nicht gar das wichtigste Werkzeug aller Wissenschaften.
Durch Bücher können wir lernen, verstehen und urteilen. Mit Software steuern
wir Computer und Netzwerke. Dabei sind höhere Computersprachen den natürlichen
gar nicht so unöhnlich.
Mehr über Computersprachen.
Auf Grundlage der binären Logik von Rechnern sind viele Computersprachen entwickelt
worden. Zunächst Assembler, welches Nullen und Einsen auf einen mehr verständlichen
Code abbildet. Dann kamen die sogenannten höheren Sprachen, wie PASCAL und vorallendingen
C, die Sprache in der UNIX geschrieben ist.
Die Entwickler von C, Carnigham und Richie, haben spätern mal verlautbart, dass sie
mit der Entwicklung von C abgeschlossen haben, als es ihnen gelang, eine eigentlich
einfache Aufgabe völlig unlesbar zu codieren. Wie auch immer, C ist effizient und
z.B als Sprache zur Programmierung von Beriebsystemen geeignet.
Scriptsprachen wie PERL und seine Ableger erleichtern das Programmieren ungeheuer,
da sie lästige Details verstecken und sind vorallendingen auch für Textverarbeitung
geeignet.
Für mich ist PERL eine Befreiung, man kann fast schneller programmieren, als einen
Brief schreiben. Für den nicht Programmier, hier mal eine Sprache zur allgemeinen
Belustigung, genannt 'Regular Expressions'. Mit Regular Expressions kann man Zeichenketten,
neudeutsch Strings bearbeiten:
my $String =~ s/^([^ ]*) *([^ ]*)/$2 $1/;
Sieht unverständlich aus? Ist es gar nicht, wenn man die RE's kennt. Der Ausdruck
tauscht einfach die ersten beiden Worte. Mit 'my' wird eine lokale Variable namens '$String'
definiert. '=~' ist ein match Operator, der untersucht, ob der rechts stehende Ausdruck im
linken vorkommt. 's/match/sustitution/' tauscht in '$String' match gegen sustitution aus,
wenn match gefunden wird. '^' kennzeichnet den Anfang des Strings, '()' kann durch $1
referenziert werden. '([^ ]*)' sind alle Buchstaben, die kein Leerzeichen sind, usw...
Zum probieren, als perl script:
perl -e '{$s = "word to swap"; $s =~ s/^([^ ]*) *([^ ]*)/$2 $1/; print $s;}'
An diesem Beispiel wird deutlich, wie sehr die Syntax die Ausdrucksweise und damit auch
Denkweise beeinflusst. Ein wesentlich Teil einer Programmiersprache ist also deren Syntax.
Je resriktiver, desto höher der Programmieraufwand für ein Modul. Arbeiten viel Menschen
zusammen, kann eine restriktive Sprache aber auch durchaus von Vorteil sein, insbesondere,
wenn die Verwaltung der Schnittstellen in den Vordergrund tritt.
Jede Sprache beruht auf Definitionen und Fakten, hat eine Syntax und eine Semantik und ist in einem speziellen Kontext zu interpretieren. Im Zeitalter der diditalen Netzwerke, kommt der Textverarbeitung, im speziellen auch den 'Markup' Dokument Beschreibungssprachen eine besondere Bedeutung zu.
World Wide Web
Das WWW ist eine Anwendung basierend auf dem Internet Protokoll (TCP/IP), dass weiser Weise von vornherein in das UNIX Betriebssystem integriert wurde. Die zur Kommunikation zwischen Rechner notwendigen Aufgaben sind in einem ISO Schichtenmodell definiert. Auf der Anwenderprogrammierschicht werden Programme über sogenannte Sockets verbunden. Es ist eigentlich das Prinzip von 'Pipes', bei denen die Ausgaben eines Programm die Eingaben eines anderen sind, um die Netzwerkfähigkeit erweitert. Die Idee ist mit einem Browser (Client), Daten von entfernten Rechnern (Server) anzufordern und benutzerfreundlich aufzubereiten. Witzigerweise wurde das WWW nicht von der Softwareindustie, sondern von Physikern, wie Tim Berner Lee, am CERN entwickelt, um Dokumente einfach austauschen zu können.
HTML (Hypertext Markup Language)
Der Begriff 'Markup' kommt ursprünglich aus dem Druckbereich. Mit einem 'Markup' wurde einem Drucker mitgeteilt, wie ein Text zu drucken sei. HTML, allgemeiner XML fügt dieser Verfahrensweise, die Möglichkeiten zur Kennzeichnung von Inhalten und des Kontextes, sowie Hyperlinks hinzu. Wohlgemerkt, HTML ist ein Dokumenten Beschreibungs-, keine Programmiersprache. Allerdings ist der Übergang fliessend, wenn Sender oder Empfängerseitig Text, 'on the fly', dynamisch generiert wird.
Hypertext Transfer Protokol
Das Hypertext Transfer Protokol definiert den Austausch von HTML Dokumenten zwischen einem HTTP Daemon (Server) und einem Empfänger Browser (Client). Client/Server Programmierung ist ein wenig trickreich, da man kein einzelnes sequenziell durchlaufendes Programm vor sich hat, sondern Anforderungen und Antworten zwischen Client und Server ausgetaucht werden. Laufen auf beiden Seiten sowohl Server als auch Client, so spricht man von einer 'peer to peer' Verbindung.
Datenbank und SQL
Datenbanken sind die Grundlage des elektronischen Handelsverkehrs. Es
gibt relationale und objektorientierte Datenbanken. Eine relationale Datenbank
ist eigentlich ganz einfach zu verstehen. Daten sind in Tabellen angeordnet
und können mit der 'Structured Query Language' abgefragt werden.
Mehr über Datenbanken.
Rationale Datenbanken
Rationale Datenbank Tabellen bestehen aus Zeilen und Spalten, die, wie bei einem
Gitternetzwerk, Zellen bilden. Diese können zum Beispielüber die Zeilen- und
die Spaltennummer referenziert werden. Eine SQL Abfage sieht z.B. so aus:
select name, passwort from user_table where name = 'Paul';
Dies selektiert aus allen Zeilen, deren Spalten den Namen Paul enthalten,
'name' und 'passwort'.
Information, Kommunikation und Internet
Kommunikation erlaubt es Individuen zusammen zu arbeiten und gemeinsam hinsichtlich eines Ziels zu handeln. Das Internet hat die Informations- und Kommunikationsmöglichkeiten vervielfacht. Informationen, für die man früher Bibliotheken durchstöbern musste, sind heute 'at our finger tip'. Und wir können nun auch einfach mit Menschen in Verbindung treten, die wir gar nicht nicht persöhnlich kennen. Dies klingt zuächst unglaublich verheissungsvoll, birgt aber auch immense Gefahren. Vergessen wir nicht, dass das Internet zunerst eine Entwicklung des amerikanischen Verteidigungsministeriums ist.
Menschen verbinden und Platformen bauen
Die neuen Technologien eröffnen ungeahnte Möglichkeiten, werfen aber auch
Fragen auf, die beantwortet werden sollten. Bringt uns diese Entwicklung eine Welt in
der jeder mit jedem frei kommunizieren kann, oder führt sie in eine 'Big Brother'
Gesellschaft ohne Privatsphäre? Die grosse Herausforderung wird sein, diese Technologien
so einzusetzen, dass sie zu unser aller Wohl dienen.