Wissenschaft im Diskurs
Naturwissenschaften
Naturwissenschaften beschäftigen sich – naheliegenderweise – mit den verschiedenen Erscheinungen der Natur.
Anspruch
Ein verbreiteter Irrtum ist es, Naturwissenschaften als etwas zu sehen, woran man glauben müsste. Im Gegenteil ist es richtig und wichtig, entsprechende Erkenntnisse kritisch zu hinterfragen und zu überprüfen. Naturwissenschaften haben außerdem explizit nicht den Anspruch, Antworten auf den Sinn des Lebens oder ähnliche philosophische Fragestellungen liefern zu können oder auch nur zu wollen.
Naturwissenschaften beobachten natürliche Ereignisse, um auf deren Basis möglichst präzise Beschreibungen und im Idealfall schließlich Vorhersagen erarbeiten zu können. Diese Vorhersagen können sich durchaus auch als unzutreffend erweisen, was für die wissenschaftliche Arbeit jedoch keine "Niederlage" darstellt. Auch daraus lässt sich nämlich neue Erkenntnis ziehen und sei es auch nur, dass man etwas doch noch nicht verstanden hat.
Es gilt im Hinterkopf zu behalten, dass es sich immer um beschreibende Modelle dessen handelt, was Gegenstand der Untersuchung ist. Das heißt nicht zwangsläufig, dass etwas nun "so ist" – Modelle können fortlaufend durch neue Erkenntnisse verbessert oder gar verworfen werden. Im Übrigen können im naturwissenschaftlichen Bereich auch (hinreichend genaue) Näherungslösungen erwünscht und akzeptabel sein.
Finanzen
Naturwissenschaftliche Forschung kostet Geld. Je nach konkretem Vorhaben kann es sich hierbei um Kleinstbeträge mit Küchenutensilien bis hin zu Vorhaben handeln, die außerhalb unserer Erde stattfinden und mehrere Milliarden Euro kosten.
Das Geld wird jedoch nicht, wie oft behauptet, "ins All geschossen" – entsprechend hochwertiges Material kann zwar teuer sein, aber das ist auch schon alles, was dort verbleiben wird. Selbst Weltraumagenturen neigen also keineswegs dazu, Geldscheine in Raketen auf andere Himmelskörper zu befördern. Vielmehr dienen diese Ausgaben insbesondere dazu, die mitunter zahlreichen Mitarbeiter zu bezahlen – von der Förderung der Rohstoffe, über Berater bis hin zu Astronauten. Es ist im Übrigen eine verbreitete Fehlannahme, durch hier "eingesparte" Gelder plötzlich den Welthunger stillen zu können – derartige Probleme sind oftmals ökologischer, sozialer und politischer Art und höchstens am Rande eine Frage des Geldes.
Damit ist leider tatsächlich nicht ausgeschlossen, dass es auch im wissenschaftlichen Betrieb, wie überall sonst auch, zu unnötigen Ausgaben kommen kann. Das finde ich selbstverständlich auch nicht toll und – sofern nicht selbst provoziert – die beteiligten Forscher sicher ebenfalls nicht. Nicht zuletzt möchte ich auch an dieser Stelle noch einmal darauf hinweisen, dass man auch aus augenscheinlichen Fehlschlägen Erkenntnisse ziehen kann.
Grundlagenforschung
Im Bereich der Naturwissenschaften findet, insbesondere an Universitäten, Grundlagenforschung statt. Diese dient als Basis für eventuell mögliche Anwendungen und weitergehende Überlegungen. Diese Grundlagenforschung kann sehr theoretisch sein und mit exotischen Materialien arbeiten; die Nützlichkeit für den Alltag erschließt sich nicht unbedingt sofort. Es handelt sich vordergründig um eine Maßnahme des weiteren Erkenntnisgewinns.
Man weiß mitunter nicht immer bereits im Voraus, wozu eine Überlegung später dienen könnte – und ob überhaupt. Es liegt jedoch in der Natur des Menschen, die Grenzen des Möglichen durch intellektuelle Auseinandersetzung mit dem Gegebenen zu verschieben. Zur Beruhigung sei darauf hingewiesen, dass selbst aus historischer Sicht sehr kuriose Ansätze in heutige Alltagsprodukte einfließen konnten (Stichworte: Quantenmechanik, Zahlentheorie). Ihr solltet also nicht sofort an Verschwendung denken, wenn ihr nicht sofort eine Broschüre mit möglichen Produkten zu einer wissenschaftlichen Theorie finden könnt.
Vertreter
Typische Vertreter der Naturwissenschaften sind die Biologie, Chemie und Physik.
Strukturwissenschaften
Strukturwissenschaften untersuchen abstrakte Objekte auf ihre Eigenschaften und dienen der Modellbildung.
Anspruch
Im Gegensatz zur empirischen Vorgehensweise der Naturwissenschaften basieren Strukturwissenschaften auf einem deduktiven Ansatz, bei welchem – ausgehend von gewissen Grundannahmen – logische Schlüsse gezogen werden. Dies ermöglicht – bei gültigen Schlüssen – tatsächlich absolute, unwiderlegbare Aussagen, die jedoch auch nur soweit gültig sind, wie es die Theorie selbst erlaubt. Wesentliches Element ist die Abstraktion.
Modellbildung
Als sehr einfaches Beispiel sei folgende Überlegung eingebracht: Dass 1 + 1 = 2
ist, dürften die meisten Menschen ohne weiteres Zögern akzeptieren, da es ihnen so beigebracht wurde. Dies ist für die "gewöhnliche" Addition auf natürlichen Zahlen auch völlig richtig und wird sich garantiert niemals ändern, denn im Gegensatz zu natürlichen Phänomenen können hier keine neuen Erkenntnisse auftauchen, die die Aussage widerlegen könnten – vielmehr ist die Theorie absichtlich so konstruiert, dass die Aussage stimmt.
Genauso kann es jedoch auch sinnvoll sein, davon abzuweichen und ein anderes Modell als Grundlage zu verwenden. Sofern wir im Dualsystem rechnen, ergibt sich nämlich die Gleichung 1 + 1 = 10
und in noch spezielleren Algebren ergibt sich gar 1 + 1 = 0 (mod 2)
. Und tatsächlich ist jede dieser drei Gleichungen in ihrem jeweiligen Kontext richtig und keine der jeweils anderen wurde durch eine dieser Gleichungen widerlegt. Es wäre schlicht umständlich für an das Dezimalsystem gewöhnte Menschen, wenn wir unsere Gegenstände im Dualsystem zählen würden (obwohl aus mathematischer Sicht nichts dagegen spräche).
Ein Computer arbeitet jedoch anders, sodass ein anderes Modell als Grundlage verwendet werden kann – und das funktioniert im Rahmen der Digitaltechnik äußerst gut, wie man nicht zuletzt daran sehen kann, dass ihr hier gerade einen Blog über das Internet lesen könnt, in welchem durchaus sehr spezielle Mathematik zum Einsatz kommen kann, beispielsweise bei Komprimierungen und Verschlüsselungen. Es geht also auch hier letztendlich nicht um "die Wahrheit", sondern vielmehr um passendes Werkzeug zur Lösung einer Problemstellung.
Verbindung
Im Kontext unserer bisherigen Überlegungen sind nun auch die Verbindungen zu den anderen Wissenschaften, beispielsweise der Physik, zu betrachten. Mitunter abenteuerlich anmutende Beschreibungen natürlicher Phänomene bedeuten nun eben genau nicht, dass sich die Natur so verhalten muss, sondern die Natur verhält sich auch völlig ohne unsere Modelle genau so, wie sie es eben macht.
Unsere Modelle dienen lediglich der möglichst präzisen Beschreibung dessen, was wir beobachten können, um davon ausgehend beispielsweise Vorhersagen treffen zu können. Diese Modelle müssen möglicherweise angepasst werden, dies macht jedoch explizit nicht die dahinterliegende Mathematik falsch, sondern bedeutet lediglich, dass das falsche "Werkzeug" gewählt wurde – oder aber Fehler in der Anwendung gemacht wurden. Es sei entsprechend nochmals darauf hingewiesen, dass im Universum also keine Matrizen umherschwirren und auch physikalische Bezeichnungen sollte man nicht immer wörtlich nehmen (Quarks sind also nicht etwa bunt im üblichen Sinne, von "Farben" spricht man hier lediglich im Sinne einer Kategorisierung und "dunkle Materie" meint schlicht einen zumindest bisher nicht sichtbaren Einfluss) – dennoch können sie hilfreich sein, bestimmte Phänomene zu beschreiben.
Die Frage nach dem finalen "Warum?" kann schließlich niemand beantworten; Religionen deklarieren hier lediglich willkürlich und ohne jegliche Evidenz ihre vorgebliche Überzeugung zur "Erklärung" und schließen weitere Nachfragen aus. Konzeptionell ähnlich gehen Pseudo-Wissenschaften und Verschwörungstheorien vor, welche ohne jegliche Anhaltspunkte (bzw. sogar vielen gegensätzlichen Aspekten) einer Überzeugung anhängen. Bloße Gefühle, Mehrheiten, Meinungen und Sichtweisen genügen dem wissenschaftlichen Anspruch explizit nicht.
Vertreter
Typische Vertreter der Strukturwissenschaften sind die Informatik, Logik und Mathematik.
Bitte beachtet, dass dieser sehr vereinfachte Überblick nicht die ganze Breite der jeweiligen Begriffe und Fachgebiete klären kann, sondern vielmehr dem interessierten Laien eine Möglichkeit der Einordnung geben soll. Sofern ich mit diesem Beitrag dazu anregen konnte, diese Arten der Wissenschaft besser differenzieren zu können und nicht gar nur als "akademische Selbstbeschäftigung" zu betrachten, würde ich mich jedoch sehr freuen.
Weiterführende Informationen und Verweise
Forschungseinrichtungen in Deutschland
- Deutsches Zentrum für Luft- und Raumfahrt
- Fraunhofer-Gesellschaft
- Helmholtz-Gemeinschaft Deutscher Forschungszentren
- Leibniz-Gemeinschaft
- Max-Planck-Gesellschaft
Wissenschaftlich orientierte Blogs und Podcasts
Magazine
Die Spektrum der Wissenschaft Verlagsgesellschaft veröffentlicht mehrere (natur-)wissenschaftliche Magazine, darunter insbesondere auch das bekannte Spektrum der Wissenschaft. Die Ausgaben erscheinen monatlich und bieten oftmals auch (ggf. auf Deutsch übersetzte) Artikel direkt beteiligter Forscher.
Interpolierte Zeichenfolgen mit C#
String.Format
-Methodengruppe vorzustellen. Selbstverständlich wird C# aber beständig weiterentwickelt und so gibt es seit C# 6.0 (.NET 4.6) eine entsprechende Möglichkeit, ohne jedoch – wie in meinem kleinen Beispiel – auf die umfangreichen Formatierungsoptionen verzichten zu müssen:
010203040506070809101112131415
// Einfache Verwendung und Methodenaufrufconst string firstName = "Holger";const string lastName = "Stehle";
string formatted = $"{lastName.ToUpper()}, {firstName}"; // "STEHLE, Holger"
// Basis für Zahlenconst int num1 = 42;
formatted = $"dec: {num1}, hex: {num1:X3}"; // "dec: 42, hex: 02A"
// Dezimalstellen für Zahlenconst double num2 = 13.37;
formatted = $"{num2:N3} / {num2:N4}"; // "13,370 / 13,3700" [DE]
$
" zur Einleitung derartiger Zeichenketten. Traceroute per C#
01020304050607080910111213141516171819202122232425
public class Traceroute : IDisposable { private static readonly byte[] buffer = new byte[] { 0x01, 0x03, 0x03, 0x07 }; // Daten zur Übertragung
private readonly Ping ping = new Ping();
public IEnumerable<PingReply> Send(string hostNameOrAddress, int timeout = 3000) { // Paket mit TTL=1 initialisieren PingOptions pingOptions = new PingOptions(1, false);
PingReply pingReply = null;
do { pingReply = this.ping.Send(hostNameOrAddress, timeout, Traceroute.buffer, pingOptions);
// TTL für nächsten Schritt inkrementieren pingOptions.Ttl++;
yield return pingReply; } while(pingReply.Status != IPStatus.Success); }
public void Dispose() => this.ping.Dispose();}
0102030405
using(Traceroute traceroute = new Traceroute()) { foreach(PingReply pingReply in traceroute.Send("coders-online.net")) { Console.WriteLine(pingReply.Address); }}
Dns.GetHostEntry(…)
dienen:
0102030405060708091011
using(Traceroute traceroute = new Traceroute()) { foreach(string hostNameOrAddress in traceroute.Send("coders-online.net").Select(pR => { try { return Dns.GetHostEntry(pR.Address).HostName; } catch { return pR.Address.ToString(); } })) { Console.WriteLine(hostNameOrAddress); }}
Objekte mit C# dynamisch erzeugen
Activator
-Klasse.Als Basis für das Beispiel soll folgende triviale Klasse dienen:
01020304050607080910111213141516
public class Person { public string FirstName { get; set; }
public string LastName { get; set; }
public Person() {}
public Person(string firstName, string lastName) { this.FirstName = firstName; this.LastName = lastName; }}
01020304
Activator.CreateInstance(Type.GetType("Person"), new[] { "Holger", "Stehle"});
Die in diesem Beitrag vorgestellte Klasse bietet auch eine Variante mit Typparameter an: Diese Funktionalität ist in der Praxis zur "normalen" Entwicklung jedoch nur bedingt hilfreich, schließlich musste dazu der Typ bereits vorab bekannt sein und ihr hättet das Objekt auch einfach per
new
erzeugen können.Mit generischer Programmierung zeigt sich ein weiteres Einsatzfeld, welches sich jedoch mit einer entsprechenden Einschränkung des Typparameters auch anderweitig lösen lässt und für mehr Unterstützung des Typsystems sorgt, da ihr für eure Zwecke weitere Einschränkungen (wie beispielsweise Schnittstellen) angeben könnt:
C#-Member als obsolet kennzeichnen
.NET stellt hierfür das
Obsolete
-Attribut zur Dekoration entsprechender Teile bereit. Die Verwendung ist intuitiv:
01020304050607080910111213
[Obsolete("Bitte verwenden Sie .NET-Standardfunktionalität.")]public static class Sorting { [Obsolete("Bitte verwenden Sie zumindest " + nameof(Mergesort) + ".", true)] public static string[] Bogosort(string[] data) { /* ohne Implementierung */ return data; }
public static string[] Mergesort(string[] data) { /* ohne Implementierung */ return data; }}
"Sorting" ist veraltet: "Bitte verwenden Sie .NET-Standardfunktionalität."Bei Verwendung der Methode
Bogosort
erscheint zusätzlich folgender Fehler:
"Sorting.Bogosort(string[])" ist veraltet: "Bitte verwenden Sie zumindest Mergesort."
Project links
-
BitStadt – Stadtportal
Berlin · Hamburg · Amsterdam -
CCC – Fahrplan
Schedules for the CCCongress
Categories / Archive | Übersicht
- PHP functions in C# (136)
- Dictionary (257)