Long Arrow Operator
Der Long-Arrow-Operator – das Stiefkind der Programmierer Eine Kritik an der mangelhaften Umsetzung eines der Standard-Operatoren in allen gängigen Programmiersprachen.
Was ist der Long-Arrow-Operator? Die Geschichte der Softwareentwicklung hat über die Jahrzehnte viele Programmiersprachen hervorgebracht, um eine gewisse Abstraktion und Convenience bei der Verwendung von Hardware zu erreichen. Niemand mag heute mehr in Assembler auf Bit-Ebene programmieren, selbst wenn das bis heute der einzige Weg ist, um die Vorgänge auf einem Computer unter Kontrolle zu behalten.
Der Stack Ist Dein Freund – Eine Nachbesprechung
Viele Leser haben uns gefragt, ob der Artikel „Der Stack ist dein Freund“ [1] ernst gemeint sei. Wir als aufklärende Bildungsorganisation im Bereich IT sehen uns zur Wahrheit verpflichtet, und selbstverständlich werden unsere Empfehlungen inhaltlich mehrfach durch unsere Fachexperten geprüft.
Auf unserer Seite machte sich nach derartigem Feedback eher Enttäuschung breit - Enttäuschung darüber, wie wenig Softwareentwickler heute noch über die Abläufe im Computer wissen. Um unsere Empfehlungen zu untermauern, haben wir ein Benchmarking arrangiert, um die alternativen zu unserer Empfehlung zu bewerten.
Private ist nicht privat!
Private ist nicht privat – Wie Objektorientierung uns in falscher Sicherheit wiegt Wir alle kennen die Situation: Wir sollen eine Bibliothek an eine andere Abteilung oder einen Kunden liefern, aber möchten gerne die Implementierungsdetails verbergen. Manche nennen dies hochtrabend das Information Hiding Principle. In der Realität möchte man einfach die vielen Krücken und Abkürzungen verbergen, die durch Kosten- und Zeitdruck erforderlich wurden. Aber einen Schritt nach dem anderen.
Wie können wir das Information Hiding Principle umsetzen?
Rekursion Ist Gut
Rekursion ist besser als ihr Ruf An zahlreichen Literaturstellen wie auch in Unterlagen aus dem Internet ist immer wieder die Rede davon, dass Rekursion etwas Schlechtes sei und vermieden werden soll. Gleichzeitig gibt es wahrscheinlich keine einzige Universität auf diesem Erdball, an der Rekursion nicht gelehrt wird. Diesen vermeintlichen Widerspruch, dass Dinge gelehrt werden, die man nicht nutzen soll, sind wir auf den Grund gegangen.
Was ist Rekursion überhaupt? Rekursion ist in der Informatik ein Programmiertrick, bei dem sich eine Funktion oder Methode immer wieder selbst aufruft.
Der Stack ist dein Freund
Wie uns der Stack helfen kann, schöneren Code zu schreiben. Moderne Trends in der Software-Entwicklung versuchen, uns dazu zu nötigen, den Kontrollfluss in kleine Häppchen zu zerstückeln. Konkret postuliert Robert C. Martin in seinem Buch Clean Code, dass Funktionen möglichst klein sein sollten und nur in Einzelfällen 20 Zeilen erreichen dürfen:
> “The first rule of functions is that they should be small. […] Functions should hardly ever be 20 lines long.
Polymorphismus in C
Polymorphismus endlich auch in C Neidisch und voller Bewunderung schauen C-Programmierer auf ihre objektorientierungsvirtuosen Kollegen, die sich in der Firma wie Götter gebärden. Warum nur hat der Chef C angeordnet? C-Programmierer wollen auch diese tollen Sachen machen und bewundert werden. Aber was ist das überhaupt, was die da machen?
Was ist diese Objektorientierung überhaupt? Bei der Objektorientierung geht es darum, die Trennung zwischen statischer Struktur und Verhalten aufzubrechen. Wo in C noch Structs von Funktionen beackert wurden, kommen in C++ jetzt die Structs als „Klassen“ daher und bringen ihren Code gleich noch mit – ein mittlerer Alptraum für jeden Architekten, der Struktur und Verhalten lieber getrennt sehen möchte.
Unions sind gut!
Im Internet verbreitet sich mehr und mehr das Gerücht, dass unions vermieden werden sollen. Diese Aussage ist absolut falsch. unions sind eines der besten Sprachfeatures von C/C++ und sollten in jedem Programm verwendet werden.
Unions haben einige sehr eindeutige Vorteile:
Unions sparen Unmengen an Speicherplatz Ein großer Gegenspieler der union in C ist das struct. Beide verhalten sich sehr ähnlich, aber ein struct braucht unverhältnismäßig mehr Speicher!
Schauen wir uns zwei kleine Codebeispiele an: