Tag Archives: Roboter

C# für Ingenieure

In meinem Studium geht es auf die Zielgerade. Im Rahmen dessen beschäftige ich mich zur Zeit mit dem Microsoft Robotics Studio. Auf den ersten Blick eine interessante Sache: eine leistungsfähige Physik-Engine dabei, die sogar mit den PhysX Beschleuniger-Karten von AGEIA arbeiten kann, eine ansprechende 3D-Visualisierung aus der Spielewelt der Xbox (XNA Framework) und als Backend ein modulares System aus Services, die alle über HTTP kommunizieren – also wenn ich das richtig verstanden habe. ;-)

Die Geschichte fußt natürlich auf .NET und in den Tutorials wird man immer wieder mit der Nase drauf gestoßen, dass man doch bitte Visual Studio und C# benutzen solle. »Kann ja nicht so schwer sein«, hab ich mir gedacht und mir erstmal das einzig noch verfügbare Buch über C# aus unserer Bibliothek geholt. Die gut 230 Seiten hab ich in ein paar Stunden durchgearbeitet und bin um einige Erkenntnisse reicher:

  • Fußnoten können den Lesefluss erheblich stören.
  • Ich ärgere mich über Fußnoten, in denen Begriffe wie »Microsoft«, »Informatik« oder »Editor« erläutert werden. Ingenieure sind doch nicht dumm.
  • C# sieht C/C++ und Java sehr ähnlich.
  • Der Unterschied zwischen dynamischer Polymorphie und Interfaces ist esoterischer Natur, aber, da Java und C# keine Mehrfachvererbung unterstützen, sinnvoll.
  • Es gibt Software die besser geeignet ist, ein Buch zu schreiben als MS Word.

Die wichtigste Erkenntnis jedoch: wenn man die Grundkonzepte der Programmierung, also elementare Datentypen, Kontrollstrukturen, Algorithmen und auch OOP verstanden hat, ist die Syntax einer Sprache nur noch Nebensache und in wenigen Stunden drin. Der Umkehrschluss: um Programmieren zu lernen, kann man eigentlich eine beliebige höhere Sprache benutzen, die es ermöglicht die genannten Konzepte umzusetzen. Ob das jetzt wie in diesem Fall C# ist oder Java, Perl, PHP, Delphi, C++ usw. – eigentlich egal. Ich hab das an verschiedener Stelle schon behauptet und das heute sozusagen im Selbstversuch untermauert. *gg*