
Programmieren, aber was ?
Seit den 60er Jahren haben findige bis geniale Geister Algorithmen entworfen, um den lineraren Prozessoren die Ergebnisse hochkomplexer mathematischer Routinen zu entlocken. Da ich hier kein Geschichtsbuch der Programmierung verfassen will, beschränke ich mich auf meine Intentionen, betone aber, dass ich viele Kniefälle ob der Kunstfertigkeit dieser Pioniere gemacht habe. (z.B. "Numerical recipes" von Press et al.)Mit jedem Projekt wollte ich was lernen. Also habe ich nie den Anspruch erhoben, fertige Software zu erstellen, sondern es musste funktionieren und der code sollte lesbar bleiben. Später kamen dann noch Gesichtspunkte der Optimierungen hinzu, die die jeweilige Hardware (meist Grafikkarten) gut ausnutzen.
Da ich die Ergebnisse visualisieren wollte, brauchte ich Computergrafik, also habe ich mir entsprechenden Bibliotheken geschrieben. (dazu ein eigener Text)
Das ganze bitte auch in 3D, also brauchte ich Vektor-Algebra, Bibliothek marsch.
Man nennt das "from the scratch", keine fertigen Sachen benutzen, sondern alles selbst entwickeln. So habe ich gelernt und so füllte sich die Festplatte mit Code und mein Kopf mit Verständnis.
Bei der linearen Algebra (Bibliotheken wir alglib, blas,gsl) kam ich aber an den Rand meines mathematischen Denkvermögens. Ich konnte zwar den Code portieren, sofern erforderlich, aber es wäre gelogen, wenn ich behaupten würde alles verstanden zu haben.
Sehr intensiv habe ich mich mit 3D-Grafik beschäftigt, nicht um Spiele zu erstellen (was man damit auch machen kann), sondern um Physik zu simulieren, also sog. physic-engines, die im wesentlichen newtonsche Mechanik simmulieren, heute auch N-Body-Probleme aus der Astronomie (siehe dort). Auch die Visualisierung von Molekülen in dem Chemie-Projekt profitiert davon.